① iOS 開發怎麼入門
一、
准備工作
1. Mac、iOS設備、開發者賬號
這些是做iOS開發必須要有的,而且是一大筆錢,但不要怕花錢,因為這些都是值得的。如果能夠學有所成,一兩個月的工資基本就回本了。就當是自己交的一筆「培訓費」吧。
2. 心態上的准備
如
果你是零基礎轉行iOS,那麼一定要有破釜沉舟的勇氣和決心,並做好打持久戰的心理准備。如果畏手畏腳、瞻前顧後,我勸你還是想好了再來,免得浪
費時間和金錢。我當初收入很低,是拿了3個月的工資買的Macbook,還天天擔心丟了或者弄壞;後來學習到小有所成時毅然選擇了裸辭,孤身一人來到陌生
的上海,經過2個月的待業狀態才找到工作。這一路走來都承受著巨大的精神壓力和物質壓力。
二、
學習路線
1. 對編程的基本認識
如果你是完全的零基礎,我建議先要對編程有個基本的認識。建議從C語言入手,因為C語言比較簡潔易上手,並且和Objective-C很相似。
視頻推薦網易雲課堂的
「計算機專業體系」課程,很適合入門。
書籍的話,推薦《C
Primer Plus》。
2. Objective-C語言學習
當對C語言有個大致的了解後,就可以開始學習Objective-C了。
推薦書籍:
《Objective-C基礎教程》
《Objective-C程序設計》
註:這兩本內容都差不多,但《Objective-C基礎教程》寫的更好、更經典,建議以這本為重點精讀。但是這本寫的比較籠統,難度稍高,所以如果遇到不懂的地方就看看《Objective-C程序設計》,這一本寫的簡單、詳細一些。
需要掌握並熟練運用的地方:
1) 面向對象編程的基礎知識。包括:面向對象與面向過程的區別、為什麼要面向對象編程,類、對象、繼承、方法、屬性、介面等概念的理解與使用。
2) Foundation框架。主要是NSString類、NSArray類、NSDictionary類、NSNumber類、NSRange類的熟練運用。
3) 內存管理MRC、ARC的原理,委託delegate、協議protocol、類別category、塊block的理解與使用。
3. iOS SDK/Cocoa Touch學習
有了Objective-C基礎,就可以開始邊看斯坦福公開課邊做APP了(個人覺得沒有OC基礎直接看這個會很吃力)。視頻如下:
斯坦福大學公開課CS193P《iOS7應用開發》(Objective-C語言)
斯坦福大學公開課CS193P《iOS8開發 》(Swift語言)
推薦書籍:《精通iOS開發》
第一個iOS應用:
蘋果官方有個做iOS應用的教程——《馬上著手開發iOS應用程序(Start
Developing iOS Apps Today)》。強烈建議以這個Demo作為你的第一個iOS應用,因為這個教程能讓你對一個iOS應用的搭建有個非常全面、細致的認識。完成了這個Demo後,就可以結合斯坦福公開課學到的東西創建屬於你自己的APP了。
需要掌握的地方:
1) MVC設計模式。只有理解了iOS的MVC架構,才能把一個應用解剖成一個個單獨的部分,這樣你在開始做一個項目的時候才不會茫無頭緒。
2)UIKit的各種控制項。特別是UITableView和UICollectionView一定要掌握,因為大部分的iOS應用都是由這兩種視圖搭建,吃透了它們那可玩的花樣就很多了,其樂無窮。
3) 導航控制器UINavigationController和選項卡控制器UITabBarController。同上,這兩個控制器也是絕大多數iOS應用UI框架的根基,也是多個MVC協同工作的最典型例子。
4) 場景切換的實現——Segue。熟練使用Segue很重要,因為一個應用一般都是各個界面輪流出現的,兩個界面之間怎樣實現跳轉、怎樣將一個界面的數據傳遞到下個界面,這都是實際開發中會遇到的問題。
5) Storyboard和AutoLayout的使用。這兩者是一個應用的UI界面設計不可或缺的部分。
6) 其它iOS高級編程。包括:數據存取CoreData/SQLite、多線程GCD、繪圖CoreGraphics、動畫CoreAnimation、網路編程、手勢Gesture、多媒體AVFoundation等等,這些內容都可以實際用到時再深入學習。
7) 第三方庫的使用。參考:GitHub 上都有哪些值得關注學習的 iOS 開源項目? - 編程
4. 堅持寫代碼、查文檔、讀技術博客
學習編程,一定要勤於動手,看再多的書、再多的視頻,如果不動手敲代碼都是白搭。哪怕書上和視頻上的代碼你一行都看不懂,也要親手把代碼敲一遍、把Demo親自實現一遍,這很重要。編程是手敲會的,不是眼睛看會的。
學習iOS開發的過程中,有遇到不懂是正常的,別害怕不懂,Cocoa的內容細節本來就多,每年的WWDC還會發布一些新技術。所以遇到不懂的知識一定要學會查蘋果官方API文檔:iOS Dev Center
做APP時,如果一個地方不會實現,或者遇到解決不了的問題,一定要學會使用Google搜索。一般來說,初學iOS遇到的問題,Stack Overflow上都有類似的提問,基本一搜一個准。
此外,CSDN等一些技術博客上的文章也很有參考價值。推薦一些優秀的iOS技術博客——中文 iOS/Mac 開發博客列表:tangqiaoboy/iOSBlogCN · GitHub
三、寫在最後的話
如
果你能按照以上所述做出一個APP上架並找到工作,那也基本算是入門了。但這並不是終點,這只是一個新的起點。iOS開發,乃至整個計算機/互聯網行業,
後面的路還很漫長。蘋果的整個Cocoa框架,可謂是博大精深,裡面可以深挖的東西太多了;而且一個程序、一段代碼可以進行的優化是沒有止境的。作為開發
者,只會一門語言是不夠的,網路編程、資料庫、演算法、設計、交互等等東西都是需要掌握的,而語言只是實現這些的工具,語言其實是最簡單的。
此外,如果你和我一樣是非科班出身,還需要把計算機基礎課程補回來,即:數據結構、演算法、操作系統、資料庫、計算機網路、編譯原理等。因為這些知識是你的「內功」,這些基礎直接決定了你在這個領域的天花板所在的位置。
當
然,基礎差一點也問題不大,最重要的是你對計算機、互聯網的熱愛和熱情。你需要有很強的自學能力,不斷地去學習新知識,才不會被這個日新月異的行業淘汰;
你需要保持一顆好奇心,不斷地嘗試和接受新事物,不斷地創新,守舊的人在這個行業無法生存。在我找工作的過程中,那些知名的大公司都是直接在簡歷關就將我
刷掉了,而那些給我Offer的公司,無一例外都表示,之所以選擇我是因為欣賞的我的熱情、看重我的自學能力。
所以,如果你和我一樣對iOS開發充滿熱情,敢於接受挑戰,那麼就從現在開始努力吧,我在前方的路上等你!
② 鎵嬫満娓告垙寮鍙戱細浠庡叆闂ㄥ埌綺鵑
褰撲粖鎵嬫満娓告垙鐨勪富嫻佸鉤鍙版槸iOS錛堣嫻鏋滐級鍜孉ndroid錛堝畨鍗擄級錛屽畠浠鍒嗗埆浣跨敤涓嶅悓鐨勫紑鍙戣璦銆傚逛簬鎯寵佹姇韜娓告垙寮鍙戠殑浣狅紝榪欓噷鏈変竴浜涘緩璁錛屽笇鏈涜兘鍔╀綘鍦ㄦ墜鏈烘父鎴忓紑鍙戠殑閬撹礬涓婅秺璧拌秺榪滐紒
👨💻鎵撳ソ緙栫▼鍩虹
鎯寵佹垚涓轟竴鍚嶄紭縐鐨勬父鎴忓紑鍙戣咃紝鎵撳ソ緙栫▼鍩虹鏄蹇呬笉鍙灝戠殑銆侰璇璦鏄鍏璁ょ殑鍏ラ棬濂介夋嫨錛屽畠涓嶄粎鍔熻兘寮哄ぇ錛岃屼笖鎸囬拡姒傚康鏄疌璇璦鐨勭簿楂擄紝闇瑕佽姳鏃墮棿鍘繪帉鎻°
📱閫夋嫨寮鍙戝鉤鍙
鏍規嵁涓浜哄枩濂斤紝濡傛灉浣犲嚲鐖辮嫻鏋滆懼囷紝閭d箞鍙浠ュ︿範C++錛涜屽傛灉浣犳洿鍊懼悜浜庡畨鍗撳鉤鍙幫紝閭d箞Java灝嗘槸浣犵殑涓嶄簩涔嬮夈傝繖涓ょ嶈璦鐨勫︿範閮介渶瑕佷笅鑻﹀姛澶銆
🎮娣卞叆瀛︿範鎵嬫満娓告垙寮鍙
鍦ㄨ璦鍩虹鎵撶墷涔嬪悗錛屼綘鍙浠ュ紑濮嬪︿範寤烘ā絳夋墜鏈烘父鎴忓紑鍙戠浉鍏崇殑鐭ヨ瘑浜嗐傛繁鍏ュ︿範鎵嬫満娓告垙寮鍙戱紝鎺屾彙娓告垙寮曟搸銆佸浘褰㈠︺佺墿鐞嗗︾瓑鐭ヨ瘑錛屾墠鑳芥垚涓轟竴鍚嶇湡姝g殑娓告垙寮鍙戝ぇ甯堛
③ iOS 開發的中英文入門推薦書籍都有哪些
我簡單介紹一下我那時學習參考的書籍。希望對你有幫助。
1.
Sams Teach Yourself iOS 5 Application Development in 24 Hours
Sams Teach Yourself iOS 6 Application Development in 24 Hours
我學習的時候只有ios5版本。這本書是我見過的最好的ios入門書籍,沒有之一。概念介紹清晰(初學者不該懂的概念絕對不廢話);實踐性強;節奏適當。不誇張地說,這本書看了2/3,我已經能做一個app了。(當然功能有相對的局限性,而且還有一些細節問題需要解決,但主要在設計美工環節。事實上,我的第一個app就是完全看完這本書後做的。)
這本書的缺點只有一個:對於OC語言的介紹不夠充分。如果之前沒有接觸過程序設計語言可能有點兒麻煩。但是對於有編程基礎的人來說不是問題。如果遇到語言問題,可以和《Learn Objective-C on the Mac》一起看。(見下介紹)
2.
Learn Objective-C On The Mac 2nd Edition
我忘記了我看的1st Edition還是2nd Edition了。不過OC變化不大,沒有影響。這是介紹OC語法的書。建議邊學ios開發邊看。我不建議一下子只扎進oc中,而棄ios sdk不顧。
3.
Beginning IOS 5 Development
Beginning iOS 6 Development : Exploring the iOS SDK
我當時看的是ios5版本。事實上,我一上來就看這本書,後來發現這本根本不適合入門!因為在ios5的時代,這本書介紹的方法依然是ios4的(比如不用storyboard)!我有很多朋友都企圖用這本書入門,但最後都失敗了。但是我依舊建議看完《Sam》後看看這本書。因為介紹了很多更細節的東西,而且也很有用(比如用代碼控制界面、控制界面的轉移、包括Core Data,Media相關的一些高級內容等)!在入門的基礎上看完這本書,對ios開的理解能上一個層次。
4.Pro iOS Table Views : for iPhone, iPad, and iPod touch
非常非常推薦的一本書。前面說的基礎書籍對tableView的介紹是不夠詳盡的。但是tableView在ios應用開發中是非常重要的一塊(至少我做的app都比較依賴tableView)。吃透這本書,tableView基本完全不成問題了。再次吐血推薦!(看完這本書,大多數應用類app都敢做了。)
5.
Beginning iPad Development for iPhone Developers
雖說是一本介紹ipad的書,但其實看完sam加上自己的實踐,製作universal的app不是什麼難事。ipad也沒那麼特殊。不過這是一本非常好的介紹
ios graphics capabilities的書!這本書會帶你完成一個簡單的繪圖app,之後你基本能夠熟練地使用ios的graphics相關功能了。(註:和Quatrz;Cocoa;OpenGL ES的Graphics不是一回事兒。)
6.
Programming iOS 5 : Fundamentals of iPhone, iPad, and iPod touch Development
Programming iOS 6
非常厚。比之前介紹的書都厚。而且都是干貨,所以讀起來也慢。我當時看ios5版本。這本書比較全面地介紹ios。建議徹底入門了,甚至已經做出幾個app了以後翻看。可以學到很多沒有注意過的細節;或者沒有用到過的features。雖是個大部頭,但是強烈推薦。
7.
Pro Multithreading and Memory Management for iOS and OS X : with ARC, Grand Central Dispatch, and Blocks這是關於ios多線程和內存管理的入門書籍。這部分內容比較深,其實普通開發者可以不完全理解這些機制了。尤其是ios5有了ARC之後。我基本翻完了這本書,但是對於其中的一些東西理解的不透徹(尤其是Multithread部分)。不完全推薦,但感興趣的同學可以看看。
8.Beginning iOS Game Development
這本書非常基礎。如果你已經入了門,讀這本書簡直輕而易舉。我花了一個下午的時間翻完這本書。主要是想學習一下ios動畫相關的內容。裡面只有很少的幾章涉及了相關內容,但是對於一些基本功能的實現已經夠了。如果想了解更多ios動畫的內容,還是需要到網上去找。我沒有找到很好的圖書資料。
這就是我完全看過的書。還有一些書覺得應該不錯,但是一直沒有時間看。而且等入了門,實踐的動力遠遠大於看書學習的動力,所以查文檔越來越多。希望能夠幫到你,也希望能得到大家指正。
最後,我的apps見個人主頁:http://liuyubobobo.com,都是很簡單的app,希望和大家交流。
編輯於 2014-03-16 31 條評論 感謝 分享 收藏 • 沒有幫助 • 舉報
臧其龍,弱者不扶,誰其懷德,強者逃罰,誰其畏威
丁炯、Fisland、mons 等人贊同
我寫過一篇專門推薦的iOS開發書單.
1.<iOS By Tutorial>系列.
Raywenderlich出的一些列圖書,內容從低到高都有,而且內容秉持了一貫的高質量風格,從5,6,7,8都推薦大家看.我是買了7和8的正版.真的非常不錯,不錯到我甚至想入手紙質版的.當然,價格是不太親民的了.(大概五六百左右).
2.<Swift By Tutorial>
3.<Core Data By tutorial>
上面的都是raywenderlich出品.有一個special offers.有錢的可以買一套.
我在raywenderlich上購買的
4.《iOS 6 Programming Pushing the Limits》和《iOS 7 Programming Pushing the Limits》系列.
高手向,講的內容比較貼近實際工程,而且涉及很多代碼優化和項目經驗等.非常贊.這個系列有引進的中文版,在京東上有賣.
5.<Swifter>
貓神<onecat>出的一個Swift的書,主要是面向對swift比較熟悉的人.類似tips的一些swift書寫經驗.
6.<iOS開發進階>
巧神出的書,多的不說,非常贊.京東有賣.
7.<iOS Core Animation>和<iOS Animation Cook book>
兩本介紹CoreAnimation的書,看完基本上一般交互動畫不在話下.
8.<CollectionView Complete Guide>
看完各種Custom layout布局隨意寫.怎麼自定義刪除添加cell動畫
,怎麼切換layout的動畫,如何寫3D效果的layout等等等.
9.<CFHipsterRef>
Mattt大神(AFNetWorking作者)寫的書,介紹Objective-C底層知識的,如果相對OBjective-C一些底層實現感興趣的話可以入手.
10.<Motion Design For iOS>
前不久買的一套,講交互動畫的,對動畫感興趣的可以入手.
11.<iOS Auto Layout Demystified>
詳細講解自動布局的,話說光寫自動布局能出一本書,我確實也沒想到.
12.<Functional Programming in Swift>
如何用swift進行函數式開發.
13.<圖解TCP/IP>
講解簡單易懂.
14.<啊哈!演算法>
講演算法的,感覺沒計算機基礎的看起來都不費力,而且內容也很豐富.
15.<Effective Objective-C 2.0>
這本不多說了吧,神書.進階必備.
16.<OpenGL ES應用開發實踐指南>
買這本純粹是因為跟自己工作有關系,我是做相機的嘛.對圖形圖像這塊感興趣的可以入手.講的一般.不過有基礎的翻翻就行了.
最後說一句,有能力的話大家還是買正版吧,按照程序員的收入說實話買幾本書根本不是問題.而且對自己的幫助也是立竿見影的.(話說有人願意花幾千買件衣服,不願意花50買本書.真是無法理解.)