《Flutter 项目工程化》序言

序言

Flutter 项目工程化

《Flutter 项目工程化》一书是Flutter 快速开发实战专栏的上册,笔者以快速命名是因为 “完成要比完美更重要”,“快速推进,打破常规”,“天下武功,唯快不破”,对于如今迅猛发展的互联网,也是如此。要知道,用户多变,所以唯一能够抓住机会的办法就是快。

在互联网行业,要成就一个项目,idea 一文不值,不仅是在中国,在哪都一样。笔者希望读者通过《Flutter 项目工程化》这本书能把你的想法在技术层面上来讲从不可行到可行,提高你的执行力,最终做成一款好的APP。

由于 Flutter 目前没有官方推荐的项目结构,为了易于维护,易于扩展, 提高开发速度,通过 Flutter 持续交付的最佳实践,所以我们必须在开发所有功能模块之前,发现这些模块开发过程中的共同点,将相似的代码归类,将差异较大的代码剥离,提高抽象的能力,笔者认为这就是 Flutter 项目的工程化。

演示

run_perform
login_perform
GetX

项目地址

发现有人滥用源码用作商业用途,自2022年3月1号后不再公开源码。

本书特色

  • 全面支持空安全
  • 健全的日志系统
  • 合理规范的开发流程,从零到一,由浅入深
  • 详细的代码解读,图文配合一目了然
  • 使用饱受好评的第三方插件库
  • 不以解决实际问题为最终目的的编程都是耍流氓

适宜人群

  • 本书不讲 Flutter 小部件,故不适合作为 Flutter 入门书籍
  • 缺乏大型 Flutter 项目经验的开发人员
  • 独立完成项目或毕设的大学生

项目结构

Flutter 作为最近很火的一个跨平台技术,以其高性能、跨平台的一系列优秀特性成功吸引了很多开发者和组织的青睐,真正实现了一次编码处处运行。但是由于其不同于传统 Android 或 iOS 开发的 Widget 机制,使得视图的代码往往冗长、不够简洁,解决这种困境的方法就是在开发中合理地运用合适的架构模式,使得程序的视图与数据分离,这样视图层的代码只用专心进行视图的描述和操作即可,不涉及过多复杂的数据操作,这样就可以使视图层的代码达到简洁。
Flutter 新项目主要包含以下几个目录:

  • android –生成Android应用。任何关于Android的实现都将放在此文件夹中。

  • ios -生成的iOS应用。任何关于iOS的实现都将放在此文件夹中。

  • web -生成的Web应用。任何关于Web的实现都将放在此文件夹中。

  • lib-主要代码文件都在这里创建,main.dart -主文件

  • test–用于单元测试

笔者参考了很多 Github 上面开源的 WanAndroid 项目,最终总结设计了一套我个人比较青睐的工程结构,从而大大提高生产力。

|---flutter_locyin
|     |---android  
|     |---assets  
|     |     |---fonts // 字体资源  
|     |     |---icon // 图标资源  
|     |     |---images // 图片资源  
|     |     |---json // 本地模拟JSON  
|     |---ios  
|     |---lib  
|     |     |---data  
|     |     |     |---api // http 接口和服务类  
|     |     |     |---model // 数据模型  
|     |     |---common
|     |     |     |---lang  // 语言目录
|     |     |          └──en_US // 英文语言包
|     |     |          └──zh_Hans // 中文语言包
|     |     |          └──translation_service // 翻译服务类
|     |     |---init // 启动目录
|     |     |     └── app_init.dart // 捕获异常 
|     |     |     └── default_app.dart // 默认 App 启动
|     |     |---page  
|     |     |     └── index.dart // 主要用于底部导航、状态保持  
|     |     |     └── xxx.dart // 所有页面布局,不再一一列出  
|     |     |---route // 路由目录
|     |     |     └── route_map.dart  // Getx 路由表  
|     |     |     └── route.dart // 二次封装 Getx
|     |     |---utils // 二次封装第三方库目录  
|     |     |     └── provider.dart // APP 状态管理  
|     |     |     └── sputils.dart // 数据持久化存储  
|     |     |     └── dio_manager.dart // 二次封装 Dio,配置信息、请求日志、自动处理错误等  
|     |     |---widgets // 封装的小部件目录  
|     |     └── main.dart // APP 入口文件  
|     |---test
|     |---web
|     └── pubspec.yaml //依赖配置管理  

在本书上册前四章将会一步步完成这个工程结构,依次对新增目录、文件和相应的插件的使用做详细说明。

本书组织结构

  • 第一章,起步。搭建开发环境,新建一个空项目,Git 和基本信息的配置。
  • 第二章,初始化。初始化项目。包括国际化,捕获异常,日志拦截,Sentry 上报错误和导航栏的实现。
  • 第三章,抽屉相关。以抽屉为入口,依次展开 GetX 路由管理,内置浏览器的使用等。以 GetX 国际化为入口,依次展开持久化存储,GetX 状态管理,最后完成昼夜模式切换小案例。
  • 第四章,用户相关。本章第一节完成了二次封装 Dio ,实现了平滑刷新 Token ,清晰的控制台请求日志,自动处理响应错误信息等;第二节完成了手机号注册登录为一体的流程;第三节完成了用户信息实体类的转化,用户信息状态录入和路由中间件等功能。
  • 第五章,启动相关。依次完成了闪屏页、广告页、欢迎页和隐私声明弹窗,最后修改了应用启动图标和应用名称。

版权声明

本书《Flutter 项目工程化》版权归作者 Lotvin 所有。

本书受版权法保护,任何组织或个人不得以任何形式分发或做商业使用。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

geeksoarsky

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值