这个项目助你快速又轻松掌握 SwiftUI 开发

一年以前当我准备学习开发 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 初学者,那么你可以试试这个项目。如果你觉得这个项目对你有帮助,别忘记给我们一个 🌟,让该项目帮助到更多的初学者~

地址:github.com/Shouheng88/...

相关推荐
幸福回头16 小时前
ms-swift 代码推理数据集
llm·swift
若水无华1 天前
fiddler 配置ios手机代理调试
ios·智能手机·fiddler
不二狗1 天前
每日算法 -【Swift 算法】Two Sum 问题:从暴力解法到最优解法的演进
开发语言·算法·swift
Aress"1 天前
【ios越狱包安装失败?uniapp导出ipa文件如何安装到苹果手机】苹果IOS直接安装IPA文件
ios·uni-app·ipa安装
Jouzzy2 天前
【iOS安全】Dopamine越狱 iPhone X iOS 16.6 (20G75) | 解决Jailbreak failed with error
安全·ios·iphone
瓜子三百克2 天前
采用sherpa-onnx 实现 ios语音唤起的调研
macos·ios·cocoa
左钦杨2 天前
IOS CSS3 right transformX 动画卡顿 回弹
前端·ios·css3
努力成为包租婆2 天前
SDK does not contain ‘libarclite‘ at the path
ios
安和昂2 天前
【iOS】Tagged Pointer
macos·ios·cocoa
I烟雨云渊T3 天前
iOS 阅后即焚功能的实现
macos·ios·cocoa