一年以前当我准备学习开发 iOS 应用的时候选择了 SwiftUI. SwiftUI 是 Apple 新推出的一套开发规范。基于 MVVM 的理念,相比于 UIKit,UI 之间的交互完全基于数据驱动。选择 SwiftUI 而不是其他跨平台的开发框架,比如 Flutter 和 React Native 等,主要是为了追求用户体验。一转眼之间,我已经上架了两个应用到 App Store 了。
分别是一个用来积累单词的应用 「英语汪」 和一个密码管理软件 「Any Secret」。当然我也只是花了部分时间在 iOS 应用开发上。其中,第二个软件「英语汪」只用了一周的时间就开发完成。这首先得益于 SwiftUI 高效的开发效率,其次得利于我的开源项目 AwesomeSwift.
介绍
是什么?
AwesomeSwift 是一个开源的 SwiftUI 样板工程。该项目是我在阅读了多个开源项目源码之后沉淀而成,用来演示 SwiftUI 的控件和各种功能组件的使用,同时包含了实际开发过程中可能使用到的各种必备的组件,比如 Lottie、RSwift、崩溃统计等等,适合想要学习 Swift 开发的的新手同学。
为什么做这个工程?
我学过很多开发语言或框架,除了手机客户端还包括 Web 和 C# 桌面客户端。在学习的过程中我渐渐发现,在整个大前端领域,对技术掌握程度取决于对 API 和常用组件的掌握程度。我也想过写一些 SwiftUI 的教程,但看教程学习控件的使用比直接看源码效率低太多。于是,我把常用的组件整合到了一起,搭建了这个工程。用来帮助初学者快速掌握 SwiftUI.
项目的结构
我们可以很容易得从大前端领域内的不同平台开发的技术栈之间找到共性。通过类比,我们可以借助一个平台的开发经验快速掌握另一个平台的开发。
首先是构建工具,比如前端的 npm, vite, webpack 等;Android 的 Gradle 等。构建工具负责处理依赖、打包等流程,是一个项目基建的基础。在对比了 SPM、CocoaPods 和 Carthage 之后,我选择 CocoaPods. 不仅是因为 SPM 源码依赖和对 OC 的问题,也是因为很多大厂 iOS 开发就是使用 CocoaPods. 这有助于开发者的进一步发展。
确定了构建工具之后就是常用的组件。SwiftUI 本身提供了一些组件,但这显然是不够用的。比如,SwiftUI 中虽然提供了图片展示控件,但是没有针对网络图片的展示控件。所以,为了能够系统、全面地掌握 SwiftUI,我根据其他平台的开发经验对软件的开发进行拆解,分析需要哪些组件,然后去找到这些组件并将它们以示例的形式添加到了 AwesomeSwift 中。目前包含的组件(部分)如下所示,
你也可以通过阅读项目的 README 来了解更多:README.
这基本能够满足我们日常的开发需求!
最后
如果你是一个有志于开发自己的 iOS 应用的 SwiftUI 初学者,那么你可以试试这个项目。如果你觉得这个项目对你有帮助,别忘记给我们一个 🌟,让该项目帮助到更多的初学者~