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

现在开发 iOS/macOS 的 App 直接用 SwiftUI 可行吗?

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

    我看官方文档,SwiftUI 可以结合 UIKit 使用。所以我想能不能主用 SwiftUI,SwiftUI 中不能或者不方便实现的部分通过官方介绍的 UIViewRepresentable 和 UIViewControllerRepresentable 来引入 UIKit 解决。还是说依旧只用 UIKit,暂时不碰 SwiftUI ?

    最近开始入门 Apple 开发的一点疑惑。

    背景:想做一些复杂点的 App

    18 条回复    2021-04-01 21:39:57 +08:00
    Xusually
        1
    Xusually   357 天前
    回答标题的问题:可以。
    wobuhuicode
        2
    wobuhuicode   357 天前
    国内商业产品比较难,自己做的话随意吧
    NightVermouth
        3
    NightVermouth   357 天前
    @Xusually @wobuhuicode 谢谢两位
    Elethom
        4
    Elethom   357 天前 via iPhone
    SwiftUI 最大的问题在于封得太死,各种 undocumented behaviours 要熟悉 UIKit 才能明白是怎么回事。不做深入定制用起来没什么问题,而且开发成本可以降到相当低。
    nieyujiang
        5
    nieyujiang   357 天前 via iPhone
    自己玩随意,iOS14 only 都没问题,公司产品这么玩,分分钟被打死😂😂😂
    damngood
        6
    damngood   357 天前 via iPhone
    根据 twitter 上开发者的反馈看来有坑, 而且还不算少.
    估计也得看需求来. 有些需求就比较容易落到坑里面, 有些的话就还好.
    我自己的话目前肯定还是主框架用 uikit, 局部 ui 用 swiftui 玩玩.
    NightVermouth
        7
    NightVermouth   357 天前
    @damngood 我也是这种担忧,反馈上看 SwiftUI 坑太多,不如 UIKit 来的稳重
    imgbed
        8
    imgbed   357 天前 via Android
    iOS12 之前的能运行吗?
    oxromantic
        9
    oxromantic   357 天前
    iOS 13 警告
    NightVermouth
        10
    NightVermouth   357 天前
    @imgbed
    @oxromantic
    我主要是自己玩,没有这个顾虑
    damngood
        11
    damngood   357 天前
    @NightVermouth 嗯, 是这样的. 但是如果是奔着学习的目的去的话那可以选择用 SwiftUI. 毕竟还迭代一两个版本后基本应该也要稳定了. 就和当年 Swift 一样, 4.0 才能算正真的 1.0 版本.
    Leonard
        12
    Leonard   357 天前
    不适配早期版本是可以。但是还是如楼上几位说的,自己项目随意,正经项目就先别上。
    Building
        13
    Building   357 天前
    只要页面复杂到一定程度,你就会发现,用 SwiftUI 还不如用 UIKit 。
    icebarley
        14
    icebarley   356 天前   ❤️ 1
    我最近刚上架的到期提醒 APP 就是主用 SwiftUI 写的( https://apps.apple.com/cn/app/如期而至 /id1538275500 )。刚开始的时侯还是 SwiftUI1.0,年中出了 SwiftUI2.0 之后,代码支持都断层了,所以部分功能还要分 2 种代码方式去写,最终体验也有区别,所以现在用的话用 SwiftUI2.0 支持得更好,但也是只能 iOS14 only 了
    JasonEWNL
        15
    JasonEWNL   356 天前
    单纯问题是可以,但更重要的是你的定位(仅玩 / 独立上架 / 小公司起步 / 大公司接入,盲猜大概率是前两种)。
    JasonEWNL
        16
    JasonEWNL   356 天前   ❤️ 1
    细说一下:

    1. 仅玩:基础功能现在 SwiftUI 到 2.0 了基本都很完整,没有的用 Representable 也能达到能用(而且大部分都有实现所以大部分没有啥成本);

    2. 独立上架 / 小公司起步:纠结的核心主要是支持系统( iOS 13+ 还是 14+)、有无 WebView (比如现在 SwiftUI 还没,得自己写 WKWebView 的 Representable )等,一般除非是主打本地功能且不太需要考虑老系统的独立应用,其他都很难回避上面两种问题。手头夏天写的一个可以参考一下: https://apps.apple.com/cn/app/%E8%BD%BB%E5%8C%97%E6%B4%8B/id1529084736,因为需要 2.0 的特性选择了 iOS 14+,另外有些自定义 View 的需求也用了一定的 Representable 妥协。

    3. 大公司接入:虽然大概率不是,但如果是基本还是在 OC (尤其国内),而且考虑可能要放 SDK 啥的(也基本是基于 OC )除了新的 Widgets 就没 SwiftUI 啥事了。
    NightVermouth
        17
    NightVermouth   356 天前
    @JasonEWNL 我属于独立上架 /小公司起步这块的
    Bruce2077
        18
    Bruce2077   243 天前
    看项目规模和场景,如果是中大型商业项目,暂时不要用,其它场景撸的飞起。
    我写了一个 SwiftUI & Combine 教程 app:Eul ( https://apps.apple.com/cn/app/eul/id1541991958
    目前正打算开发另一个 SwiftUI 的个人项目 : )
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2300 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 00:46 · PVG 08:46 · LAX 16:46 · JFK 19:46
    ♥ Do have faith in what you're doing.