轻量级前端框架助力开发者提升项目效率与性能
736
2022-10-12
寻狗小程序的Flutter原生版本,完全开源,已经在苹果和安卓市场上架。
寻狗 Flutter 版
寻狗Flutter,是微信小程序“寻狗”的原生客户端版本,寻狗的官方网站。基于Flutter框架,使用Dart语言编制而成。本小程序全免费,公益无广告,专为寻狗启事,寻主启事,狗狗领养而设计,Flutter版本就是在此过程中开源产物,第一次写Flutter请多包涵。
提示
本代码使用GPL(GNU General Public License)许可协议开源,二进制版本已在Apple Store和Google Play以及国内各大Android市场上架,可以直接-使用。
更新
原始代码写于0.9的Flutter,更新了gradle后,目前已经在最新的Dart 2.1和Flutter 1.1.9编译通过。
Flutter快速入门
首先需要一个Flutter的环境,请移步Flutter中文网,可能-过程中需要点时间,但总体是傻瓜化操作。官方网站阅读文档, 官方documentation。
开发笔记
尽量保持了目录结构的整洁,lib下就是所有源代码,common存放了一些基础类包含了请求,基于jwt的登录校验,和一些常量等。其中request.dart是基于dio的二次封装,登录态由login.dart负责,其实可以合二为一。screens目录放置了所有的页面级别元素,一个文件就是一个页面。models目录放置了viewmodel,单向的api转model方法,Dart的命名构造函数方式例如.fromJson的使用非常方便。utils目录里放了工具,一些校验类。widgets放置了私有控件,我写了一个图片上传控件方便上传图片。使用了bottom navigation bar的布局方式,在main.dart中可以体现,是如何切换的。为了保证ListView在切换tab中位置保持不变,使用了key来进行定位,可以参考/screens/lost/list.dart。更新使用了Flutter 1.0以上版本,使用了google的webview控件,H5性能大幅提高,可以参考flutter 1.0的发布说明。多语言的问题可以参考main.dart,里面将日历控件改成了中文展示。微信分享利用了Fluwx控件,请在main.dart中fluwx.register改成你自己的appid。地图使用了高德的HTTP接口,请在使用地图的http连接切换成你自己的key,在/screens/lost/map.dart中。两个月前的代码了,想到什么再补充进来。
Dart优点
路由非常的友好,使用起来很方便。完整的异步语法支持。可推导类型,当然还是建议用强类型。整个Flutter框架并不是纯UI框架,而是谷歌的用户体验的最优化实践,可以做出非常华丽的动效。有理由相信Google下一代Fuchsia将会是革命性的平台。等等
TODO
把高德http接口换成控件。 品类做到和寻狗小程序一样多。
其他
有问题可以放issue,谢谢,请支持寻狗小程序。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~