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

请教下各位 swiftUI 的学习路线

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

    花了几天把 swift 基础语法看完了(真的好费劲,特性和语法糖太多了),现在准备开始学习 swiftUI ,想问下怎么学习更加高效?直接敲大量 sample 项目还是先学习 swiftUI 的基础知识?目前已经把官网的 tutorial 快速过了一遍,感觉想直接上手项目还是挺困难的,很多控件还有控件修饰符都还记不清,更别说完全理解怎么用了,还有 @State @ObservedObject @EnvironmentObject @Environment 这些装饰器等等也都还是一知半解。。。 ps:并非想一口吃成胖子,就是想选个更平滑的学习路线,如果是要敲项目,有没有推荐的项目可以跟着学习?

    10 条回复    2022-09-25 22:56:30 +08:00
    CrossEntropy
        1
    CrossEntropy  
       108 天前
    直接跟斯坦福 CS193P Swift 开发教程吧
    Lin0936
        2
    Lin0936  
       108 天前
    buried
        3
    buried  
       108 天前
    蹲...
    Leonard
        4
    Leonard  
       108 天前
    cs193p
    buried
        5
    buried  
       108 天前
    @buried #3 我也在学习,cs193p 讲的挺好的,目前刚学完前 6 节课
    Livid
        6
    Livid  
    MOD
       108 天前
    我们目前就在做两个基于 SwiftUI 的开源项目:

    https://cl.v2ex.pro/
    https://planetable.xyz/
    storyxc
        7
    storyxc  
    OP
       108 天前
    @CrossEntropy #1
    @Lin0936 #2
    @Leonard #4
    多谢

    @Livid #6 感谢,刚 fork 了 planet ,学习一下
    agagega
        8
    agagega  
       108 天前
    首先,Swift 的语法糖虽然多,也不一定要都看过了才能上手 SwiftUI 吧。和 SwiftUI 主要相关的语法糖就是 Function Builder 和属性装饰器:前者很像 React ,看起来是声明式结构,实际上是若干 buildXXX 的函数调用;后者是一个语法糖,让你写各种 State<XXX>的时候能方便一点。

    然后关于几个属性装饰器的区别,看 /t/857084 应该能清楚些。

    其实如果你有前端 MVVM 框架的经验的话,到这个阶段已经可以自己写小 App 了,遇到什么问题多用英文搜搜 StackOverflow. 虽然国内 SwiftUI 热度不高,但国外经过这几年,资料已经比较丰富了。有一点理解之后,看看去年 WWDC 的 Demystify SwiftUI 这个 session ( https://developer.apple.com/videos/play/wwdc2021/10022/).

    SwiftUI 实现数据绑定的核心是 Combine 这个库,它的理念比较值得学习。再然后就是一些架构方面的东西(比如 TCA ?)其实和前端框架的学习路线挺像,但因为 Swift 语言本身要素很多,且原生平台 API 更丰富,所以能玩出更多花样

    今年 WWDC 苹果有个 Sample App ,源码在这里: https://github.com/apple/sample-food-truck
    storyxc
        9
    storyxc  
    OP
       107 天前
    @agagega #8 非常感谢!
    qfdk
        10
    qfdk  
       11 天前 via iPhone
    今天为了促进学习 续费了开发者账号
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2110 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 44ms · UTC 02:05 · PVG 10:05 · LAX 19:05 · JFK 22:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.