為什麼 Flutter 是跨平臺開發的終極之選

来源:https://www.cnblogs.com/Mayday9527/archive/2019/11/08/11819567.html

跨平臺開發是當下最受歡迎、應用最廣泛的框架之一。能實現跨平臺開發的框架也五花八門,讓人眼花繚亂。最流行的跨平臺框架有 Xamarin、PhoneGap、Ionic、Titanium、Monaca、Sencha、jQuery Mobile、React native、Flutter 等等。但這些工具的表 ...


跨平臺開發是當下最受歡迎、應用最廣泛的框架之一。能實現跨平臺開發的框架也五花八門,讓人眼花繚亂。最流行的跨平臺框架有 Xamarin、PhoneGap、Ionic、Titanium、Monaca、Sencha、jQuery Mobile、React native、Flutter 等等。但這些工具的表現也是高低有別,各有千秋。

在這些流行的框架中,有很多也已經消失在了歷史的長河中被人漸漸遺忘了。但 React native 和 Flutter 這倆框架地位依舊堅挺,備受歡迎。

這是為什麼?

因為它們倆分別由最強大的科技巨頭 Facebook 和谷歌背書支持。本文將討論谷歌 Flutter 這個萬千矚目的框架。

你想知道什麼是 Flutter 應用開發嗎?你是否經常查詢這些問題:`Flutter`在 iOS 開發環境中好用嗎?它比`React native`更好嗎?

本文會告訴你,為什麼 Flutter 是一個值得信賴的跨平臺應用開發解決方案。下麵就跟我一起探究答案,深入瞭解這一跨平臺開發最佳工具吧。

另外,如果你有更好的想法,不妨添加一下交流群[1012951431],選擇加入一起交流,一起學習。期待你的加入!(進群可領取學習禮包)

跨平臺開發

新手可能會問這個問題:什麼是跨平臺開發呢?

本質上來說,跨平臺開發就是“一石二鳥”的開發技術。下麵簡單解釋一下。早期沒有跨平臺框架的時候,開發者必須為同一應用的各個平臺(比如 Android、iOS、Windows 等)分別編寫代碼。這對開發者以及投資開發該應用的企業而言都是費時費力又花錢的工作。

那麼跨平臺框架解決了什麼問題呢?就是用跨平臺框架可以只用一份代碼就適配所有平臺,省錢又省時。

下麵回到主題,談談為什麼 Flutter 能用來開發最優秀的移動應用,為什麼它是跨平臺開發的首選。

什麼是 Flutter

簡而言之,`Flutter` 是一個軟體開發工具包(SDK)。它包含眾多小部件、框架和工具,能幫助開發者無縫構建跨平臺應用。

介紹 Flutter 的功能之前,我們先來看看它的優勢和不足。

Flutter 的優勢

  •  它完全免費,徹底開源
  •  可以用來更快地創建應用
  •  出色的用戶界面(UI)
  •  節省代碼量
  •  可接入平臺原生功能
  •  最適合 MVP 開發(最小化可行產品)
  •  較老的設備也使用相同 UI 運行應用
  •  減少測試工作量
  •  更豐富的社區支持
  •  較低的維護難度
  •  內置來自 Dart 的包管理器

Flutter 的不足

  •  Flutter 僅適用於移動設備平臺,瀏覽器不支持 Flutter(最新的 Flutter 1.5 提供了 Flutter for Web,開始解決這個問題)
  •  Flutter 框架誕生不久,可能欠缺很多功能
  •  Flutter 不支持開發 Apple TV 或 Android TV 上的應用
  •  相比 JS/TS,Flutter 可選的包較少

Flutter 的特性

谷歌現已發佈 Flutter 的最新重大更新版本,Flutter 1.2 版本。Flutter 新版主要的改進包括:

  •  為開發者提供跨平臺應用開發的最前沿工具
  •  新版為原有的小部件增加了許多新功能

新版還增強了核心框架的穩定性、質量和性能。

 原生 ARM 代碼

Flutter 有一個名為原生 ARM 的功能,對初創企業和科技公司而言很有意義。它可以幫助開發者更輕鬆地實現自己的想法,為應用項目帶來最顯著的優勢。

Web 視圖組件

這一功能使用戶可以輕鬆地在移動應用中查看 Web 內容。此外,Flutter 還讓應用中的頁面跳轉和穩定更加容易。

 Dart 2.2

最近更新的`Dart.2.2`確實是一個變革性的角色。它提升了 AOT 編譯代碼的性能。此外,dart 庫提供了很多用來建立映射、列表和對象集合的類。

Dart2.2 的其他功能包括:

  • 映射是鍵值對的集合。
  • Flutter 列表是有序的值序列,其中每個值可以通過索引訪問,並且可以多次出現。
  • 它更新了所有 dart 語言規範以適配改動。
  • 開發者可以使用 Dart 通用前端(CFE)構建新的語言功能。

應用內購買

當用戶在 App store 中啟動應用內購買時,這些功能可以讓你的應用正常完成交易。

Google Play 和 App Store 的開發者都需要對帶有應用內購買項目的應用做好配置,正常調用它們的應用內購買 API。

Android 應用包

Flutter 支持 Android 應用包,這是一種新的上傳格式,包含應用程式的所有編譯代碼和資源。這種格式可以加快 APK 的打包和向 Google Play 發佈的流程。

無需手動管理多個 APK

這些功能讓用戶可以下載更小、更優化的 APK。開發者也不需要為了支持多種設備而構建、發佈和管理多個 APK 了。

減小 APK 大小

Android 應用包使用的 APK 拆分機制可以縮減應用的大小,並支持 Android 應用程式的動態交付等新功能。

動態功能模塊

此功能允許開發者將某些功能和資源與應用程式的基礎模塊分離開來,並將前者添加到應用程式包中。

例如,如果你的應用包含相機功能,則可以將其設為動態模塊。之後當用戶想要下載並安裝這個功能時就可以按需操作了。

Flutter 構建應用的工具

Flutter 框架支持很多工具,例如 Android Studiovisual studio code。還有的工具允許用戶從命令行和 Dart DevTools 構建應用以進行調試。

此外,它還允許開發者查看日誌、調試應用,並檢查 Flutter 應用開發的小部件。

以下是最適合移動應用開發的 Flutter 工具。

  • 時間線視圖:它可以幫助你逐幀監控應用,觀察應用的呈現和計算工作。
  • 小部件檢查器:此工具支持可視化和瀏覽 Flutter 小部件樹層級結構。
  • 日誌視圖:它顯示來自應用程式、網路、框架和垃圾回收事件的活動日誌。
  • 源代碼級調試器:用戶可以用它一步步執行代碼、標記斷點並檢查調用堆棧。

使用 Flutter 構建的熱門應用

瞭解過 Flutter 的最新功能之後,我們來看看哪些初創公司和知名品牌使用 Flutter 進行跨平臺開發。下麵是 Flutter 的應用案例

  1. 阿裡巴巴(電子商務):這家電子商務巨頭無人不知無人不曉。阿裡巴巴在淘寶中就用了谷歌 Flutter 開發。
  2. 谷歌廣告(實用程式):這是付費營銷的終極工具。這個跨平臺的應用就是用 Flutter 製作的,可以用來監控企業的網路廣告投放。此外,它還允許谷歌專家添加 / 修改 / 刪除關鍵字,改進你的廣告計劃。
  3. Birch Finance(金融):Birch Finance 是一個信用卡積分兌換應用,可以幫助用戶管理並優化自己的信用卡。用戶可以用它一站式管理所有信用卡賬戶,它還提供了多種賺取和兌換獎勵的途徑。
  4. 騰訊(游戲等應用):這家中國科技巨頭也使用 Flutter 開發即時通訊軟體服務和游戲,諸如絕地求生、QQ 音樂、電商應用等。
  5. Watermaniac(健康與健身):醫療保健行業也在開發跨平臺應用程式。Watermaniac 已決定使用 Flutter 構建其應用。該應用能幫助用戶監控他們攝取的水量。

 構建 Flutter 應用的成本

構建應用當然需要花費時間和資源。項目花費的時間越久,需要投入的各種資源也就越多。因此開發應用所需的成本主要取決於時間和資源這兩個因素。

如果你正在考慮使用 Flutter 開發應用,以下是應用開發的成本計算。

成本計算器:

總成本 = SDLC 流程所需的小時數 * 每小時所需資源的費用

SDLC 流程包括構建、測試、部署、更改和維護應用程式的詳細計劃。它包括 UI / UX 設計、前端與後端開發、質量保證和生產發佈。

最重要的一點在於,假設一個具備基礎功能的小型應用的開發投入在 10,000 美元到 50,000 美元的水平上,那麼使用 Flutter 之後成本能減少一半。

 結論

總的來說,跨平臺開發對初創公司和業務都有很大的好處。而 Flutter 作為新誕生的開發框架有著明顯的優勢和好處。

如果你想快速構建跨平臺應用,Flutter 非常適合你。無論是要創建最小可行產品(MVP)還是成熟的企業應用程式,Flutter 都是最佳解決方案。

 

翻譯地址:https://www.excellentwebworld.com/flutter-cross-platform-development/?utm_campaign=Submission&utm_medium=Community&utm_source=GrowthHackers.com


您的分享是我們最大的動力!

更多相關文章
  • 效果圖 修改思路 1、增加全局控制變數 sys.launcher3.is_full_app ,用來動態切換 2、增加兩套佈局,對應有抽屜和無抽屜 3、去除 allAppsButton 4、將 AllAppsContainerView 中的圖標載入到 Workspace 5、新安裝的 app 自動添加 ...
  • 一、介紹 在iOS開發中,轉場動畫的使用無處不見,不只是我們自己更多的使用UIViewblock動畫實現一個轉場動畫,其實,在我們實現VC控制器跳轉的時候都是轉場動畫的實現,例如標簽欄控制器的切換、模態動畫present和dismiss、導航控制器的push和pop。實現它們的轉場動畫,只需要實現它 ...
  • 如何在iOS上通過電子郵件進行無縫的“無密碼”身份驗證。 Apple平臺上的郵件和日曆集成 在macOS和iOS上查看電子郵件時,郵件會在[檢測到的日期和時間]下劃線 。您可以與他們互動以創建新的日曆事件。如果您在“日曆”中打開此類活動,則會在其擴展詳細信息中看到“在郵件中顯示”鏈接。單擊此鏈接可將 ...
  • 【學習階段】 WebService網路請求? 其實我也是第一次遇到,之所以有這個需要是因為一些與 ERP 相關的業務,需要用到這樣的一個請求方式。 開始學習WebService ①當然是百度搜索,這裡找了一個學習的博客 https://blog.csdn.net/swjtugiser/article ...
  • 我面試時遇到過幾次讓背個monkey命令的,可以這樣簡單說一個:adb shell monkey -p(約束包名) -s 200 -v -v --throttle 300 1500000 >e:\001.txt (日誌保存路徑) 一、monkey簡介: Monkey 就是SDK中附帶的一個工具。Mo ...
一周排行
  • 1. 運行效果 在 "使用GetAlphaMask和ContainerVisual製作長陰影(Long Shadow)" 這篇文章里我介紹了一個包含長陰影的番茄鐘,這個番茄鐘在狀態切換時用到了翻轉動畫,效果如上所示,還用到了彈簧動畫,可以看到翻轉後有點回彈。本來打算自己這個動畫效果寫的,但火火已經寫 ...
  • 接上一篇,es部署很簡單,很快就弄好了。 但是還是有很多不玩美。 比如說:主機是本地的IP或機器名,埠是固定的9200. 而且是只有一個節點,我要在一臺機器上部署多個節點呢。 經過一段時間的摸索,做起來也很簡單,但過程切實很痛苦。 具體做法是:你想部署多少個節點,你就重覆多少次上一步的做法。啟動就 ...
  • 在項目中,需要為所有的Button、TextBox設置一個預設的全局樣式,一個個的為多個控制項設置相同的樣式顯然是不明智的。在WPF中可以通過資源設置全局樣式,主要有倆種方法: 1.第一種就是先寫好按鈕的樣式,不寫Key,然後在App.xaml中引用。 <ResourceDictionary xmln ...
  • 說明:該篇隨筆的代碼內容並非出自本人,是在其他網站搜尋的,出處已經不記得了,本次隨筆只為記錄,目的幫助自己,幫助他人。 實現的原理也不做多的贅述,直接上代碼。 第一個類是需要用到的Windows API public class Win32Api { [StructLayout(LayoutKind ...
  • 前言 在ASP.Net Core2.X調用的CreateWebHostBuilder和3.X的主要區別在於WebHost的調用,CreateDefaultBuilder被Host替換,另一個區別是對ConfigureWebHostDefaults()的調用; 由於新的主機生成器是通用主機生成器,因此 ...
  • 對於開發人員來說,常常需要在不藉助任何Microsoft Office及其他第三方軟體的情況下,打開、創建、修改、轉換、列印、瀏覽(Word、Excel、PowerPoint和PDF等)文檔,以及將數據從數據源轉換為常用的文檔格式,甚至一些其他的文檔操作。 在這裡,小編調查了業內許多開發人員,為大家 ...
  • 這次的目標是實現通過標註Attribute實現緩存的功能,精簡代碼,減少緩存的代碼侵入業務代碼。 緩存內容即為Service查詢彙總的內容,不做其他高大上的功能,提升短時間多次查詢的響應速度,適當減輕資料庫壓力。 在做之前,也去看了EasyCaching的源碼,這次的想法也是源於這裡,AOP的方式讓 ...
  • 例如想獲取尾碼名為.txt的文件 第一種方法獲取到的是對應的文件路徑 第二種方法可以獲取到文件的一些詳細信息 類似於"*.txt" 要與路徑中的文件名匹配的搜索字元串。這個參數可以包含有效的文本路徑和通配符(*和?)的組合人物,但它不支持正則表達式。 我是參照此路徑編寫的博客,用於自己查詢快速 ht ...
  • 我們在開發中Json傳輸數據日益普遍,有很多關於Json字元串的序列化和反序列化的文章大多都告訴你怎麼用,但是卻不會告訴你用什麼更高效。因為有太多選擇,人們往往會陷入選擇難題。 相比.NET Framework有三種選擇而.net core下已經沒有JavaScriptSerializer,但是大家 ...
  • c#微信公眾號開發 基本設置 參考微信官方文檔 https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Access_Overview.html 開發→基本配置 公眾號開發信息 註:1.記錄好開發者密碼,會在程式中驗證過程 ...
x