arkts

贾伟康15 小时前
性能优化·harmonyos·arkts·lazyforeach·列表加载
【共创稿事节】食材百科页的懒加载改造:LazyForEach、IDataSource 与缓存窗口的三次迭代健康菜谱助手的食材百科页,最早一版是拿 ForEach 硬渲染的:一千二百多种食材,一进页面全部实例化。开发时用二十条数据测试毫无察觉,真机装上正式数据后,进页面的瞬间掉帧、内存直接涨了四十兆。这篇记录这一页的三次迭代:从 ForEach 到 LazyForEach 的第一次改造、数据源接口设计踩的坑、以及最后自己实现的缓存窗口——三次改动都不大,但每一次都让我对"列表到底该怎么渲染"的理解深一层。
贾伟康17 小时前
java·服务器·前端·harmonyos·arkts·鸿蒙
【共创稿事节】一个 UserDataManager 管八类数据:Preferences 持久化的克制用法菜谱应用要记住的东西比想象中多。UserDataManager.ets 的键位登记表:七类业务数据加一个标记,全走同一个 Preferences 实例(getPreferencesSync 创建,STORE_NAME 统一为 user_data)。本文讲这套本地持久化的三个设计决定。
贾伟康2 天前
microsoft·harmonyos·arkts·鸿蒙
【共创稿事节】第一张服务卡片:2×2 今日菜谱的克制设计1.0.4 版本给健康菜谱助手加了元服务模块和第一张服务卡片:2×2 的"今日菜谱",摆上桌面就能看到今天推荐吃什么。做之前看了不少案例,最容易犯的错是把卡片当"缩小版应用"塞满内容。我的结论相反:卡片是入口,不是迷你应用。本文用这张卡片的真实代码讲克制设计的四个决定。
贾伟康4 天前
软件测试·移动开发·harmonyos·arkts·arkui
【健康菜谱助手|06】HarmonyOS ArkTS 烹饪计时器实战:处理倒计时、暂停、恢复和到期反馈烹饪计时器看起来只是每秒减一,但它比普通数字动画更接近一个时间系统。用户会同时煮鸡蛋、炖排骨和蒸鱼;计时期间可能锁屏、切到菜谱步骤页、暂停某一个任务,或者在应用后台时到期。只依赖页面中的 setInterval(),界面在前台短时间演示通常正常,一旦经历调度延迟和页面生命周期,剩余时间就可能漂移、冻结或丢失。
贾伟康4 天前
软件测试·移动开发·harmonyos·arkts·arkui
【健康菜谱助手|05】HarmonyOS ArkTS 购物清单实战:去重食材并同步勾选、数量与清空动作购物清单是菜谱应用中最容易被低估的功能。界面通常只有名称、用量、勾选和删除,看起来比菜谱详情简单得多;但一旦同一种食材来自多道菜、用户又能手动添加,系统就必须回答:鸡蛋和“土鸡蛋”是否相同、500 克与 2 斤如何合并、删除最后一项后是否保持空清单、勾选失败是否还能提示成功、从菜谱批量加入时如何保留来源。
贾伟康4 天前
软件测试·移动开发·harmonyos·arkts·arkui
【健康菜谱助手|01】HarmonyOS ArkTS 菜谱详情页实战:组织食材、营养、步骤和收藏状态菜谱详情页看起来只是“头图 + 标题 + 食材 + 做法”的长页面,实际却是健康菜谱应用中数据密度最高、状态交叉最多的页面。它需要同时回答:路由传入的是哪道菜、食材是否与菜谱一致、营养值按什么口径展示、收藏按钮是否与全局列表同步、进入做饭模式后何时记为“已做”、购物清单写盘失败时用户会看到什么。
贾伟康5 天前
软件测试·移动开发·harmonyos·arkts·arkui·1024程序员节
【健康菜谱助手|04】HarmonyOS ArkTS 一周膳食计划实战:管理日期、餐次与菜谱替换的联动一周膳食计划看起来是一排星期标签和几张餐食卡片,真正难点却是“时间”和“引用”。周一究竟对应哪一天?切到下周后数据是否隔离?一顿午餐关联的是菜谱 ID,还是一段不可追踪的名称?替换菜品后热量概览是否同步?本地写入失败时,页面能否准确告诉用户?
贾伟康5 天前
软件测试·移动开发·harmonyos·arkts·arkui
【健康菜谱助手|02】HarmonyOS ArkTS 烹饪步骤实战:把分步操作、完成状态和返回恢复做稳菜谱详情页解决的是“做什么”,烹饪步骤页解决的则是“现在做到哪里、下一步是什么、退出后还能不能接着做”。对用户来说,切菜时锁屏、接电话后返回、误触上一页、切到步骤总览再回来都是正常行为;对工程来说,这些行为会同时触发路由、页面生命周期、状态恢复和语音资源管理。一旦只用一个 currentStep 临时变量支撑全部流程,页面看上去能翻页,却很难称为可靠的做饭模式。
贾伟康5 天前
软件测试·移动开发·harmonyos·arkts·arkui·1024程序员节
【健康菜谱助手|03】HarmonyOS ArkTS 冰箱食材推荐实战:从本地食材选择生成可解释的候选菜谱“冰箱里有鸡蛋和土豆,今天能做什么?”这是菜谱应用中非常实用的一类入口。它不要求用户先知道菜名,而是从已有食材反推候选菜谱。看起来只要把食材关键词和菜谱文本做一次匹配即可,真正落地时却会遇到数据覆盖、别名归一、主辅料权重、缺失食材解释、排序稳定性和空结果等问题。
贾伟康5 天前
前端·移动开发·harmonyos·arkts·arkui
【化学实验室|17】HarmonyOS ArkTS 亮暗色与视觉令牌实战:集中颜色、间距和交互状态避免页面割裂一个项目拥有 Theme.ets,不等于它已经拥有完整主题系统。真正可维护的主题,需要回答四个问题:颜色表达的是业务语义还是某个十六进制值;浅色与深色是否使用同一组资源名称;系统状态栏、普通 ArkUI 组件和 Canvas 是否能同步变化;选中、按下、禁用和错误状态是否都经过对比度验证。
贾伟康5 天前
安全·移动开发·harmonyos·arkts·arkui
【化学实验室|18】HarmonyOS ArkTS 权限与隐私实战:让 module.json5、功能说明和拒绝路径一致权限与隐私检查最容易陷入两个误区:看到 module.json5 没有权限声明,就认为项目一定不存在隐私问题;或者写了一页很长的隐私政策,就认为代码行为已经被完整覆盖。真正可靠的结论必须同时核对能力声明、源码调用、本地数据、用户控制、应用内说明和发布材料。
贾伟康5 天前
软件测试·移动开发·harmonyos·arkts·arkui
【化学实验室|20】HarmonyOS ArkTS AppGallery 发布复查实战:核对包名、版本、设备、素材和离线声明HarmonyOS 应用进入 AppGallery Connect 后,最危险的状态不是页面上出现一个明显报错,而是每个页面看起来都填了内容,实际却引用了不同版本的证据。源码里已经是 1.0.5,版本页面仍选着旧包;主模块声明了平板与 2in1,应用信息里只保留手机;包内没有网络权限,隐私材料却沿用了另一个项目;开发者上传了新 APP,却没有在版本页面重新选中它。这些问题往往到预审或人工审核阶段才暴露。
贾伟康6 天前
软件测试·移动开发·harmonyos·arkts·arkui
【化学实验室|19】HarmonyOS ArkTS 回归测试实战:覆盖启动、空数据、异常输入和重复点击一个 HarmonyOS 工程里出现 src/test、ohosTest 和 Hypium 依赖,不代表核心功能已经受到测试保护。真正有效的回归用例必须能在需求变更后回答:冷启动是否恢复本地数据,空列表是否给出可理解反馈,未选择答案能否提交,连续点击会不会重复记分,参数运行期间是否还能被修改,收藏按钮是否误触整行导航。
Eyfcom7 天前
typescript·移动开发·harmonyos·arkts
〖深度〗鸿蒙 ArkTS 移动应用开发经验:从 TypeScript 心智模型到声明式运行时的六层认知重构从 Web 前端或 React Native 转到鸿蒙 ArkTS 的开发者,通常会经历一个相似的曲线:第一周觉得“语法差不多,很快能上手”,第二周开始遇到“数据变了但 UI 不动”,第三周发现长列表滚起来像幻灯片,一个月后开始怀疑自己到底会不会写声明式 UI。
行者-全栈开发7 天前
arkts·相册·图像超分·harmonyos 7.0·corevisionkit·端侧 ai
【鸿蒙心迹】让老照片变清晰:HarmonyOS 7.0 图像超分相册工程化落地与 5 个踩坑解法摘要: 相册里压着十几年的老照片,分辨率才 480p,放大全是马赛克。HarmonyOS 7.0 的图像超分能力(CoreVisionKit 的 imageSuperResolution)在端侧把低清图增强到高清,不上传云端、隐私安全、离线可用。本文以相册应用为载体,从超分 API 调用、分桶策略、缓存复用到结果对比渲染全链路工程化实战,附 5 个真实踩坑解法与性能边界分析,区别于"调 API 跑 Demo"的模板帖。
贾伟康7 天前
harmonyos·arkts·本地存储·arkui·preferences
【化学实验室|15】HarmonyOS ArkTS 本地状态持久化实战:让保存、删除和页面返回后的数据即时一致本地应用最容易出现一种“看起来已经成功”的数据故障:用户点击收藏,图标立刻亮了;返回收藏页,却没有这条数据。删除笔记后列表立即消失,重新进入页面又恢复。连续点击两次收藏,最终状态与最后一次操作相反。应用启动早期写入学习时长,界面统计发生变化,但重启后数据归零。
行者-全栈开发11 天前
harmonyos·arkts·鸿蒙·空间音频·api 26·audio kit
【共创稿事节】HarmonyOS 7 空间音频实战:用 AudioSpatializationManager 构建“听得见方位“的声场适用版本:HarmonyOS NEXT / HarmonyOS 7(AudioSpatializationManager 首批接口自 API 18 起支持,设备侧能力查询更早;API 26 生态进一步增强) 写给谁看:正在做影音、游戏、导航或专注类应用,希望把声音从"提示音"升级为"方位信息"的鸿蒙开发者。 要解决的问题:空间音频的接入代码很短,但判断条件很多。本文给出的三步法和逐条验证手段,能避免"代码跑通、用户却听不出方位"的尴尬。
贾伟康11 天前
harmonyos·arkts·canvas·arkui·化学实验
【化学实验室|04】HarmonyOS ArkTS 场景选择器实战:让 13 个离线实验的入口、筛选和返回路径保持一致实验目录页、实验模拟页和场景选择页单独看都不复杂:目录页展示卡片,模拟页根据 expId 创建引擎,场景页让用户在标准、加热、低温、高压和自定义环境中选择一个选项。真正容易出问题的是三页之间的契约。
贾伟康13 天前
harmonyos·arkts·arkui·本地搜索·化学知识
【化学实验室|07】HarmonyOS ArkTS 知识全局搜索实战:实现跨知识点、公式与阅读内容的本地检索全局搜索最容易做成“看起来能搜”的功能:把几组数组拼在一起,把标题和正文连接成字符串,再用 indexOf() 判断是否包含关键词。数据只有几十条时,这段代码确实可以运行;但一旦用户输入化学式、同义词或跨类型关键词,结果顺序、空状态和目标跳转就会暴露问题。
贾伟康14 天前
harmonyos·arkts·appgallery·发布审核·上架复查
【晨迹相机|20】HarmonyOS ArkTS AppGallery 发布复查实战:核对包名、版本、设备、素材和离线声明发布前复查不是把 AGC 后台字段重新填一遍,而是把包内配置、入口代码、权限说明、视觉素材和实际运行路径放到同一张表里逐项对齐。晨迹相机这类本地打卡相机应用,看起来功能边界很清楚:启动后进入 pages/Index,拍照或录像需要相机权限,录像需要麦克风权限,数据主要落在本地记录里。但一旦进入 AppGallery 发布流程,审核看到的不是开发者脑内的产品边界,而是包名、版本、设备类型、权限、截图、图标、隐私说明、应用介绍和安装启动表现共同组成的证据链。