Flutter 开发工程师 · 成都 · 4 年经验
fangzhiyi@example.com · 135 0000 0000 · github.com/fangzhiyi
个人优势
- 4 年 Flutter 开发经验,负责过一款在线教育 App 的 iOS、Android 和鸿蒙三端,一套代码维护三个平台
- 混合栈开发经验丰富:Flutter 页面嵌在原生 App 里,处理过多引擎内存、页面栈同步和原生通信的问题
- 渲染性能有实战:用 DevTools 定位重建范围过大、图片解码和 Shader 编译卡顿,课堂页稳定 60 帧
- 状态管理用 Riverpod,按功能模块划分 Provider,业务逻辑可以脱离 UI 单测
- 做过直播课堂的白板和音视频互动,Platform View 嵌入原生播放器,处理了层级和手势冲突
- 关注包体积和启动速度,Flutter 产物拆分、按需加载字体和图片,安装包减少 18MB
- 技术栈:Dart、Flutter、Riverpod、Dio、Isar、Platform Channel、Kotlin、Swift、ArkTS(鸿蒙适配)、Firebase Crashlytics
工作经历
某在线教育公司 · Flutter 开发工程师
学生端 App 日活约 60 万,移动端 6 人,Flutter 负责全部学习类页面。
- 直播课堂:课堂页包含视频、白板、聊天和答题四个区域。视频用 Platform View 嵌入原生播放器,白板用 CustomPainter 绘制并按笔迹增量重绘,低端机上课堂页从 40 帧左右提升到稳定 58 帧以上
- 鸿蒙适配:参与 Flutter 鸿蒙版的适配,梳理 30 多个插件的兼容情况,自研插件用 ArkTS 重写平台端;鸿蒙版按期上架,核心功能与 iOS、Android 一致
- 离线学习:课程视频和课件支持离线下载,断点续传、存储空间不足提醒、过期自动清理;离线播放相关的投诉下降约 80%
- 包体积与启动:拆分 Flutter 产物,非首屏资源延迟加载,字体按需子集化;安装包减少 18MB,冷启动缩短约 0.4 秒
某企业服务公司 · 移动端开发工程师
负责企业审批 App,团队 5 人,从原生迁到 Flutter 的过程中加入。
- 参与 30 多个页面从原生迁到 Flutter,迁移期间新老页面共存,统一了页面路由和登录态
- 封装审批表单的动态渲染组件,服务端下发配置即可生成表单,新审批类型无需发版
- 用 Isolate 处理大附件的压缩和上传,上传过程中界面不再卡顿
项目经历
混合栈路由框架
Flutter / Kotlin / Swift / Platform Channel
- 原生和 Flutter 页面统一用 URL 路由,页面栈由原生侧管理,返回手势和转场动画两端一致
- 多个 Flutter 页面共享一个引擎,打开新的 Flutter 页面内存增量从 30MB 降到 5MB 左右
- 页面间传参和结果回传有类型约束,减少了因参数拼错导致的线上问题
课件白板组件
Flutter / CustomPainter / WebSocket
- 老师端的笔迹通过 WebSocket 实时下发,学生端按笔画增量绘制,不重绘整个画布
- 笔迹数据做了平滑和压缩,传输量下降约 60%
- 支持课后回放:按时间轴重放笔迹,和课堂录像同步