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

SwiftUI 两周内入门到精通?

  •  
  •   viktor123 · 62 天前 · 3139 次点击
    这是一个创建于 62 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    https://github.com/acumen1005/rss
    viktor123
        30
    viktor123   60 天前
    @acumen 👍
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3317 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 04:22 · PVG 12:22 · LAX 21:22 · JFK 00:22
    ♥ Do have faith in what you're doing.