历时三天,完成了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…网络

相关文章
相关标签/搜索