如果你想學程式開發,將來以寫 App 為業,那你應該首選蘋果 iOS Objective-C (Swift)、谷哥 Android JAVA 還是微軟 Windows Phone?
很高端、大氣、上檔次的人會說:「當然每個平台都不放過,什麼客群都抓才能賺最多錢。」這段話有點像是說:「既然要賣早餐,當然中式永和豆漿、西式美而美、法式鬆餅都要賣,才能賺到每種口味喜好客人的錢。」
不過這樣搞通常只有二種結果,一是備料準備食材、器具把自己累死;二是被要漢堡夾油條、鬆餅夾蛋的客人煩死。經濟學告訴大家,永遠不要忘了「機會成本」。你把時間花在沒辦法產生效益的地方成果不是 0,而是 -1、-3、-10,因為這些時間原本你是可以用在產生其他效益的地方。
如果我跟你說今年 iOS 裝置即將突破 10 億台,有信用卡的 iTunes會員有幾億幾億,App Store 總下載量已超過 750 億次。有 90% 的蘋果用戶已經升級最新的 iOS 7系統,但只有 9% 的 Android用戶升級 KitKat 系統。過去 6 個月大陸的 iPhone 購買者有一半來自 Android 陣營,這些你可能已經聽膩了。
你沒當過總統、開過計程車、挑過水肥永遠不知道他們工作的酸甜苦辣和真實感受,只是用自以為和猜測的方式,覺得他們應該怎樣、怎樣、不就是這樣,怎麼這麼簡單的事都做不好的先入為主思考。
雖然我寫了七年多的 Apple 文章和出了多本書,但畢竟我不是一個程式開發者,雖然經常有機會和他們交流,但可能還是無法了解他們的真實感受。因為《開發者舞台》跟很多 App 程式開發者有接觸,所以我就寫信給幾位同時有在寫 iOS 和 Android App 的開發者,問了他們以下 7 個問題,讓大家了解最真實的 App 程式開發內幕。
真的開發市占率最高的 Android 最賺錢嗎?
1.就程式語言方面,在開發上iOS和Android誰比較麻煩或困難?
Dejay 表示:無論是寫原生的或使用跨平台開發工具,都會是Android比較麻煩一些,畢竟每次除了版本破碎需要特別注意之外,還有實體按鍵的功能也要顧到。
塔克熊表示:其實就學習難易度來說,對於有物件導向開發經驗的設計師,兩者難易度是一樣的。但對於剛入門的人來說,Objective C的語法與市面上多數主流語言不同,剛學習程式的人門檻確實很高。比起Java來講早期iOS的中文學習資料很少,也因此比較困難,現在則是還好兩者沒差太多。Swift的出現可能會讓入門者更加輕鬆,他所需要的知識背景確實比Java來得少。
魏巍表示:我是用Corona SDK開發的,一份程式碼兩個平台都可以發佈,所以沒有誰必較困難。但是我之前還沒有用Corona SDK的時候,(現在也是)iOS比 Android簡單多了! iOS不僅SDK必較清楚, Xcode也有一個較StoryBoard的設定,可以以圖像的方式開發。相較起來,Android的Eclipes是個悲劇...
2.同一款App,iOS和Android版誰的金錢收益比較好,差多少?
Dejay 表示:很難說,就目前我們粗淺的經驗,Android用戶比較願意花費在實用或工具類的APP上,而iOS用戶比較願意花費在遊戲的APP上。(當然,或許也有可能是因為Android的遊戲被破解的機會比較高?)好比說目前我們手上一款算命APP,Android收入就高過iOS收入超過將近4倍。
塔克熊表示:其實這兩種App收益來源相差甚多,Android App開發時因為用戶居多,而且使用者的經濟負擔能力不一。一般來講會多以在App內嵌入廣告為主的模式,而iOS內應該是用戶客群的關係。廣告的App這一兩年有增加,但相對Android來說還是算少,收益來源主要著重於App in Purchase。以收益來源來說的話,iOS內若以遊戲來講,能比Android上獲得比較高的收益。具體差異來講的話則沒有實際數據可供提供參考,這邊意見僅為開發兩者不同市場上觀察到的結果。
魏巍表示:聚會時認識一位大哥,他很熱情,想要提供好的內容和我合作App。聊天的過程中,發現他和我之前的想法一樣:很多人用Android,我們的App一定要支援Android,不然內容沒有辦法觸及到廣大的群眾。
當然很多人開發Android App非常成功賺了很多錢,不過我自己的經驗來說,Android的下載量比iPhone少了非常多,我好幾款遊戲的下載量都呈現同樣的趨勢。我得到的結論是,雖然Android的使用者多,但是很多都是爸爸媽媽嬸嬸阿姨輩的人。他們手機裡面不會下載新的App,他們都是真的拿Android手機來講電話,不然就是Facebook和LINE…頂多裝了Candy Crush這樣的遊戲。他們不但不會花錢買應用程式,他們連免費的應用程式也不會下載。
我自己的經驗分享:我以為我們對Android存有的幻想應該改變。
3.Android的螢幕尺寸太多、畫面解析度太多,會造成開發上的困擾嗎?
Dejay 表示:會,所以我們的做法是一開始就盡可能開發高解析度去向下相容...當然還是常常需要DEBUG。
塔克熊表示:確實是一個困擾,Android在UI上的設計必須考慮不同解析度的影響
雖然並不會難到十分困難,而是設計上的考量在一些細節上與iOS不同。過去iOS很多設計會以類似寫死固定座標的方式製作,而Android都必須以相對性來考量。但自從iPhone 5解析度出來以後,iOS的版面開發概念與Android越來越接近。會盡量以滿版、間隔等方式為概念開發,我們初步推論之後會有更多以類似卡片式方式呈現的App呈現。這類App的介面設計不只是讓工程師輕鬆,也是目前在多解析度上能有較佳一致性的做法。
Tide Q 表示:這一定有困擾的。
魏巍表示:我用的Corona SDK 可以自動縮放畫面,所以沒有困擾。一般的Android是個問題。所以很多Android程式其實都不好看 (為了符合各種畫面)
4.Android除了官方Play商店,有太多第三方商店在上架方面是個困擾嗎?
Dejay 表示:其實還好,因為第三方商店目前我們其實根本無暇顧及。不論完整度、方便性、用戶數、第三方目前都很難跟PLAY商店匹敵~除非是大陸的第三方商店,不過對於習慣使用ADMOB廣告收入的開發者來說就不一定方便了。
塔克熊表示:確實第三方商店很多,在大陸內有更多的第三方商店,基本上我們這邊的開發建議會仍以Google Play為主,畢竟還是主流的下載管道。
魏巍表示:不會,因為我都不會在第三方商店上架。(Brian可以推薦幾個嗎?)
App開發者間流傳的一個笑話:「 iOS開發者:這是怎麼回事!?我都給App Store提交了19天了,怎麼審核還沒有通過!?Android開發者:行了,你知足吧,我都提交了19個市場了,還有9個要提交。
5.iOS和Android用戶喜好、特性有什麼明顯不同嗎?
Dejay 表示:就目前的經驗看來其實差不多,只有個比較明顯數據差異是iOS用戶,玩遊戲似乎比較喜歡有社群分享和競爭的概念。
塔克熊表示:就目前觀察來看,我們周遭iOS的用戶對於一些強調新奇體驗、簡約的App會比較感興趣。不見得是功能性為主要考量,Android用戶上對於功能性(包含閱讀)的強調會較多。以我們自身周遭,Android用戶對於改造自己手機介面的用戶量相對iOS還是來得多。Android周遭比iOS更多的,應該是以開發者為主的角色,因為是開放程式碼的關係。很多第三方廠商或是個人工作者會很努力在上面嘗試一些對於機器特性的修改App開發。(例如修改Lock Screen等) 雖然iOS可以JB, 但這類的開發者族群仍較Android小很多。
整體來說iOS用戶對於一些功能性相對不強,但UI設計界面的App接受度較高。
6.就開發者來說,iOS和Android平台各有什麼明顯的優缺點嗎?
Dejay 表示:iOS平台結構封閉而嚴謹,開發上比較輕鬆一些,比較不會有太多意外的環節會出錯。但是相對的測試不方便、每個裝置都要註冊,送審時間又久,因此前期要妥善準備的項目會比較多。
Android平台開放然後第三方的Open Source元件又多,上架又快,測試和更新都很方便。但是在開發上就有比較多意外的小問題會發生,很多甚至都是仰賴用戶回報才知道的潛在問題。
塔克熊表示:iOS必須一直跟著Apple的政策修改跑,其實這一兩年變化很多。開發者也必須做出各種應對措施避免Apple改版的問題(例如採用以C為主的框架設計,避免之後Apple改版舊的程式碼無法使用。Android因為對於舊版的App使用者過多,在開發時相對不用接觸到太新的API,相對於發表會新系統的出現壓力較小。iOS的前期開發成本高很多,一台Mac, 開發者帳號跟一台手機幾乎是基本款。Android開發時只需要一台電腦(平台不限定)配上一台Android手機即可動工,但因為解析度過多,測試上也相對多一些。但以iOS這幾年開發來說,簡化開發難度確實是重點,不過至少可以確定未來幾年他們應該都不會降低這樣的開發成本門檻。(也就是投資設備的費用)
魏巍表示:iOS觸控快多了、大家比較會下載新的軟體,也比較會花錢下載付費軟體。除此以外,開發也比較簡單。
7.iOS 8開放了通知中心、鍵盤、HomeKit、CloudKit、HealthKit等4000個新API,對開發者的想法是?是個商機嗎?
Dejay 表示:對是! 可以開發很多新的實用與創新APP,不過用戶買不買單還要再努力試水溫就是了~
塔克熊表示:確實是多了很多功能,Homekit讓很多第三方廠商不用嘗試去自己制定需要的協定。採用Apple的架構即可把重點著重在硬體開發,減少App的負擔,但對開發者來說。其實是相對減少開發者在App開發上的價值(技術門檻降低,相對也會影響大家認為該工作價值。
CloudKit我則認為影響不大,要看開發者對於跨平台性的需求,畢竟大家也可以使用Google Drive, Dropbox等替代方案。要考慮到同時也發布到Android平台,開發者應該還是會選擇後面兩者方案,也能在網路上找到較多資料。
後續幾項API,應該說對於開發者有更多選擇,可以實現的情境變得更多,可以把重點放在產品的實現。而非糾結於技術程度的高低,整體來說,如果你是一個獨立工作者,這樣的開發環境對你很好,可以加快產品的誕生。但如果你在公司內工作,或許你會需要更多超出單純App開發者的價值(不論各種通訊協定、規範、或是想像力等)。否則以台灣環境來說,老闆可能會認為你所在的位置不是屬於相當有價值的地位。
整體來說,對於所有的第三方硬體廠商來說,應該是個相當大的商機,我們應該可以好好期待!!
Tide Q 表示:很大的商機,而且Swift功能更是強大,程式寫法更簡單,更有彈性。
魏巍表示:是。我最近已經複習iOS。要回來開發iOS App :D
小結
就小弟的初淺觀察,iOS 用戶比 Android 用戶更願意付費購買 App,除了上面開發者提到的 Android App 很容易破解外。另一個就是 iOS 用戶在註冊帳號時多半會輸入綁定信用卡,但很少 Android 用戶會綁定 Google Wallet 電子錢包,多半是直接用 N 年前的 Gmail 帳號登入 Android。甚至有非常多 Android 使用者從沒付費買過 App,和更新過自己的裝置系統。
如果你是一個初學者,打算開始學程式開發 App,我建議你馬上開始學 Apple 最新推出的 Swift,這可以讓你節省很多學習時間,而且是個能和前輩們在同一個起跑點的機會。如果你是單打獨鬥只有一個人的開發者,能首 iOS 次 Android,開發 iOS App 以新奇有趣,和加入 IAP 的方式來收費,Android 以工具實用類和插入廣告賺取收益。
至於 Windows Phone...
● 延伸閱讀:2014 年 BrianFang 給 App 開發者的 8 個小提醒