Flutter和React Native,哪個更適合送餐應(yīng)用開發(fā)
譯文【51CTO.com快譯】自從智能手機問世以來,移動應(yīng)用已經(jīng)逐漸成為我們生活中不可或缺的一部分。有統(tǒng)計顯示,人們會將超過90%的智能手機使用時間,花費在各種引人入勝的移動應(yīng)用程序上。當然,不可否認,實用的移動應(yīng)用的確是連接客戶、并確保他們能夠獲得最佳應(yīng)用體驗的一種有效工具。
近年來,隨著送餐服務(wù)作為一類新興的、按需經(jīng)濟(on-demand economy)的不斷崛起和飛速發(fā)展,與之相對應(yīng)的移動應(yīng)用細分品類,也需要憑借著其高效的服務(wù)能力,以滿足各類客戶的不同使用需求。目前,有Flutter和React Native兩種技術(shù),可以被用來創(chuàng)建具有快速響應(yīng)能力、且高效的送餐應(yīng)用平臺。下面,讓我們對它們進行綜合介紹與優(yōu)缺點比較,以便您能夠根據(jù)實際需求,針對送餐應(yīng)用的開發(fā),做出明智的選擇。
什么是Flutter?
Google于2017年首次推出了Flutter。該跨平臺框架使用的是與JavaScript類似,但更為簡單的Dart編程語言。由Flutter提供的UI軟件工具包,對于使用單個代碼庫進行開發(fā)的、交互式跨平臺應(yīng)用程序來說,是非常高效的。
作為一個完整的SDK,F(xiàn)lutter包含了各種工具、小部件、API、以及帶有現(xiàn)成按鈕和元素的UI庫。該平臺可以作為便捷的工具,為時下流行的按需經(jīng)濟,構(gòu)建和部署各種MVP(Minimum Viable Product,最小可行產(chǎn)品),以便它們能夠順利地運行在iOS和Android系統(tǒng)之上。
什么是React Native?
在2015年、或更早些時候被發(fā)布的React Native,是一個由Facebook創(chuàng)建、并采用了JavaScript的框架。該框架不但屬于開源工具,而且能夠獲取強大的社區(qū)支持。該框架非常適合于將應(yīng)用程序構(gòu)建在iOS、Android、Microsoft Universal Windows平臺、以及Apple tvOS等平臺上。
Flutter與React Native的共同優(yōu)勢
為了給用戶帶來最佳的使用體驗,服務(wù)提供商需要讓自己的送餐應(yīng)用既簡單、又使用便捷。當然,他們也需要考慮到開發(fā)與實現(xiàn)的成本。如果您想從零開始構(gòu)建應(yīng)用的話,請先參考《如何創(chuàng)建送餐應(yīng)用程序》一文,以了解相關(guān)基礎(chǔ)概念。在此,我們將主要討論Flutter和React Native兩大平臺框架的共同優(yōu)勢。
- 降低成本。憑借著一整套獨特的工具和跨平臺選項,F(xiàn)lutter和React Native框架都能夠讓用戶以最低的成本優(yōu)勢,按需開發(fā)出各種應(yīng)用程序。
- 開源。這兩種平臺不但開源,而且包含有大量的插件和第三方服務(wù)。當然,用戶也可以在此基礎(chǔ)上針對送餐應(yīng)用,開發(fā)出各種特定的功能。
- 現(xiàn)成的UI/UX元素。在這個“看臉”的時代,由這兩種平臺開發(fā)出的移動應(yīng)用,既能夠通過友好的UI元素,吸引用戶去下載試用;又可以通過簡單靈活的UX特性,讓用戶持續(xù)將其保留在其智能終端上。
- 易于維護。無論處于開發(fā)階段、還是在測試階段,F(xiàn)lutter和React Native都能夠讓用戶易于對應(yīng)用程序開展調(diào)試和修改。
Flutter與React Native的點對點對比
Flutter和React Native的差異性
人氣和市場份額
根據(jù)Statista的數(shù)據(jù)統(tǒng)計,目前,React Native仍然是最受歡迎的跨平臺移動框架之一,且占全球份額的42%。Flutter緊隨其后,占據(jù)了30%的市場份額。而在非Web框架排名中,React Native以11.50%的份額占據(jù)第6位,F(xiàn)lutter以7.20%的份額占據(jù)第9位。
設(shè)置
這兩種平臺都是開源的,并且都配有關(guān)于軟件該如何安裝的詳細文檔。當然,F(xiàn)lutter的設(shè)置過程會更為直接,可以自動檢查出系統(tǒng)的各種潛在問題,而React Native在此方面稍遜一些。
編程語言
正如前面所提到的,這兩種平臺分別有著自己首選的編程語言。其中,由于React Native基于JavaScript這種非常流行的編程語言,因此開發(fā)人員更容易上手。
用戶界面
在用戶界面上,這兩種框架分別使用不同的行為,來構(gòu)建UI。React Native使用第三方組件,去連接原生的iOS和Android組件;而Flutter具有可定制的各種小部件。因此,如果使用React Native的組件進行跨平臺開發(fā),開發(fā)人員可能會經(jīng)常面臨重復(fù)性的、復(fù)雜的用戶界面開發(fā)等挑戰(zhàn)。
開發(fā)時間
雖然這兩種跨平臺框架都適合以最少的預(yù)算和開發(fā)時間,構(gòu)建出送餐等類型的移動應(yīng)用程序。盡管Flutter會以其原生的UI組件略占優(yōu)勢,不過由于Dart語言在開發(fā)圈內(nèi)并不普及,因此開發(fā)者學習該語言和相關(guān)技術(shù),也需要花費一定的時間。
相反,使用了流行的JavaScript語言的React Native,雖然可以節(jié)省開發(fā)用時,但事實上它往往需要集成各種插件和組件,因此會在無形中拖慢開發(fā)的時間。
應(yīng)用性能
就它們開發(fā)出的應(yīng)用整體的運行效果而言,由于React Native使用了JavaScript橋接器與各種設(shè)備組件進行交互,因此它可能會減慢運行的時間。而Flutter會被編譯成適用于iOS和Android的原生ARM代碼,進而巧妙地避免了性能問題。可見,此局中,F(xiàn)lutter在性能上勝出。
測試支持
React Native僅帶有幾個單元級別的測試框架,而且并沒有官方支持。用戶往往需要使用第三方的、且非官方支持的平臺,去測試開發(fā)出的應(yīng)用程序。而Flutter則擁有許多測試功能,可被用于在任何開發(fā)級別上,運行各項應(yīng)用測試。因此,F(xiàn)lutter再勝一局。
對于送餐應(yīng)用來說,什么是重要的?
我們可以將送餐應(yīng)用視為一個第三方API的集成。它往往涉及到在線支付、集成地圖、聊天機器人、以及路線優(yōu)化等服務(wù)與功能。各種技術(shù)棧應(yīng)該能夠被平滑地集成到此類應(yīng)用中,以便用戶按需使用其界面導(dǎo)航和按鈕。因此,在創(chuàng)建送餐應(yīng)用程序之前,您應(yīng)當事先遵循如下與業(yè)務(wù)相關(guān)的流程:
- 決定按需應(yīng)用的運作模式。
- 確定預(yù)算。
- 選擇框架。
- 設(shè)置用戶友好的界面。
- 集成第三方API。
顯然,構(gòu)建一個相對復(fù)雜的應(yīng)用程序,往往無法在數(shù)小時內(nèi)完成開發(fā)工作。對此,我們需要根據(jù)開發(fā)團隊所擅長的開發(fā)語言,使用帶有SDK、以及現(xiàn)成組件的跨平臺框架,在保證產(chǎn)品交付質(zhì)量的前提下,選擇合適的架構(gòu),以降低整體的開發(fā)成本。
總而言之,目前業(yè)界不同公司都有著使用React Native和Flutter,來創(chuàng)建送餐應(yīng)用的先例。這兩個框架都能夠在有限的項目預(yù)算和時間內(nèi),為iOS和Android用戶構(gòu)建出界面友好的應(yīng)用程序。具體應(yīng)該如何選擇,仍取決于待構(gòu)建應(yīng)用的復(fù)雜性和具體的業(yè)務(wù)目標。
原文標題:FluttervsReact Native: What Is the Best Language for Food Delivery App Development? ,作者: Anahit Ghazaryan
【51CTO譯稿,合作站點轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】