- 要想學習iOS開發,首先要搞清楚什麼是iOS。iOS其實是一款操作系統,就像平時我們在電腦上用的XP、Win7,都是操作系統。
- 那什麼是操作系統呢?操作系統其實是一種軟件,是直接運行在硬件(電腦、手機等)上的最基本的系統軟件,任何其他軟件都必須在操作系統的支持下才能運行。比如說,如果你不在電腦上裝個Win7、XP或者其他操作系統的話,你是不可能在電腦上運行QQ這個軟件的。大家應該都知道,每次電腦開機的時候,都是先啟動Windows XP或者Windows 7,啟動成功後,才能在上面打開QQ、360安全衛士等其他軟件。手機也是一樣的,先要有個手機操作系統,才能使用手機QQ等軟件
- 要注意的,XP、Win7是PC操作系統,也就是電腦操作系統;而iOS是由蘋果公司開發的手持設備操作系統,全稱為“iPhone OS”,目前搭載這款操作系統的設備有:iPhone、iPad、iPod touch、iPad mini。也就是說,iPhone上的所有軟件都是運行在iOS操作系統上的。當iPhone開機的時候,首先會運行iOS這款操作系統,操作系統運行成功後,我們就可以在iPhone上打開相應的應用軟件來玩游戲、聊天、看電影了。
- 接下來再來認識一下操作系統,下面這張圖片描述了操作系統所處的位置:
圖中的“應用軟件”就是平常我們使用的QQ、微博等軟件。用戶打開某個應用軟件,在軟件的使用過程中,這個軟件會不斷地跟底層的操作系統進行交互,接著操作系統會控制硬件去做一些事情來滿足用戶的需求。比如,當我們打開手機上的一個照相機軟件,按下屏幕上的拍照按鈕時,照相機軟件會通知操作系統“喂,我需要拍照!”,接著操作系統就會控制手機上的攝像頭進行聚焦、拍照。
總而言之,操作系統可以看作用戶與硬件的接口、橋梁,它為應用軟件和用戶提供了控制、訪問硬件的手段
二、主流手機操作系統
- 目前應用在手機上的操作系統主要有:Palm OS、Symbian(塞班)、Android(安卓)、iOS、Black Berry(黑莓)OS、Windows Phone。
- 根據IDC(互聯網數據中心)公布的數據,2012年第四季度,Android和iOS智能手機操作系統在全球范圍內的市場份額占有率總共為91.1%。Android智能手機廠商和蘋果在2012年第四季度共出貨2.076億台智能手機,在2011年第四季度出貨1.22億台智能手機,同比增長70.2%。
- 總的來說,iOS操作系統的前景還是不錯的
三、什麼是iOS開發
我們已經知道iOS是iPhone、iPad等手持設備的操作系統,那麼,iOS開發就是開發運行在iOS系統上的應用或者游戲軟件,也就是可以開發一些運行在iPhone上的軟件,比如手機QQ、微博或者游戲。說白了,就是開發手機軟件。從事iOS開發的人員,可以稱之為“iOS軟件攻城獅”或“iOS程序猿”。
四、學習iOS開發的目的
- 每個人都有不同的學習目的,說得偉大一點,可能是創造一些優秀的手機軟件,造福全人類;說得直接一點,就是學習技術、賺大錢。當然,也不排除有些人覺得做iOS開發很cool、很炫、好玩。
- 以前,我們認為是電腦是萬能的;現在,其實手機也是萬能的了。手機將是人類最離不開的設備之一,現在很多事情都可以在手機上做了,比如聊天、看電影、購物、訂票、玩游戲等,攜帶又比電腦方便,甚至多了一些普通電腦沒有的功能:打電話、導航等。現在的手機屏幕也越來越大了,硬件參數也越來越強大,有些強大到被稱為“怪獸機”,前陣子還聽到有8核手機,我現在用的蘋果筆記本都才雙核。
- 從目前的市場形勢來看,移動互聯(就是將移動通信和互聯網二者結合起來)的市場是非常大,處處藏著商機。
- 總之,手機軟件開發的需求量是非常大的。而iOS是當今的主流手機操作系統之一,已經有各路人員對iOS開發躍躍欲試,不過大部分人都苦於iOS開發的門檻較高
- 我們錯過了蓋茨的信息化浪潮,錯過了李彥宏、馬化騰、丁磊他們所主導的互聯網浪潮,但我們還有移動互聯浪潮;朋友們,抓做機遇吧,今天你可能除了時間什麼都沒有,只要你努力,勇於創新;明天,你可能就成為這次浪潮的領跑者
五、學習iOS開發的前提
學習iOS開發,說白了就是學習軟件開發。如果你從未涉足過IT領域,那麼在學習軟件開發之前,你首先要了解的是軟件和硬件之間的關系(這裡的硬件泛指電腦、手機、平板等設備)。
1.電腦並不比人腦聰明
很久以前,很多人就認為電腦是無所不能的,甚至能解決一些人類不容易解決的問題,因此有人就覺得電腦比人腦聰明。其實,電腦笨得很,並不見得比人腦聰明。
- 首先,電腦是由人類發明的,沒有人類就沒有電腦;
- 其次,電腦不能識別什麼中文、英語,你用一口流利的中文罵遍它所有祖宗,它都不會理你的。電腦只能識別一些特定的指令,如果你想讓電腦能夠正常工作或者幫你做一些事情,你得灌輸一些指令到電腦上,相當於給電腦下命令。你寫什麼樣的指令,它就做什麼樣的工作。
- 如果想讓電腦執行一系列的操作,那就必須事先編好一條條指令,這些指令的集合,我們可以稱之為”程序“或者”軟件“。百度中對”軟件“一詞的解釋:軟件是一系列按照特定順序組織的計算機數據和指令的集合。也就是說,一個軟件裡面包含了很多的指令,可以命令電腦做很多不同的事情。只要讓電腦運行這個軟件,電腦就會自動地執行軟件中包含的各條指令,有條不紊地進行工作。
2.開發軟件的目的
- 其實人類發明電腦的目的是什麼呢?目的就是能夠控制電腦幫人類做一些事情。而電腦的一切操作都是由軟件控制的,離開軟件,電腦就只是一堆破銅爛鐵。因此,我們開發軟件的最終目的就是為了能夠控制硬件。
- 在軟件和硬件的協調交互下,就可以夠解決我們生活中的很多問題。比如,開發一個MP3播放軟件,軟件中的某個指令可以用來控制電腦的音響進行放聲,然後我們就能聽到那些美妙動聽的歌聲了,也有一些指令可以用來增大或者減小音響的聲音。這就是一個典型的通過軟件控制硬件的例子。
3.如何開發軟件
- 那如何開發軟件呢?我們已經知道,一個軟件是由無數個指令組成的,這些指令可以用來命令電腦做一些事情。但是電腦所能識別的指令是極其有限的,你不能亂寫指令,你寫個”你妹,給我關機!“這樣的指令,它是看不懂的。那怎樣的指令才能被電腦識別呢?換一種問法就是:我們該怎樣跟電腦進行交流?我們天朝人跟天朝人之間可以用中文進行交流,我說的中文,天朝人都能識別、聽懂。假如,我們要跟美國人進行交流呢,那我們就必須地學英語。現在呢,我們是要跟電腦進行交流,一樣的,我們也要學習新的語言,那就是”程序設計語言“。
- ”程序設計語言“,顧名思義,肯定是用來設計、編寫程序的。我們需要利用”程序設計語言“編寫出電腦能夠識別的指令,最終開發出一個完整的軟件。
- 用”程序設計語言“寫出來的指令,我們一般稱為“源代碼”或者”代碼“,寫程序就是寫代碼。你應該聽過”碼農“這個詞語,泛指某些苦逼的”程序猿“。
- 編寫程序可以簡稱為“編程”,因此,“程序設計語言”也可以稱為“編程語言”。
4.程序設計語言
- 目前,世界上流行的”程序設計語言“有很多種,在2013年3月份的語言關注排行榜中,排名前五的是:Java、C、Objective-C、C++、C#。後面4種語言的名字中都含有”C“,就Java沒有”C“,一看就知道Java跟其他語言不是同一個媽生的。其實,Objective-C、C++、C#都是基於C語言,從C語言中衍生出來的,因此它們的名字都帶有”C“。
- 有這麼多的”程序設計語言“,難道隨便一門語言寫出來的軟件都能成功運行在電腦上麼?不是的。這還要取決於操作系統的類型,因為任何其他軟件都必須在操作系統的支持下才能運行。不同的操作系統,需要用不同的語言來編寫應用軟件。補充一點:其實,操作系統也是軟件,它屬於系統軟件,也是需要用”程序設計語言“來編寫,一般用C、C++來編寫操作系統。
- 手機軟件也是一樣的,不同的手機操作系統,需要用不同的語言來編寫應用軟件。比如,android系統上可以運行用Java、C、C++編寫的軟件,但是不能運行Objective-C編寫的軟件。如果是iOS系統,一般情況下,它可以運行Objective-C、C、C++寫的軟件,不能運行Java編寫的軟件。可以看出,C、C++編寫出來的代碼是有可移植性的,可以跨平台,能同時跑在android和iOS系統上。
5.iOS開發的語言選擇
相信你應該明確了,要想學習iOS開發,首先要學習Objective-C、C、C++這3門程序設計語言,而核心語言是Objective-C。學了這些語言,我們才能編寫出在iOS系統上正常運行的軟件。