- 博客(151)
- 收藏
- 关注
原创 Flutter 3.47 鸿蒙三方库适配实战:从 0 到 1 处理 motion
本文记录了在 Flutter 3.47 鸿蒙环境下,对 motion 2.0.2 库的完整适配过程。通过保留原有 Dart API,新增鸿蒙原生插件实现陀螺仪通道(MethodChannel 和 EventChannel),并基于 HarmonyOS API 26 真机验证,成功实现视差倾斜效果。关键点包括:正确注册 ohos 平台、对齐通道名与语义、处理构建签名配置及路径问题。最终在华为畅享 90 Pro Max 上完成构建、安装与功能验证,实现从 0 到 1 的跨平台适配。
2026-10-28 11:17:13
1471
原创 Flutter 3.47 鸿蒙三方库适配实战:从 0 到 1 处理 is_lock_screen2
本文记录了在 Flutter 3.47 鸿蒙环境下,适配 is_lock_screen2 2.1.0 的完整过程:保留原有 Dart API,通过 MethodChannel 注册通道,实现鸿蒙端屏幕锁状态检测。核心逻辑为先判断屏幕是否点亮,再异步查询锁屏状态,确保兼容性与稳定性。适配后在 HarmonyOS API 26 真机上成功构建、安装并验证,返回值与设备实际状态一致,解决了插件注册缺失等关键坑点,最终通过 AtomGit 发布适配版本 2.1.0-ohos.1,实现跨平台无缝集成。
2026-10-23 12:40:39
1212
原创 Flutter 3.47 鸿蒙三方库适配实战:从 0 到 1 处理 native_file_preview
本文记录了在 Flutter 3.47 鸿蒙环境下,对 native_file_preview 1.1.0 插件的完整适配过程。通过保留 Dart API、注册 OHOS 插件入口、实现 previewFile 系统调用,成功在 HarmonyOS API 26 真机上完成构建、安装与预览功能验证。关键点包括:正确配置 pubspec.yaml 的 pluginClass、通道名一致、路径拼接与 startAbility 调用,以及签名与 SDK 路径配置。最终实现跨平台文件预览能力,适配版本已发布于 At
2026-10-23 12:40:31
1478
原创 Flutter 3.47 鸿蒙三方库适配实战:从 0 到 1 处理 open_file_manager
本文记录了在 Flutter 3.47 鸿蒙环境下,适配 open_file_manager 2.1.0 的完整过程:保留 Dart API,通过 MethodChannel 注册通道,实现鸿蒙原生 startAbility 拉起系统文件管理器。关键点包括正确配置 pubspec.yaml 插件入口、处理签名与 SDK 路径问题,并在 HarmonyOS API 26 真机上完成构建、安装与调用验证,最终实现跨平台文件管理器调用能力。
2026-10-23 12:40:23
1459
原创 Flutter 3.47 鸿蒙三方库适配实战:从 0 到 1 处理 display_metrics
本文记录了在 Flutter 3.47 鸿蒙环境下,对 display_metrics 2.5.0 库的完整适配过程。通过新增 OHOS 平台实现,保留 Dart API 兼容性,注册 MethodChannel 通道并接入系统显示信息接口,最终在 HarmonyOS API 26 真机上成功验证了分辨率、PPI、物理尺寸等数据读取功能,构建与安装流程均通过,解决了插件注册、签名配置、路径引用等关键坑点,为鸿蒙端屏幕度量能力提供可靠支持。
2026-10-22 12:01:23
1426
原创 Flutter 3.47 鸿蒙三方库适配实战:从 0 到 1 处理 flutter_screen_recording
本文记录了在 Flutter OH 3.47 环境下,对 flutter_screen_recording 2.0.24 进行鸿蒙端适配的完整过程。通过保留原有 Dart API、新增 OHOS 插件入口、注册平台通道并实现屏幕录制核心逻辑,成功在 HarmonyOS API 26 真机上完成构建、安装与调用验证。重点解决了插件注册缺失、签名配置错误等关键问题,最终产出可发布的 2.0.24-ohos.1 版本,支持 startRecordScreen 与 stopRecordScreen 功能。
2026-10-22 12:01:13
1225
原创 Flutter 3.47 鸿蒙三方库适配实战:从 0 到 1 处理 call_state_handler
本文记录了在 Flutter 3.47 鸿蒙环境下,对 call_state_handler 3.0.0 的完整适配过程。通过保留原有 Dart API、注册 OHOS 插件入口、对接系统通话状态监听能力,实现跨平台通话状态事件推送。基于 AtomGit 仓库构建适配分支,完成真机验证,确保在 HarmonyOS API 26 设备上成功构建、安装与运行,解决了插件注册、签名配置等关键问题,为鸿蒙生态提供可靠通信状态监听方案。
2026-10-22 12:00:54
1158
原创 Flutter 3.47 鸿蒙三方库适配实战:从 0 到 1 处理 battery_insights
本文详解了在Flutter 3.47鸿蒙环境下适配battery_insights 0.1.1的全过程:保留原有Dart API,通过MethodChannel注册鸿蒙插件入口,实现电量、充电状态、健康度等信息读取。基于HarmonyOS API 26真机验证,完成构建、安装与调用测试,修复了插件注册缺失导致的空返回问题,并通过AtomGit发布适配版本0.1.1-ohos.1,确保业务工程精准引入。
2026-10-21 16:33:29
1121
原创 Flutter 3.47 鸿蒙三方库适配实战:从 0 到 1 处理 auto_orientation_v2
本文记录了在 Flutter 3.47 鸿蒙环境下,对 auto_orientation_v2 2.4.7 的完整适配过程。通过保留原有 Dart API,实现 OHOS 平台通道注册,对接 HarmonyOS 系统方向控制能力,成功在 API 26 真机上完成构建、安装与功能验证。关键点包括:正确配置 pubspec.yaml 插件声明、统一通道名、映射鸿蒙方向枚举,并解决签名路径与 SDK 路径等坑点,最终实现屏幕方向动态控制。
2026-10-21 16:31:07
1285
原创 Flutter 3.47 鸿蒙三方库适配实战:从0 到 1 处理 audio_stream_player
本文记录了在 Flutter 3.47 鸿蒙环境下,对 audio_stream_player 1.2.0 的适配过程。通过保留 Dart API、注册平台通道、实现 OpenHarmony 原生音频流播放能力(如 create、feed、play 等),并在 HarmonyOS API 26 真机上完成构建、安装与功能验证。重点解决了插件注册缺失、签名配置错误等关键问题,最终实现 PCM 数据流实时播放,适配成果已开源至 oh-flutter/audio_stream_player。
2026-10-21 16:29:05
1318
原创 AtomGit Flutter 鸿蒙客户端:收集用户声音的最佳实践
让我们先看一组真实的数据。作为独立开发者,我们经常在应用商店的评论区看到这样的现象:一个用户给出了三星评价,评论内容是"功能还不错,但希望能支持深色模式"。这位用户其实并不想打三星——他只是找不到一个地方来表达他的需求。于是,应用商店评论区变成了一个"功能请求信箱",而开发者得到的却是一个拉低评分的负面评价。这暴露了一个深刻的命题:如果你的应用里没有一个说得过去的反馈通道,用户就会去你能看见的地方——应用商店——用评分来代替反馈。关键洞察:应用商店评论是用户在"评价"你的产品,而应用内反馈是用户在"帮助"你
2026-07-19 10:46:25
85
原创 AtomGit Flutter 鸿蒙客户端:GDPR 与个人信息保护法
知道你在处理什么数据。坐下来,打开你的代码库,列出每一个被存储的数据字段。如果你发现某个字段"好像不太必要",删掉它——这就是数据最小化原则的最朴素实践。写一份诚实的隐私政策。不要复制粘贴模板——模板是用来提供章节结构的,内容必须反映你的应用实际做了什么(和没做什么)。"我们不收集 X"比"我们收集了 Y"更有说服力。给用户控制权。查阅、导出、删除——这三个操作缺一不可。而且删除必须是真删除,不是假装删除。权限能少则少。每申请一个权限,都是在增加用户的疑虑和审核的阻力。
2026-07-19 10:43:53
247
原创 AtomGit Flutter 鸿蒙客户端:CSV 与 JSON 格式的生成与分享
数据导出的本质不是"生成一个文件",而是"尊重用户对自己数据的主权"。当用户能够自由地将情绪记录导出为 CSV 在 Excel 中分析、导出为 JSON 迁移到其他应用时,我们的应用就从一个"数据孤岛"变成了用户数据生态中的一个可信节点。E-Brufen Dev,鸿蒙 Flutter 全栈开发者,专注于跨平台移动应用开发与用户体验设计。E-Brufen 情绪健康应用的创建者与维护者,"鸿蒙 Flutter 实战"系列博客的作者。关注数据隐私、离线优先架构与程序化资源生成技术。AtomGit。
2026-07-19 10:41:40
133
原创 AtomGit Flutter 鸿蒙客户端:热力图与趋势线
情绪热力图(Mood Heatmap)借鉴了 GitHub 贡献热力图的设计:横轴是星期一到星期日(7 列),纵轴是当月的周次(4-6 行),每个格子代表一天,格子的颜色深浅由当天情绪强度决定。与 GitHub 热力图的一个关键区别:GitHub 用绿色深浅表示代码提交量(越多越绿),我们的情绪热力图用颜色梯度表示情绪状态——越开心越绿,越难过越红。这是一个语义对用户的直接映射,不需要额外的图例学习成本。,全栈开发工程师,专注于 Flutter 跨平台开发与鸿蒙(HarmonyOS)生态应用。
2026-07-19 10:40:18
100
原创 AtomGit Flutter 鸿蒙客户端:Onboarding 的交互与实现
E-Brufen Dev,AtomGit Flutter 鸿蒙客户端核心开发者。专注于 Flutter + HarmonyOS 技术栈的探索与实践。开源项目E-Brufen维护者。
2026-07-19 10:38:20
301
原创 AtomGit Flutter 鸿蒙客户端: Dart 内存模型与性能优化
Dart VM 的内存管理是一个精心设计的工程系统——新生代的快速 Scavenge、老生代的并发标记与并行压缩、大对象区的直接分配——这些机制共同保证了 Flutter 应用的流畅体验。但是,没有任何 GC 能拯救糟糕的代码。新生代、老生代、大对象区的分工——理解晋升机制是减少 Major GC 压力的关键。分代 GC 的工作原理——Minor GC 快但只管新生代,Major GC 慢但能真正回收晋升对象。四大内存泄漏模式。
2026-07-19 10:36:38
315
原创 AtomGit Flutter 鸿蒙客户端:函数式编程范式
本文以 E-Brufen 情绪健康应用的真实代码为素材,深入探讨了 Dart 函数式集合操作的方方面面。,全栈工程师,Flutter 与鸿蒙应用开发者。专注于跨平台移动应用开发,热爱用代码改善人们的情绪健康。E-Brufen 项目作者,AtomGit Flutter 鸿蒙客户端维护者。E-Brufen 项目。博客系列:鸿蒙 Flutter 实战。
2026-07-19 10:34:27
315
原创 AtomGit Flutter 鸿蒙客户端:build\_runner 与注解处理器
什么时候你需要写一个自定义代码生成器?同一种模式在项目中出现了 5 次以上:例如每个 Service 类都需要在dispose中释放资源模式有固定的规则,人工执行容易遗漏:例如每个子类都必须调用通过 Code Review 发现同一类问题反复出现:说明靠人工检查已经无法保证质量满足以上任意两点,就值得写一个自定义生成器。/// 已知的"需要被 dispose/cancel/close 释放"的 Dart 类型// 在 analyzer 中匹配的类型名// 释放方法名// 生成的释放代码(模板)
2026-07-19 10:32:37
358
原创 AtomGit Flutter 鸿蒙客户端:调用 C/C++ 原生库
FFI(Foreign Function Interface)顾名思义,是让一种编程语言调用另一种"外国"语言编写的函数接口。Dart FFI 从 Dart 2.5 开始作为dart:ffi包引入(Dart 2.12 稳定),允许 Dart 代码直接调用 C 语言的函数,无需通过 Platform Channel、无需序列化、无需异步等待。核心优势在于零拷贝的直接调用│ FFI 调用 vs Platform Channel ││ │。
2026-07-19 10:30:24
370
原创 AtomGit Flutter 鸿蒙客户端:后台数据处理不卡 UI
Dart Isolate 是无共享内存的并发模型,通过消息传递通信,天然避免了数据竞争和死锁;提供最灵活的控制,适合需要持续通信的长生命周期 Worker;(Dart 2.19+)是单次计算任务的最简方案,自动处理创建/通信/销毁;compute是 Flutter 的便捷封装,适用于简单的单输入单输出计算;序列化开销是 Isolate 的主要代价——只有当计算耗时远超传输耗时(通常 > 50ms)时才使用 Isolate;HarmonyOS 平台完全支持 Dart Isolate。
2026-07-19 10:27:48
420
原创 AtomGit Flutter 鸿蒙客户端: Dart Stream 与响应式编程从 StreamController 到 RxDart
Stream 是 Dart 原生的响应式通道——它不只是一个语言特性,更是连接"数据生产者"和"数据消费者"的标准管道。在 E-Brufen 中,Stream 真实地连接了鸿蒙原生端和 Flutter UI 端。单订阅流和广播流的选择影响全局架构——单订阅流适合一次性的数据传递,广播流适合事件总线。E-Brufen 的选择广播流,因为它天然会有多个订阅者。Stream 的变换操作(map、where、transform)构建了数据处理管道。
2026-07-18 11:00:10
85
原创 AtomGit Flutter 鸿蒙客户端:类型安全与代码复用
在 E-Brufen 情绪健康应用的早期开发中,我们写过这样的代码:这段代码表面上工作正常,但它埋下了三个隐患:隐患一:运行时崩溃而非编译时错误。 如果有人不小心把 当成 存了进去,编译器不会发出任何警告,直到程序运行到 那一行,一个 才会无情地抛出来。隐患二:反复编写相同的强转逻辑。 每次从 取出数据,都要手动写 (或 、)。这不仅是重复劳动,更糟糕的是——没有任何一个工具能帮你检查这些 是否全部正确。隐患三:代码意图不可读。 看到 这个签名,你无法知道它返回的究竟是什么。你需要追踪调用链
2026-07-18 10:57:26
169
原创 AtomGit Flutter 鸿蒙客户端:Dart Mixins 深入代码复用的另一种可能
时期定义方式是否可被 extends典型场景Dart 2.19 之前with可能被误继承仅靠约定区分Dart 2.19+不可被 extends语言层面保证Dart 3.0+可被 extends 和 mixin兼容旧代码迁移// Dart 2.19+ 推荐写法msg');// 错误:mixin 不能被 extends(编译错误)// class MyClass extends LoggerMixin {} // ❌ 编译失败// 正确:只能用 with。
2026-07-18 10:55:02
172
原创 AtomGit Flutter 鸿蒙客户端:Dart Extension Methods优雅地扩展第三方代码
│ Extension 定义位置 ── 必须在顶层 ││ ││ ✅ 允许的位置: ││ │ // 文件顶层 │ ││ │ │ ││ │ // ✅ Dart 2.17+ 支持函数内部定义 Extension │ ││ │ } │ ││ ││ ❌ 不允许的位置: ││ │ // ❌ 不能在类内部定义 Extension │ ││ │ } │ ││ │ │ ││ │ // ❌ 不能在嵌套函数内部定义 Extension │ ││ │ } │ ││ │ } │ │。
2026-07-18 10:52:52
158
原创 AtomGit Flutter 鸿蒙客户端:Dart 3 新特性实战Records、Patterns 与 Sealed Classes
Pattern Matching 不仅仅是switch的增强版。它是一种声明式的数据结构匹配与解构机制,允许我们同时完成"判断数据结构"和"提取内部值"两件事。变量声明(解构)变量赋值switch 语句和表达式if-case 语句for-in 循环集合字面量代数数据类型(Algebraic Data Type,ADT)是函数式编程中的核心概念。简单来说,一个 ADT 是由有限个确定的子类型组成的封闭类型。在 Dart 3 中,实现了这一点。ADT 最经典的应用场景是状态建模。
2026-07-18 10:51:09
326
原创 AtomGit Flutter 鸿蒙客户端:情绪健康快捷卡片
元服务是鸿蒙提供的一种轻量级应用形态。它不需要用户安装,可以直接在桌面、服务中心、智慧搜索等入口使用。元服务基于 HAP(HarmonyOS Ability Package)构建,包体更小(通常 < 10MB)、启动更快、消耗资源更少。从开发者视角看,元服务是一个特殊的 HAP 包,包含了一个或多个或。│ E-Brufen 完整应用 ││ ││ │ 白噪音 │ │ 呼吸练习 │ │ 情绪日记 │ │ 数据统计 │ ││ ││ │ E-Brufen 元服务 (轻量子集) │ ││ │ │ │。
2026-07-18 10:48:17
384
原创 AtomGit Flutter 鸿蒙客户端:鸿蒙多设备协同
应用流转(Continuation)是指:将当前应用在前台的任务(包括页面栈、内存状态)从一台设备"传送"到另一台设备上继续使用。这个过程对用户来说应该是无感的——用户点击一个"流转"按钮,应用在目标设备上自动打开并恢复到离开时的状态。层次能力开发者介入程度适用场景系统级流转免安装流转整页零介入浏览器、视频播放等通用场景应用级流转指定页面 + 状态迁移需实现 Continuation 回调E-Brufen 呼吸练习流转数据级流转仅同步 KV 数据。
2026-07-18 10:46:03
274
原创 AtomGit Flutter 鸿蒙客户端: Flutter 与鸿蒙原生 UI 混合开发
如何在Flutter中嵌入鸿蒙原生UI组件 本文探讨在Flutter应用中集成鸿蒙原生UI组件的技术方案。当遇到需要深度系统集成或追求原生体验的场景(如日期选择器、地图、WebView等),纯Flutter方案可能表现欠佳。文章通过决策表分析适用场景,介绍PlatformView的两种实现模式(Texture Layer和Virtual Display),并以DatePicker和MapView为例演示封装流程。 关键点包括:性能与体验的平衡判断、原生组件封装的三阶段流水线(创建-通信-销毁)、Platfo
2026-07-18 10:43:43
330
原创 AtomGit Flutter 鸿蒙客户端:鸿蒙应用快速启动与深度链接
文章摘要:本文系统讲解了在情绪健康应用E-Brufen中实现深度链接(Deep Link/App Link)的技术方案。首先分析了情绪类应用对一键直达功能的刚性需求,然后对比URI Scheme、Deep Link和App Link三种技术的特点与适用场景。重点解析了鸿蒙Want机制的工作原理,并给出在module.json5注册URI、EntryAbility解析Want参数、Flutter路由分发的完整代码实现。最后通过"快速记录情绪"的实战案例,演示了从外部链接直达应用内页面的全流程,同时探讨了安全验
2026-07-18 10:40:42
383
原创 AtomGit Flutter 鸿蒙客户端:指纹与面部识别保护隐私
E-Brufen 是一个情绪健康应用,用户在其中记录自己的真实情感状态——愤怒、悲伤、疲惫、平静、开心。这些数据极其私密。想象一下:你的同事拿起你的手机,打开应用,看到了你昨天写的"今天又被领导PUA了,愤怒到想辞职"。这样的隐私泄露场景绝不是危言耸听。传统的隐私保护手段有以下局限:生物识别是情绪日记隐私保护的最优解——它利用用户自身的生理特征(指纹、面部)作为密钥,既安全又便捷。你不需要记住任何密码,你的身体就是钥匙。鸿蒙系统从 API 9 开始提供了完整的生物认证框架,支持指纹、面部、虹膜三种模态。更关
2026-07-18 10:36:23
295
原创 AtomGit Flutter 鸿蒙客户端:后台音频播放与计时器
本文探讨了鸿蒙系统中后台任务管理的实现方案,重点针对音频播放和计时器两种典型场景。文章首先分析了后台任务的技术难点和用户需求,然后系统梳理了鸿蒙后台任务的三大类型及其适用场景,特别强调了长时任务的工作原理和系统资源管理机制。通过E-Brufen项目的实际案例,详细展示了后台音频播放的实现方案,包括AVPlayer、AVSession和backgroundTaskManager的配合使用,以及module.json5的配置要点。文章还深入解析了控制中心媒体会话的双向通信机制、后台任务限制条件、电量优化策略等关
2026-07-17 11:03:45
135
原创 AtomGit Flutter 鸿蒙客户端:跨设备情绪数据同步
本文探讨了如何利用鸿蒙系统的分布式能力实现手机与平板间的数据无缝流转,重点以健康应用E-Brufen的情绪数据同步为例。文章首先分析了跨设备数据同步的必要性,指出数据可达性、一致性和安全性是三大核心挑战。随后详细介绍了鸿蒙分布式数据服务框架,包括底层通信基础(分布式软总线)和三种数据存储方案:轻量级键值存储SingleKVStore、带设备维度的DeviceKVStore以及支持SQL的关系型数据库RDBStore。针对E-Brufen这类健康应用,提出了混合存储策略——用RDBStore处理结构化情绪记录
2026-07-17 11:01:06
145
原创 AtomGit Flutter 鸿蒙客户端:利用加速度计检测手机放置
文章摘要: 本文介绍如何利用鸿蒙传感器为情绪健康应用E-Brufen增加情境感知能力,减少用户手动操作。通过加速度计、环境光传感器等检测设备状态(如手机平放、翻转或环境光变化),自动触发呼吸练习、亮度调节等功能。详细解析鸿蒙传感器框架、权限配置、数据滤波及多传感器融合策略,并提供三个实战案例:加速度计检测手机放置状态、环境光自适应亮度、翻转暂停音频。最后探讨了传感器对电池的影响及优化方案,强调情境感知如何提升用户体验。 (字数:150)
2026-07-17 10:57:33
159
原创 AtomGit Flutter 鸿蒙客户端:定时呼吸提醒
本文介绍了如何在鸿蒙系统上利用Notification API实现呼吸练习的本地通知功能。文章从需求分析入手,说明情绪健康应用为何需要通知提醒功能,并对比了三种技术方案的优劣。随后详细解析了鸿蒙通知系统的架构设计,包括NotificationRequest(通知请求)、NotificationSlot(通知渠道)、WantAgent(意图代理)等核心组件的作用与关系。最后给出了完整的实现代码示例,展示了如何创建通知、设置提醒时间、处理点击事件等关键步骤。
2026-07-17 10:54:23
157
原创 AtomGit Flutter 鸿蒙客户端:鸿蒙 Ability 生命周期与 Flutter 的协同
本文探讨了鸿蒙Stage模型与Flutter生命周期的交互关系,通过E-Brufen应用案例,分析了两者协同的关键问题。文章从UIAbility生命周期状态机、Flutter侧机制入手,梳理了两条生命线的映射关系,并提供了前后台切换、状态恢复等实战解决方案。针对多Ability场景下的Flutter引擎共享、常见问题排查也给出了具体指导,最终通过呼吸计时器和白噪音播放两个典型场景,展示了完整的生命周期管理实践方案。
2026-07-17 10:47:22
205
原创 AtomGit Flutter 鸿蒙客户端:观察者模式的多种实现从 ValueNotifier 到 Stream
阶段一:AppSettings(纯数据类)│ 被动读取 + 手动 setState│ 适合:1-2 个页面,低频变更│阶段二:AppSettings + ValueNotifier│ 每个设置项独立响应│ ValueListenableBuilder 局部重建│ 适合:3-5 个页面需要响应同一设置│阶段三:AppSettings + ChangeNotifier│ 多个字段合并为一个通知│ ListenableBuilder 整体重建│ 适合:多个设置项经常联动变化。
2026-07-17 10:45:16
302
原创 AtomGit Flutter 鸿蒙客户端:可插拔的呼吸算法
回顾整篇文章,我们从一个真实项目(E-Brufen)的呼吸练习功能出发,经历了"数据驱动方案不够用"的痛点,引入策略模式作为解决方案,完整实现了抽象接口、四种具体策略、工厂映射、组件重构和单元测试。这篇文章不是一篇纯粹的设计模式教科书文章——教科书会告诉你"策略模式有 Context、Strategy 和 ConcreteStrategy 三个角色",而我们会告诉你"当产品经理要求每个呼吸模式弹出不同的引导文案时,你应该意识到:if-else 的路走到头了。收益具体表现开闭原则。
2026-07-17 10:43:24
161
原创 AtomGit Flutter 鸿蒙客户端:将单体应用拆分为 Feature Module
模块化提升Flutter应用可维护性实践 本文以E-Brufen情绪健康应用为例,探讨了如何通过模块化解决Flutter应用功能增长带来的可维护性问题。文章提出了模块化拆分的三个核心原则:高内聚低耦合、按功能域划分、共享内核模式。详细介绍了Flutter中实现模块化的三种方式(目录约定、Dart Package和Flutter Package),并以实际项目演示了如何拆分shared_core共享内核和三个Feature Module。同时讨论了模块间通信机制、依赖注入方案,以及构建速度与协作效率的优化。最
2026-07-17 10:39:31
414
原创 AtomGit Flutter 鸿蒙客户端:Clean Architecture 落地 Flutter
本文将介绍如何将Clean Architecture理念具体应用到Flutter项目中。通过分析E-Brufen项目中情绪记录功能的代码耦合问题,展示三层架构(表示层、领域层、数据层)的实施方案。重点讲解领域层零依赖原则、跨层数据转换规范,并以情绪记录功能为例演示完整重构过程。最后讨论架构带来的文件数量增加与可维护性提升之间的权衡,以及多平台兼容性处理方案。Clean Architecture通过分层解耦使业务逻辑独立于框架实现,特别适合中长期维护的中大型Flutter项目。
2026-07-17 10:33:40
288
原创 AtomGit Flutter 鸿蒙客户端:着色器动画与 Fragment Shader 入门
本文探讨了利用 GPU 着色器实现像素级动画效果的技术方案,重点分析了其在 Flutter 应用开发中的性能优势。通过对比测试数据,着色器动画相比传统 Dart 绘制方式可显著提升帧率至 60fps,同时降低 CPU 占用。文章详细介绍了 GPU 渲染管线中 Fragment Shader 的工作原理、GLSL 基础语法,以及如何在 Flutter 中加载和使用着色器。通过三个实战案例(动态渐变背景、呼吸球波纹效果和情绪颜色映射)展示了着色器的具体应用,并提供了性能优化建议和多平台兼容性注意事项,为高性能
2026-07-17 10:29:28
378
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅