Flutter跨端方案:2023年后 Flutter 還能火多久尚猿?

前言

隨著 Flutter 3.10(包括對(duì) Web夭禽、mobile、圖像谊路、安全性等方面的持續(xù)改進(jìn)) 讹躯、Dart 3 的發(fā)布(帶來(lái)了 100%健全的空安全),我決定重新(開始)認(rèn)識(shí) Flutter缠劝。不可否認(rèn)的是潮梯,在數(shù)字時(shí)代,移動(dòng)應(yīng)用程序已成為大多數(shù)公司的必備品惨恭。 隨著智能手機(jī)的持續(xù)普及多秉馏,更多企業(yè)正在轉(zhuǎn)向移動(dòng)應(yīng)用程序開發(fā),以更有效地接觸受眾脱羡。 然而萝究,僅僅擁有一個(gè)應(yīng)用程序是不夠的免都,應(yīng)用程序還必須保持流暢、實(shí)用帆竹、具有視覺吸引力绕娘,并滿足用戶期望才能真正吸引客戶。

開發(fā)過程中的關(guān)鍵決策之一是選擇正確的技術(shù)堆棧栽连。 Flutter 是一項(xiàng)相對(duì)較新的技術(shù)险领,最近越來(lái)越流行。 本文將帶著大家討論 Flutter秒紧,了解 Flutter 為何如此流行绢陌,以及為何它被認(rèn)為是面向未來(lái)的。

什么是 Flutter

Flutter 是 Google 基于 Dart 編程語(yǔ)言創(chuàng)建的開源框架熔恢, 它在 2017 年 5 月發(fā)布了 alpha 版脐湾,在 2018 年 12 月發(fā)布了第一個(gè)正式穩(wěn)定版叙淌。Flutter 允許用戶使用單一代碼庫(kù)開發(fā)移動(dòng)秤掌、桌面和 Web 應(yīng)用程序凿菩。 Flutter 目前被公認(rèn)為是跨平臺(tái)應(yīng)用程序的最佳選擇椒拗,提供安全性和穩(wěn)定性保障玷氏。

目前 Flutter 在 Github 上有超過 153k 的 star(超過 react-native 的 109k)堵未、25.3k 的 fork(超過 react-native 的 23.3k)、3.6k 的 watch盏触、代碼貢獻(xiàn)者超過 1.2k(少于 react-native 的 2.5k)渗蟹,是一個(gè)妥妥的跨端熱門方案。

同時(shí)赞辩,F(xiàn)lutter 還引起了 Airbnb雌芽、阿里巴巴、Uber辨嗽、寶馬世落、eBay 和谷歌等大公司的廣泛注意,所有這些公司都在其移動(dòng)應(yīng)用程序中使用它糟需,而這背后主要基于以下幾個(gè)原因屉佳。

Flutter 的優(yōu)點(diǎn)

1谷朝、單一代碼庫(kù)

Flutter 通過單一代碼庫(kù)簡(jiǎn)化了應(yīng)用程序開發(fā)過程,使得開發(fā)人員只需要為 iOS 和 Android 平臺(tái)創(chuàng)建單一代碼庫(kù)武花,從而減少人力成本實(shí)現(xiàn)快速業(yè)務(wù)迭代圆凰。

單個(gè)代碼庫(kù)還可以最大限度地減少所需的測(cè)試和維護(hù)量,從而提高業(yè)務(wù)效率和生產(chǎn)力髓堪。

2送朱、MVP 的理想選擇

Flutter 適用于各種規(guī)模的公司娘荡,當(dāng)對(duì)于預(yù)算緊張且希望從 MVP(最小可行產(chǎn)品)開始的初創(chuàng)公司特別有利干旁。 憑借低成本和時(shí)間優(yōu)勢(shì),F(xiàn)lutter 可以輕松開發(fā) MVP 并快速收集消費(fèi)者反饋炮沐。

此外争群,F(xiàn)lutter 還提供應(yīng)用程序開發(fā)所需的所有工具,并與 Firebase 和 AWS 等知名云平臺(tái)很好地集成大年,提供分析换薄、身份驗(yàn)證、托管和存儲(chǔ)等功能翔试。

3轻要、簡(jiǎn)化定制

由于單一代碼庫(kù),使用 Flutter 開發(fā)的應(yīng)用程序非常靈活垦缅,允許代碼變更在 iOS 和 Android 上立即可見(使用 Hot Reload 功能冲泥,)。 此外壁涎,這還降低了維護(hù)成本凡恍,使企業(yè)主可以專注于組織的其他方面。

4怔球、自動(dòng)化測(cè)試

應(yīng)用程序測(cè)試需要大量的時(shí)間和資金投入嚼酝。 但是,開發(fā)者可以通過選擇 Flutter 作為跨平臺(tái)應(yīng)用程序來(lái)簡(jiǎn)化和減輕這項(xiàng)工作竟坛。 此外闽巩,自動(dòng)化測(cè)試的使用使開發(fā)人員能夠快速驗(yàn)證應(yīng)用程序的可用性、功能和用戶界面担汤。

在為最終用戶做好準(zhǔn)備之前涎跨,還可以保證程序的性能高于平均水平。 Flutter 專家在多個(gè)領(lǐng)域進(jìn)行自動(dòng)化測(cè)試漫试,同時(shí)保持應(yīng)用程序的功能和錯(cuò)誤修復(fù)速度六敬。 因此,類別包括:

  • 單元測(cè)試(Unit test)
  • 小部件測(cè)試(Widget test)
  • 集成測(cè)試(Integration test)

為什么說 2023 年后 Flutter 會(huì)越來(lái)越受歡迎

Flutter 近年來(lái)為構(gòu)建高性能 iOS驾荣、Android 和 Web 應(yīng)用程序提供了快速外构、靈活且高效的解決方案普泡。 在 2023 年可以一起展望下 Flutter 的未來(lái)。

1审编、跨平臺(tái)移動(dòng)應(yīng)用程序開發(fā)解決方案的需求不斷增長(zhǎng)

隨著公司和開發(fā)人員尋找接觸更廣泛受眾和降低開發(fā)成本的方法撼班,F(xiàn)lutter 成為一個(gè)有吸引力的選擇、因?yàn)樗軌蚴褂脝我淮a庫(kù)為多個(gè)平臺(tái)構(gòu)建應(yīng)用程序垒酬。 從而在 2023 年及以后進(jìn)一步推動(dòng) Flutter 的發(fā)展砰嘁。

2、Widget 在移動(dòng)應(yīng)用程序開發(fā)中越來(lái)越重要

Flutter 的 SDK 具有諸多自定義的預(yù)制 Widget 以及附加組件(Material Design 和 Cupertino widget 集也包含在 Flutter 中)勘究,同時(shí)包括免費(fèi)的開源庫(kù)和工具矮湘,用于從移動(dòng)應(yīng)用程序和網(wǎng)站的單一代碼庫(kù)開發(fā)定制應(yīng)用程序。

通過專注于 Widget口糕,F(xiàn)lutter 可以更輕松缅阳、更快速地創(chuàng)建美觀、自定義和交互式的用戶界面景描,使得 Flutter 成為優(yōu)秀應(yīng)用程序開發(fā)人員的理想選擇十办。

3、2023 年及以后定期添加新功能和增強(qiáng)功能

包括對(duì)新平臺(tái)超棺、設(shè)備的支持以及改進(jìn)的性能和效率向族,例如:熱加載。

熱加載是 Flutter 框架的關(guān)鍵特性之一棠绘,它使 Flutter 應(yīng)用程序開發(fā)人員能夠在源代碼中進(jìn)行更改后立即檢查正在運(yùn)行的應(yīng)用程序中的更改件相,該功能幾乎已經(jīng)成為前端研發(fā)的標(biāo)配,從而大大縮短應(yīng)用程序調(diào)試的開發(fā)時(shí)間弄唧。

4适肠、Dart 語(yǔ)言日益普及

用于編寫 Flutter 應(yīng)用程序的 Dart 因其簡(jiǎn)單易用而獲得認(rèn)可。 隨著越來(lái)越多的開發(fā)人員熟悉這門語(yǔ)言候引,更多跨端開發(fā)者可能會(huì)轉(zhuǎn)向 Flutter 侯养。

此外,F(xiàn)lutter 所基于的編程語(yǔ)言 Dart 本身也進(jìn)一步增強(qiáng)了開發(fā)體驗(yàn)澄干,它具有兩種編譯模式:

  • AOT(Ahead-of-Time):在代碼執(zhí)行之前全部編譯成目標(biāo)指令,進(jìn)入執(zhí)行階段后,不再有編譯過程發(fā)生
  • JIT(Just-in-Time):JIT 是一種提高程序運(yùn)行效率的方法逛揩,有兩種運(yùn)行方式,即靜態(tài)編譯與動(dòng)態(tài)解釋麸俘。靜態(tài)編譯的程序在執(zhí)行前全部被編譯為機(jī)器碼辩稽,而動(dòng)態(tài)解釋執(zhí)行的則是邊執(zhí)行邊編譯。
    這兩種模式可以顯著提升開發(fā)過程并節(jié)省了開發(fā)人員的時(shí)間从媚。

5逞泄、Flutter 社區(qū)迅速發(fā)展

隨著越來(lái)越多的開發(fā)人員和公司為 Flutter 做出貢獻(xiàn),F(xiàn)lutter 將更加強(qiáng)大和通用。

6喷众、物聯(lián)網(wǎng) (IoT) 的興起也可能對(duì) Flutter 的未來(lái)產(chǎn)生影響

隨著 IoT 設(shè)備變得越來(lái)越普遍各谚,應(yīng)用程序開發(fā)人員越來(lái)越需要能夠創(chuàng)建可以與這些設(shè)備通信并從中收集和處理數(shù)據(jù)的應(yīng)用程序。

Flutter 與各種設(shè)備和平臺(tái)協(xié)同工作的能力使其非常適合此類應(yīng)用程序開發(fā)到千,從而導(dǎo)致 Flutter 的需求增加昌渤。

Flutter的學(xué)習(xí)

為了能夠方便大家快速學(xué)習(xí)Flutter, 這里整理了Flutter學(xué)習(xí)路線圖以及《Flutter Dart 語(yǔ)言編程入門到精通》&《Flutter實(shí)戰(zhàn):第二版》幫助大家配置相關(guān)環(huán)境,學(xué)習(xí)Flutter 的基本語(yǔ)法以及最后的項(xiàng)目實(shí)際利用憔四。

Dart語(yǔ)言是Flutter的開發(fā)語(yǔ)言膀息,所以我們需要掌握Dart語(yǔ)言的基礎(chǔ)知識(shí)

《Flutter Dart 語(yǔ)言編程入門到精通》

第一章 Dart語(yǔ)言基礎(chǔ)

  • 環(huán)境準(zhǔn)備
  • 基礎(chǔ)語(yǔ)法

第二章 Dart 異步編程

  • Dart的事件循環(huán)
  • 調(diào)度任務(wù)
  • 延時(shí)任務(wù)
  • Future詳解
  • async和await
  • lsolate

第三章 異步之 Stream 詳解

  • 什么是Stream
  • 單訂閱流
  • 廣播流
  • Stream Transformer
  • 總結(jié)

第四章 Dart標(biāo)準(zhǔn)輸入輸出流

  • 文件操作

第五章 Dart 網(wǎng)絡(luò)編程

  • TCP服務(wù)端
  • TCP客戶端
  • UDP服務(wù)端
  • UDP客戶端
  • HTTP服務(wù)器與請(qǐng)求
  • WebSocket

第六章 Flutter 爬蟲與服務(wù)端

  • Dart爬蟲開發(fā)
  • Dart服務(wù)端
  • 創(chuàng)建Flutter項(xiàng)目演示
  • 總結(jié)

第七章 Dart 的服務(wù)端開發(fā)

  • 注冊(cè)登錄實(shí)現(xiàn)

第八章 Dart 調(diào)用C語(yǔ)言混合編程

  • 環(huán)境準(zhǔn)備
  • 測(cè)試Dart ffi接口
  • 總結(jié)

第九章 LuaDardo中Dart與Lua的相互調(diào)用

  • Lua C API
  • 創(chuàng)建運(yùn)行時(shí)
  • Dart調(diào)Lua
  • Lua調(diào)Dart

掌握了Dart語(yǔ)言之后,咱們就可以通過實(shí)戰(zhàn)來(lái)掌握Flutter的知識(shí)點(diǎn)

《Flutter實(shí)戰(zhàn):第二版》

第一章:起步

  • 1.1 移動(dòng)開發(fā)技術(shù)簡(jiǎn)介
  • 1.2 初始Flutter
  • 1.3 搭建Flutter開發(fā)環(huán)境
  • 1.4 Dart語(yǔ)言簡(jiǎn)介

第二章:第一個(gè)Flutter應(yīng)用

  • 2.1 計(jì)數(shù)器應(yīng)用實(shí)例
  • 2.2 Widget簡(jiǎn)介
  • 2.3 狀態(tài)管理
  • 2.4路由管理
  • 2.5包管理
  • 2.6 資源管理
  • 2.7 調(diào)試Flutter應(yīng)用
  • 2.8 Flutter異常捕獲

第三章:基礎(chǔ)組件

  • 3.1 文本及樣式
  • 3.2 按鈕
  • 3.3 圖片及ICON
  • 3.4 單選開關(guān)和復(fù)選框
  • 3.5 輸入框及表單
  • 3.6 進(jìn)度指示器

第四章:布局類組件

  • 4.1 布局類組件簡(jiǎn)介
  • 4.2 布局原理與約束(constraints)
  • 4.3 線性布局(Row和Column)
  • 4.4 彈性布局(Flex)
  • ............

第五章:容器類組件

  • 5.1 填充(Padding)
  • 5.2 裝飾容器(DecoratedBox)
  • 5.3 變換(Transform)
  • 5.4 容器組件(Container)
  • 5.5 剪裁(Clip)
  • 5.6 空間適配(FittedBox)
  • 5.7 頁(yè)面骨架(Scaffold)

第六章:可滾動(dòng)組件

  • 6.1 可滾動(dòng)組件簡(jiǎn)介
  • 6.2 SingleChildScrollView
  • 6.3 ListView
  • 6.4 滾動(dòng)監(jiān)聽及控制
  • .............

第七章:功能型組件

  • 7.1 導(dǎo)航返回?cái)r截(WillPopScope)
  • 7.2 數(shù)據(jù)共享(InheritedWidget)
  • 7.3 跨組件狀態(tài)共享
  • 7.4 顏色和主題
  • 7.5 按需rebuild(ValueListenableBuilder)
  • 7.6 異步UI更新(FutureBuilder了赵、StreamBuilder)
  • 7.7 對(duì)話框詳解

第八章:事件處理與通知

  • 8.1 原始指針事件處理
  • 8.2 手勢(shì)識(shí)別
  • 8.3 Flutter事件機(jī)制
  • 8.4 手勢(shì)原理與手勢(shì)沖突
  • 8.5 事件總線
  • 8.6 通知 Notification

第九章:動(dòng)畫

  • 9.1 Flutter動(dòng)畫簡(jiǎn)介
  • 9.2 動(dòng)畫基本結(jié)構(gòu)及狀態(tài)監(jiān)聽
  • 9.3 自定義路由切換動(dòng)畫
  • 9.4 Hero動(dòng)畫
  • 9.5 交織動(dòng)畫
  • 9.6 動(dòng)畫切換組件(AnimatedSwitcher)
  • 9.7 動(dòng)畫過渡組件

第十章:自定義組件

  • 10.1 自定義組件方法簡(jiǎn)介
  • 10.2 組合現(xiàn)有組件
  • 10.3 組合實(shí)例:TurnBox
  • 10.4 CustomPaint 與 Canvas
  • 10.5 自繪實(shí)例:圓形背景漸變進(jìn)度條
  • 10.6 自繪組件:CustomCheckbox
  • 10.7 自繪組件: DoneWidget
  • 10.8 水印實(shí)例: 文本繪制與離屏渲染

第十一章:文件操作與網(wǎng)絡(luò)請(qǐng)求

  • 11.1 文件操作
  • 11.2 通過HttpClient發(fā)起HTTP請(qǐng)求
  • 11.3 Http請(qǐng)求庫(kù)-dio
  • 11.4 實(shí)例:Http分塊下載
  • ..........

第十二章:Flutter擴(kuò)展

  • 12.1 包和插件
  • 12.2 Flutter Web

第十三章:國(guó)際化

  • 13.1 讓App支持多語(yǔ)言
  • 13.2 實(shí)現(xiàn)Localizations
  • 13.3 使用Intl包
  • 13.4 國(guó)際化常見問題

第十四章:Flutter核心原理

  • 14.1 Flutter UI 框架(Framework)
  • 14.2 Element潜支、BuildContext和RenderObject
  • 14.3 Flutter啟動(dòng)流程和渲染管線
  • 14.4 布局(Layout)過程
  • 14.5 繪制(一)繪制原理及Layer
  • .................

第十五章:一個(gè)完整的Flutter應(yīng)用

  • 15.1 Github客戶端示例
  • 15.2 Flutter APP代碼結(jié)構(gòu)
  • 15.3 Model類定義
  • 15.4 全局變量及共享狀態(tài)
  • 15.5 網(wǎng)絡(luò)請(qǐng)求封裝
  • 15.6 APP入口及主頁(yè)
  • 15.7 登錄頁(yè)
  • 15.8 多語(yǔ)言和多主題

由于文章篇幅有限,有需要上方內(nèi)容的朋友斟览,可以查看我的個(gè)人簡(jiǎn)介

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末毁腿,一起剝皮案震驚了整個(gè)濱河市辑奈,隨后出現(xiàn)的幾起案子苛茂,更是在濱河造成了極大的恐慌,老刑警劉巖鸠窗,帶你破解...
    沈念sama閱讀 219,110評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件妓羊,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡稍计,警方通過查閱死者的電腦和手機(jī)躁绸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)臣嚣,“玉大人净刮,你說我怎么就攤上這事」柙颍” “怎么了淹父?”我有些...
    開封第一講書人閱讀 165,474評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)怎虫。 經(jīng)常有香客問我暑认,道長(zhǎng),這世上最難降的妖魔是什么大审? 我笑而不...
    開封第一講書人閱讀 58,881評(píng)論 1 295
  • 正文 為了忘掉前任蘸际,我火速辦了婚禮,結(jié)果婚禮上徒扶,老公的妹妹穿的比我還像新娘粮彤。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,902評(píng)論 6 392
  • 文/花漫 我一把揭開白布导坟。 她就那樣靜靜地躺著缠诅,像睡著了一般。 火紅的嫁衣襯著肌膚如雪乍迄。 梳的紋絲不亂的頭發(fā)上管引,一...
    開封第一講書人閱讀 51,698評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音闯两,去河邊找鬼褥伴。 笑死,一個(gè)胖子當(dāng)著我的面吹牛漾狼,可吹牛的內(nèi)容都是我干的重慢。 我是一名探鬼主播,決...
    沈念sama閱讀 40,418評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼逊躁,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼似踱!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起稽煤,我...
    開封第一講書人閱讀 39,332評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤核芽,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后酵熙,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體轧简,經(jīng)...
    沈念sama閱讀 45,796評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,968評(píng)論 3 337
  • 正文 我和宋清朗相戀三年匾二,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了哮独。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,110評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡察藐,死狀恐怖皮璧,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情分飞,我是刑警寧澤悴务,帶...
    沈念sama閱讀 35,792評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站浸须,受9級(jí)特大地震影響惨寿,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜删窒,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,455評(píng)論 3 331
  • 文/蒙蒙 一裂垦、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧肌索,春花似錦蕉拢、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,003評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)以现。三九已至珠插,卻和暖如春罪郊,著一層夾襖步出監(jiān)牢的瞬間户誓,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,130評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工夷家, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蒸其,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,348評(píng)論 3 373
  • 正文 我出身青樓库快,卻偏偏與公主長(zhǎng)得像摸袁,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子义屏,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,047評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容