iOS开发学习之路
最近有小伙伴问我iOS应该怎么学,其实我也不知道,下面是我个人的一些看法和观点。
Swift or Objective-C
Swift虽然是大势所趋,但是老的应用程序都还在使用Objective-C语言,如果是要学iOS开发,直接从Swift开始是一个不错的选择,如果你对Swift已经了解的差不多可以做项目的时候,建议对Objective-C还是了解了解。
作为一个iOS开发者,最起码的,Objective-C的项目维护应该没问题就可以,至于新项目,Swift5.4已经发布了,建议新项目
SwiftUI or UIKit
WWDC 2019,Apple 发布了新的UI框架SwiftUI,用来取代旧版的UIKit。
开发过Objective-C 项目的开发者都应该知道,UIKit框架在OC项目中的重要性。
新的语言Swift诞生之后,有很多库都为Swift做了修改,比如Fondation库,但是UIKit 作为UI的框架,Swift和OC都在用。
iOS 13的时候,推出的SwiftUI 专门作为Swift 语言的UI框架。同时UIKit 也是使用Swift 开发项目可以使用的UI 框架。
由于SwiftUI是较新的,因此还不如UIKit成熟这是肯定的。但是苹果还在继续发展SwiftUI,SwiftUI也将会越来越完善。
从Swift项目工程来看,也提供以UIKit 和 SwiftUI 两个搭建应用程序的入口,iOS 13以前的项目都是使用的UIKit,不管是使用Swift还是使用OC开发。
苹果的更新迭代还是挺快的,从gitHub上来看,SwiftUI也是热火朝天(国内的话OC仍然岁岁月静好),所以如果你想在开始学习iOS 开发的话,直接从 SwiftUI开始,我认为将是一个很不错的选择。
但是熟悉用UIKit 来创建应用程序以及熟悉UIKit的使用,能了解更多当然最好的。
我个人就是从UIKit 开始使用Swift 来维护和开发项目的,因为我比较幸运,直接接手了一个别人已经写好的 Swift项目,UI框架使用的是UIKit。
还有一个很重要的就是苹果公司统一平台芯片,M系列的芯片一旦推广开来的话,使用SwiftUI 搭建的项目将可能直接在众多平台上都能使用。
学习iOS开发都需要学习哪些知识
入门学习
- 基础语法
A Swift Tour: https://docs.swift.org/swift-book/GuidedTour/GuidedTour.html
对于初学者,其中Swift语言的介绍,A Swift Tour是必须要了解和学习的。
- UIKit/SwiftUI
选择哪个看你个人选择了。如果你是个初学者,现在是2021年了,我建议你直接从SwiftUI开始。其他的就看你公司项目需求了,项目用的UIKit还是SwiftUI,国内的项目用SwiftUI的应该是不多的,应为iOS 13之后才开始支持SwiftUI的,国内大多数肯定还用的OC项目。
- Foundation
作为一个基础框架,Foundation框架也是需要了解和学习的。当然不必特意抽时间去学习这个框架,在学习iOS开发的时候平时没事的时候看看文档,多看看时间久了就了解的差不多了。
- MVC / MVVM
这个你随意
- 其他
上面的都基本熟悉了,算是入门了。可以学习更多了,根据项目实际情况自己做学习规划就可以了。
另外其他的熟悉操作系统,熟悉git,Xcode调试等这些就不多说了。
基础学习
已经会使开发App了,UIKit已经熟练,其他框架也有所了解之后,根据个人的工作和学习情况做一些侧重点的学习,比如你是做音视频的,那就深入相关的框架学习。你是做图像处理,或者新闻,电商等等,那就继续深入就可以了。
在继续深入的过程中,还需要了解和学习一些底层的技术,掌握一些底层实现原理,这些有助于你理解这门语言。此外学习一些其他的比如Xcode 调试啊,闪退的分析,日志的追踪,数据库的使用等等,还是挺有必要的,这些根据具体的工作情况学习。
到这里才入门,接下来根据自己的学习情况,看视频或者做项目继续学习。
继续学习
做iOS 开发如果,如果不仅仅停留在写App的层面上的话有很多也就只能写App,有些东西只是会用,但是不能真正的理解其原理,例如WKWebView的JS与OC交互,只知道怎么去交互,但是不知道为什么这样可以交互,那是因为你不了解前端JS的知识。
语言只是工具,工作是需要解决问题,多学学其他的语言,尤其是大前端,sql。这里不多说了,如果在技术上要继续升入的话就别只局限于一门语言。
对于数据结构
基础的数据结构需要懂的,不比手撕,要看到能知道。像实现一个简单的链表或者二叉树什么的,只要掌握思想还是挺简单的。
学习数据结果的目的是为了让开发者能够更好的了解数据存储。
之于前端
如果你要学RN或者Flutter的话。
之于后台
看后台API的实现,读sql,了解查询,修改等逻辑。
看你具体的职业规划吧,毕竟每个人要走的路不一样,自己做好学习规划。
最后
以上都是我个人看法,以及我自己作为一个iOS 开发者走过还在继续走的路。选择适合自己的路,别人的仅仅是个建议而已,希望能帮到别人那就更好了。
还是那句话,不知道做什么的话,那就学习好了。
最后,学习之路,永无止境!