該死,原生移動應用的開發成本太高了!
我們遇到了一個臨界點。除去少數幾個特別的的用例之外,使用原生框架和原生應用開發團隊構建、維護移動應用再也沒有意義了。 -- Nader Dabit
本文導航
-這一切對於我們意味著什麼? …… 12%
-能不能拋棄移動應用,僅面向 Web 呢? …… 19%
-那混合開發呢? …… 31%
-解決方案 …… 41%
-在產品中特別注意使用 React Native …… 62%
-Facebook …… 63%
-Instagram …… 69%
-Airbnb …… 71%
-Vogue …… 74%
-沃爾瑪 …… 78%
-微軟 …… 81%
-結論 …… 86%
-公司 …… 87%
-開發者 …… 89%
編譯自: https://hackernoon.com/the-cost-of-native-mobile-app-development-is-too-damn-high-4d258025033a
作者: Nader Dabit
譯者: fuowang
一個有價值的命題
我們遇到了一個臨界點。除去少數幾個特別的的用例之外,使用原生框架和原生應用開發團隊構建、維護移動應用再也沒有意義了。
在美國,僱傭 iOS,Android[1],JavaScript[2] 開發人員的平均花費
在過去的幾年,原生移動應用開發的費用螺旋式上升,無法控制。對沒有大量資金的新創業者來說,創建原生應用、MVP 設計架構和原型的難度大大增加。現有的公司需要抓住人才,以便在現有應用上進行迭代開發或者構建一個新的應用。要盡一切努力才能留住最好的人才,與 世界各地的公司[3] 拼盡全力爭個[4]高[5]下[6]。
2015 年初,原生方式和混合方式開發 MVP 設計架構的費用對比[7]
這一切對於我們意味著什麼?
如果你的公司很大或者有足夠多的現金,舊思維是只要你在原生應用開發方面投入足夠多的資金,就高枕無憂。但事實不再如此。
Facebook 是你最不會想到的在人才戰中失敗的公司(因為他們沒有失敗),它也遇到了原生應用方面金錢無法解決的問題。他們的移動應用龐大而又複雜,他們發現編譯它竟然需要 15 分鐘[8]。這意味著哪怕是極小的用戶界面改動,比如移動幾個點,測試起來都要花費幾個小時(甚至幾天)。
除了冗長的編譯時間,應用的每一個小改動在測試時都需要在兩個完全不同的環境(IOS 和 Android)實施,開發團隊需要使用兩種語言和框架工作,這趟水更渾了。
Facebook 對這個問題的解決方案是 React Native[9]。
能不能拋棄移動應用,僅面向 Web 呢?
一些人認為移動應用的末日已到[10]。儘管我很欣賞、尊重 Eric Elliott[11] 和他的工作,但我們還是通過考察一些近期的數據,進而討論一下某些相反的觀點:
人們在移動應用上花費的時間[12](2016年4月)
人們使用 APP 的時間占使用手機總時長的 90%
目前世界上有 25 億人在使用移動手機。這個數字增長到 50 億的速度會比我們想像的還要快。[13] 在正常情況下,丟掉 45 億人的生意,或者拋棄有 45 億人使用的應用程序是絕對荒唐且行不通的。
老問題是原生移動應用的開發成本對大多數公司來說太高了。然而,面向 web 的開發成本也在增加。在美國,JavaScript 開發者的平均工資已達到 $97,000.00[14]。
伴隨著複雜性的增加以及對高質量 web 開發的需求暴漲,僱傭一個 JavaScript 開發者的平均價格直逼原生應用開發者。論證 web 開發更便宜已經沒用了。
那混合開發呢?
混合應用是將 HTML5 應用內嵌在原生應用的容器里,並且提供實現原生平台特性所需的許可權。Cordova 和 PhoneGap 就是典型的例子。
如果你想構建一個 MVP 設計架構、一個產品原型,或者不擔心對原生應用的模仿的用戶體驗,那麼混合應用會很適合你。但謹記如果你最後想把它轉為原生應用,整個項目都得重寫。
此領域有很多創新的東西,我最喜歡的當屬 Ionic Framework[15]。混合開發正變得越來越好,但還不如原生開發那麼流暢自然。
有很多公司,包括最嚴峻的初創公司,也包括大中規模的公司,混合應用在質量上的表現似乎沒有滿足客戶的要求,給人的感覺是活糙、不夠專業。
聽說應用商店裡的前 100 名都不是混合應用[16],我沒有證據支持這一觀點。如果說有百分之零到百分之五是混合應用,我就不懷疑了。
我們最大的錯誤是在 HTML5 身上下了太多的賭注[17] — 馬克·扎克伯格
解決方案
如果你緊跟移動開發動向,那麼你絕對聽說過像 NativeScript[18] 和 React Native[19] 這樣的項目。
通過這些項目,使用由 JavaScript 寫成的基本 UI 組成塊,像常規 iOS 和 Android 應用那樣,就可以構建出高質量的原生移動應用。
你可以僅用一位工程師,也可以用一個專業的工程師團隊,通過 React Native 使用 現有代碼庫[20] 或者 底層技術[21] 進行跨平台移動應用開發、原生桌面開發[22],甚至還有 web 開發。把你的應用發布到 APP Store 上、 Play Store 上,還有 Web 上。如此可以在保證不喪失原生應用性能和質量的同時,使成本僅占傳統開發的一小部分。
通過 React Native 進行跨平台開發時重複使用其中 90% 的代碼也不是沒有的事,這個範圍通常是 80% 到 90%。
如果你的團隊使用 React Native, 既可以消除團隊之間的分歧,也可以讓 UI 和 API 的設計更一致,還可以加快開發速度。
在編譯時不需要使用 React Native,在保存時應用可以實時更新,也加快了開發速度。
React Native 還可以使用 Code Push[23] 和 AppHub[24] 這樣的工具來遠程更新你的 JavaScript 代碼。這意味著你可以向用戶實時推送更新、新特性,快速修復 bug,繞過打包、發布這些工作,繞過 App Store、Google Play Store 的審核,省去了耗時 2 到 7 天的過程(App Store 一直是整個過程的痛點)。混合應用的這些優勢原生應用不可能比得上。
如果這個領域的創新力能像剛發行時那樣保持,將來你甚至可以為 Apple Watch[25]、Apple TV[26],和 Tizen[27] 這樣的平台開發應用。
NativeScript 依然是個相當年輕的框架驅動,Angular 版本 2,上個月剛剛發布測試版[28]。但只要它保持良好的市場份額,未來就很有前途。
你可能還不知道世界上一些最能創新、最大的科技公司在這類技術上下了很大的賭注,特別是 React Native[29]。
我供職過的多家企業以及世界 500 強公司目前都在轉移至 React Native。
在產品中特別注意使用 React Native
看下面的例子,這是一個使用 React Native 技術的著名應用列表[30]。
Facebook
Facebook 公司的 React Native 應用
Facebook 的兩款應用 Ads Manager[31] 和 Facebook Groups[32] 都在使用 React Native 技術,並且將會應用到實現動態消息的框架上[33]。
Facebook 也會投入大量的資金創立和維護像 React Native 這樣的開源項目,而且開源項目的開發者最近已經創建很多了不起的項目,這是很了不起的工作,像我以及全世界的業務每天都從中享受諸多好處。
Instagram
Instagram 應用的一部分已經使用了 React Native 技術。
Airbnb
Airbnb
Airbnb 的很多東西正用 React Native 重寫。(來自 Leland Richardson[34])
超過 90% 的 Airbnb 旅行平台都是用 React Native 寫的。(來自 spikebrehm[35])
Vogue
Vogue 是 2016 年度十佳應用之一
Vogue 這麼突出不僅僅因為它也用 React Native 寫成,而是因為它被蘋果公司評為年度十佳應用之一[36]。
Vogue
沃爾瑪
Walmart Labs
查看這篇 Keerti[37] 的文章[38]來了解沃爾瑪是怎樣看待 React Native 的優勢的。
微軟
微軟在 React Native 身上下的賭注很大。
它早已發布多個開源工具,包括 Code Push[39]、React Native VS Code[40],以及 React Native Windows[41],旨在幫助開發者向 React Native 領域轉移。
微軟考慮的是那些已經使用 React Native 為 iOS 和 Android 開發應用的開發者,他們可以重用高達 90% 的代碼,不用花費太多額外的時間和成本就可將應用發布到 Windows 上。
微軟對 React Native 生態的貢獻十分廣泛,過去幾年在開源界的表現很搶眼。
結論
移動應用界面設計和移動應用開發要進行範式轉變,下一步就是 React Native 以及與其相似的技術。
公司
如果你的公司正想著削減成本、加快開發速度,而又不想在應用質量和性能上妥協,這是最適合使用 React Native 的時候,它能提高你的凈利潤。
開發者
如果你是一個開發者,想進入一個將來會快速發展的領域,我強烈推薦你把 React Native 列入你的學習清單。
如果了解 JavaScript,你會入門很快,工具我首推 Exponent[42],其他的就看你怎麼想了。使用 Exponent 開發者可以輕鬆的編譯、測試和發布跨 Windows 和 MacOS 兩個平台的 React Native 應用。
如果已經是一位原生應用開發者,你更會受益匪淺。因為在需要時你能夠勝任深入研究原生應用邊緣的工作。雖然不會經常用到,但在團隊需要時這可是十分寶貴的能力。
我花了很多時間來學習、指導別人 React Native。因為它讓我十分激動,而且使用這個框架創作應用也是我一個平淡的小樂趣。
感謝閱讀。
作者簡介:
教授和構建 React Native 應用的軟體開發專家
via: https://hackernoon.com/the-cost-of-native-mobile-app-development-is-too-damn-high-4d258025033a
作者:Nader Dabit[43] 譯者:fuowang 校對:wxy
本文由 LCTT 原創編譯,Linux中國 榮譽推出
[1]: iOS,Android - http://www.indeed.com/salary
[2]: JavaScript - http://www.payscale.com/research/US/Skill=JavaScript/Salary
[3]: 世界各地的公司 - http://blogs.wsj.com/cio/2016/09/30/tech-talent-war-moves-to-africa/
[4]: 爭個 - http://www.bizjournals.com/charlotte/how-to/human-resources/2016/12/employers-offer-premium-wages-skilled-workers.html
[5]: 高 - https://www.cnet.com/news/silicon-valley-talent-wars-engineers-come-get-your-250k-salary/
[6]: 下 - http://www.nytimes.com/2015/08/19/technology/unicorns-hunt-for-talent-among-silicon-valleys-giants.html
[7]: 對比 - http://www.comentum.com/mobile-app-development-cost.html
[8]: 他們發現編譯它竟然需要 15 分鐘 - https://devchat.tv/react-native-radio/08-bridging-react-native-components-with-tadeu-zagallo
[9]: React Native - https://facebook.github.io/react-native/
[10]: 一些人認為移動應用的末日已到 - https://medium.com/javascript-scene/native-apps-are-doomed-ac397148a2c0#.w06yd23ej
[11]: Eric Elliott - https://medium.com/u/c359511de780
[12]: 時間 - http://www.smartinsights.com/mobile-marketing/mobile-marketing-analytics/mobile-marketing-statistics/attachment/percent-time-spent-on-mobile-apps-2016/
[13]: 這個數字增長到 50 億的速度會比我們想像的還要快。 - http://ben-evans.com/benedictevans/2016/12/8/mobile-is-eating-the-world
[14]: 在美國,JavaScript 開發者的平均工資已達到 $97,000.00 - http://www.indeed.com/salary?q1=javascript+developer&l1=united+states&tm=1
[15]: Ionic Framework - https://ionicframework.com/
[16]: 聽說應用商店裡的前 100 名都不是混合應用 - https://medium.com/lunabee-studio/why-hybrid-apps-are-crap-6f827a42f549#.lakqptjw6
[17]: 我們最大的錯誤是在 HTML5 身上下了太多的賭注 - https://techcrunch.com/2012/09/11/mark-zuckerberg-our-biggest-mistake-with-mobile-was-betting-too-much-on-html5/
[18]: NativeScript - https://www.nativescript.org/
[19]: React Native - https://facebook.github.io/react-native/
[20]: 現有代碼庫 - https://github.com/necolas/react-native-web
[21]: 底層技術 - https://facebook.github.io/react/
[22]: 原生桌面開發 - https://github.com/ptmt/react-native-macos
[23]: Code Push - http://microsoft.github.io/code-push/
[24]: AppHub - https://apphub.io/
[25]: Apple Watch - https://github.com/elliottsj/apple-watch-uikit
[26]: Apple TV - https://github.com/douglowder/react-native-appletv
[27]: Tizen - https://www.tizen.org/blogs/srsaul/2016/samsung-committed-bringing-react-native-tizen
[28]: 上個月剛剛發布測試版 - http://angularjs.blogspot.com/2016/09/angular2-final.html
[29]: React Native - https://facebook.github.io/react-native/
[30]: 這是一個使用 React Native 技術的著名應用列表 - https://facebook.github.io/react-native/showcase.html
[31]: Ads Manager - https://play.google.com/store/apps/details?id=com.facebook.adsmanager
[32]: Facebook Groups - https://itunes.apple.com/us/app/facebook-groups/id931735837?mt=8
[33]: 將會應用到實現動態消息的框架上 - https://devchat.tv/react-native-radio/40-navigation-in-react-native-with-eric-vicenti
[34]: Leland Richardson - https://medium.com/u/41a8b1601c59
[35]: spikebrehm - https://medium.com/u/71a78c1b069b
[36]: 因為它被蘋果公司評為年度十佳應用之一 - http://www.highsnobiety.com/2016/12/08/iphone-apps-best-of-the-year-2016/
[37]: Keerti - https://medium.com/@Keerti
[38]: 文章 - https://medium.com/walmartlabs/react-native-at-walmartlabs-cdd140589560#.azpn97g8t
[39]: Code Push - http://microsoft.github.io/code-push/
[40]: React Native VS Code - https://github.com/Microsoft/vscode-react-native
[41]: React Native Windows - https://github.com/ReactWindows/react-native-windows
[42]: Exponent - https://medium.com/u/df61a4267d7a
[43]: Nader Dabit - https://hackernoon.com/@dabit3
※極客漫畫:現代的邪惡——不許 Ctrl-C
※在Linux安裝GoogleTensorFlow神經網路軟體
※微流冷卻技術可能讓摩爾定律起死回生
TAG:Linux技術 |
※iOS不開放,但開發者卻因為蘋果的分成變得積極了
※源於精益的生產節拍是否能夠適用到軟體開發?
※成功開發了遠洋太古里的開發商,能否拯救3年未動的一環內項目?
※用爆款和流量造神之後,開發者生態最終成了小程序的「勝負手」
※衛生間開槽,破壞了開發商做的防水,本來還能補救,現在只能全拆了
※我們的大腦是否已被完全開發?如果人類的大腦被完全開發,將會發生什麼?
※孩子智力過早開發,越努力越沒用?再急也要慢慢來
※絕地求生:真是服了外掛開發們,穢土轉生復活掛真的來了!這波秀的頭皮發麻
※未來房價翻番漲,但絕不可能暴跌?開發商:我們也是要生存的!
※蘋果和谷歌應用商店抽成過高,開發者不滿
※抽成比例過高 應用開發商開始用實際行動抗議蘋果谷歌「徵稅」
※即興繪畫,開發潛能,療愈生命,影響心靈
※蘋果突然宣布新規,針對應用開發者,網友:這就是我用蘋果的原因
※移動開發死亡潮來了
※避開這四點誤區,孩子再笨,也能開發出潛力!
※湖北最大的洞穴,未開發前吸引遊客絡繹不絕,開發後卻變成這樣
※火影忍者里的輪迴眼,誰運用開發得最強呢?
※不用去早教班開發大腦了,出去玩也能做到!
※開發商為什麼急著賣房,而不是等到升值了再賣?背後的貓膩很大
※豐田已經開發出2.0升發動機,據稱它是最高效的汽油發動機