為什麼 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


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

更多相關文章
  • 主備切換在備庫startup時出現歸檔路徑沒寫到spfile里...註意:修改參數時最好帶上scope=spfile或scope=both,以免重啟出現異常。SQL> startup mountORA-16032: parameter LOG_ARCHIVE_DEST_1 destination s ...
  • 相關資料:https://zhuanlan.zhihu.com/p/70701037 https://zhuanlan.zhihu.com/p/59061106 一、事務。 1、概念。事務是由一組SQL語句組成的邏輯處理單元。 2、事務的屬性(ACID)。 i:原子性(atomicity):事務是最 ...
  • 算是 ...
  • 統計信息概念 MySQL統計信息是指資料庫通過採樣、統計出來的表、索引的相關信息,例如,表的記錄數、聚集索引page個數、欄位的Cardinality....。MySQL在生成執行計劃時,需要根據索引的統計信息進行估算,計算出最低代價(或者說是最小開銷)的執行計劃.MySQL支持有限的索引統計信息,... ...
  • 1.序列 設置主鍵自增 (1)創建t_user表 create table t_user( id number, name varchar2(10) ); (2)自增設置create sequence my_seq increment by 1 start with 1 (3)序列第一次使用必須使用 ...
  • 在上篇筆記中,為車輛信息表、車輛耗損表以及車輛營收表插入了一些數據。之後便是查詢了,重點也在查詢……按照之前定好的數據結構,如果是查詢mongodb document的最外層比較簡單,但是我們的重點應該是FormItems表單項集合中的表單項,對他們進行查詢、統計等。根據插入的數據,我寫了一個查詢: ...
  • --查詢資料庫鎖表記錄 select sess.sid, sess.serial#, lo.oracle_username, lo.os_user_name, ao.object_name, lo.locked_mode from v$locked_object lo, dba_objects ao ...
  • begin try 語句 end trybegin catch --ERROR_NUMBER() 返回錯誤號。 --ERROR_SEVERITY() 返回嚴重性。 --ERROR_STATE() 返回錯誤狀態號。 --ERROR_PROCEDURE() 返回出現錯誤的存儲過程或觸發器的名稱。 --E ...
一周排行
  • C 語法糖——持續更新 1. return的switch寫法 ...
  • 0. 前言 繼上一篇,以及上上篇,我們對SqlSugar有了一個大概的認識,但是這並不完美,因為那些都是理論知識,無法描述我們工程開發中實際情況。而這一篇,將帶領小伙伴們一起試著寫一個能在工程中使用的模板類。 1. 創建一個Client SqlSugar在操作的時候需要一個Client,用來管理數據 ...
  • 1 class Program 2 { 3 static void Main(string[] args) 4 { 5 //數組:長度不可變,類型單一 6 //ArrayList集合:長度可以任意改變,類型可以不單一 7 8 //創建一個ArrayList對象 9 ArrayList mylist ...
  • .NET 程式下銳浪報表 (Grid++ Report) 的綠色發佈指南 在銳浪報表官方為 CSharp 編寫的開發文檔:“在C#與VB.NET中開始使用說明.txt” 中,關於發佈項目是這麼描述的: ★發佈你的項目,用VS.NET製作安裝程式:1、先創建安裝項目:在解決方案資源管理器的根節點上點右 ...
  • 執行代碼清理時,可以點擊那個掃把小圖片,會按照預設的第一種配置文件來自動修複。也可以點擊下拉三角符合,選擇不同的配置文件,然後進行修複。或者快捷鍵Ctrl+K,Ctrl+E。 針對每一項配置的說明: 刪除不必要的using 儘可能將私有欄位設置為只讀 刪除不必要的類型轉換(針對強類型轉換),像Con ...
  • 1.概念簡述 (1)AR模型 AR 模型(auto regressive model)自回歸模型,模型參量法高解析度譜分析方法之一,也是現代譜估計中常用的模型。 用AR模型法求信具體作法是: ①選擇AR模型,在輸入是衝激函數或白雜訊的情況下,使其輸出等於所研究的信號,至少,應是對該信號的一個好的近似 ...
  • 4.元組 元組的主要特性為: 1.元組在創建之後,具有不可以更改的特性,因此不能直接給元組的元素賦值 2.元組的元素類型可以為任意類型,如字典、字元串、列表等 3.元組常用於在程式的整個生命周期中都不變的場景中 4.1 常用方法 元組大小和內容在定義賦值之後,就不可更改,常用的方法如下所示: cou ...
  • 老孟導讀:今天分享一個類似“孔雀開屏”的動畫效果,打開新的頁面時,新的頁面從屏幕右上角以圓形逐漸打開到全屏。 先來看下具體的效果 不知道這種效果大家叫什麼名字?如果有更合適的名字可以在評論處告訴我,下麵來說下如何實現此效果。 在使用Navigator進入一個新的頁面時,通常用法如下: 就包含了切換頁 ...
  • hashCode() 和equals() 方法的重要性體現在什麼地方? Java中的HashMap使用hashCode()和equals()方法設置值,根據鍵獲取值的時候也會用到這兩個方法。 怎樣 設置 的值? hashCode()獲得 hash值。而hash值用來確定hashmap中內部 Node ...
  • IDEA一些不錯的插件分享 目錄 IDEA一些不錯的插件分享 插件集合 CamelCase Translation LiveEdit MarkDown Navigator Jrebel CheckStyle IDEA Alibaba Java Coding Guidelines Ideavim Ma ...