这题我会,作为一个初级iOS开发工程师,我说说我的理解。
Swift一定代表着Apple编程的现在与未来。
我特地看了一下楼主编写这个文章的日期,是2022年,1月份,我很怕我看错了,因为都2022年了,还在讨论Swift是不是主流的问题,就有点太过时的感觉。
首先,Swift在目前的语言升级上不会出现断崖式的变动。我记得我开始接触Swift的时候是2.0,升级到3.0的时候,工程里面报了一堆错,3.0到4.0的时候亦是如此,不过之后基本上都是非常平稳。
然后,Apple自家的Demo示例,目前使用使用Swift编写,不会出现OC了,这基说明了Swift的地位。
再来,说国内外Swift开发的差异,这个我确实承认有,不过国内大厂的开发,目前基本上都是进行混合开发了,OC和Swift同时都存在,这么做完全是历史原因造成了,并不能怪开发,因为重构的代价与成本都不可遇见。据我在技术群里问的一个技术大佬,他们那项目,虽然是OC的工程,不过现在的新业务,全部都使用Swift编写了。
另外,现在公司如果开发新项目,如果是原生项目,iOS这边基本上都会优先考虑Swift,因为Swift的生态、第三方已经都非常完善,桥接到OC的第三方库也非常简单,基本上没有太多成本。
最后,聊一聊Swift的趋势和编程语言本身。目前有很多库,都被Swift独占了,比如Combine,还有一些官方库:
推出的SwiftUI亦是响应式编写UI的一种方式,它虽然目前还不可能完全取代传统Cocoa,不过它也会越来越好。
就目前如果学习Apple这边的开发话,我个人觉得OC的背景知识还是需要一点的,不过直接上Swift进行学习也可以,因为编程语言的学习本来就可以相互借鉴,触类旁通,学习完了Swift在转头看看OC的Runtime等底层也可以。
我也接触学习过其他编程语言,比如Dart,JavaScript,Python,就我个人的经验看,学会了Swift,其他语言上手也非常快。
说白了,编程语言只是一种工具,只是表现自己思路的一种方式,就像说“你好”和“Hello”一样,只是我们需要在合适的场景使用合适的编程语言罢了。
SwiftUI编写一个简单页面:
struct Home: View { var body: some View { Text("Hello,World") } }
Flutter编写一个简单页面:
class Home extends StatelessWidget { const Home({Key? key}) : super(key: key); @override Widget build(BuildContext context) { return Scaffold( body: Center( child: Text("Hello,World"), ), ); } }
编程语言不是关键,编程思维才更为重要。
另外,这些年iOS开发其实也算不上特别火,除非实力非常突出,否则可能大部分时间都在做UI侠,当UI侠又有混合开发,Uni-app抢饭碗,其实还是很难受的。
如果想入行,可以考虑其他的编程语言。
当然就我个人看,用Swift来学习编程还是很不错的,它简洁易懂,不失趣味。
可以来掘金找我一起交流: