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

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

跨平臺開發是當下最受歡迎、應用最廣泛的框架之一。能實現跨平臺開發的框架也五花八門,讓人眼花繚亂。最流行的跨平臺框架有 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


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

-Advertisement-
Play Games
更多相關文章
  • 主備切換在備庫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 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...