Joe's Blog
iOS 開發筆記
Home
All posts
Categories
Tags
個人收藏
Posts
Swift 能不能跑後量子隧道?把 PQConnect 搬上 iOS 的可行性實驗
發佈於 2026-07-12
@
Development
#
AI寫作
#
Swift
#
Networking
#
Demo
用純 Swift + 原生 crypto 庫實作 PQConnect 後量子隧道,從 DNS discovery、0-RTT handshake 一路做到 URLSession、WKWebView 實際走隧道取回資料——對真實伺服器驗證,不是紙上談兵。
爬不到就讓 WebKit 幫你渲染:WebParser 的離屏解析設計
發佈於 2026-07-11
@
Development
#
AI寫作
#
Swift
#
Networking
#
Demo
URLSession 抓回來的 SPA 網頁只有一個空的 div?WebParser 用離屏 WKWebView 把頁面真的渲染出來、輪詢 JavaScript 直到 DOM 就緒——這篇拆解它在 Swift 6 Strict Concurrency 下的幾個關鍵橋接設計。
用 Swift 寫一台 FHIR server:司命(Siming)與 generator 護城河
發佈於 2026-07-08
@
Development
#
AI寫作
#
Swift
#
Architecture
#
Demo
Server-side Swift 不只能寫玩具——Hummingbird 2 + PostgresNIO 手寫 SQL,做出一台 TW Core IG 合規、benchmark 贏過 HAPI 兩倍的 FHIR R4 server,而整個設計最值錢的部分是「search 不是手寫的」。
同一片 Skip 牆,MVVMR 撞得比 MVVMC 輕
發佈於 2026-07-01
@
Development
#
AI寫作
#
MVVMC
#
SwiftUI
#
Architecture
#
Skip
#
Demo
把純 SwiftUI 版的 MVVMC(MVVMR)也丟上 Skip,發現踩到的坑跟 MVVMC-Skip 幾乎一模一樣,但少了 UIKit 那層,整體成本更低,而所有差異剛好收斂在一條「`@State` 還是 `let`」的邊界上。
如果用 Pure SwiftUI 來實作 MVVMC
發佈於 2026-06-28
@
Development
#
AI寫作
#
Architecture
#
SwiftUI
#
MVVMC
#
MVVMR
MVVMC 把導航還給了 UIKit。但 SwiftUI 導航成熟之後,一個問題變得值得問——同一套架構,改用 Pure SwiftUI 實作會長什麼樣?
把 MVVMC 帶到 Android(三):走完之後,這條路值不值得?
發佈於 2026-06-26
@
Development
#
AI寫作
#
Skip
#
MVVMC
#
Architecture
#
SwiftUI
兩篇技術文跑完整段旅程後,拉高視角回頭看——架構承諾兌現了幾分、累積了哪些技術債、適合誰不適合誰。
把 MVVMC 帶到 Android(二):三道關卡 + Router 接線
發佈於 2026-06-26
@
Development
#
AI寫作
#
Skip
#
MVVMC
#
Architecture
#
SwiftUI
Skip plugin 真的綁上 target 之後,MVVMC 撞上三道形狀完全不同的關卡——轉譯 / Kotlin 編譯 / 執行期重繪——以及 Android 端 Router 的雙實作模式。
把 MVVMC 帶到 Android(一):MVVMC 架構零破壞的前提下,先把專案搬進 Skip
發佈於 2026-06-26
@
Development
#
AI寫作
#
Skip
#
MVVMC
#
Architecture
#
SwiftUI
一個既有 MVVMC 的 iOS 專案,要怎麼透過 Skip.tools 帶到 Android?這篇是序章——專案改造,VM / View / Model 一行未動。
WWDC26 What's New in SwiftUI
發佈於 2026-06-24
@
WWDC26
#
AI寫作
#
SwiftUI
SwiftUI 這次更新很雜但都很實用——Liquid Glass 自動套用、reorderable / swipeActions 通用化、AsyncImage 終於有 cache,以及一個會讓現有 App 編譯錯誤的 @State 變更。
WWDC26 What's New in Xcode
發佈於 2026-06-24
@
WWDC26
#
AI寫作
#
Xcode
Xcode 27 的主軸很清楚——Agent 全面進駐、工作流更順手、工具更整合。這篇是 session 重點整理。
WWDC26 What's New in Swift
發佈於 2026-06-15
@
WWDC26
#
AI寫作
#
Swift
Swift 6.4 沒有大破壞,但語言層面塞了不少好東西——從 anyAppleOS 到 async defer,從 Module Selector 到 @diagnose,這篇整理最值得關注的部分。
Swift 網路層生存指南 (Final) —— JPNetworking
發佈於 2026-06-14
@
Development
#
AI寫作
#
Networking
#
BadBackend
#
Swift
從 BadBackendDemo 的救災概念,演化成可重用的輕量網路層套件,一個 EndPoint 搞定 request、token 刷新、髒資料解析。
SwiftUI TextField 限制輸入小數
發佈於 2026-06-13
@
Development
#
AI寫作
#
TextField
#
SwiftUI
用 onChange 取代 UITextField delegate,SwiftUI 的思路完全不同。
WWDC26 Platforms State of the Union
發佈於 2026-06-09
@
WWDC26
#
AI寫作
跳過發表會的行銷話術,直接看 Platforms State of the Union 裡對開發者最重要的事。
為什麼我在 SwiftUI 專案裡自創了一套 MVVMC 架構
發佈於 2026-04-24
2026-06-14 更新
@
Development
#
AI寫作
#
TCA
#
Architecture
#
MVVMC
TCA 很好, 但是我不用.
Swift 網路層生存指南 (3) —— API 亂象下的終極防線
發佈於 2026-02-06
2026-06-14 更新
@
Development
#
AI寫作
#
Networking
#
BadBackend
成功是 DTO,失敗是 message?當後端腦袋抽風多一層時,你需要的不是 try? 而是這套導航架構。
Swift 網路層生存指南 (2)
發佈於 2026-01-10
2026-06-14 更新
@
Development
#
AI寫作
#
Networking
#
BadBackend
萬能外殼解析:利用 BaseResponseProtocol 與動態路徑導航,統一所有 API 回應格式。
Swift 網路層生存指南 (1)
發佈於 2026-01-01
2026-06-14 更新
@
Development
#
AI寫作
#
Networking
#
BadBackend
建立型別防禦體系:利用 SafeBox 與 ShieldedResponse 打造解析不崩潰的強韌網路層。
常去的網站
發佈於 2025-10-01
2026-06-14 更新
@
Personal
收集常用的網站列表.
FHIR OAuth Demo
發佈於 2025-03-18
2026-06-14 更新
@
Development
#
AI寫作
#
FHIR
#
Demo
用 ASWebAuthenticationSession 實作 SMART on FHIR OAuth 登入,並用 Apple FHIRModels 解析病患資料。
用 MQTT 設計 IM 架構
發佈於 2025-03-06
2026-06-14 更新
@
Development
#
AI寫作
#
MQTT
#
Architecture
兩個 Topic、自訂 Payload、REST 補完,MQTT 做即時通訊的設計思路。
MQTT 實作聊天 Demo
發佈於 2025-03-04
2026-06-13 更新
@
Development
#
AI寫作
#
MQTT
#
SwiftUI
#
MVVMC
#
Demo
用 MQTTNIO + Swift Concurrency 實作即時聊天,MQTTManager 用 actor 封裝,訊息透過 NotificationCenter 橋接到 ViewModel。
播放本地端 m3u8
發佈於 2022-07-13
2026-05-05 更新
@
Development
#
AI寫作
#
AVPlayer
#
Demo
實作本地端 m3u8 播放 Demo.
UITextField 限制輸入小數
發佈於 2020-12-25
2026-06-13 更新
@
Development
#
AI寫作
#
UIKit
#
UITextField
用 shouldChangeCharactersIn 處理六種邊界情況,讓輸入框只接受合法的小數。
UILabel 計算行數、每行字串、每行大小
發佈於 2020-07-01
2026-06-13 更新
@
Development
#
AI寫作
#
UIKit
#
UILabel
#
CoreText
#
TextKit
UILabel 沒有提供這些 API,但用 CoreText 和 TextKit 可以自己算出來。
變更 Git commit 註解符號
發佈於 2020-03-06
2026-06-13 更新
@
Development
#
AI寫作
#
git
當 commit message 需要用
硬體推播至 iPhone
發佈於 2020-03-04
2026-06-13 更新
@
Development
#
AI寫作
#
APNS
#
ANCS
#
BLE
關鍵字 ANCS,以及 iOS 26.3 之後的新做法。
NSObject 鏈式 Setter
發佈於 2020-03-01
2026-06-13 更新
@
Development
#
AI寫作
#
KeyPath
透過 KeyPath 實作 NSObject 鏈式 Setter.
macOS 常用軟體
發佈於 2015-01-01
2026-06-13 更新
@
Personal
我常用的 macOS 軟體, 不定期更新.