Skip to content

Commit 4232076

Browse files
dadachiclaude
andcommitted
Normalize substrate naming: drop NATI-/NATEMPLATE_API_ abbreviations
- Env vars: NATEMPLATE_API_{SCHEME,DOMAIN,PORT} -> NATIVEAPPTEMPLATE_API_* in Constants.swift and README.md - Error codes: NATI-XXXX -> NATIVEAPPTEMPLATE-XXXX across production and test Swift files, plus CHANGELOG.md - CLAUDE.md: error-code section reframed as a shared iOS+Android prefix; dropped the stale NFCError.swift / NATIVEAPPTEMPLATE-3xxx row (file no longer present in this fork) Mirrors upstream PR nativeapptemplate/NativeAppTemplate-iOS#71. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 78f61b4 commit 4232076

15 files changed

Lines changed: 44 additions & 46 deletions

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1717

1818
### Added
1919
- Pagination support for item tags list
20-
- CodedError system with `NATI-XXXX` prefixed error codes
20+
- CodedError system with `NATIVEAPPTEMPLATE-XXXX` prefixed error codes
2121
- App version display in settings
2222
- Design system constants (spacing, animation, glass, layout, corner radius)
2323
- GlassButtonStyle and GlassCard components with glassmorphism styling

CLAUDE.md

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -107,18 +107,17 @@ NativeAppTemplate/
107107
```
108108

109109
### Error Handling (CodedError System)
110-
All errors use the `CodedError` protocol in `NativeAppTemplate/Common/Errors/`. Error codes use the `NATI-XXXX` prefix (NativeAppTemplate iOS) to distinguish from Android (`NATA-XXXX`).
110+
All errors use the `CodedError` protocol in `NativeAppTemplate/Common/Errors/`. Error codes share the `NATIVEAPPTEMPLATE-XXXX` prefix across iOS and Android.
111111

112112
| Range | Type | File |
113113
|-------|------|------|
114-
| NATI-1xxx | App/general errors | `AppError.swift` |
115-
| NATI-2xxx | API/network errors | `NativeAppTemplateAPIError.swift` |
116-
| NATI-3xxx | NFC/scan errors | `NFCError.swift` |
114+
| NATIVEAPPTEMPLATE-1xxx | App/general errors | `AppError.swift` |
115+
| NATIVEAPPTEMPLATE-2xxx | API/network errors | `NativeAppTemplateAPIError.swift` |
117116

118117
- New error types must conform to `CodedError` and be placed in `Common/Errors/`
119118
- Use `error.codedDescription` (not `error.localizedDescription`) in all error messages
120119
- Use `Message(error: error)` convenience to post errors to `MessageBus`
121-
- Error code numbers must match across iOS and Android (only the prefix differs)
120+
- Error code numbers must match across iOS and Android
122121

123122
### Dependencies (Swift Package Manager)
124123
- KeychainAccess (4.2.2) - Secure credential storage

NativeAppTemplate/Common/Errors/AppError.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ enum AppError: CodedError {
1616
var errorCode: String {
1717
switch self {
1818
case .unexpected:
19-
"NATI-1001"
19+
"NATIVEAPPTEMPLATE-1001"
2020
}
2121
}
2222

NativeAppTemplate/Common/Errors/CodedError.swift

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@
33
// NativeAppTemplate
44
//
55

6-
// Error codes use the `NATI-XXXX` prefix (NativeAppTemplate iOS).
7-
// Android uses `NATA-XXXX`.
6+
// Error codes share the `NATIVEAPPTEMPLATE-XXXX` prefix across iOS and Android.
87
// Ranges: 1xxx App errors, 2xxx API errors.
98

109
import Foundation

NativeAppTemplate/Common/Errors/NativeAppTemplateAPIError.swift

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,15 @@ enum NativeAppTemplateAPIError: CodedError {
1515
nonisolated var errorCode: String {
1616
switch self {
1717
case .requestFailed:
18-
"NATI-2001"
18+
"NATIVEAPPTEMPLATE-2001"
1919
case .processingError:
20-
"NATI-2002"
20+
"NATIVEAPPTEMPLATE-2002"
2121
case .responseMissingRequiredMeta:
22-
"NATI-2003"
22+
"NATIVEAPPTEMPLATE-2003"
2323
case .responseHasIncorrectNumberOfElements:
24-
"NATI-2004"
24+
"NATIVEAPPTEMPLATE-2004"
2525
case .noData:
26-
"NATI-2005"
26+
"NATIVEAPPTEMPLATE-2005"
2727
}
2828
}
2929

NativeAppTemplate/Constants.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -105,9 +105,9 @@ enum NativeAppTemplateConstants {
105105
enum Strings {
106106
#if DEBUG
107107
private static let env = ProcessInfo.processInfo.environment
108-
static let scheme: String = env["NATEMPLATE_API_SCHEME"] ?? "https"
109-
static let domain: String = env["NATEMPLATE_API_DOMAIN"] ?? "api.nativeapptemplate.com"
110-
static let port: String = env["NATEMPLATE_API_PORT"] ?? ""
108+
static let scheme: String = env["NATIVEAPPTEMPLATE_API_SCHEME"] ?? "https"
109+
static let domain: String = env["NATIVEAPPTEMPLATE_API_DOMAIN"] ?? "api.nativeapptemplate.com"
110+
static let port: String = env["NATIVEAPPTEMPLATE_API_PORT"] ?? ""
111111
#else
112112
static let scheme: String = "https"
113113
static let domain: String = "api.nativeapptemplate.com"

NativeAppTemplateTests/UI/Shop Detail/ShopDetailViewModelTest.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ struct ShopDetailViewModelTest { // swiftlint:disable:this type_body_length
111111
}
112112
await reloadTask.value
113113

114-
#expect(viewModel.messageBus.currentMessage?.message == "[NATI-2001] \(message) [Status: \(httpResponseCode)]")
114+
#expect(viewModel.messageBus.currentMessage?.message == "[NATIVEAPPTEMPLATE-2001] \(message) [Status: \(httpResponseCode)]")
115115
#expect(viewModel.shouldDismiss)
116116
}
117117

NativeAppTemplateTests/UI/Shop List/ShopCreateViewModelTest.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ struct ShopCreateViewModelTest {
180180
}
181181
await createShopTask.value
182182

183-
#expect(viewModel.messageBus.currentMessage?.message == "[NATI-2001] \(message) [Status: \(httpResponseCode)]")
183+
#expect(viewModel.messageBus.currentMessage?.message == "[NATIVEAPPTEMPLATE-2001] \(message) [Status: \(httpResponseCode)]")
184184
#expect(viewModel.isCreating)
185185
#expect(shopRepository.shops.count == createdShopsCount)
186186
#expect(viewModel.shouldDismiss)
@@ -215,7 +215,7 @@ struct ShopCreateViewModelTest {
215215
}
216216
await createShopTask.value
217217

218-
#expect(viewModel.messageBus.currentMessage?.message == "[NATI-2001] \(message) [Status: \(httpResponseCode)]")
218+
#expect(viewModel.messageBus.currentMessage?.message == "[NATIVEAPPTEMPLATE-2001] \(message) [Status: \(httpResponseCode)]")
219219
#expect(viewModel.isCreating)
220220
#expect(shopRepository.shops.count == createdShopsCount)
221221
#expect(viewModel.shouldDismiss == false)

NativeAppTemplateTests/UI/Shop Settings/ShopBasicSettingsViewModelTest.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@ struct ShopBasicSettingsViewModelTest {
250250
}
251251
await reloadTask.value
252252

253-
#expect(viewModel.messageBus.currentMessage?.message == "[NATI-2001] \(message) [Status: \(httpResponseCode)]")
253+
#expect(viewModel.messageBus.currentMessage?.message == "[NATIVEAPPTEMPLATE-2001] \(message) [Status: \(httpResponseCode)]")
254254
#expect(viewModel.shouldDismiss)
255255
}
256256

@@ -335,7 +335,7 @@ struct ShopBasicSettingsViewModelTest {
335335
}
336336
await updateShopTask.value
337337

338-
#expect(viewModel.messageBus.currentMessage?.message == "[NATI-2001] \(message) [Status: \(httpResponseCode)]")
338+
#expect(viewModel.messageBus.currentMessage?.message == "[NATIVEAPPTEMPLATE-2001] \(message) [Status: \(httpResponseCode)]")
339339
#expect(viewModel.isUpdating == false)
340340
#expect(viewModel.isBusy == false)
341341
#expect(viewModel.shouldDismiss)

NativeAppTemplateTests/UI/Shop Settings/ShopSettingsViewModelTest.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ struct ShopSettingsViewModelTest {
9696
}
9797
await reloadTask.value
9898

99-
#expect(viewModel.messageBus.currentMessage?.message == "[NATI-2001] \(message) [Status: \(httpResponseCode)]")
99+
#expect(viewModel.messageBus.currentMessage?.message == "[NATIVEAPPTEMPLATE-2001] \(message) [Status: \(httpResponseCode)]")
100100
#expect(viewModel.shouldDismiss)
101101
#expect(viewModel.isFetching == false)
102102
#expect(viewModel.isBusy == false)
@@ -168,7 +168,7 @@ struct ShopSettingsViewModelTest {
168168
await destroyShopTask.value
169169

170170
#expect(viewModel.messageBus.currentMessage?.message ==
171-
"\(Strings.shopDeletedError) [NATI-2001] \(message) [Status: \(httpResponseCode)]")
171+
"\(Strings.shopDeletedError) [NATIVEAPPTEMPLATE-2001] \(message) [Status: \(httpResponseCode)]")
172172
#expect(viewModel.isDeleting)
173173
#expect(viewModel.isBusy)
174174
#expect(sessionController.userState == .notLoggedIn)

0 commit comments

Comments
 (0)