如果只有一个月的时间学 iOS 开发,我们该做些什么? 已翻译 100%

oschina 投递于 2017/03/09 15:41 (共 7 段, 翻译完成于 03-10)
阅读 3696
收藏 95
5
加载中

Exactly one year ago, I had been working as an Android developer. At that time, I did not have any knowledge about iOS programming, even I had never used any Apple products. It, however, was in the past, I have been developing both iOS and Android apps in parallel.

Today, after looking back, I want to share the syllabus of iOS programming course that I created by myself for one-month studying. 
In my personal experience, I really recommend that Android developers learn to develop iOS apps. It sounds weird but don’t get me wrong. There is a reason: Expanding your knowledge widely helps you to go deeper in your field.

“If you do something and it turns out pretty good, then you should go do something else wonderful, not dwell on it for too long. Just figure out what’s next.”?—?Steve Jobs

Coming back to the main topic, I started by writing my own schedule for one month, and of course, every resources were completely free.

已有 1 人翻译此段
我来翻译

Get started with Swift

You can learn Objective-C instead but I really recommend that you go with Swift. It is a friendly and easy to learn.

Apple official resource is the first place I visited. Read through basic concepts and get your hand dirty by coding them along on Xcode.

Besides, you can try Swift-learning course on Udacity. Although the website said that it will take about 3 weeks, but you can complete it in several days (several hours/days).

In my case, I spent one week on learning Swift. So, if you have time, there are several following resources you can explore:

已有 1 人翻译此段
我来翻译

Draw your app interface with UIKit

Let’s move to a visual and interesting part. UIKit helps your work to be seen and interacted on iOS devices. It sounds good, doesn’t it.

In my case, I went to search for a free course on Udacity. Fortunately, I found it. UIKit Fundamental Course

At first, iOS Auto Layout was quite strange to me.The reason was that when developing Android apps, I used to implementing its interface via layout xml files and saw the result visually, almost never used drag-and-drop features. iOS, however, is totally different. 
After spending a while on practicing to understand Auto Layout mechanism, it was pretty awesome that I learnt something else beyond usual Android design style.

Besides, in Xcode, you can make transition between screens by just using dragging their connection in Storyboard, while Android requires some lines of code.

There are various features that you can explore.

Furthermore, you can check out more iOS UIKit tutorials in “Core Concepts” section of iOS Raywenderlich page.

已有 1 人翻译此段
我来翻译

Understand iOS data persistence

At the time you become familiar with UIKit, you can display data to users and retrieve data from them. It is great.

Next move is to store data that users can get them back even the app is closed. What I mean here is to keep data in user’s device hard drive but not in a remote server.

In iOS apps, you have several options:

  • NSUserDefaults : is a key-pair type that is similar to SharePreferences in Android)

  • NSCoding / NSKeyedArchiver : serializes compliant classes to and from a data representation and stores it in File System or via NSUserDefaults

  • Core Data : is iOS super-powerful framework

  • Others: SQLite, Realm, and etc.

Now many iOS developers prefer Realm over Core Data but I recommend to learn Core Data because it is the iOS official persistent framework and when you understand its core structure and implementation, you can move the mountain.

The resources that I went through includes:

已有 1 人翻译此段
我来翻译

Get in touch with outside world via iOS networking

We are living in internet era, so your app should connect with the outside world and exchange information with others. Let’s move to the next lesson: iOS networking. You learn to work with REST API in iOS. It is important thing to remember that you should not use any third-party libraries at the moment. Let’s complete this lesson in iOS built-in frameworks.

In the future you have a lot of chances to work with cool http networking libraries like Alamofire , but we are learning now. Going with basic and official things before swimming into others.

Recommended courses and tutorials:

已有 1 人翻译此段
我来翻译

Build your first awesome app

“Knowing is not enough. Let’s apply”.?—?Leonardo da Vinci

You have many tools in your hand after following your iOS self-studying journey. You can program in Swift, sketch iOS app interface by using Story board and UIKit, persist data on device’s storage, and exchange information with the world via internet by using iOS Networking.

You are awesome, man. Let’s build whatever you want.

We are developers who make cool and valuable stuffs to make our tough world easier. So, you can try to build iOS app that improve your daily work, help your little brother, or even solve a global problem. Finally, I recommend that you publish it on Apple store. It helps you feel good and keep going on.

已有 1 人翻译此段
我来翻译

3 years ago, I published my first Android app (a note-taking app) on Google Play after learning Android for 1 months. 1 years ago, I also published my first iOS app (a weather app) on Apple Store after 1 month self-studying. They were both simple stupid at first, but they kept me being motivated and improving day by day.

You are better and I bet on it. So, let’s create something and show it to the world.

Note: There are many good resources out there, you can pick them up by searching Google. The tutorials and courses above are just my favorite selection.

已有 1 人翻译此段
我来翻译
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接。
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
加载中

评论(13)

两说
两说

引用来自“18106755872”的评论

看第一段就知道是外国人写的。。。我想问原版在哪?
标题下边有标注原文链接😃
曾经蜡笔没有小新
曾经蜡笔没有小新
不错不错,先mark了
hahashiwo
hahashiwo
Core Data超级强大,做了多个APP,都用Core Data,感觉细节上要考虑的东西好多。但是它非常方便!
kernel64
kernel64
先得花钱把水果家的全套家伙事给买齐了
_龙的传人
_龙的传人
可以留个qq或微信吗,一起交流
_龙的传人
_龙的传人

引用来自“墨名次”的评论

两三天熟悉一下语法跟基础控件一般都可以直接做项目了,布局的话我喜欢用Masonry(oc)、Snapkit(swift)
哈哈,我也是从Android转学iOS开发,用的swift语言,我也觉得snapkit比官方的拖拽约束更好用,但是还是有些问题没搞通,继续碰壁中。。。
_龙的传人
_龙的传人

引用来自“墨名次”的评论

两三天熟悉一下语法跟基础控件一般都可以直接做项目了,布局的话我喜欢用Masonry(oc)、Snapkit(swift)
哈哈,我也是从Android转学iOS开发,用的swift语言,我也觉得snapkit比官方的拖拽约束更好用,但是还是有些问题没搞通,继续碰壁中。。。
墨名次
墨名次
两三天熟悉一下语法跟基础控件一般都可以直接做项目了,布局的话我喜欢用Masonry(oc)、Snapkit(swift)
朋克
朋克
一晚上试试基本的语法,第二天就可以干活了
FalconChen
FalconChen
可以啊,一个月精通了
返回顶部
顶部