作为一名后台开发( iOS 开发小白),「 SwiftUI 能两周内入门到精通?」显然是不能的(是的,我标题党了。。。
不过,我确实只用了大约两周时间,从 0 开始学习到开发了一款简单的 iOS 应用并上架了(传送门),xdm 可以体验下,欢迎交流。
1 、先把苹果的官方教程过了一遍,在这一步,只是让我对 SwiftUI 有了一个基本的概念。
2 、把斯坦福的一门网课过了一遍(传送门),这一步系统学习了 SwiftUI & Combine 框架。
3 、在开发过程中大量的 Google 。。。(这里说一句,对于 iOS Newbie 来说,SwiftUI = 「 BugUI 」
SwiftUI 上手特别快,而且使用 VStack 、HStack 、ZStack 等来布局页面的时候,真的有种在搭乐高的感觉。。配合 Xcode 的 preview 功能,开发体验是特别顺滑的。
但是, UIKit (xxKit) 上的很多组件在 SwiftUI ( iOS13 )上都没实现,好在可以用 UIViewRepresentable / UIViewControllerRepresentable 包装 xxKit 上已有的组件。不过后面 SwiftUI 的组件肯定会越来越丰富的,前段时间 WWDC 2020 提到的 iOS14,就给 SwiftUI 带来了不少新特性,这里有个视频可以看看。值得一提的是,iOS14 的「主屏幕小组件」只能用 SwiftUI 开发,这算是官方的一些强推吧。。
一些组件会有一些功能的局限性,此时就需要 google 各种 workaround 。就像我前面说的一样,对于 iOS Newbie 来说,SwiftUI = 「 BugUI 」。
另外 SwiftUI 无法对 iOS13 以下的系统兼容,不过如果是个人项目的话,应该是可以接受的,毕竟 iOS13 的覆盖率已经超过 90% 了。
最后淘宝前端技术团队有一篇 SwiftUI 的落地实践,这里的介绍会更专业、全面些(传送门),很值得学习参考。
![]() | 1 dorentus 2020-07-27 23:50:38 +08:00 via iPhone 精通? |
![]() | 2 PDX 2020-07-27 23:53:33 +08:00 我自己试了几天就放弃了,bug 太多了。。。 |
![]() | 5 aydd2004 2020-07-28 00:26:26 +08:00 我老了 只能 C# 拖拖控件满足自己了 |
6 qq316107934 2020-07-28 02:46:04 +08:00 惊了,SwiftUI 是 MVVM ? |
![]() | 7 reus 2020-07-28 08:14:13 +08:00 熟悉前端 mvvm 框架的都不难上手,概念是相通的 但确实是 bug 太多了 |
8 junbaor 2020-07-28 08:43:02 +08:00 iOS 14 打开滑动几下闪退 |
![]() | 9 MakHoCheung 2020-07-28 09:07:57 +08:00 via iPhone 开发者账号贵 |
![]() | 10 Leonard 2020-07-28 09:14:04 +08:00 @MakHoCheung 只开发不上架也不需要买开发者账号吧 |
![]() | 11 dk7952638 2020-07-28 09:45:48 +08:00 英语不行,能给推荐个中文教程么 |
![]() | 12 IsaacYoung 2020-07-28 09:56:26 +08:00 via iPhone 从入门到放弃 |
![]() | 13 From313 2020-07-28 13:41:15 +08:00 ![]() @dk7952638 斯坦福大学的那个课程 YouTube 有字幕,虽然机翻的一般,但是多看几次还差不多。b 站也有人搬运。您可以搜下看看 |
![]() | 14 lavvrence 2020-07-28 14:50:20 +08:00 服务端也是自己写的吗,还是只是第三方接口? |
![]() | 15 DJQTDJ 2020-07-28 14:53:43 +08:00 我两天研究出来如何把 iphone 当 pos 机用,然后老婆被我盗刷 1500 人民币。(她以为是自己被盗了) 现在她还不知道咋丢的呢。 |
![]() | 16 HeapOverflow 2020-07-28 14:55:18 +08:00 我选择 rxswift |
![]() | 17 devceo 2020-07-28 18:20:33 +08:00 正在学,写 UI 效率是真高 |
18 bigxianyu 2020-07-28 19:10:16 +08:00 via Android android 也可以做到吗 |
![]() | 19 viktor123 OP ![]() @qq316107934 ( OC/UIKit 技术栈也可以用 MVVM 设计模式...)之前有接触过一点点 OC,就我的认知来看,声明式的 UI 构建、事件处理、以及状态维护( Combine )带来的开发效率提升确实很大的。 |
![]() | 20 viktor123 OP @jaylee4869 自己做的,不过这个应用里面涉及的服务端功能很少(主要是爬虫服务)。 |
![]() | 1 viktor123 OP ![]() |
![]() | 22 viktor123 OP @bigxianyu SwiftUI 目前不支持兼容 android 端开发(以我的认知),不过有个 web 端项目: https://github.com/SwiftWebUI/SwiftWebUI,但是只是试验性质的,不建议投入到生产环境使用。 android 端的话,可以关注下 Flutter ( Google ),最近在在国内慢慢有些声音了。 |
![]() | 23 viktor123 OP @junbaor xd iOS 14 还在 beta 阶段,可能会有些不稳定(我暂时先不考虑。。 不过我在 iOS 14 beta 2 上( iPhone8 )跑过,没有遇到崩溃的问题。。 |
24 daimubai 2020-07-28 20:28:21 +08:00 via iPhone 可以,最近也打算 |
25 rming 2020-07-28 20:32:38 +08:00 via iPhone |
![]() | 26 crayygy 2020-07-28 21:31:27 +08:00 via Android 其实 Android 也有用 Kotlin DSL 做的一个类似于 SwiftUI 的 lib,叫什么不太记得了,大概就是这样的 UI 布局方式。 个人不是很喜欢,看 Flutter 很吃力也是因为这个,换个角度想想,如果用 Swift UI 或者 Kotlin 来做的话,还不如直接用 Flutter,跨平台都省了 |
![]() | 27 PlainTech 2020-07-28 23:05:48 +08:00 @crayygy Android 这边也在开发这种声明式 UI 框架,`Jetpack Compose` https://developer.android.com/jetpack/compose |
![]() | 28 anUglyDog 2020-07-28 23:33:07 +08:00 没有中文文档代表这很小众。。 |
![]() | 29 acumen 2020-07-28 23:34:24 +08:00 |
![]() | 31 Bruce2077 2021-04-01 21:54:34 +08:00 精通是不可能的,毕竟 SwiftUI 自个儿都还没长大。。。 |
![]() | 32 flyff1991 2021-04-10 11:28:43 +08:00 你这个两周是总共花多少有效小时学啊,总不能不用上班吧 |