之前在用 Flutter 开发 Demo,在使用 Dio 请求网络的过程中遇到的一些问题,结合最近在掘金上看到一个不错的文章,于是就把自己的问题拿出来记录一下,看看能不能把之前的优化方案再升级一下
Hive在Flutter Web中使用Stream
受到在做 Android 开发时 MVVM 架构的影响,在开发 Flutter 项目时,在架构实际上我都会有意的向 MVVM 方向上靠。所幸 dart 语言的语法有点像 Java 和 Kotlin 的结合体,所以架构上除了 View 层,其它层都非常的相似。
Hive在Flutter Web上遇到的问题及解决方案
Hive 在我个人项目的使用上出现了问题,目前遇到两种错误:
- 多次 open 同一
Collection
下的 Box,除第一个 Box 能正常使用外,其他的 Box 都不可用。 - 使用
BoxCollection
来创建多个 Box,当使用Box
put 数据时会报数据类型错误,即使我们提供了正确的TypeAdapter
。
经过一段时间的摸索后终于找到一条能正常使用的方法。
Flutter本地存储之Hive
由于floor不支持 Web 平台,所以就需要寻找在Web
平台上的数据库替代方案。然后发现了 Hive,它是一个开源的 Flutter 数据库框架,它支持在全平台上运行且性能很好。虽然不是关系型数据库,只是轻量级的键值对数据库,也能满足一些常用的功能。
Firebase Remote Config的工程化案例
Config 工程化的灵感是来自于澳洲体育视频项目,他们的 Remote Config 工程化做的非常好,它分为两大类 Config 和 Storage,然后用 CircleCI 来自动化处理 Config 的更新和 Storage 的文件上传,是由运维人员来实现的,具体实现细节不是很清楚,所以这里我们来实现一个基于 Python 的 Config 工程化的案例。
Flutter本地存储之Floor
单元测试覆盖率 Jacoco 集成过程
jacoco 是一款面向 java 的代码覆盖率分析工具,通过 ASM 字节码插桩技术,计算被测试代码覆盖的代码块,最后生成代码覆盖率报告。插桩方式分为在线(on the fly)和离线(offline)两种模式。其中在线模式在使用中更方便。
Flutter本地存储之SharedPreferences
Flutter 的 shared_preferences 库的作用是将数据以键值对的形式异步持久化到磁盘支持的数据类型有 int、double、bool、string、stringList,对于非 Web 平台删除 App 后数据会被清除,对于 Web 平台清除浏览器缓存后数据会被清除。
Flutter中数据存储
在 Flutter 的项目实践中数据存储的选型上主要考虑易用性和跨平台。这里罗列出了 Flutter 中常用的本地数据存储方案。
记一次 Android 代码混淆的全过程
这个文档的目的主要是为了记录为两个 Application 的 module 添加混淆支持的过程,同时也会添加混淆支持后遇到的 Crash 和解决方案,以便后续接手人员查缺补漏。