从 0 到上架华为应用市场:我独立开发的鸿蒙应用「物迹」
一个关于旧物、记忆和 ArkTS 的故事。本文完整复盘了「物迹」这款鸿蒙原生应用从立项、设计、开发到上架华为应用市场的全过程,包含产品设计思路、技术选型、核心功能实现拆解和真实的踩坑记录。如果你想入门鸿蒙原生开发,或者也在做一款自己的 App,希望这篇复盘能给你一些参考。
一、为什么要做「物迹」
我是一个有"留物"习惯的人。电影票根、演唱会手环、大学第一张校园卡、朋友寄来的明信片、祖母留下的老怀表,这些东西占据了我书桌的整个抽屉。
痛点出现在一次搬家。我把抽屉整个打翻,只想找一张和朋友去看展的票根,翻了四十分钟,最后在一条裤子口袋里找到了它。那一刻我突然意识到三件事:
- 实体纪念物易损耗、易丢失。纸质会泛黄,金属会氧化,搬家会丢。
- 拍照存进相册并救不了记忆。相册里躺着上万张照片,混杂着截图、表情包和外卖红包,三个月后你根本说不清哪一张是"外婆给的手镯"。
- 现有工具没有"物品"这个维度。相册 App 按时间线组织照片,笔记 App 自由但结构全靠自己维护,它们都不是为"管理一件纪念物"设计的。
所以有了「物迹」。用华为应用市场上架时写的介绍来说:一款基于鸿蒙系统(HarmonyOS)开发的移动端纪念物品数字化管理工具,提供物品拍照建档、环视展示、分类检索、隐私保护、云端同步等核心能力,实现纪念物品与情感记忆的长期数字化留存。
简单说,就是给每件旧物建一份永远不会泛黄的数字档案。
二、产品设计:把每件物品当成一个"人"来建档
2.1 核心抽象:物品档案
「物迹」的核心数据抽象非常简单:每件物品是一份档案。一份档案包含这些信息:
|
字段组 |
内容 |
设计动机 |
|
基本信息 |
照片、名称、分类 |
物品"是什么" |
|
获取信息 |
获取时间、获取方式(自购/获赠)、获取地点、价格 |
物品的"来历",回忆的锚点 |
|
组织信息 |
所在文件夹、收藏状态、人物关联 |
物品"属于哪一类、和谁有关" |
|
安全信息 |
加密保护开关 |
隐私分层 |
|
扩展信息 |
关联 3D 模型 |
立体存档 |
这里有一个我坚持的设计观点:记录"来历"比记录"外观"更重要。
获取方式、获取地点、价格这几个字段,看起来琐碎,实际是回忆最强的钩子。"获取地点:北京故宫纪念品商店",这一行字在十年后能瞬间把你拽回那个下午。单纯的物品照片做不到这一点。

2.2 信息架构:一个抽屉,五种状态
左侧抽屉导航承载了档案库的全部入口:全部物品档案、收藏物品、加密加锁物品、回忆、最近删除,下面是用户自建的文件夹分类(衣服、鞋子、电子设备、文具等)。
这个结构对应了纪念物的五种真实状态:普通存放、被偏爱(收藏)、需要保护(加密)、被想起(回忆)、被放弃(回收站)。

三、技术选型与整体架构
「物迹」采用鸿蒙原生技术栈开发:
- 语言与 UI:ArkTS + ArkUI 声明式开发范式。状态驱动的 UI 更新方式让"档案卡片流"这类列表场景写起来非常直接。
- 应用模型:Stage 模型。UIAbility 承载主界面,页面间通过参数传递实现"列表 → 详情 → 编辑"的档案流转。
- 数据存储:关系型数据库存放档案元数据,图片原图与缩略图分离存储在应用沙箱内,数据库中只持有路径引用。
- 多媒体能力:通过系统相册与相机能力完成物品照片的选取与拍摄;"3D 扫描"基于 AR 采集与多帧环绕拍摄,用一组 2D 图片仿真模拟出 3D 效果。
- 账号与云同步:华为账号一键登录,登录后档案云端同步、跨设备流转;同时保留游客模式,数据仅存本机,降低首次使用门槛。
整体分层大致是:
┌─────────────────────────────┐ │ UI 层:ArkUI 组件 / 三套主题 │ ├─────────────────────────────┤ │ 业务层:档案管理 / 检索 / 回忆 │ ├─────────────────────────────┤ │ 数据层:RDB + 沙箱文件存储 │ ├─────────────────────────────┤ │ 系统能力:账号 / 生物识别 / 相机 / AR │ └─────────────────────────────┘
核心数据模型示意(简化版):
interface ItemArchive {
id: string; // 档案唯一标识
name: string; // 物品名称
category: string; // 分类
photos: string[]; // 照片路径
acquireDate: number; // 获取时间
acquireWay: string; // 获取方式:自购 / 获赠
acquirePlace: string; // 获取地点
price: number; // 价格(选填)
folderId: string; // 所在文件夹
persons: string[]; // 关联人物(回忆检索用)
encrypted: boolean; // 是否加密保护
model3d?: string; // 关联 3D 模型路径
createdAt: number;
updatedAt: number;
}
四、核心功能实现拆解
4.1 拍照建档:三步完成一份档案
建档流程刻意压到了三步:选照片 → 填信息 → 保存。分类用图标网格点选,获取方式是二选一的单选,价格选填。所有设计都围绕"降低记录摩擦"展开,因为建档 friction 决定了这个工具能不能长期用下去。
4.2 「回忆」:按时间、地点、人物三维检索
这是「物迹」最有差异化的功能,也是我最喜欢的一个设计。
传统管理工具回答的问题是"这件东西在哪",而「回忆」回答的是"和这段记忆有关的一切"。检索页提供四个维度:默认、时间、地点、人物。
比如在"人物"维度输入一个名字,就能查出所有与这个人相关的物品:一起看展的票根、他送的马克杯、那年在海边买的贝壳。

实现上,物品档案中有 persons 标签字段,录入时把相关人物挂到物品上,检索时做条件组合查询,历史搜索词以标签形式沉淀在搜索框下方,方便一键复查。空结果状态做了专门的插画与文案("该条件下没有物品"),避免用户误以为功能坏了。
4.3 物品级加密保护
有些物品的故事只想留给自己。加密开关打开后,物品进入独立的"加密加锁物品"入口,查看需要通过生物识别验证,且不参与全局搜索。
验证能力直接复用鸿蒙系统级的人脸与指纹识别,不在应用内另设密码。系统会先尝试人脸匹配,失败时无缝降级到指纹或其他验证方式,安全与顺手两头都占。
这里有一个安全与便捷的权衡:加密物品如果仍出现在全局搜索里,等于把隐私暴露在搜索联想中。所以我选择让加密物品完全从公共视图隐身,代价是检索不到它,这个取舍是刻意的。
4.4 3D 扫描:多张 2D 照片合成一份立体档案
照片是平面的,而纪念物是立体的。「物迹」在内置的 3D 扫描页面里,用一组 2D 图片仿真模拟出 3D 效果:把物品放在画面中心,围绕它缓慢移动拍照,应用实时显示采集进度环,采满设定的帧数后完成采集,生成可 360° 查看的立体模型,并关联到物品档案。
设计上有两个考量:
- 帧数可选(5 / 10 / 20 / 50 / 100 帧)。帧数越多,模型细节越丰富,采集耗时也越长。小件饰品 5 帧够用,手办、文玩这类细节密集的物品可以开到 50 帧以上,用户按物品价值自行权衡。
- 引导前置。第一次用 3D 扫描的人往往不知道镜头该怎么动,所以把"将物品放在中心位置,围绕它缓慢移动拍照"直接写在取景画面上,配合进度环与计时反馈,让用户始终清楚自己在哪个环节。
对于手办、饰品、文玩这类"角度即信息"的物品,立体存档的价值远超几张照片。
4.5 多档案与主题系统
考虑到一台设备可能被家庭成员共用,「物迹」支持多档案管理,每个档案有独立的头像与数据空间,家人各管各的物品互不干扰。
主题上做了三套:原石·浅(清爽克制,聚焦信息层级)、玄石·深(深邃沉浸,物品如暗室聚光灯)、时光·复古(情感复古,温暖怀旧)。主题切换作用于全局资源,实现上采用主题 token 统一管理颜色与字体资源。

五、上架华为应用市场:流程与经验
上架流程概括为六步:
- 注册华为开发者账号,完成实名认证;
- 在 AppGallery Connect 创建应用,填写包名与应用信息;
- 申请发布证书与 Profile 文件,配置签名;
- 构建发布包(APP 格式)并上传;
- 填写应用介绍、截图、类目,提交隐私政策与权限声明;
- 提审,等待审核与反馈。
几点经验之谈:
- 权限声明最小化。只申请真正用到的权限,每一项都要在审核材料中说明用途,这直接关系审核通过率。
- 应用介绍认真写。应用市场的介绍文案值得反复打磨,它是转化率的第一道关口,也是审核员理解你产品的入口。
- 截图不是摆设。功能截图与实际界面保持一致,既提升转化,也避免审核时被判"宣传与实际不符"
六、踩坑与心得
最后分享几条花"真金白银"换来的经验:
- 数据模型尽早定字段。档案字段后期每次调整都意味着数据迁移,"获取方式""关联人物"这类字段如果能在一开始就想清楚,后面会省掉很多痛苦。
- 原图与缩略图分离。列表页加载缩略图、详情页按需加载原图,这个分离做得越早,性能优化就越从容。
- 加密与检索的边界要提前想清楚。安全特性不是后期加开关,它会影响查询链路的设计。验证直接接入鸿蒙系统级人脸/指纹生物识别,比自建密码体系更安全,用户也不必多记一套口令。
- 先上架,再完美。独立开发最大的敌人是"把所有功能做完再发布"。MVP 上架、真实用户反馈驱动的迭代,比闭门造车健康得多。
- 给"最近删除"留缓冲。纪念物场景下,一次误删就是一次小型灾难,回收站是必须的温柔。
- 游客模式是转化的缓冲垫。强制登录会挡掉一批"想先看看再说"的用户。「物迹」支持游客模式直接进入,数据仅存本机,想同步时再登录华为账号,首次体验零门槛,注册流失降到了最低。
- 3D 采集的用户引导比算法更重要。扫描效果差,多数时候是用户不会"绕圈"导致的。把操作提示写进取景画面、用进度环给即时反馈,比在后台优化算法的收益来得更直接。
-
七、写在最后
「物迹」现在已经可以在华为应用市场搜索「物迹」下载。
它也许解决不了什么宏大的问题,但至少做到一件事:让每一件对你重要的物品,都有一份不怕丢失、不会泛黄、随时能被翻起的数字记忆。
华为账号登录与云端同步已经落地:登录后档案跨设备流转,换手机也不怕丢;游客模式保住了首次体验的零门槛。3D 扫描的采集效率与模型精细度、回忆检索的维度扩展,都还有很大的想象空间,会持续打磨。
如果你也在做鸿蒙应用,或者也在思考"独立开发一款产品"这件事,欢迎在评论区交流。独立开发这条路上,同行者越多,路越好走。
更多推荐



所有评论(0)