在18个步骤中成为iOS开发人员

苹果的移动操作系统已有10多年的历史了。 如果五年前研究目标C和几个辅助框架就足够了,那么现在很容易被众多选择所震惊。 这就是我决定创建可视手册的主要原因,该手册将:

  • 逐步展示值得学习该主题的方式
  • 给出一个连贯的图片,您可以通过它跟踪进度

我没有目标创建学习iOS开发的唯一真实方法,就像我无意为您选择方法和技巧一样。 我想为您提供最广阔的视野,以便您可以判断建议的方案中哪个更适合解决特定任务,而不是追求通用解决方案或最笨拙的解决方案。

事不宜迟,让我们开始做正事。 在下面,您可以找到有关每个项目的评论,并提供指向所提到的解决方案和资源的链接。 祝好运!

1.选择一种语言

有2个选项:Objective C或Swift。 我建议Swift更现代且易于掌握。 如果您已经有使用另一种类似C语言的经验,Swift对您来说似乎很熟悉。 Swift允许更简洁和更具表现力,以编写更安全的代码。 但是不要将Objective C丢在公共汽车底下。 在任何已经存在数年的项目中,总是会有一部分目标C代码。 所有大公司都有大量的代码,其基础结构和专业知识。 当您熟悉基于Swift的iOS开发的基础知识时,就值得回过头来学习ObjectiveC。

2.安装Xcode

要开始编写和运行代码,您需要一个环境。 Apple对此进行了照顾,并创建了Xcode,其中包括让您感到舒适的所有内容。 Xcode在AppStore中免费分发,要下载Xcode,您需要在developer.apple.com上注册。 这是免费的。 仅当您要将应用程序放置在AppStore中时才需要付费。 JetBrains还有一个付费替代方案-AppCode。

3.边玩边学

为什么要选择Swift的另一个重要点是它使用Xcode内置的Playgrounds工具易于学习的功能。 使用Playgrounds,您可以实时监视代码执行的结果。 苹果还提供处理Swift所需的所有信息。 了解内存如何在Swift中工作,如何防止内存泄漏和循环依赖。 掌握了该语言后,应编写尽可能多的小程序:

  • 记住典型的数据结构:链表,堆栈,二叉树
  • 编写经典算法:二进制搜索,堆排序或动态编程

4.构建您的第一个应用

要开始为iOS开发,您需要学习UIKit。 这是所有iOS应用程序的基础。 在Xcode中创建一个空的iOS应用程序,并开始学习该应用程序的主要组件:UIApplication,AppDelegate,UIViewController,Storyboards等。阅读这些组件中每个组件的内置Xcode文档,直到您习惯了。 当您弄清楚iOS应用程序中的内容时,请开始编写基本示例。 这里有一些想法:

  • 显示朋友列表和有关他们的详细信息。 创建2个屏幕:第一个屏幕将显示一个名称列表,通过单击每个屏幕上的另一个屏幕,显示更多详细信息。
  • 显示从网上下载的几张图片。 使屏幕看起来像标准的“照片”应用。 了解如何从网上下载图片。 通过单击图片,使用“缩放”选项将其完整显示。

5.在会话之间保存数据

到目前为止,您的应用程序像《 Groundhog Day》电影中的主角一样活着。 每次发射对他们来说都是新的。 了解如何保存数据:从UserDefaults开始,然后熟悉Coding协议,然后转到CoreData。 在Realm和Firebase中定居也将很有用。 这些是CoreData的非常受欢迎的替代方案。 尝试找到每种解决方案的利弊。

6.上网

开始使用异步代码。 研究大中央调度(GCD)和NSOperation。 然后,了解URLSession的工作原理,以及如何解析JSON和XML。 出于实际原因,请使用新知识重做第4段中的练习。 您还可以使用Swift或Objective C创建一个应用,在Github上显示最受欢迎的回购清单。

7.探索依赖管理器

其他开发人员已经编写了大量代码,并在AppStore中的流行应用中对其进行了测试和使用。 无需重新发明轮子。 处理CocoaPodsand迦太基。 Swift有自己的依赖库:Swift Package Manager。 安装几个流行的库:Alamofire,Snapkit。

8.标准和最佳做法

您可以找到许多开源项目。 通过他们的例子学习。 此代码被AppStore中的数十万个应用程序使用,这意味着此代码稳定运行。 查看Apple的建议。 您也可以开始使用现成的编码样式,例如LinkedIn。 如果您有信心,请尝试从事一些开源项目。

9.测试您的代码

您可能已经注意到下载的项目中的测试文件。 好了,现在该轮到您编写测试了。 测试可以帮助您更好地理解代码,使其更稳定并消除将来更改代码的问题。 从单元测试开始,然后继续进行集成测试。 您也可以编写UI测试。 Xcode可以为您提供所需的一切。

10.学习不同的架构

到目前为止,您已经使用了Apple提供的标准体系结构-MVC(模型-视图-控制器)。 如果您已经编写了一些测试,您可能已经注意到选择测试组件非常困难。 开始应用最常用的方法:MVVM(模型-视图-视图模型),MVP(模型-视图-演示者)和VIPER(视图-交互器-演示者实体路由器)。 另请参阅Redux。

11.尽你所能

现在您已经有足够的经验来编写大型项目。 想出一个可以在线运行,缓存数据,在会话之间保存信息的应用程序。 规划您的导航并让用户创建内容。 应用依赖项。 您可以将Realm或Firebase用作服务器。 用测试覆盖代码,编写注释并从中创建文档。 将此应用发布到Github上。

12.了解AppStore的工作方式

iOS开发过程中的重要一步是在AppStore中发布应用程序。 如果您有信心并且负担得起,则只需支付99美元,即可访问itunesconnect.apple.com。 即使您还没有准备好付款,也请了解应用发布的工作原理,什么是证书和配置文件以及如何让其他人安装您的应用。

13.使用分析工具

在AppStore中启动您的应用程序之后,乐趣就刚刚开始。 不同的设备,操作系统,不可预测的用户行为和崩溃:您将需要处理所有这些。 找出崩溃后如何分析应用程序堆栈。 使用Crashlytics收集有关崩溃的信息。 使用日志获取导致错误的重要信息。 要分析用户操作,请使用Firebase,Amplitude等分析平台。

14.自动化一切

很多时间花在日常工作上。 有必要将新版本的应用程序转换为测试用户,注册新设备,检查代码更改是否破坏了之前编写的内容。 有针对此类工作的现成解决方案。 学习快速通道,并使用连续集成(CI)系统,例如Travis。 开发应用程序时,自动执行一堆任务。

15.了解生态系统

iOS开发不仅限于iPhone。 iPad,Apple Watch和Apple TV的市场也很大。 了解如何重用代码(精心选择的体系结构应为您提供帮助)。 注意“今日与动作”扩展。

16.优化您的代码

您的应用程序在新的功能强大的设备和旧的速度较慢的设备上均应同样良好地运行。 使用Xcode的内置工具优化应用程序启动时间或解决要求严格的操作中的冻结问题。

17.继续学习

您已经知道很多,但还有更多。 处理购买和订阅,用户数据保护,本地化(并非所有语言都是从右到左书写的,并且它们的字长也有所不同),为扩大字体,设计和资源而修改应用程序。 这一切都是你的工作。 尝试使用RxSwift或ReactiveCocoa。 查看您的代码如何更改。 尝试使用不同的UI方法,例如Texture(又名AsyncDisplayKit)

18.找工作

代码编写不是您的唯一责任。 了解如何在团队中合作,计划要花在开发上的时间,知道如何表达自己的观点。 所有这些都是您工作中必不可少的方面。 最好的方法是在实践中学习。 创建简历,在Github上将链接附加到您的应用,然后继续。

Interesting Posts