前言
隨著 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ǔ)言和多主題