歷時三天,完成了Flutter版本的玩安卓

項目地址

前言

接觸Flutter其實已經好久了,從18年下半年就開始關注FLutter了,當時使用Flutter的人還很是少,我也只是大概看了看,寫了個小Demo就沒再深刻了,短短不到兩年時間,各大博客社區移動端的文章有一大部分都是關於FLutter的,能夠看到,Flutter真的火起來了。android

正文

關注泓洋大神已經許久,在玩安卓上也學習了不少的知識,看着不少人寫了不少版本的玩安卓客戶端,有Java的、有Kotlin的、還有Flutter的。其實很早就有本身也寫一個玩安卓來練練手的想法,但一直因爲時間不夠沒有付諸實踐,這回抽了幾天時間,基本完成了經常使用的功能,好比:文章列表、項目列表、公衆號列表、收藏、積分、文章搜索、登陸註冊等等。git

廢話很少說,直接來看一下項目的部分截圖吧:github

image-20200402105301676 image-20200402105301676 image-20200402105301676
image-20200402105301676 image-20200402105301676 image-20200402105301676
image-20200402105301676 image-20200402105301676 image-20200402105301676
image-20200402105301676 image-20200402105301676 image-20200402105301676

依賴庫

看完了效果圖,這裏再來放一下用到的依賴庫吧:web

  • flutter_screenutil 屏幕適配
  • fluttertoast 吐司
  • shard_preferences 相似安卓的sp
  • event_bus 和安卓的eventbus相似
  • image_picker 圖片選擇
  • http 網絡請求
  • flutter_swiper 輪播圖
  • flutter_webview_plugin webview插件
  • pull_to_refresh 下拉刷新、上拉加載

上面的這些庫你們能夠進https://pub.dev/來進行搜索使用。api

遇到的問題

三天時間,其實也沒有遇到多少問題,說幾個比較噁心的問題吧:cookie

  • 首先是TabBar和TabView顯示公衆號的頁面,本身想的是直接獲取到公衆號數據的同時刷新TabController而且直接請求當前公衆號的文章列表,這些操做全放在了一塊,當時就給我整懵逼了,而後TabView的滑動監聽還有問題🤨,後來直接不本身監聽了,直接交給TabBar來實現,我須要作的只有新建一個Widget,在裏面完成公衆號列表的實現,萬物皆Widget嘛!
  • 後來寫完了不須要cookie的接口後(無需登陸的接口),在實現須要cookie的接口的時候差點把我弄崩潰,cookie在後臺使用較多,但寫安卓的時候也沒有用過cookie,看泓洋大神寫的用PostMan實現也能成功,可是我本身調用的時候給headers傳cookie時一直不對,後來想明白了,cookie只是header的一個參數,我把用戶名和密碼的key學着PostMan都寫成了cookie,後臺確定獲取不到啊,改了以後就能夠了。
  • 接下來這個應該屬於flutter_webview_plugin插件的一個Bug吧,我在使用WebViewScaffold的時候,死活彈不出底部對話框,可是換成Scaffold的時候就能夠彈出來,WebViewScaffold將咱們的底部對話框給遮擋住了,因此彈不出來;而後就換了一個思路,直接在WebViewScaffold中的bottomNavigationBar中加上想彈出的頁面不得了,而後控制好顯示與否就行,具體實現項目中都有,這裏不作贅述。

總結

Flutter很好用,優勢就是開發成本低、速度快、效率高,但缺點也很明顯,界面嵌套太多,後期維護很費勁。我也嘗試着將安卓中的MVP寫到Flutter中,可是效果並非太好,因此就先放棄了,只能是多抽幾個Widget了。你們若是有空也能夠本身照着弘揚大神的玩安卓的api寫寫試試(www.wanandroid.com/blog/show/2…網絡

相關文章
相關標籤/搜索