“Flutter進(jìn)階學(xué)習(xí)筆記”,理論與實戰(zhàn))
前言“小步快跑、快速迭代”的開發(fā)大環(huán)境下“一套代碼、多端運行”是很多開發(fā)團隊的夢想美團也一樣。他們做了很多跨平臺開發(fā)框架的嘗試React Native、Weex、PWA 等等。但都沒有得到很好的解決直至遇到Flutter。Flutter 提供了一整套從底層渲染邏輯到上層開發(fā)語言的完整方案有跨平臺、高保真、高性能等優(yōu)點。因此從發(fā)布開始熱度一路攀升受到開發(fā)者們的熱切青睞也有了 阿里閑魚、今日頭條、騰訊 Now 等在內(nèi)的一眾知名商業(yè)案例。我曾跟很多前端、Android、iOS 的開發(fā)者聊過其中超過 80% 的人告訴我他正在或打算學(xué) Flutter 但他們中的大部分都遇到了這些問題1、Flutter 從語言到開發(fā)框架都是全新的技術(shù)棧的積累必須從頭開始學(xué)起來很費力。2、看了很多關(guān)于 Flutter 的教程可它們都太重視應(yīng)用層 API 各個參數(shù)的介紹或?qū)崿F(xiàn)細(xì)節(jié)感覺無從下手。想學(xué)好 Flutter不應(yīng)該僅停留細(xì)節(jié)層面更要深入它的原理、設(shè)計思路和通用理念。分享一張我收藏的 Flutter 核心知識圖譜里面涵蓋了開發(fā)、調(diào)試、測試、發(fā)布、線上運維及工程管理。只要你能掌握下面80%的知識點絕對可以搞懂 Flutter。Flutter 的優(yōu)點從出身來說Flutter 是谷歌的所以對于 Android 開發(fā)者來說從開發(fā)環(huán)境上來說上手要容易很多。其次 Flutter 目前的更新與迭代非常頻繁在 3 月份發(fā)布了 Flutter的 2.0 版本支持了Android、iOS、Windows、macOS、Linux 平臺甚至未來可以會被嵌入到一些智能設(shè)備電視、智能家居甚至汽車。回歸到技術(shù)層面大家都知道以前比較熱門的跨端框架是 React Native實現(xiàn)原理主要是利用 js 將頁面上的控件轉(zhuǎn)化為原生控件這樣就帶來了很多問題例如新控件的適配以及不同平臺控件的差異性沒法磨平一個頁面Android、iOS展示效果有差異UI 同學(xué)不會同意吧。而 Flutter 徹底改變了之前「轉(zhuǎn)化」的思路采用了全新的 Widget完全自己繪制屏蔽掉平臺的差異性。最后Flutter 整個社區(qū)的活躍度非常高出問題有地方查有大廠分享最佳實踐不香嗎找工作的加分項Flutter目前也是Android開發(fā)崗位的加分項下面是我在Boss上面搜到的一部分招聘信息。通過上圖我們可以看出很多大廠在高薪招聘這方面的人才Flutter 確確實實可以成為我們找工作的一個幫助。Android開發(fā)該如何快速上手Flutter我們可以利用 Flutter 官方網(wǎng)站的教程搭建好環(huán)境寫出一些 Demo 示例在此之后需要了解如何混合開發(fā)“萬物皆 Widget”到底怎么理解對于 State 的理解等原理知識…這些對我們Android開發(fā)來說都有一定的難度。為了讓大家快速無痛上手 Flutter給大家分享一份阿里大神總結(jié)的《Flutter進(jìn)階學(xué)習(xí)筆記》。整理大綱為什么Flutter是跨平臺開發(fā)的終極之選在Windows上搭建Flutter開發(fā)環(huán)境編寫您的第一個 Flutter AppFlutter開發(fā)環(huán)境搭建和調(diào)試Dart語法篇之基礎(chǔ)語法(一)Dart語法篇之集合的使用與源碼解析(二)Dart語法篇之集合操作符函數(shù)與源碼分析(三)Dart語法篇之函數(shù)的使用(四)Dart語法篇之面向?qū)ο蠡A(chǔ)(五)Dart語法篇之面向?qū)ο罄^承和Mixins(六)Dart語法篇之類型系統(tǒng)與泛型(七)Flutter中的widget第一章 為什么Flutter是跨平臺開發(fā)的終極之選這是為什么跨平臺開發(fā)什么是 FlutterFlutter 的特性Flutter 構(gòu)建應(yīng)用的工具使用 Flutter 構(gòu)建的熱門應(yīng)用構(gòu)建 Flutter 應(yīng)用的成本……第二章 在Windows上搭建Flutter開發(fā)環(huán)境使用鏡像系統(tǒng)要求獲取Flutter SDK編輯器設(shè)置Android設(shè)置起步: 配置編輯器起步: 體驗體驗熱重載創(chuàng)建新的應(yīng)用運行應(yīng)用程序……第三章 編寫您的第一個 Flutter App第1步: 創(chuàng)建 Flutter app第2步: 使用外部包(package)第3步: 添加一個 有狀態(tài)的部件Stateful widget第4步: 創(chuàng)建一個無限滾動ListView第5步: 添加交互第6步: 導(dǎo)航到新頁面第7步使用主題更改UI……第四章 Flutter開發(fā)環(huán)境搭建和調(diào)試開發(fā)環(huán)境的搭建模擬器的安裝與調(diào)試開發(fā)環(huán)境的搭建模擬器的安裝與調(diào)試……第五章 Dart語法篇之基礎(chǔ)語法(一)Hello Dart數(shù)據(jù)類型變量和常量集合(List、Set、Map)流程控制運算符異常函數(shù)……第六章 Dart語法篇之集合的使用與源碼解析(二)ListSetMapQueueLinkedListHashMapMap、HashMap、LinkedHashMap、SplayTreeMap區(qū)別命名構(gòu)造函數(shù)from和of的區(qū)別以及使用建議……第七章 Dart語法篇之集合操作符函數(shù)與源碼分析(三)IterableforEachmapanyeverywherefirstWhere和singleWhere和lastWherejointaketakeWhile……第八章 Dart語法篇之函數(shù)的使用(四)函數(shù)參數(shù)匿名函數(shù)(閉包lambda)箭頭函數(shù)局部函數(shù)頂層函數(shù)和靜態(tài)函數(shù)main函數(shù)……第九章 Dart語法篇之面向?qū)ο蠡A(chǔ)(五)……第十章 Dart語法篇之面向?qū)ο罄^承和Mixins(六)……第十一章 Dart語法篇之類型系統(tǒng)與泛型(七)……第十二章 Flutter中的widget……特別認(rèn)同一句話只有擁抱變化才能比別人更早發(fā)現(xiàn)機會。沒有誰甘愿薪資增長緩慢或一直被無情壓榨或早或晚我們都會走上進(jìn)階之路。與其被動接受不如主動出擊先爭取成為技術(shù)強思維深視野廣的工程師機會來臨時才能從容不迫地順應(yīng)而上比別人更快一步。