From 95757b6d3a42f83cf84b47d623b4f9cde5241dc1 Mon Sep 17 00:00:00 2001 From: Kim yonghae Date: Mon, 1 Jun 2026 23:02:47 +0900 Subject: [PATCH 1/2] =?UTF-8?q?refactor(data):=20=EB=94=94=EB=B2=84?= =?UTF-8?q?=EA=B7=B8=20=EB=AA=A8=EB=93=9C=20=EB=84=A4=ED=8A=B8=EC=9B=8C?= =?UTF-8?q?=ED=81=AC=20=EC=8B=A4=ED=8C=A8,=20unknownError=20=ED=85=8C?= =?UTF-8?q?=EC=8A=A4=ED=8A=B8=20=EC=A3=BC=EC=84=9D=20=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MLXSupport/MLXModelProvider.swift | 32 +++++++++---------- .../OnDevice/Whisper/WhisperKitProvider.swift | 32 +++++++++---------- 2 files changed, 32 insertions(+), 32 deletions(-) diff --git a/Data/Sources/Infrastructure/OnDevice/MLXSupport/MLXModelProvider.swift b/Data/Sources/Infrastructure/OnDevice/MLXSupport/MLXModelProvider.swift index 26aa89f1..b61d7b01 100644 --- a/Data/Sources/Infrastructure/OnDevice/MLXSupport/MLXModelProvider.swift +++ b/Data/Sources/Infrastructure/OnDevice/MLXSupport/MLXModelProvider.swift @@ -22,22 +22,22 @@ public actor MLXModelProvider: MLXModelDataSource { public func download( progressHandler: @Sendable @escaping (Progress) -> Void ) async throws(MLXModelDataSourceError) { - #if DEBUG - // ⚠️ 디버깅용 시뮬레이션: 에러 상황별 핸들링을 안전하게 테스트하기 위한 디버그 스위치입니다. - try? await Task.sleep(nanoseconds: 2 * 1_000_000_000) - - // [옵션 1] 네트워크 오류 시뮬레이션 (networkFailed) - // -> 활성화 시 "네트워크 연결이 유실되었습니다" 문구가 노출됩니다. - // throw URLError(.notConnectedToInternet) - - // [옵션 2] 알 수 없는 시스템 오류 시뮬레이션 (unknown) - // -> 활성화 시 "다운로드에 실패했습니다" 문구와 상세 에러 문구가 노출됩니다. - throw .unknown(NSError( - domain: "SimulatedErrorDomain", - code: 999, - userInfo: [NSLocalizedDescriptionKey: "알 수 없는 기기 내부 디스크 쓰기 오류가 발생했습니다. (Simulated)"] - )) - #endif +// #if DEBUG +// // ⚠️ 디버깅용 시뮬레이션: 에러 상황별 핸들링을 안전하게 테스트하기 위한 디버그 스위치입니다. +// try? await Task.sleep(nanoseconds: 2 * 1_000_000_000) +// +// // [옵션 1] 네트워크 오류 시뮬레이션 (networkFailed) +// // -> 활성화 시 "네트워크 연결이 유실되었습니다" 문구가 노출됩니다. +// // throw URLError(.notConnectedToInternet) +// +// // [옵션 2] 알 수 없는 시스템 오류 시뮬레이션 (unknown) +// // -> 활성화 시 "다운로드에 실패했습니다" 문구와 상세 에러 문구가 노출됩니다. +// throw .unknown(NSError( +// domain: "SimulatedErrorDomain", +// code: 999, +// userInfo: [NSLocalizedDescriptionKey: "알 수 없는 기기 내부 디스크 쓰기 오류가 발생했습니다. (Simulated)"] +// )) +// #endif do { let model: ChaGokModel = ChaGokModelSupport.current.model let configuration = try matchModelConfiguration(model: model) diff --git a/Data/Sources/Infrastructure/OnDevice/Whisper/WhisperKitProvider.swift b/Data/Sources/Infrastructure/OnDevice/Whisper/WhisperKitProvider.swift index ff812c38..0cff43a3 100644 --- a/Data/Sources/Infrastructure/OnDevice/Whisper/WhisperKitProvider.swift +++ b/Data/Sources/Infrastructure/OnDevice/Whisper/WhisperKitProvider.swift @@ -33,22 +33,22 @@ public actor WhisperKitProvider: WhisperDataSource { AppLogger.info("WhisperKit 추천 모델 : \(recommendedModel)") AppLogger.info("WhisperKit 모델 다운로드 시작") - #if DEBUG - // ⚠️ 디버깅용 시뮬레이션: 에러 상황별 핸들링을 안전하게 테스트하기 위한 디버그 스위치입니다. - try await Task.sleep(nanoseconds: 2 * 1_000_000_000) - - // [옵션 1] 네트워크 오류 시뮬레이션 (networkFailed) - // -> 활성화 시 "네트워크 연결이 유실되었습니다" 문구가 노출됩니다. - // throw URLError(.notConnectedToInternet) - - // [옵션 2] 알 수 없는 시스템 오류 시뮬레이션 (unknown) - // -> 활성화 시 "다운로드에 실패했습니다" 문구와 상세 에러 문구가 노출됩니다. - throw NSError( - domain: "SimulatedErrorDomain", - code: 999, - userInfo: [NSLocalizedDescriptionKey: "알 수 없는 기기 내부 디스크 쓰기 오류가 발생했습니다. (Simulated)"] - ) - #endif +// #if DEBUG +// // ⚠️ 디버깅용 시뮬레이션: 에러 상황별 핸들링을 안전하게 테스트하기 위한 디버그 스위치입니다. +// try await Task.sleep(nanoseconds: 2 * 1_000_000_000) +// +// // [옵션 1] 네트워크 오류 시뮬레이션 (networkFailed) +// // -> 활성화 시 "네트워크 연결이 유실되었습니다" 문구가 노출됩니다. +// // throw URLError(.notConnectedToInternet) +// +// // [옵션 2] 알 수 없는 시스템 오류 시뮬레이션 (unknown) +// // -> 활성화 시 "다운로드에 실패했습니다" 문구와 상세 에러 문구가 노출됩니다. +// throw NSError( +// domain: "SimulatedErrorDomain", +// code: 999, +// userInfo: [NSLocalizedDescriptionKey: "알 수 없는 기기 내부 디스크 쓰기 오류가 발생했습니다. (Simulated)"] +// ) +// #endif let path = try await WhisperKit.download( variant: recommendedModel, From b865a72e9848dc5b2f5039308f4a49b26f50e884 Mon Sep 17 00:00:00 2001 From: Kim yonghae Date: Mon, 1 Jun 2026 23:03:56 +0900 Subject: [PATCH 2/2] =?UTF-8?q?feat(app):=20icon=20Composer=EB=A5=BC=20?= =?UTF-8?q?=ED=86=B5=ED=95=B4=20=EC=95=B1=EB=A1=9C=EA=B3=A0=20=EC=84=A4?= =?UTF-8?q?=EC=A0=95=20-=20tuist:=20app=20icon=20Nmae=20=EC=84=A4=EC=A0=95?= =?UTF-8?q?=20-=20=EC=A0=84=EC=B2=B4=20=EB=A3=A8=ED=8A=B8=EC=97=90=20?= =?UTF-8?q?=EB=84=A3=EC=9C=BC=EB=A9=B4=20tuist=20generate=EC=99=80=20?= =?UTF-8?q?=ED=95=A8=EA=BB=98=20=EB=A1=9C=EA=B3=A0=EA=B0=80=20=EC=82=AC?= =?UTF-8?q?=EB=9D=BC=EC=A7=80=EB=AF=80=EB=A1=9C=20ReSource=20=EB=82=B4?= =?UTF-8?q?=EB=B6=80=EC=97=90=20=EC=A0=80=EC=9E=A5=ED=95=A9=EB=8B=88?= =?UTF-8?q?=EB=8B=A4.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- App/Project.swift | 1 + .../ChaGok.icon/Assets/app icon clear.svg | 95 +++++++++++++++++++ App/Resources/ChaGok.icon/icon.json | 42 ++++++++ 3 files changed, 138 insertions(+) create mode 100644 App/Resources/ChaGok.icon/Assets/app icon clear.svg create mode 100644 App/Resources/ChaGok.icon/icon.json diff --git a/App/Project.swift b/App/Project.swift index 1265c549..5bbfc828 100644 --- a/App/Project.swift +++ b/App/Project.swift @@ -63,6 +63,7 @@ private let appTarget = Target.target( .project(target: "Data", path: "../Data") ], settings: .settings( + base: ["ASSETCATALOG_COMPILER_APPICON_NAME": "ChaGok"], configurations: [ .debug(name: "Debug", settings: [ "CODE_SIGN_IDENTITY": "Apple Development", diff --git a/App/Resources/ChaGok.icon/Assets/app icon clear.svg b/App/Resources/ChaGok.icon/Assets/app icon clear.svg new file mode 100644 index 00000000..ffe20d1f --- /dev/null +++ b/App/Resources/ChaGok.icon/Assets/app icon clear.svg @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/App/Resources/ChaGok.icon/icon.json b/App/Resources/ChaGok.icon/icon.json new file mode 100644 index 00000000..c839ff69 --- /dev/null +++ b/App/Resources/ChaGok.icon/icon.json @@ -0,0 +1,42 @@ +{ + "fill" : { + "linear-gradient" : [ + "display-p3:0.09571,0.08425,0.17449,1.00000", + "display-p3:0.15367,0.10316,0.53703,1.00000" + ], + "orientation" : { + "start" : { + "x" : 0.5, + "y" : 0 + }, + "stop" : { + "x" : 0.5, + "y" : 0.7 + } + } + }, + "groups" : [ + { + "layers" : [ + { + "image-name" : "app icon clear.svg", + "name" : "app icon clear" + } + ], + "shadow" : { + "kind" : "neutral", + "opacity" : 0.5 + }, + "translucency" : { + "enabled" : true, + "value" : 0.5 + } + } + ], + "supported-platforms" : { + "circles" : [ + "watchOS" + ], + "squares" : "shared" + } +} \ No newline at end of file