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

前言

項目地址

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

正文

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

廢話不多說,直接來看一下項目的部分截圖吧:

依賴庫

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

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

上面的這些庫大家可以進https://pub.dev/來進行搜索使用。

遇到的問題

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

  • 首先是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寫寫試試(https://www.wanandroid.com/blog/show/2),如果那塊幫助到你了,萬分榮幸,點個贊、點個Star、點個關注,萬分感謝。

項目地址

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章