Flutter项目实战
Flutter框架发布至今已近两年,Flutter SDK从2018年12月到2019年底,从1.0到1.12,陆陆续续发布了过10个版本。框架优化,系统上的兼容,API的完善等,让Flutter在众多混合开发框架中显得更加出类拔萃。下面介绍一下,参与到Flutter实战,需要哪些准备。(下面有关内容是基于从Android应用基础开发)
一、确定环境、开发工具
● Windows7/Windows10/Mac
● 8g以上内存、i7处理器
● Android Studio3.2+(推荐)、VsCode
● Android SDK 19+
● Flutter SDK版本v1.9.1+hotfix.6及以上
● Dart SDK版本v2.4.0及以上
一、环境搭建
第一步是开发工具下载,按照开发工具版本,一般不存在什么问题;第二步是Flutter SDK、Dart SDK下载;第三方开发工具安装插件级系统环境变量的配置。推荐一个参考环境搭建(包含了Windows和Mac环境)。环境搭建一般存在的问题:下载失败、镜像无法映射、系统环境配置错、版本不一致、Android Studio下缺少Android SDK等。
二、Dart语言基础
如果不了解Dart语言,有过其他编程语言经验(尤其是Java和JavaScript)的话会非常容易上手Dart。当然,如果是iOS开发者,也不用担心,Dart中也有一些与Swift比较相似的特性。但是,由于是不同的角色参与开发和维护项目,Dart基础部分仍需花些时间学习,参与者彼此之间相互学习,有助于提高开发项目的质量和效率。推荐:Dart基础篇、深入了解Dart
三、Flutter基础
● 基础、进阶学习(学习、复习指南)
● 根据APP常有功能,需要掌握到的一些Flutter知识点:
1、Flutter Widget的生命周期(例bottomNavigationBar切换页面,页面状态;page可见/不可见时的状态);
2、Flutter 系统权限申请(permission_handler),其他:webview、notification、player、keyboard;
3、Flutter 数据存储(sqflite、shared_preferences);
4、Flutter 全局Loading(自定义加载圈);
5、APP检查更新、下载;
6、Flutter页面关闭,如栈中有ABCDEF页面,F页面操作按钮,需显示C,即需要关闭DEF页面(需要使用命名路由)
7、返回不退出app, android_intent
8、待续
四、原生开发基础(这里以Android为例)
这里涉及的知识点较多,结合flutter项目,需要掌握的一些点主要有:
● flutter项目创建,Android Studio->File->New->New Flutter Project->默认选Flutter Application->输入项目名称、SDK地址、存储地址->Edit 包名(严格按照规范命名)->完成
● 打开Flutter中Android项目,File->Open->找到flutter项目下的android->选择打开;
● 顶部build,可以选择Clean Project/Rebuild Project,重新编译Android项目(环境中存在多个版本的gradle的时候,有时Clean Project/Rebuild Project依然会报错,这个时候选择File->Invalidate Caches/Restart...);
● android项目下src文件夹下build.gradle文件,包含项目库的依赖、app的属性的声明、打包配置等;
● main目录下的AndroidManifest.xml,权限、key、Android组件的声明;
● MainActivity继承自FlutterActivity,应用入口,初始化工作;
● 双向交互
● Activity的几个生命周期
● abiFilters的理解(查看Flutter框架支持的abi:Flutter项目下->build\app\intermediates\transforms\mergeJniLibs\debug\0\lib)
五、调试、打包
● Log输出,在相应代码处输入日志,结合自定义LogUtil(日志输入总开关);
● 断点调试,有两种方式
1、在代码行数字旁双击(有红点),选择顶部按钮(Attach Debugger to Android Process),选择运行环境(手机),选择包名,ok,便可以断点调试;
2、在代码行数字旁双击(有红点),选择顶部按钮(debug),app便会已断点方式重新安装运行
(Android项目可以使用两种方式,我的Flutter插件只支持选择2)
● debug/release打包,底部选择Terminal,输入flutter build apk,边进入打包,输出目标在项目下build\app\outputs\apk,有debug和release包
● 签名,apk签名有多种方式,这里不展开细讲
● 打包、签名参考
六、心理准备
遇坑是不可避免的事情,甚至遇到些超出解决能力范围的问题,平静心态迎接,通过百度、讨论、改变解决方案等方式处理每一个worring/error。
七、Nice Demo,Nice Article
学习和掌握了项目实战的知识点后,如果要让项目更好的维护和拓展,扔需学习他人优秀的技巧,最后运用到真实场景中,成为自身的技能。