7-王刚-Flutter在Now直播中的工程实践应用
•IDE直接集成Flutter产出模式 •快速方便集成 无法同步Dart代码 无法启动调试 Android IOS 工程化开发模式Ⅱ • Flutter工程集成NOW工程模式 • 修改NOW工程结构 • 将Dart代码与Native代码一起存放GIT • 修改编译脚本 • 支持断点调试 无法跨终端同步及维护Dart代码 工程化开发模式Ⅲ • Gradle/CocoaPods依赖管理 • 跨终端团队协作远程构建产出模式 • Dart代码独立GIT • 远程构建平台配置终端推送地址 • 构建完成自动推送更新 QCI 远程构建平台 Android Git iOS Git 工程化开发模式Ⅲ 1. 拉取Dart分支 2. 拉取Android /iOS分支 3. QCI设置分支及对应版本号 4. 开发提交代码 5. 启动构建同步至分支 开发步骤: 工程化开发模式总结 Project Android终端 iOS终端 应用更新 三端统一 •一份Dart代码 •统一三端开发 WEB iOS Android DART 三端统一 • Dart_Native=>Dart_h5 • 支持从Dart语言到JS转换 • 可直接在浏览器中访问 • 转换效率低框架代码过多 WEB iOS Android DART Dart2JS 三端统一 WEB iOS0 码力 | 35 页 | 5.39 MB | 1 年前3陈新新 Flutter & Dart全栈开发
让Flutter客户端同学快速上⼿手 闲⻥鱼 - 让你的闲置游起来 领域服务 服务索引 代码转换 服务集合 快速部署 本地执⾏行行 ⽇日志回传 错误定位 隔离调试 All In IDE 新建服务 降级 限流 监控 告警 开关 简化运维 配置 优化开发体验 闲⻥鱼 - 让你的闲置游起来 秒级部署 ⽆无需提交代码 运⾏行行时隔离 远程热部署 Dart Isolate HTTP Isolate加载每个⼈人的代码 只调试指定Isolate 闲⻥鱼 - 让你的闲置游起来 部署时间:20分钟 -> 3秒 本地测试远程服务 ⽆无冲突调试 效率提⾼高 闲⻥鱼 - 让你的闲置游起来 异构系统的服务调⽤用 HTTP Restful Service Mesh C++ Extension ⼏几种途径 Java -> Dart ⼯工具:⽣生成接⼝口和数据模型的Dart代码 简化服务调⽤用⽅方式 简化服务调⽤用⽅方式 XML JAVA 反射 Dart代码 服务注册及通信 索引 闲⻥鱼 - 让你的闲置游起来 ⽆无Dart基础 服务端开发同学 有Flutter基础 客户端开发同学 通过⽂文档和⼯工具,写Hello World基本不不需要指导 单线程异步开发模型 理理解后端服务需要过程 ⼀一⼩小时上⼿手,半天上线⼀一个业务新接⼝口 学习成本低 学习成本 闲⻥鱼 - 让你的闲置游起来0 码力 | 39 页 | 17.12 MB | 1 年前3Web的未来 新技术和新语言带来的改变
是 Dart 语言实现的,然后 dart2js 自己把自己编译成了 JS。 甚至这些非编译为 JavaScript 的语言: Go http://play.golang.org/ 但原理是将代码上传到服务器(沙盒中)执行,并返回输出 其它数十种编译到JS或JS的扩展语言 ● ClojureScript ● LiveScript ● RubyJS ● GWT ● Asm.js ● …… 团队打造 ● 主要成员包括:Lars Bak、Kasper Lund、Gilad Bracha等 ● 以大量编程语言实现的经验为基础 Dart 语言的诞生 Dart 并非颠覆,而为实用 Dart 代码 class Cookie { var number_of_chips; Cookie(num) { number_of_chips = num; } } Dart 类型的好处 ● 类型即文档,表明程序意图,提供概念框架 ● 避免特定的变量命名模式或注释方式 ● 适合范型 ● 良好工具的支持 ● 更早发现问题(类型检查): ○ 检查模式运行 ○ 静态代码分析 ● Dart 类型是可选的,而非强制的。 可选类型 class Point { var x, y; Point(this.x, this.y); operator +(other)0 码力 | 91 页 | 3.44 MB | 1 年前3Flutter 任晓帅 GDG DEVFEST 12.23
经过简单统计,写同⼀一个功能, 使⽤用Dart,可以减少50%的代码量量 强⼤大的异步编程能⼒力力 全栈语⾔言 UI Widget 所有UI元素都是widget组件 Stateless Widget Stateful Widget 状态 功能 Visual Layout Painting Intera ction Platform 代码写UI 组合Widget ⾼高性能 动画 Platform 真的要学Flutter了了吗?还有没有坑? Guangzhou 包太⼤大? Android iOS Debug 22.28M 31M Release 3.46M 13.8M Flutter SDK Dart代码的构建产物 Native 代码 资源⽂文件 热更更新? JIT 替换产物 ⽣生成js …. Flutter 已经把热更更新作为 接下来的重要特性在开发 ⼩小德-koudle @Tencent 我的Github:0 码力 | 21 页 | 1.19 MB | 1 年前3基于go和flutter的实时通信/视频直播解决方案 段维伟
基于 Skia 2D 渲染引擎 • 使用类似JS/TS的Dart 语言开发 • 支持代码编辑后热重载, Flutter 支持那些平台 iOS/Android/Web/Windows/Linux/macOS/Embedded 使用flutter 开发app意味着什么? • 无需为每个平台独立维护代码 • 一次编码,多平台运行,效率最大化 • 多平台一致性体验 • 强大的社区资源 Flutter-WebRTC Orlando Co https://github.com/OrlandoCo • CloudWebRTC https://github.com/cloudwebrtc pion 和 ion 社区的所有代码均为MIT授权, 相关github 地址如下: https://github.com/pion/ion https://github.com/flutter-webrtc https://github0 码力 | 38 页 | 2.22 MB | 1 年前3Flutter在百度贴吧的落地实践
网络(长短链接) 自定义 拦截/整合 模块间 模块内 现有业务框架的问题与挑战 数据和UI一致性较差 数据本身的变化可控性较差 模块内和模块间代码风格不一致 响应式 tieba_redux 现代 redux Redux的优势与问题 组织代码 n 组件:函数式,class n 数据:props,state n 纯函数 组织思想 n State变化可预期 n 面向action序列编程 满足拦截类开发需求 Ø 网络访问添加通用参数 Ø 打印action序列和State,加速问题定位 Ø 改变跳转,热修复 Redux 模块化 tieba_redux n 概念上的『和』与『分』 n 分之后的代码组织与运行 n 细粒度模块化的编码需求 tieba_redux GlobalRedux Tasks Actions Reducers Store State n 皮肤/夜间/暗黑 n0 码力 | 36 页 | 14.75 MB | 1 年前3
共 6 条
- 1