Flutter核心技术与实战
陈航
美团点评高级技术专家
立即订阅
6150 人已学习
课程目录
已完结 47 讲
0/4登录后,你可以任选4讲全文学习。
课前必读 (3讲)
开篇词 | 为什么每一位大前端从业者都应该学习Flutter?
免费
01 | 预习篇 · 从0开始搭建Flutter工程环境
02 | 预习篇 · Dart语言概览
Flutter开发起步 (3讲)
03 | 深入理解跨平台方案的历史发展逻辑
04 | Flutter区别于其他方案的关键技术是什么?
05 | 从标准模板入手,体会Flutter代码是如何运行在原生系统上的
Dart语言基础 (3讲)
06 | 基础语法与类型变量:Dart是如何表示信息的?
07 | 函数、类与运算符:Dart是如何处理信息的?
08 | 综合案例:掌握Dart核心特性
Flutter基础 (13讲)
09 | Widget,构建Flutter界面的基石
10 | Widget中的State到底是什么?
11 | 提到生命周期,我们是在说什么?
12 | 经典控件(一):文本、图片和按钮在Flutter中怎么用?
13 | 经典控件(二):UITableView/ListView在Flutter中是什么?
14 | 经典布局:如何定义子控件在父容器中排版的位置?
15 | 组合与自绘,我该选用何种方式自定义Widget?
16 | 从夜间模式说起,如何定制不同风格的App主题?
17 | 依赖管理(一):图片、配置和字体在Flutter中怎么用?
18 | 依赖管理(二):第三方组件库在Flutter中要如何管理?
19 | 用户交互事件该如何响应?
20 | 关于跨组件传递数据,你只需要记住这三招
21 | 路由与导航,Flutter是这样实现页面切换的
Flutter进阶 (17讲)
22 | 如何构造炫酷的动画效果?
23 | 单线程模型怎么保证UI运行流畅?
24 | HTTP网络编程与JSON解析
25 | 本地存储与数据库的使用和优化
26 | 如何在Dart层兼容Android/iOS平台特定实现?(一)
27 | 如何在Dart层兼容Android/iOS平台特定实现?(二)
28 | 如何在原生应用中混编Flutter工程?
29 | 混合开发,该用何种方案管理导航栈?
30 | 为什么需要做状态管理,怎么做?
31 | 如何实现原生推送能力?
32 | 适配国际化,除了多语言我们还需要注意什么?
33 | 如何适配不同分辨率的手机屏幕?
34 | 如何理解Flutter的编译模式?
35 | Hot Reload是怎么做到的?
36 | 如何通过工具链优化开发调试效率?
37 | 如何检测并优化Flutter App的整体性能表现?
38 | 如何通过自动化测试提高交付质量?
Flutter综合应用 (6讲)
39 | 线上出现问题,该如何做好异常捕获与信息采集?
40 | 衡量Flutter App线上质量,我们需要关注这三个指标
41 | 组件化和平台化,该如何组织合理稳定的Flutter工程结构?
42 | 如何构建高效的Flutter App打包发布环境?
43 | 如何构建自己的Flutter混合开发框架(一)?
44 | 如何构建自己的Flutter混合开发框架(二)?
结束语 (1讲)
结束语 | 勿畏难,勿轻略
特别放送 (1讲)
特别放送 | 温故而知新,与你说说专栏的那些思考题
Flutter核心技术与实战
登录|注册

41 | 组件化和平台化,该如何组织合理稳定的Flutter工程结构?

陈航 2019-10-01
你好,我是陈航。今天,我们来聊一聊 Flutter 应用的工程架构这个话题。
在软件开发中,我们不仅要在代码实现中遵守常见的设计模式,更需要在架构设计中遵从基本的设计原则。而在这其中,DRY(即 Don’t Repeat Yourself)原则可以算是最重要的一个。
通俗来讲,DRY 原则就是“不要重复”。这是一个很朴素的概念,因为即使是最初级的开发者,在写了一段时间代码后,也会不自觉地把一些常用的重复代码抽取出来,放到公用的函数、类或是独立的组件库中,从而实现代码复用。
在软件开发中,我们通常从架构设计中就要考虑如何去管理重复性(即代码复用),即如何将功能进行分治,将大问题分解为多个较为独立的小问题。而在这其中,组件化和平台化就是客户端开发中最流行的分治手段。
所以今天,我们就一起来学习一下这两类分治复用方案的中心思想,这样我们在设计 Flutter 应用的架构时也就能做到有章可循了。

组件化

组件化又叫模块化,即基于可重用的目的,将一个大型软件系统(App)按照关注点分离的方式,拆分成多个独立的组件或模块。每个独立的组件都是一个单独的系统,可以单独维护、升级甚至直接替换,也可以依赖于别的独立组件,只要组件提供的功能不发生变化,就不会影响其他组件和软件系统的整体功能。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《Flutter核心技术与实战》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(5)

  • 小米
    老师,关于架构这一讲,有没有demo可以参考一下?

    作者回复: 没有哈,我觉得讲架构用图更清晰一些,抽象层次更高。讲代码容易陷入细节

    2019-10-26
  • 请问 我目前所做 架构设计稍有不同 第一层是各个模块儿页面 ->各个独立的UI组件(选项卡,slider,bottomSheet,轮播图等等...)->业务逻辑(provider中做逻辑处理然后通知页面)->基础能力模块(网络,加解密,数据存储等...) ,这种方式会有什么隐患或者不足么?

    作者回复: 看起来也没啥问题,只要能够有明确的组件划分边界,能够满足业务需求就好

    2019-10-19
    1
  • 我在做的App静态资源类主要包括image,color ,icon font ,svg,animation,多语言词条以及一些静态的.json文件,目前我的做法是会写一个脚本去扫描对应的路径生成一个对应的索引类
    ex:
    class AnimationAssets {
     static const String clock = 'assets/animations/xx.json';
     static const String gold = 'assets/animations/xx.json';
    }

    作者回复: 类似Android R文件的思路,挺好的

    2019-10-19
  • 小水滴
    请问有没有好的方式检测组件之间循环依赖或者层级依赖错误呢,这样可以在开发阶段来规避团队错误的使用方式

    作者回复: Dart目前没有特别好用的图形工具可以用来分析依赖,你可以用flutter pub deps来打印工程的完整依赖树,配合简单的字符串扫描脚本,检查下是否存在依赖关系特别深,或是循环依赖的情况

    2019-10-08
  • 大土豆
    明天是不是最后一讲了?😃

    作者回复: 还有三讲,明天讲持续交付,周六和下周二讲混合框架

    2019-10-02
    1
收起评论
5
返回
顶部