项目源码: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作为练手,做了这个开源项目。
环境
- 设备类型:iPhone / iPad
- 系统版本:iOS 14.0
- Swift版本:Swift 5
功能 ✨
- 原生功能:
- 设备方向:支持横/竖屏
- 夜间模式:支持
- 主页面
- 处理UINavigationControllerDelegate
- 书城页
- page样式的tab view
- 自定义卡片
- 自定义毛玻璃效果的控件
- 书架页
- 自定义NavigationBar(根据ScrollView的offset控制显示/隐藏)
- 个人页
- 书籍详情页
- 实现常规动画
- 弹出全屏覆盖页面
- 阅读页
- 菜单的出现/消失动画
截图 📸
竖屏
横屏
运行 🍭
$ git clone https://github.com/huanxsd/swiftui-shuqi-reader.git
$ cd swiftui-shuqi-reader
$ pod install