V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
viktor123
V2EX  ›  程序员

SwiftUI 两周内入门到精通?

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

    作为一名后台开发( 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 站也有人搬运。您可以搜下看看
    jaylee4869
        14
    jaylee4869  
       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
        21
    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
    @acumen 👍
    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   ·   实用小工具   ·   1352 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 17:40 · PVG 01:40 · LAX 09:40 · JFK 12:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.