如何建立 iOS Share Extension

在網路上已經有很多關於 iOS Share Extension 的教學,例如這裡就有一篇。有需要的人可以自行在網路上搜尋,這邊就不多作著墨。我這次想要分享的主要是在開發 share extension 的過程遇到一些要注意的事項,以及踩到的一些坑。

我的開發環境是 macOS Sonoma + Xcode 15,使用 Swift 開發。

要建立一個 share extension 很簡單,就是在你的專案新增一個 target 然後選擇 Share Extension 即可。Xcode 會自動幫忙產生必要的檔案,以及做好基本設定。

繼續閱讀 ➜

Repository Design Pattern

為何需要 Repository Design Pattern

在最近參與的專案當中,我們開始導入了 Repository Design Pattern,一句話總結它的用途就是「負責處理資料的新增、讀取、更新、刪除 (CRUD) 的角色」,建立這樣一個角色來負責處理資料能帶來什麼好處呢?

繼續閱讀 ➜

電子書閱讀器推薦字體

我是個很喜歡看電子書的人,我使用的是 Kobo 電子書閱讀器 搭配 KOReader,電子書閱讀器提供了許多便利之處。首先,它們輕巧易攜帶,讓我可以隨身攜帶我的閱讀清單,輕鬆切換不同的書籍。我通常會交替閱讀兩三本書,這讓我的閱讀體驗更加豐富,閱讀過程也更加放鬆。此外,我也很喜歡閱讀器可以自訂文字排版的功能。

對我來說,自訂文字排版是非常重要的,因為它可以大幅提升閱讀的舒適度。特別是字體的選擇,對閱讀體驗至關重要。以下是我必裝的幾款字體:

繼續閱讀 ➜

如何使用 PHPickerViewController 取得 PHAsset

PHPickerViewController 是系統內建的一個照片選取工具,透過 PHPickerConfiguration 設定它,然後從它的 delegate function func picker(_ picker: PHPickerViewController, didFinishPicking results: [PHPickerResult]) 取得用戶選取的結果。看起來非常簡單直覺,直到我踩了坑...

繼續閱讀 ➜

Bitwarden 密碼管理工具

現代人離不開網路,所以我們會擁有許多不同的帳號和密碼。如果使用相同的密碼,一旦其中一個帳號被盜用,所有帳號都可能受到威脅;如果使用不同的密碼,又不可能全部都記住,尤其是每個網站對密碼的強度要求都不一樣。如果你想要一個方便又安全的解決方案,那麼我會推薦 Bitwarden

繼續閱讀 ➜