一個iOS開發人員的修真之路,iOS開發人員修真之路

來源:互聯網
上載者:User

一個iOS開發人員的修真之路,iOS開發人員修真之路

  在上有童鞋問我iOS開發人員的入門標準是神馬?這個問題難到我了,而且貿然給一個答案出來的話,必定會有萬千高手來噴。

  凡人修仙,仙人修道,道人修真。當我們還是一個在青石板上蹲馬步汗水涔涔的廢柴時,或許天空中偶爾會有禦劍飛行的仙人路過。金色的陽光灑在仙人隨風舞動的劍穗上,此時不禁會油然而生一種衝動,希望有一天能成為這樣的高手,自由飛翔。只是路漫漫其修遠兮,漫漫修真路,從一個後天廢柴到羽化升仙成為大神需要太多的努力。

  我個人還屬於iOS開發的外門弟子,正在入門的門檻上,所以還是一起來看看iOS開發內門弟子給出的答案吧。

  參考圖詳見pdf文檔,這裡大概歸納下。

  Objective-C 語言

  欲練神功,必先自宮!除非是仙人轉世,任何一個修真者都要從最基本也最痛苦的煉體開始。對Objective-C語言的學習可以對應修真者的煉體或者後天境界。經過後天境界的苦修,一個修真者可以輕鬆打敗幾個普通流氓,不過當十幾個甚至更多人一擁而上時,還是趕緊逃命吧。 欲學iOS開發,必先學習Objective-C! iOS開發中用到的主要程式設計語言就是Objective-C語言,雖然也可以使用C和C++語言混合編程,不過Objective-C語言是最核心的部分。

  其中又包括:

  物件導向編程基礎(類和繼承,變數和方法的範圍,MVC基本概念,分類)

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

  記憶體管理(strong/weak, ARC自動引用計數,自動釋放對象)

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

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

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

  核心iOS7類庫

  程式設計語言只是基礎,真正的開發利器是iOS7的核心類庫。掌握了Objective-C語言只是讓你從一個普通人變成俠客,但是離真正的修真高手還有很長的路。從只懂得煉體的後天境界晉陞到揮手間敵人灰飛煙滅的練氣或者先天境界,就必須掌握核心iOS7類庫。

  其中又包括:

  相機和microphone

  社交網路與分享

  CoreData資料持久化

  Foundation,又包括Application loop(應用迴圈),Threads(線程),Networking(網路)。

  MapKit,也就是如何使用地圖

  Passbook,也就是和移動支付系統的整合

  CoreLocation,如何在茫茫人海之中找到你所愛的位置

  Bluetooth,藍芽模組,如果你要開發周邊硬體裝置,這是必不可少的

  Notifications,訊息推送,又包括Local本地和Push(APNS)推送

  CoreMotion, 比如陀螺儀相關的東西

  GameKit,和第三方遊戲裝置(手柄)相關的東西

  SpriteKit,類似cocos2d的2D遊戲引擎

  第三方依賴庫管理

  晉陞先天之後,一個修真者就脫離了低級趣味,成了修真隊伍的真正成員。雖然自身對天地大道的感悟和修鍊是根本,但如果有那麼幾件靈器、仙器甚至神器在手,無論是保護自身的護身法寶還是令敵人膽寒的攻伐之器,都可以讓你在修鍊的路上笑傲江湖。

  對iOS開發人員來說,善於藉助第三方類庫的強大力量來實現產品的各種功能,就如同修真者手持神兵法寶一般,無往而不利。神器法寶多了也不好辦,所謂財不外露,拿著一大堆法寶在外面炫富是修真者大忌。這個時候一個能容納萬物的儲物乾坤袋就成了修真者的夢想之物。好在有CocoaPods,它比修真者儲物袋更神奇的是,你只需使用CocoaPods,就可以自動將各種優秀的第三方類庫包含在項目之中。一個iOS開發人員如果不懂CocoaPods,簡直就是修真界的窮DS一枚。懂CocoaPods的iOS開發人員不說立馬晉陞高富帥,起碼也會成為中產階層之一。

  對CocoaPods的使用請參考這裡:CocoaPods安裝和使用教程

  Xcode 5

  修真者都喜歡天地靈氣充足的修鍊之地,iOS開發人員也非常需要一個強大的開發環境協助自己打理項目。

  尋找一個理想的修鍊之地對於修真者是奢侈的,因此大量散修選擇加入各種宗門或學院,否則萬難有出頭之日。

  對於iOS開發人員則可以省掉這份煩惱,因為所有iOS開發人員都可以免費享受最強大的iOS開發環境-Xcode 5。

  對於Xcode5的學習又包括:

  專案管理:包括檔案結構,導航,Build 設定,屬性列表等

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

  Interface Builder: 如今的Interface Builder(介面編輯器)是內建在Xcode中的,這部分又包括Storyboards和xib的使用,控制項類型及屬性設定,IBOutlet和IBAction,自訂類,Tag,視圖檔案結構等。

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

  Instrumentation工具:包括記憶體泄露和CPU使用率的監控等。

  Git版本管理:包括repository的管理,branching和merging。

  詳情請參考:

  開發人員工具概述

  軟體工程

  修真者除了修身練氣,還要煉神,也就是修鍊自己的神魂。神魂的層次提高了,不光對自身的修鍊有益,還可以控制其他修真者當自己的小弟,或者有節操點,吸引其他修真者為了自己的目標共同奮鬥(比如一起探索某個神府)。

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

  對於軟體工程,需要掌握的內容如下:

  應用程式的架構:比如模組化和SOA,邏輯封裝等

  敏捷過程:比如項目所有者和使用者情境,反覆式開發法,高效溝通等。其中反覆式開發法步伐又包括測試和結對程式設計,CI和代碼審閱,QA品質測試和調試。

  專案管理:比如專案規劃和評估,工具和文檔化,Licensing等。

  iOS開發人員的神通功法1-Tests測試

  修真者乃逆天而為,其中所遇到的艱難險阻是常人難以理解和接受的。當自身實力到了一定的程度之後,就要承受天威的打擊-各種雷劫,比如四九雷劫,六九雷劫,九九雷劫,飛升時的萬雷劫。不管你自身實力如何強大,肉身如何抗操,元氣如何充盈,神魂如何逆天,在雷劫時一不小心就會永墜輪迴。

  在iOS開發時,不管我們如何努力熬夜,如何苦逼編碼,到了測試的時候發現程式直接掛掉了,簡直是親者痛仇者呵呵的不可承受之重。

  因此一個有經驗的iOS開發人員往往會採用測試驅動開發的思路。

  大概要學習的內容包括:

  測試類型:單元測試,功能測試,整合測試,效能測試,可用性測試,迴歸測試等。

  連續測試:continuous integration,自己去google

  XCTest:Xcode特有的測試方法。

  關於這部分的內容詳細參考:

  Quality Coding

  TDD的iOS開發初步以及Kiwi使用入門

  Xcode Overview: Unit Test Your App

  iOS開發人員的神通功法2-Git版本控制

  常言道,一人得道雞犬升天。修真者在飛升之後往往會將自己的修鍊資源留給家族後人或好友使用。一方面是因為基因的自私天性,另一方面則是因為希望通過這種方式讓更多的追隨者可以一同飛升,在更廣闊的大千世界中可以攜手打拚。

  iOS開發的獨行俠時代已經過去了,很多團隊中的產品或項目開發是協同進行的,即便是純粹個人開發,也經常需要用到版本控制工具。

  因此,iOS開發人員需要對Git版本控制有一定程度的瞭解。

  具體包括:

  版本控制系統:其中又包括分布式VCS,Branch,Merge,Diff

  GitHub的使用:Fork和Pull requests

  config: remotes和default behaviors。

  iOS開發人員的神通功法3—行動裝置 App開發的獨特性

  凡人修仙,仙人修道,道人修真。後天期,先天期,金丹期,元嬰期,洞虛期,空冥期,渡劫期,大成期。。。無論修真者處在哪個階段,都需要針對特定的修鍊階段瞭解和擷取所需資源。

  開發人員也是如此,雖然Web開發,PC端應用開發,行動裝置 App開發並沒有等級之分,但各自卻有了完全不同的特點。

  開發人員需要根據行動裝置 App開發的獨特性掌握相應的知識:

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

  iOS Human Interface Guidelines: Designing for iOS 7

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

  多線程操作:比如上傳下載檔案之類比較耗時間的操作可以單獨放在一個線程中,詳細請參考:Grand Central Dispatch (GCD) Reference

  狀態儲存和恢複:讓使用者下一次進入應用時仍然進入此前所在的介面和狀態。

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

  iOS開發人員的神通功法4—吸星大法-參考別人的原始碼

  無論是修鍊武功還是修真,都有一個類似吸星大法的邪門功法,那就是把別人的功力佔為己有。

  在iOS中,同樣有這樣一門強大的功法,那就是參考別人的原始碼。比吸星大法更神奇的地方是,參考別人的原始碼是雙贏的過程,不會讓別人的功力下降,反而讓大家在切磋的過程中共同進步。

  原始碼的來源包括:

  http://developer.apple.com中蘋果官方的原始碼;

  http://github.com裡面的原始碼;

  code4app,cocoachina等第三方網站中大家共用的原始碼;

  教程網站和其它第三方網站中的原始碼(如http://raywenderlich.com等);

  通過逆向過程研究別人的應用,這個有點高大上了。

  真正的高手善於利用吸星大法迅速提升自己的實力,實在是居家旅行行走江湖修真者的必備功法啊。

  iOS開發人員的神通功法5—提高英語水平

  一個修真者莫大的痛苦是,自己的面前擺著一門絕世神通,卻TMD是火星文完全看不懂?

  對於iOS開發人員(包括其它程式猿)來說,如果自己的英文水平不行,就等於手握萬千絕世神通卻半個字都不懂。

  所以,最起碼要多花時間看看英文文檔,教程,部落格,論壇,不必刻意去學,而是在提高自己iOS功力的同時提高自己的英文水平。兩者相輔相成,相得益彰。

  產品發布

  修真者在漫長的修鍊過程中,需要消耗大量的資源。這些資源除了家族門派儲備,強取豪奪,各種奇葩奇遇之外,就只有靠剩餘價值交換的形式了。比如煉丹師把自己的仙丹拿來換一門功法,煉器師把自己的法寶拿來換仙丹,有多餘功法的修真者會拍賣功法換取能讓自己修為一日千裡的仙丹,等等。

  iOS開發人員(我承認這部分有點扯~),特別是個人開發人員不是神人,也要食人間煙火。所以辛辛苦苦開發的產品肯定是要上線發布,讓更多人使用甚至購買的(或者讓投資人買單)。

  因此一個真正的開發人員也必須學會如何發布自己的產品,所以必須掌握以下知識:

  裝置測試:我的第一款iPad應用沒經過裝置測試你敢信?不過當時第一代iPad還沒有T正式發布,是特殊曆史時期的特殊做法,而且是得到蘋果認可的。如今你這樣做試試看?TestFlight: 就讓身邊的幾個程式猿一起測測就算使用者測試完成了?趕緊試試這個利器吧。

  App Store發布:包括provisioning profile,code-signing,開發人員入口,具體參考:

  如何發布IOS應用程式到蘋果APP STORE

  或蘋果官方文檔,因為具體做法經常會有調整。

  好了,一個iOS開發修真者在有了以上的基礎之後,在成為高手的路上雖然還會有諸多波折,但至少有了前進的方向,或者說有了指引。

  修真之路最重心智開啟和意志的磨練,不管採用何種方法,不管有著何種目標,如果意志不堅定,向道之心會受到美女,懶惰,娛樂等各方面的影響,最終中道而去。 大家一起努力吧。

  參考:

  https://www.codefellows.org/blogs/everything-a-competent-ios-developer-needs-to-know

  資訊圖:iOS 7開發人員需要知道的事

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.