http://art.china.cn/products/2015-04/17/content_7836672.htm程序員
1. App的基本概念和要素編程
簡單來講,app就是在智能手機上運行的計算機軟件程序。它通常先由程序員開發出來,再與設計師創做的圖形元素相組合才能得以完成。製做iPhone app的工具主要是一款名爲Xcode的軟件。開發工具主要有Swift 和Objective-C。許多app都有容許在雲端儲存信息及與其餘用戶聯接的後臺程序(back-end )。服務器
藉助Xcode能夠製做原生的iPhone app,但Xcode只能在Mac OS X操做系統下運行。它包含能夠製做圖形元素的界面建立器(Interface Builder)。另外它只是一款構建工具,用它沒法實現具體的app功能,只能爲用戶圖形界面(GUI)創建一個基礎。網絡
Xcode的功能十分豐富,例如,自動排版(Auto Layout)能讓app界面在不一樣解析度的屏幕上都正常顯示,iPhone模擬器(iPhone Simulator)可讓你不用iPhone也能對app進行測試。app
要在App Store中發佈製做好的app,你須要從蘋果官方得到一個開發者帳號。這個帳號須要花99美圓購買,能夠用一年。蘋果還有一系列的app管理維護工具,叫作 iTunes Connect。編程語言
2. App的製做流程ide
幾乎任何一款app都要遵循如下的製做步驟:工具
1. 設計。作出app的模型文件(mockup)並將全部元素都置於屏幕上。學習
2. 開發。這一步包括編寫代碼,將「若是-下一步」類型的操做與界面組合起來。開發工具
3. 測試。將beta版本的app發送給測試者,並根據他們的反饋修正錯誤。
4. 發佈。接受官方的評估並在App Store中正式推出。
即使是之後要在app中增長新功能,基本上也是按照設計,編程,測試,發佈的流程來作的。
3. On Swift and Objective-C
目前,iPhone app都是以Swift 或Objective-C寫成的。Swift是蘋果官方開發的一種編程語言,於2014年6月首次發佈,正式的1.0版則於2014年9月份發佈。它是一種很新的編程語言,目前,App Store中已經有很多徹底使用Swift編程的App.
Swift受到了初級及資深程序員的一致歡迎。Swift語言的一個顯著優點就是它能夠與Objective-C語言互換。這對於程序員而言很是便利,由於這樣一來,他們就省去了爲了與新語言兼容而改寫整個代碼庫的麻煩。
Swift 與Objective-C哪一個更好?
Objective-C的句法較爲特殊,所以掌握起來相對困難一點。對於初級編程者來講,毫無疑問是Swift更好一點。與Objective-C相比,Swift的入門門檻更低,所以在開發過程當中也能節省一些經費。
儘管如此,Objective-C在全球範圍內依然是許多軟件公司採用的標準語言,這種狀況在將來一段時間內還會繼續存在。
4.中間件:一次完成,多處應用
中間件(Middleware),例如Cordova 或PhoneGap,也很受開發者的歡迎。由於藉助中間件,開發者只需一次寫完代碼,就能夠它們同時應於用安卓或iOS平臺上。
安卓平臺上的app都是以Java寫成的,與iOS app互不兼容。若是你想在這兩個平臺上都發布app但又不肯重寫一遍代碼,那麼中間件能夠爲你節約很多時間。
不少中間件(或跨平臺工具)都是基於網絡技術而構建的,如HTML5, CSS 和JavaScript等。
目前此類工具中最受歡迎的是Phone Gap。Phone Gap自帶app建立工具,並可把app導出到Xcode中運行和修改,這樣的獲得的app是「混合型」的---意味着它的元素與HTML5組合在一塊兒。
PhoneGap目前推出了PhoneGap Build新工具,從而以雲端解決方案替代了原有的Xcode編寫器。PhoneGap是一款免費且開源的工具。
與PhoneGap相似的工具還有:
Phone Gap比這些工具更有優點的地方在於,它不只支持不一樣的系統(iOS, Android, Windows Phone, BlackBerry OS, Ubuntu and Firefox OS),還支持硬件(加速器, 相機等等。)
中間件的美中不足之處
但中間件存在兩個主要缺憾之處:
因爲此類工具多數是基於網絡技術,所以沒法支持硬件加速。在原生app中也沒法支持動畫,切換特效和高解析度的圖片,因此,它無用應用於製做遊戲或像素密集型app。
此外,使用中間件也須要開發者很熟悉編程器和開發工具,這無疑給初級開發者形成了很大困難。
5.設計:App如何工做
編程只是製作app過程當中的一部分。界面設計在app的製做中也佔很大的比重。若是你的條件容許的話,不妨僱傭一個專門的界面設計師。你能夠在Elance 或 oDesk這類外包網站上找到不少這類人才。
雖然如此說,但若是你剛剛開始學習製做app的話,也可使用網上現有的模板。這些模板也許不能讓你的app看起來異常漂亮,但至少不會壞到哪裏去。對於初學者而言,這是一個能夠節約金錢和時間的好辦法。
工具與資源
蘋果的人機界面指南(Human Interface Guidelines)已經就app中的基本元素及如何使用這些元素給出了很好的建議。
圖標:建議使用圖標文件包,如Glyphish(收費)。這類文件包一般包含上千個圖標文件,且專門針對iPhone app作了優化。包括社交媒體圖標及與app操做相關的一系列圖標。
模型:強烈推薦使用Balsamiq Mockups(收費,但有免費試用版)。App 模型至關於一個草稿,它顯示了你的app將如何工做,又有那些功能。永遠不要只顧埋頭編程,事先在模型中測試一下UI和排版能避免不少錯誤。
若是你製做了一個模型,但對於app的真實界面仍是不放心的話,不妨試試Teehan+Lax團隊開發的design PSDs(免費)。這些素材中包含了幾乎全部iOS系統下的GUI元素,並且是矢量文件。它們必定能讓你的模型變得更爲完美。
6. 如何將App與互聯網鏈接?
若是你的app須要與網絡鏈接的話,可使用伺服器端語言如NodeJS, Ruby 或PHP建立一個自定義後臺,這將爲你節約不少時間和精力。簡便一點的方法是使用一個「服務器即平臺」(Platform-as-a-Service)工具,好比說Parse。Parse是一種旨在爲app提供線上或線下存儲服務的解決方案。
有了Parse之類的解決方案,就徹底不須要再建立自定義的後臺了。Parse最基本的用戶是免費的,高級用戶收費爲100美圓/月。
7. 從Beta 到Live
你製做的app在正式發佈以前,須要先上傳到iTunes Connect中。你須要提供app的基本信息,如描述,分類和app的形象圖標。
接下來會進入評估階段。這時蘋果官方爲保證進入App Store 的app的質量而採起的一項措施。整個評估大概須要2周左右的時間。
初次建立app時的10個常見問題
1. 製做一個app的成本有多高?
根據公司的規模而有所不一樣。外包設計師製做一個簡單的app通常收費在3000美圓左右。而像Tinder, Pinterest, Facebook這樣的公司可能會爲一款App花費數百萬美圓。就像那句老話說的那樣:一分價錢一分貨。
2. 我在爲app編程時遇到了困難。該向誰求助呢?
初級及中級程序員遇到的問題,一般能在StackOverflow之類的技術論壇找到答案。而對於非技術性的問題,例如價格或UX/UI等方面的問題,Quora是個不錯的地方。
3.我有一個不錯的app創意,該如何開始製做?
若是你真的想製做一款商業性的app,首先應該作的事就是了解一下市場及用戶需求。大多數成功的app之因此成功,是由於它能解決用戶最急迫的需求,因此用戶才心甘情願出錢購買它。必定要在實際瞭解用戶的狀況以後,再去着手進行開發階段的工做。
4.爲了製做app,我須要專門買一部iPhone嗎?
不須要,但我建議你買一部。雖然Xcode有自帶的iPhone模擬器,但從電腦屏幕上看到的效果跟你握在手裏的效果畢竟不一樣。因此我建議你買一部真實的設備。
5.我數學很差,這對編程有影響嗎?
有,但也能夠說沒有。不少編程的原則都與數學密切相關,但在實際製做app時幾乎用不到這些數學知識。當你的編程技術愈來愈熟練時,可能會發現本身不知不覺地已經學會了很多數學技巧。
6.我在軟件公司上班。我是應該把關於app的好點子告訴公司呢,仍是自行開發?
這要看公司的性質和你在公司的職位。若是你的公司與app有密切關係的話,不妨把你的計劃跟主管談談。若是你以爲本身的創意得不到重視,也能夠自行開發。但要注意法律規定。由於你在受僱於公司時開發的產品也有可能被認定爲版權歸公司全部。
7.我想開發的app在App Store中已經有了,我該怎麼辦?
「已經有相似的App了」並不能表明現存的app就很優秀。你依然能夠開發出更優秀的app與之競爭。一樣的,若是你想開發的app在App Store中不存在,這並不必定意味着是個填補空缺的好機會。由於也可能之前有人開發過,但由於不受歡迎而被撤下了。
8. iPhone爲什麼有時又被稱爲 iOS?
iMac開啓了蘋果產品以i打頭的先河.。從那以後便產生了iTunes, iPod, iPad 和iPhone等產品。由於把運行於iPhone上的操做系統(OS)稱爲iOS就絲絕不奇怪了。
9. 如何讓個人iPhone app在市場上得到成功?
這個問題須要寫好多本書才能說得清。但全部已經取得成功的App都有個特色,就是它們一次只解決一個問題,而且解決得好到使客戶願意花錢買它。
你能夠先找到一個要解決的問題,而後去尋找急需解決方案的客戶。也能夠先作客戶調查,弄清楚他們急需解決的問題。除此以外,要注意多與潛在客戶保持聯繫和溝通。
10.學習編程應該注意什麼?
不要半途而廢。半途而廢是學習編程最低效的方式。學習一項新技術的確要投入許多時間和精力。中途放棄永遠學不會任何東西。
另外,也不要輕信書上關於編程方法的「捷徑」。編程須要親自去寫代碼,並從錯誤中一點點地學習。
結語
看到你本身製做的app出如今App Store中是件振奮人心的事。如今,對於製做app的方式和流程你已經有了大體的瞭解。接下來,你能夠找一本教程,先從學習Swift開始,進而嘗試用Balsamiq作出漂亮的界面,以後申請一個蘋果開發者帳號。用不了多久,你就會看到本身親手製做的App在App Store中閃閃發光了!