推薦一個Flutter項目(已開源)

什麼是Flutter?android

2018年2月27日,在2018世界移動大會上,Google發佈了Flutter的第一個Beta版本。Flutter是Google用以幫助開發者在iOS和Android兩個平臺開發高質量原生應用的全新移動UI框架。git

其實我第一次據說Flutter是在收到谷歌開發者公衆號的推送裏,當時讀完了那篇文章以爲Flutter的優勢確實比較突出:github

  • 熱重載(Hot Reload),做爲一個菜鳥安卓開發者,能熱重載真的太舒服了,利用Android Studio直接一個ctrl+s就能夠保存並重載,模擬器立馬就能夠看見效果,就這一點比原生安卓製做簡直不知道高到哪裏去了。
  • 一切皆爲Widget的理念,對於Flutter來講,手機應用裏的全部東西都是Widget,經過可組合的空間集合、豐富的動畫庫以及分層課擴展的架構實現了富有感染力的靈活界面設計。
  • 藉助可移植的GPU加速的渲染引擎以及高性能本地代碼運行時以達到跨平臺設備的高質量用戶體驗。 這段介紹是直接抄下來的,雖然我並不知道什麼叫可移植的GPU加速的渲染引擎,可是最終結果就是利用Flutter構建的應用在運行效率上會和原生應用差很少。
  • 酷安上有一個Flutter的演示Demo,Flutter Gallery。
  • 若是常常逛酷安的必定會發現這個畫廊的演示Demo的圖標和另外一個演示Demo的圖標是同樣的,Google Fuchsia OS Preview,這個應用的是傳聞的Google正在研發的新一代操做系統,因此我的認爲,Flutter的存在可能不只僅是實如今安卓和IOS上的運行,更是爲了往後豐富Fuchsia這個新系統的軟件生態而存在的。

Flutter的核心內容json

接下來我想寫一下我本身經過這兩天的接觸對於Flutter的核心內容也就是上面好處的第二點的理解。緩存

一切都是控件(Widget)
在Flutter中,每一個應用程序都是Widget,這點和其餘的應用框架不同,Flutter的對象模型是統一的,也就是控件。
一個控件能夠定義:微信

  • 結構元素(好比按鈕或者菜單)
  • 風格元素(好比字體或者顏色方案)
  • 佈局
  • 一些業務邏輯

控件是基於構圖造成層次結構,每一個控件嵌套在其中,並從其父代繼承屬性,沒有單獨的「應用程序」對象,只有根控件。
您能夠經過告知框架用另外一個控件替換層次結構中的控件來響應事件,好比用戶交互,而後框架會對比新的控件和舊的控件,並有效的更新用戶界面,即更新有變化的控件。網絡

也就是說,在Flutter中,一個應用就是有許許多多的Widget組合而成的。架構

實踐app

作了一個豆瓣電影列表的功能框架

你將會學到

  • 怎麼樣使用列表控件,Row控件,Column控件
  • 怎麼使用網絡加載,異步操做怎麼處理
  • 實現加載更多
  • 如何使用flutter佈局,我的感受至關好理解,Row控件,Column控件,ListView控件就能作出這個效果,我這是一個卡片
  • 使用buildDefaultTabController容易的實現viewpager相似的東東
  • 實現自定義控件 Ratingbar
  • tab
  • bottomNavigationBar
  • 頁面間的跳轉。
  • json2model代碼自動生成

我這裏遇到了一些坑

  • 在ListView的item中使用橫向ListView,致使運行不出來,所以那個換成了Row。
  • 在使用column和row控件的時候,界面刷步出來,定位緣由是由於裏面存在不肯定的rect的子控件致使, 所以解決的辦法就是使用expande,或者flexable包裹,或者其餘的方式可以明確子控件怎麼佔位,佔多少位置。
  • 切換代緩存的圖片控件cacheImage出現問題,刷步出圖片,解決辦法,卸載安裝包,重裝,緣由沒有定位出

下面是效果圖:
在這裏插入圖片描述
增長了段子頁面
你能夠學會, 彈框bottomModalDialog
在這裏插入圖片描述
安裝包大小
安裝包有8M。由於用原生的寫會不至於有這麼大,因此要看看究竟,其實很容易發現,flutter庫佔了很大部分,實際dex文件較小。
在這裏插入圖片描述
上傳的源碼中已經打好了apk,能夠直接下載安裝,ipa包沒有打,打了沒有越獄通常也安裝不了的,蘋果這套對開發者不是很友好。

注意事項

  • 若是你想本身下載源碼玩玩的話:
  • config.dart 是須要你在showApi平臺上本身申請appid和secretkey的
    android工程中的key.properties文件中的value須要你本身配置你的祕鑰,具體打包方式參考dart.io文檔中 Build and release for Android 這一節。

原創做者:bravekingzhang
項目地址:https://github.com/bravekingzhang/flutter_me
在這裏插入圖片描述歡迎關注個人微信公衆號「碼農突圍」,分享Python、Java、大數據、機器學習、人工智能等技術,關注碼農技術提高•職場突圍•思惟躍遷,20萬+碼農成長充電第一站,陪有夢想的你一塊兒成長

相關文章
相關標籤/搜索