ios程序猿攻城策略

這也是一個面向對象的問題,做爲實例對象的你須要一步一步去攻城拔寨。待各處插滿了本身的旗幟,回過頭來,你會感謝一路走來的本身!html

1、入門  ios

面向對象編程基礎(類和繼承,變量和方法的做用域,MVC基本概念,分類)git

方法和函數(消息,類定義和屬性,與C/C++的混合編程)github

內存管理(strong/weak, ARC自動引用計數,自動釋放對象)編程

代碼設計模式(Block塊語句,Target/action,協議)設計模式

UIKIT(視圖層級,繪製事件,觸摸事件,動畫)網絡

多媒體(配置,AVFoundation, C語言的API)多線程

 

2、中級   架構

掌握核心類庫:
相機和microphone
社交網絡與分享
CoreData數據持久化
Foundation,又包括Application loop(應用循環),Threads(線程),Networking(網絡)。
MapKit,也就是如何使用地圖
Passbook,也就是和移動支付系統的整合
CoreLocation,如何在茫茫人海之中找到你所愛的位置
Bluetooth,藍牙模塊,若是你要開發周邊硬件設備,這是必不可少的
Notifications,消息推送,又包括Local本地和Push(APNS)推送
CoreMotion, 好比陀螺儀相關的東西
GameKit,和第三方遊戲設備(手柄)相關的東西
SpriteKit,相似cocos2d2D遊戲引擎
app

 

3、進階   

第三方依賴庫管理

CocoaPodsiOS開發者不說立馬晉升高大上,至少也突破了屌絲的瓶頸。
CocoaPods的使用請參考這裏:CocoaPods安裝和使用教程

攻城工具Xcode的學習:

項目管理:包括文件結構,導航,Build 設置,屬性列表等

代碼編輯器:包括如何高亮,查找,自動完成,查看文件,Assistant Editor等等。

Interface Builder: 現在的Interface Builder(界面編輯器)是內置在Xcode中的,這部分又包括Storyboardsxib的使用,控件類型及屬性設置,IBOutletIBAction,自定義類,Tag,視圖文件結構等。

代碼調試工具:包括lldb,斷點,日誌等

Instrumentation工具:包括內存泄露和CPU使用率的監控等。

Git版本管理:包括repository的管理,branchingmerging

詳情請參考:

開發者工具概述

4、高級    

軟件工程

iOS開發者除了知道如何具體寫代碼,還要在思想上提高本身的檔次,站在一個更高的角度看待項目的開發和管理。這個時候就須要瞭解一些軟件工程的概念。

對於軟件工程,須要掌握的內容以下:
應用程序的架構:好比模塊化和SOA,邏輯封裝等
敏捷過程:好比項目全部者和用戶場景,迭代開發,高效溝通等。其中迭代開發步伐又包括測試和結對編程,CI和代碼審閱,QA質量測試和調試。
項目管理:好比項目規劃和評估,工具和文檔化,Licensing等。

5、淬鍊期大成

(1)、iOS開發者的淬鍊功法1-Tests測試  

一個有經驗的iOS開發者每每會採用測試驅動開發的思路。

大概要學習的內容包括:
測試類型:單元測試,功能測試,整合測試,性能測試,可用性測試,迴歸測試等。
連續測試:continuous integration,本身去google
XCTestXcode特有的測試方法。
關於這部分的內容詳細參考:
Quality Coding

TDDiOS開發初步以及Kiwi使用入門

Xcode Overview: Unit Test Your App

 

(2)、iOS開發者的淬鍊功法2-Git版本控制   

iOS開發者須要對Git版本控制有必定程度的瞭解。
具體包括:
版本控制系統:其中又包括分佈式VCSBranch,Merge,Diff
GitHub的使用:ForkPull requests
config remotesdefault behaviors

 

(3)、iOS開發者的淬鍊功法3—移動應用開發的獨特性    

雖然Web開發,PC端應用開發,移動應用開發並無等級之分,但各自卻有了徹底不一樣的特色。

開發者須要根據移動應用開發的獨特性掌握相應的知識:

HIG(Human Interface Guidelines):人機界面交互,具體參考:

iOS Human Interface Guidelines: Designing for iOS 7

流量消耗的考慮:包含兩個方面,一個是安裝包的大小,另外一個則是在使用過程當中的流量消耗。

多線程操做:好比上傳下載文件之類比較耗時間的操做能夠單獨放在一個線程中,詳細請參考:Grand Central Dispatch (GCD) Reference

狀態保存和恢復:讓用戶下一次進入應用時仍然進入此前所在的界面和狀態。

本地化:根據用戶所在的地區選擇對應的語言顯示

 

(4)、iOS開發者的淬鍊功法4—吸星大法-參考別人的源代碼   

源代碼的來源包括:
http://developer.apple.com中蘋果官方的源代碼;
http://github.com裏面的源代碼;
code4app,cocoachina等第三方網站中你們共享的源代碼;
教程網站和其它第三方網站中的源代碼(如http://raywenderlich.com等);
經過逆向過程研究別人的應用,這個有點高大上了。

 

(5)、iOS開發者的淬鍊功法5—提升英語水平  

一個修真者莫大的痛苦是,本身的面前擺着一門絕世神通,卻TMD是火星文徹底看不懂?

對於iOS開發者(包括其它程序猿)來講,若是本身的英文水平不行,就等於手握萬千絕世神通卻半個字都不懂。

因此,最起碼要多花時間看看英文文檔,教程,博客,論壇,沒必要刻意去學,而是在提升本身iOS功力的同時提升本身的英文水平。二者相輔相成,相得益彰。

 

(6)、產品發佈   

App Store發佈:包括provisioning profile,code-signing,開發者入口,具體參考:

如何發佈IOS應用程序到蘋果APP STORE

或蘋果官方文檔,由於具體作法常常會有調整。

相關文章
相關標籤/搜索