iOS开发学习之路

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开发都需要学习哪些知识

入门学习

  1. 基础语法

A Swift Tour: https://docs.swift.org/swift-book/GuidedTour/GuidedTour.html

对于初学者,其中Swift语言的介绍,A Swift Tour是必须要了解和学习的。

  1. UIKit/SwiftUI

选择哪个看你个人选择了。如果你是个初学者,现在是2021年了,我建议你直接从SwiftUI开始。其他的就看你公司项目需求了,项目用的UIKit还是SwiftUI,国内的项目用SwiftUI的应该是不多的,应为iOS 13之后才开始支持SwiftUI的,国内大多数肯定还用的OC项目。

  1. Foundation

作为一个基础框架,Foundation框架也是需要了解和学习的。当然不必特意抽时间去学习这个框架,在学习iOS开发的时候平时没事的时候看看文档,多看看时间久了就了解的差不多了。

  1. MVC / MVVM

这个你随意

  1. 其他

上面的都基本熟悉了,算是入门了。可以学习更多了,根据项目实际情况自己做学习规划就可以了。
另外其他的熟悉操作系统,熟悉git,Xcode调试等这些就不多说了。

基础学习

已经会使开发App了,UIKit已经熟练,其他框架也有所了解之后,根据个人的工作和学习情况做一些侧重点的学习,比如你是做音视频的,那就深入相关的框架学习。你是做图像处理,或者新闻,电商等等,那就继续深入就可以了。

在继续深入的过程中,还需要了解和学习一些底层的技术,掌握一些底层实现原理,这些有助于你理解这门语言。此外学习一些其他的比如Xcode 调试啊,闪退的分析,日志的追踪,数据库的使用等等,还是挺有必要的,这些根据具体的工作情况学习。

到这里才入门,接下来根据自己的学习情况,看视频或者做项目继续学习。

继续学习

做iOS 开发如果,如果不仅仅停留在写App的层面上的话有很多也就只能写App,有些东西只是会用,但是不能真正的理解其原理,例如WKWebView的JS与OC交互,只知道怎么去交互,但是不知道为什么这样可以交互,那是因为你不了解前端JS的知识。

语言只是工具,工作是需要解决问题,多学学其他的语言,尤其是大前端,sql。这里不多说了,如果在技术上要继续升入的话就别只局限于一门语言。

对于数据结构
基础的数据结构需要懂的,不比手撕,要看到能知道。像实现一个简单的链表或者二叉树什么的,只要掌握思想还是挺简单的。
学习数据结果的目的是为了让开发者能够更好的了解数据存储。

之于前端
如果你要学RN或者Flutter的话。

之于后台
看后台API的实现,读sql,了解查询,修改等逻辑。

看你具体的职业规划吧,毕竟每个人要走的路不一样,自己做好学习规划。

最后

以上都是我个人看法,以及我自己作为一个iOS 开发者走过还在继续走的路。选择适合自己的路,别人的仅仅是个建议而已,希望能帮到别人那就更好了。

还是那句话,不知道做什么的话,那就学习好了。

最后,学习之路,永无止境!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Morris_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值