从0开始设计Flutter独立APP | 第一篇: 数据库与状态管理
鉴于Flutter高性能渲染和跨平台的优势,闪点清单在移动端APP上,使用了完整的Flutter框架来开发。既然是完整APP,架构搭建完全不受历史Native APP的影响,没有历史包袱的沉淀,设计也能更灵活和健壮。 首先列举部分闪点清单的业务特性(较为通用的业务特性): 数据存储上,以本地数据为主,服务器同步为辅前端状态逻辑较为复杂,跨页面、跨组件状态更新频繁这几个业务点,设计到的技术选型有:本地数据库、前端状态管理,对很多业务来说,这几点都是比较核心的东西,也是我们今天重点要讲的内容。 数据库选型数据库选型,首先要定的,就是选择数据库类型:关系型数据库、非关系型数据库还是Key/Value存储。 对于关系型数据库,可选的有比如:SQLite、Core Data、GreenDao等;对于非关系型数据库,可选有Realm、UnQLite等;对于Key/Value存储,有比如Redis、Berkeley DB、Level DB等。 由于业务形态具有复杂的查询场景,所以首先排除了Key/Value存储;然后鉴于业务迭代频繁,数据结构变动较大,所以完全的关系型数据库使用成本会较高,版本更新时在数据兼容和数据清洗方面要做较多的工作;…