SwiftUI 两周内入门到精通? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
viktor123
V2EX    程序员

SwiftUI 两周内入门到精通?

  •  
  •   viktor123 2020-07-27 22:07:07 +08:00 9789 次点击
    这是一个创建于 1903 天前的主题,其中的信息可能已经有所发展或是发生改变。

    作为一名后台开发( iOS 开发小白),「 SwiftUI 能两周内入门到精通?」显然是不能的(是的,我标题党了。。。

    不过,我确实只用了大约两周时间,从 0 开始学习到开发了一款简单的 iOS 应用并上架了(传送门),xdm 可以体验下,欢迎交流。

    学习路径

    1 、先把苹果的官方教程过了一遍,在这一步,只是让我对 SwiftUI 有了一个基本的概念。

    2 、把斯坦福的一门网课过了一遍(传送门),这一步系统学习了 SwiftUI & Combine 框架。

    3 、在开发过程中大量的 Google 。。。(这里说一句,对于 iOS Newbie 来说,SwiftUI = 「 BugUI 」

    使用 SwiftUI 开发的感受

    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 的落地实践,这里的介绍会更专业、全面些(传送门),很值得学习参考。

    32 条回复    2021-04-10 11:28:43 +08:00
    dorentus
        1
    dorentus  
       2020-07-27 23:50:38 +08:00 via iPhone
    精通?
    PDX
        2
    PDX  
       2020-07-27 23:53:33 +08:00
    我自己试了几天就放弃了,bug 太多了。。。
    viktor123
        3
    viktor123  
    OP
       2020-07-28 00:23:16 +08:00 via iPhone   1
    @dorentus 从入门到“放弃”
    viktor123
        4
    viktor123  
    OP
       2020-07-28 00:25:38 +08:00 via iPhone
    @PDX 多 google,只能说不要怂就是干。。
    aydd2004
        5
    aydd2004  
       2020-07-28 00:26:26 +08:00
    我老了 只能 C# 拖拖控件满足自己了
    qq316107934
        6
    qq316107934  
       2020-07-28 02:46:04 +08:00
    惊了,SwiftUI 是 MVVM ?
    reus
        7
    reus  
       2020-07-28 08:14:13 +08:00
    熟悉前端 mvvm 框架的都不难上手,概念是相通的
    但确实是 bug 太多了
    junbaor
        8
    junbaor  
       2020-07-28 08:43:02 +08:00
    iOS 14 打开滑动几下闪退
    MakHoCheung
        9
    MakHoCheung  
       2020-07-28 09:07:57 +08:00 via iPhone
    开发者账号贵
    Leonard
        10
    Leonard  
       2020-07-28 09:14:04 +08:00
    @MakHoCheung 只开发不上架也不需要买开发者账号吧
    dk7952638
        11
    dk7952638  
       2020-07-28 09:45:48 +08:00
    英语不行,能给推荐个中文教程么
    IsaacYoung
        12
    IsaacYoung  
       2020-07-28 09:56:26 +08:00 via iPhone
    从入门到放弃
    From313
        13
    From313  
       2020-07-28 13:41:15 +08:00   1
    @dk7952638 斯坦福大学的那个课程 YouTube 有字幕,虽然机翻的一般,但是多看几次还差不多。b 站也有人搬运。您可以搜下看看
    lavvrence
        14
    lavvrence  
       2020-07-28 14:50:20 +08:00
    服务端也是自己写的吗,还是只是第三方接口?
    DJQTDJ
        15
    DJQTDJ  
       2020-07-28 14:53:43 +08:00
    我两天研究出来如何把 iphone 当 pos 机用,然后老婆被我盗刷 1500 人民币。(她以为是自己被盗了)
    现在她还不知道咋丢的呢。
    HeapOverflow
        16
    HeapOverflow  
       2020-07-28 14:55:18 +08:00
    我选择 rxswift
    devceo
        17
    devceo  
       2020-07-28 18:20:33 +08:00
    正在学,写 UI 效率是真高
    bigxianyu
        18
    bigxianyu  
       2020-07-28 19:10:16 +08:00 via Android
    android 也可以做到吗
    viktor123
        19
    viktor123  
    OP
       2020-07-28 19:28:43 +08:00   1
    @qq316107934 ( OC/UIKit 技术栈也可以用 MVVM 设计模式...)之前有接触过一点点 OC,就我的认知来看,声明式的 UI 构建、事件处理、以及状态维护( Combine )带来的开发效率提升确实很大的。
    viktor123
        20
    viktor123  
    OP
       2020-07-28 19:29:48 +08:00
    @jaylee4869 自己做的,不过这个应用里面涉及的服务端功能很少(主要是爬虫服务)。
    viktor123
        1
    viktor123  
    OP
       2020-07-28 19:32:05 +08:00   1
    @dk7952638 https://www.bilibili.com/video/BV1gf4y1m7fc?from=search&seid=7422291303563087128 这里有个博主在翻译,不过进度有点慢。。
    viktor123
        22
    viktor123  
    OP
       2020-07-28 19:35:33 +08:00
    @bigxianyu SwiftUI 目前不支持兼容 android 端开发(以我的认知),不过有个 web 端项目: https://github.com/SwiftWebUI/SwiftWebUI,但是只是试验性质的,不建议投入到生产环境使用。
    android 端的话,可以关注下 Flutter ( Google ),最近在在国内慢慢有些声音了。
    viktor123
        23
    viktor123  
    OP
       2020-07-28 20:09:12 +08:00
    @junbaor xd iOS 14 还在 beta 阶段,可能会有些不稳定(我暂时先不考虑。。
    不过我在 iOS 14 beta 2 上( iPhone8 )跑过,没有遇到崩溃的问题。。
    daimubai
        24
    daimubai  
       2020-07-28 20:28:21 +08:00 via iPhone
    可以,最近也打算
    rming
        25
    rming  
       2020-07-28 20:32:38 +08:00 via iPhone
    crayygy
        26
    crayygy  
       2020-07-28 21:31:27 +08:00 via Android
    其实 Android 也有用 Kotlin DSL 做的一个类似于 SwiftUI 的 lib,叫什么不太记得了,大概就是这样的 UI 布局方式。
    个人不是很喜欢,看 Flutter 很吃力也是因为这个,换个角度想想,如果用 Swift UI 或者 Kotlin 来做的话,还不如直接用 Flutter,跨平台都省了
    PlainTech
        27
    PlainTech  
       2020-07-28 23:05:48 +08:00
    @crayygy Android 这边也在开发这种声明式 UI 框架,`Jetpack Compose` https://developer.android.com/jetpack/compose
    anUglyDog
        28
    anUglyDog  
       2020-07-28 23:33:07 +08:00
    没有中文文档代表这很小众。。
    acumen
        29
    acumen  
       2020-07-28 23:34:24 +08:00
    最近也在尝试使用,写了一个 SwiftUI & CoreData 的 RSS 阅读器。等功能再完善一些也准备上架。

    https://github.com/acumen1005/rss
    viktor123
        30
    viktor123  
    OP
       2020-07-29 12:45:56 +08:00
    Bruce2077
        31
    Bruce2077  
       2021-04-01 21:54:34 +08:00
    精通是不可能的,毕竟 SwiftUI 自个儿都还没长大。。。
    flyff1991
        32
    flyff1991  
       2021-04-10 11:28:43 +08:00
    你这个两周是总共花多少有效小时学啊,总不能不用上班吧
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2430 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 15:34 PVG 23:34 LAX 08:34 JFK 11:34
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86