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

你们还在用 Swift 开发么。。。

  •  
  •   akring · 2016-09-12 14:57:26 +08:00 · 6699 次点击
    这是一个创建于 2987 天前的主题,其中的信息可能已经有所发展或是发生改变。

    之前在写 Star Order 的 Mac 客户端,在 iOS 端已经用 Objective-C 写好的情况下,我作死的使用了 Swift 来写 Mac 客户端,费尽洪荒之力各种迁移代码,各种学习 Mac 开发之后最近终于接近写完了。

    然鹅,就在前两天我开始做测试并沾沾自喜 Swift 终于入门了的时候: macOS 和 Xcode8 的 GM 版发布了==>我兴高采烈的更新了==>项目满目疮痍了==>我崩溃了

    主要问题集中在:

    1. 大量的 API 更新, Xcode8 提供的迁移功能并不足以智能到无痛迁移。
    2. 大量(早期)第三方库不支持 Swift ,看作者也没有更新的打算, issue 石沉大海。

    深入思考之后,我越来越觉得以后每年 9 月节奏都会变成: 《 Swift 从入门到精通再到入门》, 《老 Swift 项目是怎么垮掉的》以及《 Xcode 为什么这样红》。

    为了长治久安,我又在考虑从 Swift 迁移回 Objective-C ,并重构代码了。。。

    我还在纠结是直接先 Swift 上一版,然后去慢慢迁移重构,还是再花一个多月迁移回 Objective-C 之后再发。。。

    24 条回复    2017-01-05 17:09:09 +08:00
    finab
        1
    finab  
       2016-09-12 15:40:19 +08:00 via iPhone
    现在能把 Swift2 迁移到 Swift3 的,在 Swift 上的造诣一定很高。
    anerevol
        2
    anerevol  
       2016-09-12 16:34:34 +08:00
    现在项目就是用 swift 写的,马上下个 xcode8 看看如何。
    fengyunSmlie
        3
    fengyunSmlie  
       2016-09-12 16:53:38 +08:00
    。。还好之前项目没决定用 swift
    vulgur
        4
    vulgur  
       2016-09-12 16:54:07 +08:00
    拿出点 Courage 来!
    IamJ
        5
    IamJ  
       2016-09-12 17:01:07 +08:00
    想问一下二楼还活着吗。。
    @anerevol
    28ms
        6
    28ms  
       2016-09-12 17:06:38 +08:00
    本来用 swift1 写了个 ios 客户端,升级 2 以后很多要重写,好崩溃
    现在又听闻 swift 要升级 3 了,又不兼容 swift2 !你们先玩!
    lion9527
        7
    lion9527  
       2016-09-12 17:18:56 +08:00
    自己写的其实还好,关键是第三方库,悲剧。
    daniellu
        8
    daniellu  
       2016-09-12 17:26:35 +08:00
    从 swift 1 到 swift 2 觉得还行啊。也没很多问题啊。 iOS 啊。 mac 的第三方不知道什么情况, iOS 的 bridge 过去,还是很方便的啊。
    akring
        9
    akring  
    OP
       2016-09-12 17:26:44 +08:00
    @vulgur 壮士,干了这碗热翔!
    ldp940622
        10
    ldp940622  
       2016-09-12 17:27:28 +08:00
    我司的项目刚从 2 => 2.3 ,工作量还算可以接受
    Midnight
        11
    Midnight  
       2016-09-12 17:30:08 +08:00
    你们玩,我到站了
    Lonely
        12
    Lonely  
       2016-09-12 17:33:16 +08:00 via iPhone
    从精通到放弃大概就是这样
    bytelee
        13
    bytelee  
       2016-09-12 17:36:44 +08:00
    @ldp940622 主要是 swfit3 2.3 不久就会抛弃了 swift3 语法改变较多 较真的话 函数名都要重命名一遍
    akring
        14
    akring  
    OP
       2016-09-12 17:40:32 +08:00
    @ldp940622 迟早还是要迁移的。。。
    ipconfiger
        15
    ipconfiger  
       2016-09-12 17:44:31 +08:00
    其实只要不去作死升级什么 GM 版的话, 还是可以愉快的玩耍的, 用 swift 快一年半了, 没多么的要死要活
    PopeyeLau
        16
    PopeyeLau  
       2016-09-12 18:11:11 +08:00
    好吧.
    等 Xcode8 正式发布了.就迁. =͟͟͞͞(꒪⌓꒪*)
    hstdt
        17
    hstdt  
       2016-09-12 18:16:26 +08:00 via iPhone
    swift1 和 2 写了一些 demo 和自用的 ios/osx 应用,都不是生产环境,公司代码就准备从 3 开始了。先写就先熟悉理解,也挺有作用的。
    anerevol
        18
    anerevol  
       2016-09-12 18:25:10 +08:00
    @IamJ 自己代码还好 关键是用到的第三方库有些根本没做 swift3.0 的版本...
    pacino
        19
    pacino  
       2016-09-24 11:57:14 +08:00
    问题是用了 swift 3.0 + Alamofire ,就必须放弃 iOS 8 ,这对商业 app 来说几乎不可能。
    akring
        20
    akring  
    OP
       2016-09-24 16:16:17 +08:00
    @pacino 这个其实还是因人而异, OmniFocus 更新后直接只支持 iOS10 了,我猜是因为根据统计信息,他们的用户 iOS10 的升级率不错,所以影响不大。
    我司同样根据内嵌的统计 SDK 统计出了 iOS7 的用户占有率不到 2%,直接放弃掉了 iOS7 适配,降低开发成本的同时,还能给用户提供更新更好的功能,双赢的结局。
    当然了,例如微信 QQ 支付裱之类的大众 APP ,估计出了适配做到死之外没有别的办法。。。
    pacino
        21
    pacino  
       2016-09-24 19:36:14 +08:00
    @akring 国内创业公司只要有一个用户都要拼死争取,何况 iOS 8 在国内占有率还不低(其中就包括我司老板,捂脸)。
    akring
        22
    akring  
    OP
       2016-09-25 14:14:43 +08:00
    @pacino 你应该庆幸老板不用 iOS6 。。。
    def1984
        23
    def1984  
       2017-01-05 17:08:14 +08:00
    小公司,保留 2.3 的 xcode 7 ,新项目全面转 3 ,用了不少 oc 库
    def1984
        24
    def1984  
       2017-01-05 17:09:09 +08:00
    @pacino swift 3.0 + Alamofire 亲测,在 ios 8.4 上还是可以的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1932 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 00:29 · PVG 08:29 · LAX 16:29 · JFK 19:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.