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