iOS Programming
製作物件池 (Object Pool) 重複利用物件 讓你大大提升開發效能!
建造物件是一件耗時耗力的事。除了需要配置記憶體給它之外,可能還會牽涉到排版、渲染或載入外部資源等耗費大的動作。WKWebView 與 MKMapView 就是這樣的例子,都需要大量的時間去啟動。如果只有一次兩次的話還好,但如果它們經常出現的話,使用者就要常常等它們載入,很影響體驗。 [...]
利用 Xcode 11 的預覽功能 輕鬆測試 App 在 Dark Mode 下的表現
前一陣子,Apple 公開了 iOS 13 第一個測試版本。對一般使用者而言,這個新版本最大的亮點一定是深色模式 (Dark mode)。在設定內滑動開啟此功能後,iOS 就會讓一切變成深色系模式。在深色模式下,電話操作系統會自動為系統內所有的 Apps 和螢幕套用深色主題。一些 [...]
IGListKit 的演化:一起來看 Instagram 如何逐步解決 App 問題!
IGListKit + MVVM 是 Instagram 對於 iOS UICollectionView UI 與數據解耦的解決方案,IGListKit 的設計理念是以數據驅動,來解決不同 Team 之間的需求,包含不同的數據與不一樣的 Layout。 有關於 Code 說明與範例,我建議你搭配原始碼參考閱讀 IGListKitArchetype。 原始 UICollectionView [...]
利用 SwiftUI 建立表單 UI 體驗更互動的開發過程!
在上一篇教學中,我們簡單介紹了 SwiftUI 的基礎知識,並帶你建構了一個簡單的使用者介面。經濟一星期的探索,即使這個框架現階段還是有些 Bug,但我真的很喜歡利用這個框架來建構使用者介面!這個框架為開發者提供了一個新的方式來開發 UI,讓你以更少的程式碼建構出相同的 [...]
簡單而強大的 Drag and Drop API 讓你輕鬆建立屬於自己的 Trello App
當建構一個讓使用者在螢幕上移動數據的 App 時,拖放 (Drag and Drop) 就是一種很自然的使用者交互 (User Interaction)。這樣的互動方式在 Trello、Jira 等相關 App 中廣泛使用,以在版面之間移動數據。 在 iOS 11 發佈之前,以拖放互動方式來建立一個 iOS app 並不是簡單。以我過往的經驗來說,我們會要手動實作許多乏味的步驟,像是: [...]
擷取佈局回饋循環 (Layout Feedback Loop) 解決記憶體耗盡問題
試想像這樣的一個情境:你的 App 非常成功,不但有許多使用者、並有 100% 未當機率 (Crash-free rate)。你非常開心,生活也棒極了。但在某個時間點,你開始在 App Store 上看到負評,說你的 App 經常閃退;但查閱 Fabric 卻沒有新的閃退訊息出現。哪是甚麼情況呢? [...]