項目源碼:Github
簡述
這個項目所有的UI都是使用SwiftUI寫的。
我試着讓這個Demo的結構盡量接近實際項目,同時使用比較簡單方式去實作功能。這樣可以讓剛接觸SwiftUI的人更夠容易了解代碼。
在此之前,我曾經在學習Flutter的時候也做了同樣的練手項目,各位有興趣可以關注: flutter_shuqi
我這幾年嘗試過幾種不同的UI開發架構,包括:CocoaTouch、ReactNative、Flutter、SwiftUI。也寫過React、Vue、小程式和快應用。個人覺得SwiftUI開發起來最順滑,UI的代碼量最少,觀賞性最高。SwiftUI的API的使用難度上略高于Flutter,但是熟練後,開發效率比Flutter高。它高度貫徹了函數式程式設計(functional programming)的理念,是以整個開發體驗還是非常不錯的。
公司的項目準備不再支援iOS12了,是以利用空餘時間學習了SwiftUI,并以書旗App作為練手,做了這個開源項目。
功能 ✨
- 首頁面
- 處理UINavigationControllerDelegate
- 書城頁
- page樣式的tab view
- 自定義卡片
- 自定義毛玻璃效果的控件
- 書架頁
- 自定義NavigationBar(根據ScrollView的offset控制顯示/隐藏)
- 個人頁
- 書籍詳情頁
- 實作正常動畫
- 彈出全屏覆寫頁面
- 閱讀頁
- 菜單的出現/消失動畫
- 其他功能:
- 支援日間/夜間模式
- 延遲加載的view,延遲加載的navigation link
截圖 📸
![]() | | |
---|---|---|
| | |
| | |
| | |
運作 🍭
$ git clone https://github.com/huanxsd/swiftui-shuqi-reader.git
$ cd swiftui-shuqi-reader
$ pod install