Linux中國

該死,原生移動應用的開發成本太高了!

一個有價值的命題

我們遇到了一個臨界點。除去少數幾個特別的的用例之外,使用原生框架和原生應用開發團隊構建、維護移動應用再也沒有意義了。

在美國,僱傭 iOS,AndroidJavaScript 開發人員的平均花費

在過去的幾年,原生移動應用開發的費用螺旋式上升,無法控制。對沒有大量資金的新創業者來說,創建原生應用、MVP 設計架構和原型的難度大大增加。現有的公司需要抓住人才,以便在現有應用上進行迭代開發或者構建一個新的應用。要盡一切努力才能留住最好的人才,與 世界各地的公司 拼盡全力爭個

2015 年初,原生方式和混合方式開發 MVP 設計架構的費用對比

這一切對於我們意味著什麼?

如果你的公司很大或者有足夠多的現金,舊思維是只要你在原生應用開發方面投入足夠多的資金,就高枕無憂。但事實不再如此。

Facebook 是你最不會想到的在人才戰中失敗的公司(因為他們沒有失敗),它也遇到了原生應用方面金錢無法解決的問題。他們的移動應用龐大而又複雜,他們發現編譯它竟然需要 15 分鐘。這意味著哪怕是極小的用戶界面改動,比如移動幾個點,測試起來都要花費幾個小時(甚至幾天)。

除了冗長的編譯時間,應用的每一個小改動在測試時都需要在兩個完全不同的環境(IOS 和 Android)實施,開發團隊需要使用兩種語言和框架工作,這趟水更渾了。

Facebook 對這個問題的解決方案是 React Native

能不能拋棄移動應用,僅面向 Web 呢?

一些人認為移動應用的末日已到。儘管我很欣賞、尊重 Eric Elliott 和他的工作,但我們還是通過考察一些近期的數據,進而討論一下某些相反的觀點

人們在移動應用上花費的時間(2016年4月)

人們使用 APP 的時間占使用手機總時長的 90%

目前世界上有 25 億人在使用移動手機。這個數字增長到 50 億的速度會比我們想像的還要快。 在正常情況下,丟掉 45 億人的生意,或者拋棄有 45 億人使用的應用程序是絕對荒唐且行不通的。

老問題是原生移動應用的開發成本對大多數公司來說太高了。然而,面向 web 的開發成本也在增加。在美國,JavaScript 開發者的平均工資已達到 $97,000.00

伴隨著複雜性的增加以及對高質量 web 開發的需求暴漲,僱傭一個 JavaScript 開發者的平均價格直逼原生應用開發者。論證 web 開發更便宜已經沒用了。

那混合開發呢?

混合應用是將 HTML5 應用內嵌在原生應用的容器里,並且提供實現原生平台特性所需的許可權。Cordova 和 PhoneGap 就是典型的例子。

如果你想構建一個 MVP 設計架構、一個產品原型,或者不擔心對原生應用的模仿的用戶體驗,那麼混合應用會很適合你。但謹記如果你最後想把它轉為原生應用,整個項目都得重寫。

此領域有很多創新的東西,我最喜歡的當屬 Ionic Framework。混合開發正變得越來越好,但還不如原生開發那麼流暢自然。

有很多公司,包括最嚴峻的初創公司,也包括大中規模的公司,混合應用在質量上的表現似乎沒有滿足客戶的要求,給人的感覺是活糙、不夠專業。

聽說應用商店裡的前 100 名都不是混合應用,我沒有證據支持這一觀點。如果說有百分之零到百分之五是混合應用,我就不懷疑了。

我們最大的錯誤是在 HTML5 身上下了太多的賭注 — 馬克·扎克伯格 

解決方案

如果你緊跟移動開發動向,那麼你絕對聽說過像 NativeScriptReact Native 這樣的項目。

通過這些項目,使用由 JavaScript 寫成的基本 UI 組成塊,像常規 iOS 和 Android 應用那樣,就可以構建出高質量的原生移動應用。

你可以僅用一位工程師,也可以用一個專業的工程師團隊,通過 React Native 使用 現有代碼庫 或者 底層技術 進行跨平台移動應用開發、原生桌面開發,甚至還有 web 開發。把你的應用發布到 APP Store 上、 Play Store 上,還有 Web 上。如此可以在保證不喪失原生應用性能和質量的同時,使成本僅占傳統開發的一小部分。

通過 React Native 進行跨平台開發時重複使用其中 90% 的代碼也不是沒有的事,這個範圍通常是 80% 到 90%。

如果你的團隊使用 React Native, 既可以消除團隊之間的分歧,也可以讓 UI 和 API 的設計更一致,還可以加快開發速度。

在編譯時不需要使用 React Native,在保存時應用可以實時更新,也加快了開發速度。

React Native 還可以使用 Code PushAppHub 這樣的工具來遠程更新你的 JavaScript 代碼。這意味著你可以向用戶實時推送更新、新特性,快速修復 bug,繞過打包、發布這些工作,繞過 App Store、Google Play Store 的審核,省去了耗時 2 到 7 天的過程(App Store 一直是整個過程的痛點)。混合應用的這些優勢原生應用不可能比得上。

如果這個領域的創新力能像剛發行時那樣保持,將來你甚至可以為 Apple WatchApple TV,和 Tizen 這樣的平台開發應用。

NativeScript 依然是個相當年輕的框架驅動,Angular 版本 2,上個月剛剛發布測試版。但只要它保持良好的市場份額,未來就很有前途。

你可能還不知道世界上一些最能創新、最大的科技公司在這類技術上下了很大的賭注,特別是 React Native

我供職過的多家企業以及世界 500 強公司目前都在轉移至 React Native。

在產品中特別注意使用 React Native

看下面的例子,這是一個使用 React Native 技術的著名應用列表

Facebook

Facebook 公司的 React Native 應用

Facebook 的兩款應用 Ads ManagerFacebook Groups 都在使用 React Native 技術,並且將會應用到實現動態消息的框架上

Facebook 也會投入大量的資金創立和維護像 React Native 這樣的開源項目,而且開源項目的開發者最近已經創建很多了不起的項目,這是很了不起的工作,像我以及全世界的業務每天都從中享受諸多好處。

Instagram

Instagram

Instagram 應用的一部分已經使用了 React Native 技術。

Airbnb

Airbnb

Airbnb 的很多東西正用 React Native 重寫。(來自 Leland Richardson

超過 90% 的 Airbnb 旅行平台都是用 React Native 寫的。(來自 spikebrehm

Vogue

Vogue 是 2016 年度十佳應用之一

Vogue 這麼突出不僅僅因為它也用 React Native 寫成,而是因為它被蘋果公司評為年度十佳應用之一

沃爾瑪

Walmart Labs

查看這篇 Keerti文章來了解沃爾瑪是怎樣看待 React Native 的優勢的。

微軟

微軟在 React Native 身上下的賭注很大。

它早已發布多個開源工具,包括 Code PushReact Native VS Code,以及 React Native Windows,旨在幫助開發者向 React Native 領域轉移。

微軟考慮的是那些已經使用 React Native 為 iOS 和 Android 開發應用的開發者,他們可以重用高達 90% 的代碼,不用花費太多額外的時間和成本就可將應用發布到 Windows 上。

微軟對 React Native 生態的貢獻十分廣泛,過去幾年在開源界的表現很搶眼。

結論

移動應用界面設計和移動應用開發要進行範式轉變,下一步就是 React Native 以及與其相似的技術。

公司

如果你的公司正想著削減成本、加快開發速度,而又不想在應用質量和性能上妥協,這是最適合使用 React Native 的時候,它能提高你的凈利潤。

開發者

如果你是一個開發者,想進入一個將來會快速發展的領域,我強烈推薦你把 React Native 列入你的學習清單。

如果了解 JavaScript,你會入門很快,工具我首推 Exponent,其他的就看你怎麼想了。使用 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 譯者:fuowang 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國