大家好,我是编程小6,很高兴遇见你,有问题可以及时留言哦。
译者:Viyi
一年前,我还是一个 Android 开发者。那时候我没有任何 iOS 编程相关的知识,我甚至没用过任何苹果的产品。然而,这已成为过去,现在我已经能同时开发 iOS 和 Android 应用了。
现在,我想给大家传授一下我一个月学习 iOS 编程的秘诀。
我非常推荐 Android 开发者学习开发 iOS 应用。这听起来很奇怪,但值得一试,原因是:扩宽知识面可以帮助你在自己的领域中更加深入。
“如果你做了一些事,并且做好了,那就应该去做一些其它美好的事情,不要拖延太久。只是要弄清楚接下来要做什么。”—史蒂夫·乔布斯
不扯远了,回到主题。我为自己写了一个月的计划,然后开始了我的学习之旅。当然所有学习资源都是免费的。
从 Swift 开始
你也可以学习 Objective-C,但我真心推荐你从 Swift 开始。它很友好而且易学。
我最先在苹果官方资源获取学习资源。通读基本概念,然后在 XCode 中着手尝试那些代码。
此外,你可以试试 Udacity 上的 Swift 学习课程。虽然网站上说需要 3 周,但实际可以在几天内完成(甚至几小时)。
我花了一周学习 Swift。如果你有时间,可以去看看下面这几个资源:
使用 UIKit 绘制应用界面
现在来到可视化部分。UIKit 使工作内容在 iOS 上呈现,并与 iOS 设备互动。
我在 Udacity 上搜索免费的 UIKit 基础课程。
起初,我觉得 iOS 自动布局非常奇怪。在开发 Android 应用的时候,我通常在 xml 文件中布局界面,其结果是可以看到的,几乎不需要使用拖放功能。然而 iOS 完全不同。我花了一些时间,通过实践了解自动布局机制之后,我学到了超越常规 Android 设计风格的东西。
此外,在 XCode 中制作屏幕过渡只需要向 Storyboard 中拖入它们的连接,这在 Android 需要一些代码才能实现。
你可以探索其各种不同的特性。
而且,你可以在 iOS Raywenderlich页面的“核心概念”中找到更多 iOS UIKit 教程。
理解 iOS 的数据持久化
熟悉 UIKit 之后,你可以向用户展示数据并从他们那接收数据。
下一步是存在数据,让用户即使在应用关闭后重新打开也能获得这些数据。意思就是把数据保存在用户设备的硬盘中,而不是远程服务器中。
iOS 应用中你有几个选择:
NSUserDefaults:键值对类型,就像 Android 中的 SharePreferences
NSCoding / NSKeyedArchiver:在兼容类和数据持久之间进行序列化并通过 NSUserDefaults 保存到文件系统中
Core Data:iOS 超强大的框架
其它:SQLite、Realm 等
与 Core Data 相比,现在很多 iOS 开发者都更喜欢 Realm。不过我推荐学习 Core Data,因为它是 iOS 官方推出的持久化框架,只要你理解了它的核心结构和实现,就可以举一反三。
我曾经使用过的资源包括:
iOS 数据持久化和 Core Data
一些 Core Data 教程
NSCoding/NSKeyedArchiver
iOS 通过网络与外界接触
我们生活在互联网时代,所以你的应用应该开放并与外界交换信息。现在进入下一课:iOS 网络。在这里学习 iOS 中的 REST API。有一件很重要的事情要记住:这时候你不能使用任何第三方库。我们将使用 iOS 内建的框架来完成这个课程。
将来你有很多机会用到炫酷的网络库,比如 Alamofire,但我们现在应该先学习基本的知识。
推荐的课程和教程:
NSURL Protocol 教程
NSURL Session 教程
基本网络课程
构建第一个应用
“光知道是不够的,我们要应用知识。”—达·芬奇
经历了 iOS 自学之旅之后,你手头会有很多工具。你会使用 Swift 编程,会使用 Storyboard 和 UIKit 绘制 iOS 应用界面草图,会把数据保存到设备的存储器中,还会使用 iOS 网络技术通过互联网与世界进行信息交换。
你很棒,亲。来构建你想要的一切。
开发者创建酷且有价值的东西,给全世界的人们带来便利。你可以试着构建 iOS 应用,改善你的日常工作,帮助你的小伙伴解决难题。最后,我推荐你把它发布到苹果应用商店。它能时刻激励你前行。
3 年前,我在 Google Play 上发布了我的第一个 Android 应用(一个笔记应用),这是学习 Android 一个月的成果。1 年前,我在苹果商店发布了我的第一个 iOS 应用,也是在一个月的自学之后。它们一开始都不太好,但它们让我一天比一天更有动力。
我相信你能做得比我更好,来创造一些东西,然后展示给整个世界吧!
说明:可以通过 Google 搜索到大量不错的资源。上面提到的教程的课程只是我的最爱。