From fc923921331402a1568cb3dfc8c2745ea0c0f707 Mon Sep 17 00:00:00 2001 From: dadachi Date: Thu, 26 Mar 2026 08:18:50 +0900 Subject: [PATCH 1/2] Remove dead code and fix unused parameter in Event.refresh Remove unused navigationPathStats state variable from AppTabView and fix Event.refresh to use the action parameter instead of hardcoding "Refresh". Co-Authored-By: Claude Opus 4.6 (1M context) --- NativeAppTemplate/Logging/Logger.swift | 2 +- NativeAppTemplate/UI/App Root/AppTabView.swift | 5 +---- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/NativeAppTemplate/Logging/Logger.swift b/NativeAppTemplate/Logging/Logger.swift index a7c4124..4f2c636 100644 --- a/NativeAppTemplate/Logging/Logger.swift +++ b/NativeAppTemplate/Logging/Logger.swift @@ -91,7 +91,7 @@ struct Event { ) -> Self { .init( source: "\(Source.self)", - action: "Refresh" + action: action ) } diff --git a/NativeAppTemplate/UI/App Root/AppTabView.swift b/NativeAppTemplate/UI/App Root/AppTabView.swift index 8f9f311..842a994 100644 --- a/NativeAppTemplate/UI/App Root/AppTabView.swift +++ b/NativeAppTemplate/UI/App Root/AppTabView.swift @@ -14,7 +14,6 @@ struct AppTabView< @Environment(DataManager.self) private var dataManager @Environment(TabViewModel.self) private var model @State var navigationPathShops = NavigationPath() - @State var navigationPathStats = NavigationPath() private let shopListView: () -> ShopListView private let scanView: () -> ScanView private let settingsView: () -> SettingsView @@ -83,13 +82,11 @@ extension AppTabView: View { .tint(.accent) .onChange(of: sessionController.client) { navigationPathShops = NavigationPath() - navigationPathStats = NavigationPath() } .onChange(of: sessionController.shouldPopToRootView) { if sessionController.shouldPopToRootView { navigationPathShops = NavigationPath() - navigationPathStats = NavigationPath() - sessionController.shouldPopToRootView = false + sessionController.shouldPopToRootView = false } } } From 324ad20a8e4f85e5f39d7fd31f64fcd8325d103d Mon Sep 17 00:00:00 2001 From: dadachi Date: Thu, 26 Mar 2026 08:33:23 +0900 Subject: [PATCH 2/2] Fix data race warning when sending NFCNDEFMessage across isolation boundaries Remove unnecessary sending keyword from NFCManagerProtocol.startWriting and use nonisolated(unsafe) in ItemTagDetailViewModel to safely transfer the NFCNDEFMessage to the nonisolated method. Co-Authored-By: Claude Opus 4.6 (1M context) --- NativeAppTemplate/NFCManager.swift | 2 +- .../Shop Settings/ItemTag Detail/ItemTagDetailViewModel.swift | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/NativeAppTemplate/NFCManager.swift b/NativeAppTemplate/NFCManager.swift index 84ccd0b..a922e5d 100644 --- a/NativeAppTemplate/NFCManager.swift +++ b/NativeAppTemplate/NFCManager.swift @@ -15,7 +15,7 @@ protocol NFCManagerProtocol: Sendable { func startReading() async func startReadingForTesting() async - func startWriting(ndefMessage: sending NFCNDEFMessage, isLock: Bool) async + func startWriting(ndefMessage: NFCNDEFMessage, isLock: Bool) async } final class NFCManager: NSObject, ObservableObject, @unchecked Sendable { diff --git a/NativeAppTemplate/UI/Shop Settings/ItemTag Detail/ItemTagDetailViewModel.swift b/NativeAppTemplate/UI/Shop Settings/ItemTag Detail/ItemTagDetailViewModel.swift index a2a7cff..d58679f 100644 --- a/NativeAppTemplate/UI/Shop Settings/ItemTag Detail/ItemTagDetailViewModel.swift +++ b/NativeAppTemplate/UI/Shop Settings/ItemTag Detail/ItemTagDetailViewModel.swift @@ -83,7 +83,7 @@ final class ItemTagDetailViewModel { return } - let ndefMessage = createNdefMessage(itemTag: itemTag, itemTagType: .server) + nonisolated(unsafe) let ndefMessage = createNdefMessage(itemTag: itemTag, itemTagType: .server) Task { await nfcManager.startWriting(ndefMessage: ndefMessage, isLock: isLocked) @@ -104,7 +104,7 @@ final class ItemTagDetailViewModel { return } - let ndefMessage = createNdefMessage(itemTag: itemTag, itemTagType: .customer) + nonisolated(unsafe) let ndefMessage = createNdefMessage(itemTag: itemTag, itemTagType: .customer) Task { await nfcManager.startWriting(ndefMessage: ndefMessage, isLock: isLocked)