From 91a540d53358449958e09b3a44a63000ae261f8f Mon Sep 17 00:00:00 2001 From: hyungi Date: Mon, 15 Jun 2026 15:05:14 +0900 Subject: [PATCH] =?UTF-8?q?feat(ds-shell):=20=EB=A7=A5=C2=B7iOS=20?= =?UTF-8?q?=EC=9B=B9=20=EB=9E=98=ED=8D=BC=20=EC=95=B1=20=E2=80=94=20docume?= =?UTF-8?q?nt.hyungi.net=20WKWebView=20+=20DS=20=EC=95=84=EC=9D=B4?= =?UTF-8?q?=EC=BD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 맥·iOS 2타깃, WKWebView 로 웹 UI 100% 재사용(2026-06-15 결정: 맥/아이폰=웹 래퍼) - 영속 쿠키(로그인 유지), 첨부 응답 다운로드 처리, 업로드는 네이티브 피커 자동 - 맥 창 off-screen 가드(분리 모니터 좌표 저장 시 중앙 복귀) - DS 초록 라운드 아이콘(맥=라운드/iOS=풀블리드, 1024px 생성) Co-Authored-By: Claude Opus 4.8 (1M context) --- clients/ds-shell/.gitignore | 4 + .../AppIcon.appiconset/Contents.json | 74 ++++++++++++++ .../AppIcon.appiconset/ios_1024.png | Bin 0 -> 38963 bytes .../AppIcon.appiconset/mac_1024.png | Bin 0 -> 49727 bytes .../AppIcon.appiconset/mac_128.png | Bin 0 -> 4051 bytes .../AppIcon.appiconset/mac_16.png | Bin 0 -> 569 bytes .../AppIcon.appiconset/mac_256.png | Bin 0 -> 8459 bytes .../AppIcon.appiconset/mac_32.png | Bin 0 -> 1025 bytes .../AppIcon.appiconset/mac_512.png | Bin 0 -> 19641 bytes .../AppIcon.appiconset/mac_64.png | Bin 0 -> 1953 bytes .../Sources/Assets.xcassets/Contents.json | 3 + clients/ds-shell/Sources/DSShellApp.swift | 29 ++++++ clients/ds-shell/Sources/WebView.swift | 96 ++++++++++++++++++ clients/ds-shell/project.yml | 88 ++++++++++++++++ 14 files changed, 294 insertions(+) create mode 100644 clients/ds-shell/.gitignore create mode 100644 clients/ds-shell/Sources/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 clients/ds-shell/Sources/Assets.xcassets/AppIcon.appiconset/ios_1024.png create mode 100644 clients/ds-shell/Sources/Assets.xcassets/AppIcon.appiconset/mac_1024.png create mode 100644 clients/ds-shell/Sources/Assets.xcassets/AppIcon.appiconset/mac_128.png create mode 100644 clients/ds-shell/Sources/Assets.xcassets/AppIcon.appiconset/mac_16.png create mode 100644 clients/ds-shell/Sources/Assets.xcassets/AppIcon.appiconset/mac_256.png create mode 100644 clients/ds-shell/Sources/Assets.xcassets/AppIcon.appiconset/mac_32.png create mode 100644 clients/ds-shell/Sources/Assets.xcassets/AppIcon.appiconset/mac_512.png create mode 100644 clients/ds-shell/Sources/Assets.xcassets/AppIcon.appiconset/mac_64.png create mode 100644 clients/ds-shell/Sources/Assets.xcassets/Contents.json create mode 100644 clients/ds-shell/Sources/DSShellApp.swift create mode 100644 clients/ds-shell/Sources/WebView.swift create mode 100644 clients/ds-shell/project.yml diff --git a/clients/ds-shell/.gitignore b/clients/ds-shell/.gitignore new file mode 100644 index 0000000..8ba2f41 --- /dev/null +++ b/clients/ds-shell/.gitignore @@ -0,0 +1,4 @@ +DSShell.xcodeproj/ +Support/ +.build/ +*.xcuserstate diff --git a/clients/ds-shell/Sources/Assets.xcassets/AppIcon.appiconset/Contents.json b/clients/ds-shell/Sources/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..f168558 --- /dev/null +++ b/clients/ds-shell/Sources/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,74 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + }, + "images" : [ + { + "scale" : "1x", + "filename" : "mac_16.png", + "idiom" : "mac", + "size" : "16x16" + }, + { + "idiom" : "mac", + "size" : "16x16", + "scale" : "2x", + "filename" : "mac_32.png" + }, + { + "filename" : "mac_32.png", + "size" : "32x32", + "scale" : "1x", + "idiom" : "mac" + }, + { + "scale" : "2x", + "idiom" : "mac", + "size" : "32x32", + "filename" : "mac_64.png" + }, + { + "idiom" : "mac", + "size" : "128x128", + "filename" : "mac_128.png", + "scale" : "1x" + }, + { + "size" : "128x128", + "idiom" : "mac", + "scale" : "2x", + "filename" : "mac_256.png" + }, + { + "filename" : "mac_256.png", + "scale" : "1x", + "idiom" : "mac", + "size" : "256x256" + }, + { + "filename" : "mac_512.png", + "scale" : "2x", + "size" : "256x256", + "idiom" : "mac" + }, + { + "filename" : "mac_512.png", + "size" : "512x512", + "idiom" : "mac", + "scale" : "1x" + }, + { + "filename" : "mac_1024.png", + "size" : "512x512", + "scale" : "2x", + "idiom" : "mac" + }, + { + "idiom" : "universal", + "filename" : "ios_1024.png", + "size" : "1024x1024", + "platform" : "ios" + } + ] +} \ No newline at end of file diff --git a/clients/ds-shell/Sources/Assets.xcassets/AppIcon.appiconset/ios_1024.png b/clients/ds-shell/Sources/Assets.xcassets/AppIcon.appiconset/ios_1024.png new file mode 100644 index 0000000000000000000000000000000000000000..9a824bce2f9ad556a7363e99c400dbf27373cf0b GIT binary patch literal 38963 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 ICuTwa1)XGhS^xk5 literal 0 HcmV?d00001 diff --git a/clients/ds-shell/Sources/Assets.xcassets/AppIcon.appiconset/mac_32.png b/clients/ds-shell/Sources/Assets.xcassets/AppIcon.appiconset/mac_32.png new file mode 100644 index 0000000000000000000000000000000000000000..cb046bebd30bd1165b9ce3ca23780a05df71db89 GIT binary patch literal 1025 zcmV+c1pfPpP)Px#IAvH#W=%~1DgXcg2mk?xX#fNO00031000^Q000000-yo_1ONa40RR91AfN*P z1ONa40RR91AOHXW0FO>U$p8QYcS%G+R9FecS6N6@Q5gR2j0>g>DlTbSW}`-CQkX50 z&<2U7^iugyAXyPD5)nyY_)uc?5~Q>c^kDd45M_%6_K+2oS)!GJ(_${To09u-Z|6Vb z9qx>Jow=qSIG*MH|Mz|8{O2Ff0p_^~lkq3yr1`q&+!7>6VGwj4liAokCyBiR1k{CUj&(2X3y&iI2F5lloi$KkYP{!y6SZ}_)ZMtnLc4X(~ER<=8%H{*QKH4KgnSv!vjOGDPoP1Z$e*n2b9*AAKpf7^Ka~r zPsZ-p?a&E2#4+&7x*9C=Tg**KWZ~<_pf)uwk@6k=Ljy{f34ObFfILM>L_t}xCH}^M zr7RpG8arD!u&==zHx6YZ|6mpjZtf^IRpXthY67Wp!XW|VNFw?M&8zZoHUGoB`m_L@ zf4eQXBxGCEMqEhE!1}Og%lu>=yF(y5FY@$(mxqB5>)M-mOEFKsk%h=$BUT0(u_0_V zLRkh;n6^a5;=Rf)*e!qngM9*!60=p-!VjCL`$Ak#&xVs;kMi%;$a_|ZFAcTGNj=5w zD0S6}-2x78-(!W-z^1U zuB{0rm9LO}FQ1c>!NvPGVPY9VMP4zbEFIX=&u{tsRDV==;K`?#pgLV?>T1QAyI0`u z>IN@&1J8_>?hbbEQr~{URTVHDvF-Ohmh)5{DXJlG1W2o`Spd5_YX#8kH_pig(7jzV zkVZ$DlMA3n16>p~Vma(aT*OI^Tmaop*<_}}NE#i8OMWE@3XFMqn3xZtS%pL|7Eu&W v&PF&0ldzSqBBE99fMql0@^NY*ov+S6qSIX2N-@wE00000NkvXXu0mjfVYbBF literal 0 HcmV?d00001 diff --git a/clients/ds-shell/Sources/Assets.xcassets/AppIcon.appiconset/mac_512.png b/clients/ds-shell/Sources/Assets.xcassets/AppIcon.appiconset/mac_512.png new file mode 100644 index 0000000000000000000000000000000000000000..aaed03e36a1939a5d2b778ca6d6084d1fde9061c GIT binary patch literal 19641 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 Coordinator { Coordinator() } + + @MainActor + fileprivate func makeWebView(coordinator: Coordinator) -> WKWebView { + let cfg = WKWebViewConfiguration() + cfg.websiteDataStore = .default() // 영속 쿠키 → 로그인 유지(브라우저처럼) + let wv = WKWebView(frame: .zero, configuration: cfg) + wv.navigationDelegate = coordinator + wv.allowsBackForwardNavigationGestures = true + wv.load(URLRequest(url: url)) + return wv + } + + final class Coordinator: NSObject, WKNavigationDelegate, WKDownloadDelegate { + // 첨부 응답이면 다운로드, 아니면 일반 표시(PDF 등 인라인). + func webView(_ webView: WKWebView, + decidePolicyFor navigationResponse: WKNavigationResponse, + decisionHandler: @escaping (WKNavigationResponsePolicy) -> Void) { + if let http = navigationResponse.response as? HTTPURLResponse, + let cd = http.value(forHTTPHeaderField: "Content-Disposition"), + cd.lowercased().contains("attachment") { + decisionHandler(.download) + } else { + decisionHandler(.allow) + } + } + + func webView(_ webView: WKWebView, navigationResponse: WKNavigationResponse, didBecome download: WKDownload) { + download.delegate = self + } + func webView(_ webView: WKWebView, navigationAction: WKNavigationAction, didBecome download: WKDownload) { + download.delegate = self + } + + func download(_ download: WKDownload, + decideDestinationUsing response: URLResponse, + suggestedFilename: String) async -> URL? { + #if os(macOS) + let folder = FileManager.default.urls(for: .downloadsDirectory, in: .userDomainMask).first + #else + let folder = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first + #endif + let dir = folder ?? FileManager.default.temporaryDirectory + var dest = dir.appendingPathComponent(suggestedFilename.isEmpty ? "download" : suggestedFilename) + // 충돌 회피 (name_1.ext …) + let base = dest.deletingPathExtension().lastPathComponent + let ext = dest.pathExtension + var n = 1 + while FileManager.default.fileExists(atPath: dest.path) { + let name = ext.isEmpty ? "\(base)_\(n)" : "\(base)_\(n).\(ext)" + dest = dir.appendingPathComponent(name); n += 1 + } + return dest + } + } +} + +#if os(macOS) +extension WebView: NSViewRepresentable { + func makeNSView(context: Context) -> WKWebView { makeWebView(coordinator: context.coordinator) } + func updateNSView(_ nsView: WKWebView, context: Context) {} +} + +/// 창이 어느 화면과도 안 겹치면(분리된 외부모니터 좌표 저장 등) 메인 화면 중앙으로 복귀 — "창 안 뜸" 방지. +struct WindowOnScreenGuard: NSViewRepresentable { + func makeNSView(context: Context) -> NSView { OnScreenView() } + func updateNSView(_ nsView: NSView, context: Context) {} + final class OnScreenView: NSView { + override func viewDidMoveToWindow() { + super.viewDidMoveToWindow() + guard let win = window else { return } + if !NSScreen.screens.contains(where: { $0.visibleFrame.intersects(win.frame) }) { win.center() } + } + } +} +#else +extension WebView: UIViewRepresentable { + func makeUIView(context: Context) -> WKWebView { makeWebView(coordinator: context.coordinator) } + func updateUIView(_ uiView: WKWebView, context: Context) {} +} +#endif diff --git a/clients/ds-shell/project.yml b/clients/ds-shell/project.yml new file mode 100644 index 0000000..3f17bda --- /dev/null +++ b/clients/ds-shell/project.yml @@ -0,0 +1,88 @@ +# DS 웹 래퍼 — document.hyungi.net 을 WKWebView 로 감싼 네이티브 앱(맥 + iOS). +# 웹 UI 100% 재사용·항상 최신·코드 1벌(2026-06-15 결정). 순수 네이티브는 워치(clients/ds-watch)만. +# project.yml = source of truth, *.xcodeproj/Support = 생성물(gitignore). +name: DSShell +options: + bundleIdPrefix: net.hyungi + deploymentTarget: + macOS: "14.0" + iOS: "17.0" + createIntermediateGroups: true + minimumXcodeGenVersion: "2.40.0" + +settings: + base: + SWIFT_VERSION: "6.0" + CODE_SIGN_STYLE: Automatic + CODE_SIGNING_ALLOWED: "NO" + CODE_SIGNING_REQUIRED: "NO" + GENERATE_INFOPLIST_FILE: "NO" + +targets: + DSShellMac: + type: application + platform: macOS + deploymentTarget: "14.0" + sources: + - path: Sources + settings: + base: + PRODUCT_BUNDLE_IDENTIFIER: net.hyungi.dsshell + PRODUCT_NAME: DS + MARKETING_VERSION: "0.1" + CURRENT_PROJECT_VERSION: "1" + ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon + info: + path: Support/Mac-Info.plist + properties: + CFBundleName: DS + CFBundleDisplayName: DS + CFBundleShortVersionString: "0.1" + CFBundleVersion: "1" + CFBundlePackageType: APPL + LSMinimumSystemVersion: "14.0" + LSApplicationCategoryType: public.app-category.productivity + entitlements: + path: Support/Mac.entitlements + properties: + com.apple.security.app-sandbox: true + com.apple.security.network.client: true + com.apple.security.files.downloads.read-write: true # 원본 다운로드 저장 + com.apple.security.files.user-selected.read-write: true # 업로드 파일 선택 + + DSShelliOS: + type: application + platform: iOS + deploymentTarget: "17.0" + sources: + - path: Sources + settings: + base: + PRODUCT_BUNDLE_IDENTIFIER: net.hyungi.dsshell + PRODUCT_NAME: DS + MARKETING_VERSION: "0.1" + CURRENT_PROJECT_VERSION: "1" + TARGETED_DEVICE_FAMILY: "1,2" + ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon + info: + path: Support/iOS-Info.plist + properties: + CFBundleName: DS + CFBundleDisplayName: DS + CFBundleShortVersionString: "0.1" + CFBundleVersion: "1" + UILaunchScreen: {} + UISupportedInterfaceOrientations: + - UIInterfaceOrientationPortrait + - UIInterfaceOrientationLandscapeLeft + - UIInterfaceOrientationLandscapeRight + +schemes: + DSShellMac: + build: + targets: { DSShellMac: all } + run: { config: Debug } + DSShelliOS: + build: + targets: { DSShelliOS: all } + run: { config: Debug }