
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
Stream 是 Dart 原生的响应式通道——它不只是一个语言特性,更是连接"数据生产者"和"数据消费者"的标准管道。在 E-Brufen 中,Stream 真实地连接了鸿蒙原生端和 Flutter UI 端。单订阅流和广播流的选择影响全局架构——单订阅流适合一次性的数据传递,广播流适合事件总线。E-Brufen 的选择广播流,因为它天然会有多个订阅者。Stream 的变换操作(map、wher

在 E-Brufen 情绪健康应用的早期开发中,我们写过这样的代码:这段代码表面上工作正常,但它埋下了三个隐患:隐患一:运行时崩溃而非编译时错误。 如果有人不小心把当成存了进去,编译器不会发出任何警告,直到程序运行到那一行,一个才会无情地抛出来。隐患二:反复编写相同的强转逻辑。 每次从取出数据,都要手动写 (或 、)。这不仅是重复劳动,更糟糕的是——没有任何一个工具能帮你检查这些是否全部正确。隐患

时期定义方式是否可被 extends典型场景Dart 2.19 之前with可能被误继承仅靠约定区分Dart 2.19+不可被 extends语言层面保证Dart 3.0+可被 extends 和 mixin兼容旧代码迁移// Dart 2.19+ 推荐写法msg');// 错误:mixin 不能被 extends(编译错误)// class MyClass extends LoggerMixin

│ Extension 定义位置 ── 必须在顶层 ││ ││ ✅ 允许的位置: ││ │ // 文件顶层 │ ││ │ │ ││ │ // ✅ Dart 2.17+ 支持函数内部定义 Extension │ ││ │ } │ ││ ││ ❌ 不允许的位置: ││ │ // ❌ 不能在类内部定义 Extension │ ││ │ } │ ││ │ │ ││ │ // ❌ 不能在嵌套函数内部定义 E

Pattern Matching 不仅仅是switch的增强版。它是一种声明式的数据结构匹配与解构机制,允许我们同时完成"判断数据结构"和"提取内部值"两件事。变量声明(解构)变量赋值switch 语句和表达式if-case 语句for-in 循环集合字面量代数数据类型(Algebraic Data Type,ADT)是函数式编程中的核心概念。简单来说,一个 ADT 是由有限个确定的子类型组成的封

元服务是鸿蒙提供的一种轻量级应用形态。它不需要用户安装,可以直接在桌面、服务中心、智慧搜索等入口使用。元服务基于 HAP(HarmonyOS Ability Package)构建,包体更小(通常 < 10MB)、启动更快、消耗资源更少。从开发者视角看,元服务是一个特殊的 HAP 包,包含了一个或多个或。│ E-Brufen 完整应用 ││ ││ │ 白噪音 │ │ 呼吸练习 │ │ 情绪日记 │

应用流转(Continuation)是指:将当前应用在前台的任务(包括页面栈、内存状态)从一台设备"传送"到另一台设备上继续使用。这个过程对用户来说应该是无感的——用户点击一个"流转"按钮,应用在目标设备上自动打开并恢复到离开时的状态。层次能力开发者介入程度适用场景系统级流转免安装流转整页零介入浏览器、视频播放等通用场景应用级流转指定页面 + 状态迁移需实现 Continuation 回调E-Br

如何在Flutter中嵌入鸿蒙原生UI组件 本文探讨在Flutter应用中集成鸿蒙原生UI组件的技术方案。当遇到需要深度系统集成或追求原生体验的场景(如日期选择器、地图、WebView等),纯Flutter方案可能表现欠佳。文章通过决策表分析适用场景,介绍PlatformView的两种实现模式(Texture Layer和Virtual Display),并以DatePicker和MapView为

文章摘要:本文系统讲解了在情绪健康应用E-Brufen中实现深度链接(Deep Link/App Link)的技术方案。首先分析了情绪类应用对一键直达功能的刚性需求,然后对比URI Scheme、Deep Link和App Link三种技术的特点与适用场景。重点解析了鸿蒙Want机制的工作原理,并给出在module.json5注册URI、EntryAbility解析Want参数、Flutter路由

E-Brufen 是一个情绪健康应用,用户在其中记录自己的真实情感状态——愤怒、悲伤、疲惫、平静、开心。这些数据极其私密。想象一下:你的同事拿起你的手机,打开应用,看到了你昨天写的"今天又被领导PUA了,愤怒到想辞职"。这样的隐私泄露场景绝不是危言耸听。传统的隐私保护手段有以下局限:生物识别是情绪日记隐私保护的最优解——它利用用户自身的生理特征(指纹、面部)作为密钥,既安全又便捷。你不需要记住任何








