flutter學習日記(一)————文章以及flutter介紹

做者簡介

本人,廣工小成,全棧開發,專心學習了flutter開發一段週期。由0到1開發出了一個多功能,有完整的flutter聊天系統,好友系統,以及flutter嵌入國內百度地圖而且進行靈活調度的完整應用。前端

這裏推薦一下本人的學習網址:react

  1. flutter官網
  2. flutter中文網
  3. 《flutter實戰》
  4. flutter插件官網
  5. Dart 官方教程/文章收集整理貼
  6. flutter優秀開源項目GSYGithubApp

固然,本人還閱讀過不少博客,以及慕課網的教學視頻,都積累了很多東西,不過最主要的仍是推薦一下flutter官網。在開發過程當中,網上的博客說的都不多,最後仍是得靠官網。ios

flutter介紹

話很少說,文章是面對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

  1. flutter用一套代碼,便可跨安卓和ios平臺開發
  2. 相對於安卓和ios平臺獨立開發,flutter的代碼量甚至更少,運行速度更快
  3. flutter開發的時候,提供完整接口,並且調用很是簡單
  4. 更加優美,flutter有完美的動畫效果,以及能夠在2dimensions網站指定優雅的動畫效果自定義
  5. flutter相似react框架,有本身的diff算法,實現組件複用。同時提供了相應的開發者工具,讓咱們設計,構建,測試以及debug更加方便

image

Flutter的組件化

Flutter的組件分爲兩大塊:StatelessWidget和StatefulWidget

看名字就可以知道StatelessWidget爲靜態組件,不須要動態加載,通常用來做爲項目當中沒有網絡交互的組件,而StatefulWidget爲動態組件,根據用戶的交互,以及網絡對其狀態改變來改變其顯示。Flutter爲典型的mvvm框架。

image

Flutter的架構

flutter的架構不仔細展開來說了,由於若是瞭解到這裏面的知識了,相比也是頗有經驗的人了。這裏就簡單說一下,以下圖,flutter是在平臺的硬件接口上的c++上面的一層,跟js有點相似,不過flutter更相似js搭建的react框架。

image

總結

這裏就只是簡單的介紹了一下Flutter,不得不說,Flutter確實是一個很厲害的框架,就是惋惜國內的人用的還不夠多,可是值得追捧,若是你也閱讀了Flutter官網上那些優秀的頁面,不要懷疑,Flutter開發就是這麼簡潔而優雅。

相關文章
相關標籤/搜索