1. 程式人生 > >4 個月學習 iOS 開發的經驗 (0基礎到上架 App Store)

4 個月學習 iOS 開發的經驗 (0基礎到上架 App Store)

文章開頭先說下上架的這款 App 吧,趕在春節前收到了 Apple 的稽核通過郵件,當時還是挺高興的,算是對自己4個月學習的肯定。開發這款 App 原因很簡單,只是因為自己經常忘記下雨拿傘。期間 UI 設計改了好多次,程式碼也重寫了幾次,最後的成品基本滿足自己的心裡預期,為了趕在春節前上架,有些 Bug 還沒有處理,1.1版本目前已經提交, UmbrellaWeather 這款 App 差不多長這樣:

1185026-7f3a8bf0e30cd75a.png

我是從去年 9 月下旬開始學習 iOS 開發的,作為一個 0 基礎並且英語也不怎麼好的人,學習程式設計首先當然就是興趣,因為自己已經在工作了,每天都是抽出空閒時間學習,從學習到第一款 App 上架 App Store 差不多4個月時間,這裡我給出一些自己的學習過程和經驗

從 RAY 的第一個教程開始

1185026-865cad78c6392a6d.png

tutorial1

我是從 RAY 的第一個開發 APP 的教程開始了我的學習,這個教程的第一個專案很簡單,程式碼非常少,讓我對 iOS 開發有了基本的瞭解和認識,瞭解 Xcode 的使用,當然裡面有些地方當時還不是很能理解,而且本來英語就不怎麼好的我來說,看起來還是非常吃力的。在這個過程中,我既鍛鍊了自己的英語水平,又對 iOS 的開發有了一個基本瞭解和認識,後面在圍繞著一些疑問學習,會起到很好的提高作用。

學習 Swift 語言

有了開發一款 APP 的學習經驗,在看 Swift 語言,很多地方都會有豁然開朗的感覺,我感覺這種方式是學習一個新知識最好的過程。Swift 語言建議細讀,並且配合 Xcode 的 Playground 全部敲一遍,儘量做到理解。對於 0 基礎的我來說,在學習 Swift 語言的時候,很多概念還是有些困惑。不過學習過程就是這樣,明白了一個知識點,馬上有新的知識點需要了解,就是這樣一個循序漸進的過程,在這個階段我對程式語言的字串、變數和常量、集合型別、迴圈方式以及類和結構體等內容有了基本的認識。必須要說的是,Swift 語言是後面學習經常回頭看的內容,因為在後面的學習中,很多不明白的地方,結合當時的專案,馬上就能理解其中的含義,畢竟在專案裡面的使用才是理解問題的最好方式。

網路教程

網上免費的 iOS 開發教程還是挺多的,這個階段我主要是把 iOS 的一些基本框架了解了一下,首先當然是 UIKit 的學習,把系統的基礎元件都過了一遍,例如UIButton、UILabel、Storyboard 等等內容。第二階段學習了TableView、ScrollView 這兩個核心元件的基本使用,還有頁面傳值的方法 delegate、Storyboard.

這裡再推薦一個國外免費 Swift 學習的網站,基本包括了所有常用元件和 API。

RAY 的剩餘三個開發專案

QQ截圖20160217143855.png

tutorials

在有了前面元件和語言的學習,剩餘三個專案的學習,就是融匯貫通的過程,因為前面只是學習了 <它是什麼?> 這裡通過 RAY 的教程瞭解 <如何巧妙的運用到專案中>, RAY 的 iOS 開發教程都是從簡單的實現到巧妙的運用邏輯整理程式碼的過程,這個過程可以很好的理解複雜邏輯和程式碼的實現方式和使用方法還有程式設計的邏輯思維能力。

第一個專案讓我對 傳值 TableView 有了更深的理解。

第二個專案是對於 定位 SDK 的系統學習還有各種錯誤的處理方式和思路。

第三專案是網路程式設計的學習,如何請求資料展現資料等。

這三個教程我做了很多筆記,可以說四個專案的開發學習主要就是讓我開始有程式設計的邏輯思維能力,這都是在學習的時候無形中提高的,這也是 RAY 的開發教程最大的財富所在,當然也大大提高了英語閱讀能力,雖然不能說有質的提高,至少是對 iOS 開發這塊的詞彙有了很深的記憶。

開發個人專案

在有了前面幾個專案的學習,我對 iOS 開發有了比較系統的瞭解,這個時候我開始了我的第一款 iOS 的開發。跟著別人學,和自己遇到困難想出解決方法並學習,這兩個學習方式還是很大區別的,第一個鍛鍊自己解決問題的能力並且印象更加深刻,第二個,實踐出真知,許多知識點也只有你真正實踐過,才更加明白其中的含義。

在開發這款 App 的時候我用的最多的當然是 Google 和蘋果的官方文件。必須要說的是,查詢資料不是查詢如何開發,而是在自己想到了點子的情況下,查詢程式碼的實現方式,然後實現,在這個專案中我對 Swift 開發語言有了更深的瞭解,還有資料持久化儲存和網路請求這一塊。

在實際開發過程中很多前面學習到的模糊概念這裡得到修正,可能前面你以為理解了的東西,發現好像不對或者說有點問題,因為只有在實際專案中出現 Bug 或者沒有達到預期效果,你才會回頭思考這個知識點是不是原來的理解有誤區。

在這個專案中,我使用了第三方遠端推送,也學習了推送的註冊和使用,iOS 的後臺機制,Animation 的簡單使用,專案的釋出過程和內購的實現等等,因為使用的是國內天氣 API 的免費服務,每天請求次數是有限制的,為了儘量減少使用者不必要的網路請求次數,優化請求次數也下了不少功夫,設計 UI 還簡單學習了下 Sketch 這款軟體的使用,整個專案最大的進步應該是自學能力的提高吧!

下步計劃

在第一款 App 專案的稽核階段,我已經開始了第二款 App 的開發工作,在專案的開發過程中,構思功能並且解決是學習 iOS 最好的方式,在接下來的學習計劃中,我準備把斯坦福的公開課視訊過一遍,研究學習透幾個 Swift 開源專案,這差不多是我後幾個月的學習規劃。

說說經驗

在學習前期,多看一些優秀的開發專案,是學習的最快和最有效的途徑。RAY 的這4個教程就起到這個作用,因為它會在教程中一步步告訴你實現的邏輯和方式,對於剛學習程式設計的人來說很好理解,如果對一些地方的實現方式有些困惑, Xcode 的 Playground 是最好的研究場所,沒事多在裡面敲敲程式碼,比什麼都強,學習程式設計並不像其他東西那樣你掌握了1在學習2這樣一階一階學習進步的,很多時候,1可能你還沒能理解,在學習3或者4的時候才對1豁然開朗,不要因為某個知識點沒搞懂就感覺自己學不來喪失學習熱情,很多地方都是瞭解了面才掌握了點,儘量多用 Google 不要怕看英語,不要忽視了英語的學習,這個也是學習程式設計必須提高的東西。

學一個新東西不要一開始就設定一個很大的目標,那樣可能很容易放棄,設定一個個小目標,比如今天我要搞懂類是什麼,明天我要了解下TableView ,這周我要了解UIKit基礎元件的使用,這個月我要開發出一個專案,這樣更能堅持和持續下去。

實踐出真知,實踐出真知,實踐出真知,重要的事情說三遍!


原文連結:http://www.jianshu.com/p/088c1a8c6af8