iOS
iOS 14 新功能: Vision Contour Detection 讓你建構電腦視覺處理 App
Apple 在 WWDC 2020(線上版)開發者大會中響起了平地一聲雷,釋出了許多讓人驚喜的新功能,(延伸閱讀:Apple’s own silicon chips for Macs),包括 SwiftUI、ARKit、PencilKit、Create ML 還有 Core ML。但是其中,對我來說最突出的是電腦視覺處理 (computer vision)。 Apple 推出了一系列新 [...]
iOS 14 UICollectionView 新功能 讓我們跟 Cell Item Identifier 說再見!
雖然在 WWDC 2020 沒有介紹 SwiftUI 引入 Collection View 的消息,但這無阻 UICollectionView 新增強大的新功能。 iOS 13 時,在 CollectionViews 中引進 CompositionalLayouts 與 DiffableDataSources,為 UICollectionView 的建構 Layout 以及 DataSources 帶來更多的彈性。 到了 iOS 14,CollectionView API [...]
利用 EarlGrey 做 UI Test 強化你的 UI 測試流程
在軟體的開發過程中,我們一定會需要測試我們做出來的東西是不是運作正常。以手機開發為例,我們通常都是咻咻咻地寫好一堆程式之後,把它丟到手機或模擬器上面執行,然後東點一點西點一點,看看是不是一切都運作正常。這樣的流程雖然運作正常,但是卻非常花時間,而且很容易漏掉該測試的項目。如果要簡化這個流程,你就會需要電腦來幫你做自動化測試 [...]
用 Swift 建造自己的輕量級 Dependency Injection 與 Inversion Of Control!
你聽過依賴注入嗎?身為 iOS 的開發者,是否對於依賴注入 (Dependency Injection) 與反轉控制 (Inversion Of Control) 的設計模式感到心動呢?接下來就讓我們手把手,不依賴第三方類別庫,打造屬於自己的輕量級 DI 與 IoC,增加程式碼的可讀性與可測試性,也一併提升可維護性與彈性。這篇文章建議大家搭配源碼閱讀。 [...]
利用 UIViewControllerRepresentable 協定 在 SwiftUI 存取相簿並使用相機
先前我們曾探討 UIViewRepresentable 的用法,並展示了如何整合 UITextView 到 SwiftUI 專案中。雖然我們可以使用 UIViewRepresentable 協定包裝 UIKit 視圖 (View),但是視圖控制器 (View Controller) 呢?你可能需要在 App 中使用相機或存取使用者的相簿。那麼,如何將 UIImagePickerController 類別整合到 [...]
Xcode 12 和 Swift 5.3 新功能詳解 讓你寫出更強大的程式碼!
WWDC 2020 上個月首次在前所未有的條件下完成,全球所有開發者都有機會坐在前排,了解 Apple 今年即將發佈的所有新功能和改進。與往常一樣,Apple 介紹了許多新東西和大進步,相信我們每個人都非常興奮,希望作很多新嘗試。 這篇文章旨在介紹 Xcode 和 Swift [...]
利用 SwiftUI 建立 Expandable List View 並探索 Inset Grouped 樣式!
SwiftUI 列表視圖 (list view) 和 UIKit 的 UITableView 很類似。在 SwiftUI 最初的版本中,Apple 的工程師已經將創建列表視圖的過程變得輕而易舉,我們不需要創建 prototype cell,也不需要委派 (delegate) 或 data source 的協定。我們只需要用幾行程式碼,就可以使用客製化單元格來建構一個列表視圖。在 [...]
SwiftUI 小技巧:簡單在列表視圖移除分隔線 (Line Separator)
SwiftUI 的列表視圖 (List View) 其實和 UIKit 的表格視圖 (Table View) 很類似,它們都是讓開發者把項目一列列地呈現,而預設設定上,每一列資料都會用分隔線 (line separator) 分開。在 UIKit 中,我們可以很簡單地改變分隔線的外觀與顏色;然而,SwiftUI 就沒有一個官方方法來移除分隔線。這麼一來,我們需要使用 [...]
使用 UIViewRepresentable 協定 讓你輕鬆建立 SwiftUI TextView
我非常喜歡使用 SwiftUI 框架,但是,與多數的新框架一樣,SwiftUI 也有一個缺點,就是它未能提供所有 UIKit 有的 UI 控件,比如說,你無法在 SwiftUI 找到與文本視圖 (text view) 相對應的控件。幸好,Apple 有一個 UIViewRepresentable 協定,讓你可以輕鬆打包 (wrap) 一個 [...]
SwiftUI 教學:利用 LazyVGrid 和 LazyHGrid 簡單步驟創建集合視圖
SwiftUI 最初的版本沒有原生集合視圖 (collection view)。你可以自己構建一個解決方案,或是使用第三方程式庫。在今年的 WWDC 中,Apple 為 SwiftUI 框架引入了許多新功能,其中一個就是實作 Grid 視圖。SwiftUI 現在為開發者提供兩個新的 UI 組件: LazyVGrid 和 LazyHGrid,一個用於創建垂直 [...]