本人,廣工小成,全棧開發,專心學習了flutter開發一段週期。由0到1開發出了一個多功能,有完整的flutter聊天系統,好友系統,以及flutter嵌入國內百度地圖而且進行靈活調度的完整應用。前端
這裏推薦一下本人的學習網址:react
固然,本人還閱讀過不少博客,以及慕課網的教學視頻,都積累了很多東西,不過最主要的仍是推薦一下flutter官網。在開發過程當中,網上的博客說的都不多,最後仍是得靠官網。ios
話很少說,文章是面對flutter小白進行開始。先我的的瞭解對flutter進行一個介紹吧c++
Flutter是Google開源的一個移動應用開發框架,擁有豐富的組件和接口,幾乎可以知足對一款軟件的全部要求,用dart語言開發。git
Dart語言的歷史的話,說來就話長了,簡單引用flutter實戰做者的話語吧。github
Dart運行時和編譯器支持Flutter的兩個關鍵特性的組合:算法
基於JIT的快速開發週期:Flutter在開發階段採用,採用JIT模式,這樣就避免了每次改動都要進行編譯,極大的節省了開發時間;安全
基於AOT的發佈包: Flutter在發佈時能夠經過AOT生成高效的ARM代碼以保證應用性能。而JavaScript則不具備這個能力。網絡
Flutter旨在提供流暢、高保真的的UI體驗。爲了實現這一點,Flutter中須要可以在每一個動畫幀中運行大量的代碼。這意味着須要一種既能提供高性能的語言,而不會出現會丟幀的週期性暫停,而Dart支持AOT,在這一點上能夠作的比JavaScript更好。架構
Flutter框架使用函數式流,這使得它在很大程度上依賴於底層的內存分配器。所以,擁有一個可以有效地處理瑣碎任務的內存分配器將顯得十分重要,在缺少此功能的語言中,Flutter將沒法有效地工做。固然Chrome V8的JavaScript引擎在內存分配上也已經作的很好,事實上Dart開發團隊的不少成員都是來自Chrome團隊的,因此在內存分配上Dart並不能做爲超越JavaScript的優點,而對於Flutter來講,它須要這樣的特性,而Dart也正好知足而已。
因爲Dart是類型安全的語言,支持靜態類型檢測,因此能夠在編譯前發現一些類型的錯誤,並排除潛在問題,這一點對於前端開發者來講可能會更具備吸引力。與之不一樣的,JavaScript是一個弱類型語言,也所以前端社區出現了不少給JavaScript代碼添加靜態類型檢測的擴展語言和工具,如:微軟的TypeScript以及Facebook的Flow。相比之下,Dart自己就支持靜態類型,這是它的一個重要優點。
Flutter的組件分爲兩大塊:StatelessWidget和StatefulWidget
看名字就可以知道StatelessWidget爲靜態組件,不須要動態加載,通常用來做爲項目當中沒有網絡交互的組件,而StatefulWidget爲動態組件,根據用戶的交互,以及網絡對其狀態改變來改變其顯示。Flutter爲典型的mvvm框架。
flutter的架構不仔細展開來說了,由於若是瞭解到這裏面的知識了,相比也是頗有經驗的人了。這裏就簡單說一下,以下圖,flutter是在平臺的硬件接口上的c++上面的一層,跟js有點相似,不過flutter更相似js搭建的react框架。
這裏就只是簡單的介紹了一下Flutter,不得不說,Flutter確實是一個很厲害的框架,就是惋惜國內的人用的還不夠多,可是值得追捧,若是你也閱讀了Flutter官網上那些優秀的頁面,不要懷疑,Flutter開發就是這麼簡潔而優雅。