个人简介
6年 Flutter 经验(前 3 年自学 + 校内推广),3 年全职。擅长移动端架构设计与 DDD/TDD,具备技术协调与团队推进经验。
专业技能
6 年 Flutter 经验,主导多款视频创作类 App 架构设计、性能优化与原生混合迁移 在大型项目中深度应用统一的声明式状态管理与 Hooks 模式,主导团队推广 主导视频预览页从原生到 Flutter 的完整迁移,消除 Flutter-原生交替路由导致的跨端 Bug 沉淀了从需求到测试的全链路开发工作流,借助 AI 加速日常开发迭代
工作经历
- 同时负责三款产品的 Flutter 端开发维护:Vozo App(视频创作软件)、Vozo Voice(视频配音翻译)和 Rayzo(模板化快速出片工具),通过 melos monorepo 统一管理 89 个 package
- 基于 DDD 对 AI 生成视频流程进行领域建模,划分图片校验、Prompt、点数为独立子域,并采用 TDD 保证任务轮询仓储层在跨网络环境下的数据一致性与正确存储
- 主导首页改版 4.0/5.0:功能外放到金刚区聚合入口,优化滚动体验并分解项目列表与模版推荐页
- 引入 very_good_analysis 规范代码风格,在一个月的时间里通过治理 async gap 问题,将 Firebase crash-free 率从 60% 提升至 90% 以上
- 主导自动视频源语言识别功能开发,针对原方案耗时过长的问题,通过全链路优化将识别耗时从远大于 15s 压缩至 3~5s,平衡成本与收益的同时显著提升用户体验
项目经历
视频模版生成(VFT)正值风口,需快速出 MVP 验证市场。独立产品需支持多种模板类型,不同类型在 UI 上有细微差异。
- 主导从 0 到 1 的基础架构搭建,包括图标主题配置、主页过渡动画、VFT 主功能流程
- 参与路由方案重构,从 flutter_boost 迁移至纯 Flutter 项目的 GoRouter
- 设计模版引擎架构,支持不同类型模板的分类加载与差异化 UI 展示
- 实现视频渲染与合成管线,一个月内完成 MVP 开发上线并验证市场需求
基于 Firebase Remote Config 实现动态脚本与配置下发,满足产品在不同国家地区、不同版本、不同系统上使用不同逻辑的需求。传统 Firebase 配置方案需要大量分支组合,对运营不友好。改用 JS 脚本动态计算后,避免了复杂条件下的多分支配置。
- 设计并实现基于 JS 脚本的动态逻辑下发方案,替代传统多分支 Firebase 配置
- 基于脚本引擎动态计算出各地区需要配置的 banner 内容,运营无需理解技术分支
- 支持 Prompt 动态变化、音频长度变化等场景下的灵活计费,无需发版更新
基于 photo_manager package 实现多平台图片选择页面,需处理 Android/iOS 不同版本下的权限差异,支持选择所有相册及相册内图片、拍摄选择模式、用户资产库与预制资产库,并对图片大小、最短边、人脸存在性等规则进行校验。
- 基于 photo_manager 实现跨平台图片选择器,适配双平台不同版本的权限访问差异
- 支持四种选择模式:相册浏览、拍摄选择、用户资产库与预制资产库
- 实现图片规格检测、人脸检测等系统相册不具备的校验能力
- 统一双平台图片选择体验,降低后续功能迭代的适配成本
Vozo App 的视频预览页原本完全由原生(Android/iOS)实现。当时 Flutter 端没有成熟的播放器方案,一切从零开始。预览页承接功能设置选项,双端维护导致迭代效率低下,且主页-预览页-处理页-编辑页的路由结构为 Flutter-原生-Flutter-原生交替跳转,容易产生跨端 Bug。
- 从零搭建 Flutter 端视频播放器方案,完成预览页完全 Flutter 化改造
- 使用 flutter_hooks 优化播放器控制器生命周期,避免内存泄漏
- 集成 Kibana 实现播放失败原因的埋点跟踪与数据分析
- 消除 Flutter-原生交替路由导致的跨端 Bug,为后续 4.0 提供统一跨平台基础
Flutter Assist 是一款面向 Flutter 开发者的辅助学习工具,以官方教学视频系列《Flutter Widget of the Week》为基础,帮助开发者按视频顺序快速查看每个 Widget 的使用效果与源码实现。
- 独立设计并开发完整应用,持续维护 4 年以上
- 实现按官方视频顺序索引 Widget 的功能
- 集成 Icons 图标预览,支持搜索与分类浏览
开源社区
- 搭建并维护国内镜像站,实现源码定时拉取与同步
- 设计自动化打包与发布流程
- 参与 Fuchsia 开发文档的中文汉化翻译工作
- 参与 Riverpod 中文文档翻译 🔗
- 在国内社区编写 Flutter / Riverpod 教程文章,发布于 eplab.top