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