1. 程式人生 > >5個月iOS開發入門總結(C++轉行iOS)

5個月iOS開發入門總結(C++轉行iOS)

前言:一個人寫的ios轉行總結,思路很清晰,值得學習

原文網址:http://www.cocoachina.com/bbs/read.php?tid-332587.html

囉嗦(請跳過)
8月5號左右突然做出了來北京工作的決定,給北京同學瞭解情況時正好同學公司缺人,7號來面試了下,13號一早就來報到了。自己與iOS開發還是有些緣分,3月中旬到5月初在濟南一家小公司做了不到2個月的iOS開發(當初面試是做Android,但近來後iOS更急需,我想我這剛轉行都可以啦,就開始做了iOS;後來北京同學這開始也想做Android(抱著以後能學習學習Android原始碼的想法那時對Android情有獨鍾),不過同學這也是缺少iOS,於是就這樣定了吧)。



(現在想來,轉為開發iOS,也與我有些迷茫有關係。移動開發、滲透測試、機器學習,三個自己都投入過不少時間的方向,拿不定主意,就看找到哪個工作了。(或許面試我的人能看出我是否適合那個方向哈))。

3月中旬到5月初,接近兩個月時間。
(中間兩個月做夢O2O創業去了,夢醒後就8月份了)
8月13號到今天(11月18日),3個月多點。
總共5個月了,感覺自己iOS開發算是入門了,總結總結,最後也計劃計劃。

前言
在 Windows 平臺用 C++ 開發了 5 年客戶端,平時喜歡看書且信書,第5年了就想著跨界一下,看到一本《MacTalk人生超程式設計》……從此邁入了 Apple 的大門。

此文主要總結下,我這5個月如何從 Windows C++ 開發轉到 iOS 開發。


準備
資訊
《MacTalk人生超程式設計》,讓我對 Apple 有了第一次認識(以前只知道喬布斯)。(這本書我是2014年買的)
硬體
MacBook Pro 15寸 非頂配,我是從小悶的水果店買的港版。(現在公司用的13寸+外接顯示器,感覺13寸也不錯。)(2014年底購買)
iPhone 4S,從閒魚上700塊錢買了的二手的。(從來沒有用過Apple的產品,為了讓自己熟悉iOS系統的操作)(2015年3月份開始做iOS開發後買的)
滑鼠。前期還是配個滑鼠,否則不習慣。慢慢習慣了觸控板就很少用滑鼠了。
軟體
Xcode,使用AppStore安裝。
搭建一個Mac開發環境,推薦看這個文章 https://aaaaaashu.gitbooks.io/mac-dev-setup/content/

學習
第一階段:基礎
這個階段大概用了一個星期,遇到的問題百度都能很快找出來。

1. 《馬上著手開發 iOS 應用程式》
英文是 Start Developing iOS Apps Today。

首先看了這份官方提供的教程,手把手教程。邊看邊做,完成後信心大增。

2. 《Objective-C 程式設計》
我看的第四版,大概兩天的時間,從頭到尾瀏覽了一遍。類和Foundation部分照著寫了一些例子程式熟悉語法。

3. 《iOS開發指南:從零基礎到AppStore上架》
看的第二版。書中雖然步驟很詳細,從頭到尾看快速瀏覽了一遍,前幾章的挑了一些例子,一步一步完成了,熟悉了開發套路後,後面章節的小專案,跟著做出來。大概花費了3、4天時間。之後就是邊開發邊看書了。

4. iOS程式碼寫介面
主要是看的這篇文章,http://www.cocoachina.com/bbs/read.php?tid=131516

第二階段:真正開始開發
這個階段前後加起來算是最長時間,大概4個多月吧。

5. 熟練控制元件
UITableView
UIScrollView
6. CocoaPods
基本使用
7. 熟悉常用的幾個庫
這些庫基本上都是開發必用的了。

AFNetworking 很出名的網路庫
Masonry 方便的手寫自動佈局
MBProgressHUD 等待進度
MJRefresh 下拉重新整理
JSONKit JSON解析
SDWebImage 非同步載入圖片
8. 幾個概念
GCD
KVC/KVO
MVC
NSCoping
NSCoding
開發者賬號的類別
開發證書、生產證書、推送證書
描述檔案
9. Xcode外掛
先安裝外掛管理器 http://alcatraz.io/

FuzzyAutocomplete 程式碼自動完成的模糊匹配
XToDo 查詢程式碼中的TODO標記
KSImageNamed 程式碼中寫[UIImage imageNamed:]時可預覽圖片
XVim VIM模式
VVDocumenter-Xcode 按///產生註釋
XBookmark 書籤功能(我習慣用書籤功能,以前用VisualStudio時的習慣)
ColorSenseRainbow 程式碼中方便預覽顏色
10. 幾本書
《精通iOS開發》 補充概念,工具書。
《iOS開發進階》 頁數不多,但很實用。
《Effective Objective-C 2.0》 小經典
11. 常用網站
Code4App
CocoaChina
GitHub
第三階段:深入
給一個App的需求,自己能自信的說沒問題了。應該進一步深入的強化下自己的知識了。

12. 崩潰獲取及分析
PLCrashReporter
分析崩潰
13. 持續整合
fastlane 是一個工具集合,各種iOS開發的流程,甚至App自動截圖。
fir.im 很好的解決了App內測分發。老闆想看看最新開發中的App,給他一個連結就OK了。
Jenkins 強大的持續整合系統,配合 fastlane 和 fir.im 方便的自動化整個打包、上傳過程。
14. CocoaPods
如何自己建立庫
15. 一些更深一步的概念
Method Swizzing :以前做Windows Hook,Objective-C也有啊,概念總是相似的。
訊息轉發機制
Toll-Free Bridging
關聯物件
Bitcode
Objective C++
16. 原始碼學習
Masonry
UITableViewCell-Auto...
MBProgressHUD
MJRefresh
看到一些不錯的效果,有原始碼就看一看
17. 單元測試
Specta/Expecta
Kiwi
18. MVVM
ReactiveCocoa
19. 幾本書
《Objective-C程式設計之道》主要是學習思想。還沒看完。
《大話移動APP測試,Android與iOS應用測試指南》從測試的角度反思下開發。
20. 文章
招聘一個靠譜的iOS http://blog.sunnyxx.com/2015/07/04/ios-interview/
答案 https://github.com/ChenYilong/iOSInterviewQuestions
第四階段
這一階段是我的計劃。過去5年自己一直做安全產品,對安全總是情有獨鍾,現在做iOS開發了,肯定不能少。書已經買好等著我看啦。

21. 繼續深入
各種特效
各種動畫
各種介面
22. 安全
《iOS應用逆向工程》
《iOS應用安全攻防實戰》
《深入解析Mac OS X & iOS作業系統》
總結
以上是我這幾個月的iOS學習經歷,可能有遺漏,分享給大家,希望能幫助到其他C++轉iOS的同行們。

如有不正確的地方,請指正。