- 状态管理:状态管理是进行flutter项目开发必须掌握的一项技能。解决方案Provider,Bloc,GetX中任选一个。
- 国际化语言管理:intl具体使用方法。(使用方法)该链接里有App内切换语言的方法实践。
- 框架:MVVM
- 网络请求:Dio
- 加载框/Toast:EasyLoading
- 列表加载和刷新:pull_to_refresh
- 询问手机权限:sn_progress_dialog
- webView组件:webview_flutter。由官方提供的webview组件,除了能在flutter中嵌入网页,还支持js和flutter互通消息
- 从拍照/相册获取图片:wechat_assets_picker,一个支持iOS和Android的Flutter插件,用于从图像库中挑选图像,并允许使用相机拍摄新照片,自带授权管理。
- 数据存储/本地化:shared_preferences
- 路由管理:GetX能做。(好强大,一定要看下源码了解一下)
- 数据转模型:json_serializable 新增插件:
- flutter_screenutil:屏幕适配
- cached_network_image:图片加载插件。有缓存功能(类似于iOS的SDWebImage)
- flustars:Flutter 常用工具库 github.com/Sky24n/flus…
这些库的使用方式:pub.dev。在这里个链接里面搜索库的名字就能找到使用方式。
这些框架/插件 我暂时没学过,找的是开发者使用时反应比较好的一些框架/插件,后续会在开发中慢慢学习并记录。
关于Icon的获取:阿里巴巴矢量图库
看了一些App,决定使用Flutter模仿微信做App。 选择微信的好处是:
- 成熟的功能需求和交互。
- 基本上微信中所有需要的数据都可以用假数据(本地数据)来实现。
- 涉及的功能,比较全面(拍照相册获取图片,文件上传,文件/图片下载,保存到本地(手机文文件夹里))
模仿微信估计用不到网络请求(因为都是用本地数据模仿),所以准备在项目中,插入一个天气预报的小应用来使用网络请求(天气预报接口使用网络上免费接口)。
要实现微信功能会涉及到如下技术点:
- 网络请求;
- Json转Dart Model类;
- 全局状态管理;语言、主题等都需要全局共享。
- 持久化存储;保存用户信息,联系人信息等。
- 支持国际化、Intl包的使用
一些小技术点: 图片/视频压缩, 文件(pdf/word/excel)视频的下载和预览, 远程推送接收(注册一个极光测试账号,在极光后台进行推送测试信息。)