[譯] 如果只有一個月入門 iOS:我該如何學習呢?

Gocy發表於2017-03-16

如果只有一個月入門 iOS:我該如何學習呢?

[譯] 如果只有一個月入門 iOS:我該如何學習呢?

圖片來源:unsplash.com/@firmbee

直到去年,我一直都在從事 Android 平臺的開發。當時,我對 iOS 開發沒有任何的概念,甚至從來沒有用過 Apple 的產品。但這一切都是過去式了,現在我已經能夠同時進行 iOS 和 Android 應用的開發了。

今天再回顧過去的學習時光,我想分享一個由我自己總結出的一個月入門 iOS 開發的課程大綱。
依我個人的經驗,我非常推薦 Android 開發者學習 iOS 應用開發。儘管這聽起來怪怪的,但別誤解我。因為:廣泛地涉獵能夠讓你在自己的領域有更深的見解。

“如果你做出了些成果並且收效不錯,那麼你應該投入到創造下一個美妙的東西中去,不要在已有的成果上沉浸太久。弄清楚下一個目標就是了。” - Steve Jobs

回到正題,就從我自己制定的一個月學習計劃講起,放心,文中所有的資源都是完全免費的。

Swift 入門

你當然也可以學 Objective-C 但我強力推薦你學習 Swift。它非常的友好並且易於上手。(譯者注:國外的 Swift 氛圍相對較好,如果是國內的話請仔細斟酌首學語言)

我第一個訪問的網址就是蘋果官方資源。通讀那些基本概念並跟著文件在 Xcode 中進行實踐吧。

除此之外,你也可以試試 優達學城的 Swift 學習課程。儘管網站上說你大概要花三週時間進行學習,但其實你幾天(每天幾個小時)你就可以完成那些課程了。

我大概花了一週時間學習 Swift。而如果你的時間充裕,也可以看看下面的資源:

用 UIKit 來繪製應用介面

接下來讓我們看看有趣的視覺部分。UIKit 能讓你的程式在 iOS 裝置上進行展示和互動。聽著不錯,不是嗎?

當時我在優達學城上搜尋相關的免費課程,我還真找到了 - UIKit 基礎課程

起初,iOS 的 Auto Layout 讓我頗感困擾。因為在開發 Android 應用時,我都是通過 xml 檔案來實現介面並視覺檢視的,幾乎從來沒有用過拖拽擺放(drag-and-drop)的方法。但在 iOS 上,這個過程完全不同。
在花了一些時間去實踐、理解 Auto Layout 的機制之後,我發現我學到了一些日常 Android 設計風格之外的新東西,這太棒了。

除此之外,你還可以在 Xcode 的 Storyboard 中簡單地拖動、連線兩個檢視(screen),就能完成檢視轉場,而在 Android 這隻能由程式碼完成。

你可以探索的特性還有很多。

另外,你還可以在 Raywenderlich 的 iOS 目錄 下的“Core Concepts”板塊找到更多有關 iOS UIKit 的教程。

理解 iOS 的資料持久化

當你熟悉了 UIKit 之後,你就可以向使用者展示資料並從他們那獲取資料了。很棒吧。

下一步就是將資料儲存起來,這樣即便應用關閉了,使用者下次使用依然可以獲取到這些資料。這裡我的意思是將資料儲存在使用者的裝置上,而不是遠端伺服器。

在 iOS 應用中,你有以下幾個選擇:

  • NSUserDefaults : 一種鍵-值形式的儲存,與 Android 中的 SharePreferences 相似
  • NSCoding / NSKeyed​Archiver : 將相容的類與資料表示互相轉換,並儲存於檔案系統(File System)或 NSUserDefaults 中
  • Core Data: iOS 的功能強大的框架
  • 其它: SQLite,Realm 等等。

儘管當下許多 iOS 開發者都更願意使用 Realm 而非 Core Data,但我還是推薦你學習 Core Data,因為它是 iOS 官方的持久化框架,當你理解了它的核心架構和實現方式後,你將如虎添翼。(譯者注:關於 SQLite,Realm 還是 Core Data 的爭論一直沒有停過,建議初學者都瞭解一下,根據實際專案需要進行選擇)

我所參看過的資源包括:

利用 iOS 網路連線來與世界互動

我們生活在網際網路時代,所以你的應用理應能夠與外界互聯並與他人進行資料交換。讓我們進入下一課:iOS 網路連線。你要學習如何使用 iOS 中的 REST API(譯者注:REST - REpresentational State Transfer)。在這個階段,請你一定不要使用第三方的庫。讓我們用 iOS 內建的框架來完成這部分的內容。

在日後的開發中,你將有許多使用諸如 Alamofire 這樣酷炫的 http 網路庫的機會,但我們現在是在學習呢。在嘗試那些高深的東西前,我們要先了解官方提供的基礎知識。

我推薦如下的課程和教程:

創造屬於你的美妙應用

“瞭解是不夠的。我們必須運用”。 - Leonardo da Vinci

在進行完上述的學習之後,你已經有豐富的知識儲備了。你可以用 Swift 程式設計,用 Storyboard 和 UIKit 來構建 iOS 應用介面,在本地裝置儲存資料,並利用 iOS 網路連線來於外界交換資訊。

太棒了大兄弟。放手去實現任何你想到的東西吧!

我們開發者,創造又酷又富有價值的工具來讓這繁複的世界變得簡單。所以,你可以試著做一個改進你日常生活的應用,幫助你的家人,甚至是解決全球性問題。最後,我建議你將應用釋出到 Apple Store 上。這將給予你正反饋並有助於你堅持下去。

三年以前,我在學習了 Android 一個月後,在 Google Play 釋出了我的第一個 Android 應用(是一個作筆記的應用)。一年前,我同樣在自學一個月後在 Apple Store 釋出了我的第一個 iOS 應用(一個天氣應用)。它們一開始都簡單粗糙,但卻時刻激勵著我繼續前進的腳步。

我打賭你能做得比我更好。所以,讓我們去創造一些值得向世界炫耀的東西吧。

注意: 你可以通過 Google 搜尋到許多其它優秀的資源。上文中提到的教程和課程僅僅是我的個人推薦。

希望這篇文章能夠給你帶來幫助。

相關文章