手机里有很多照片,真正需要的时候,却怎么也翻不到。如果我只记得“那次公园里的小路”,或者“店里拍过一个 199 元的价签”,能不能直接把这点线索告诉手机?
Phovue 就从这个念头开始:让 AI 帮我理解和寻找自己的照片、视频,同时尽可能把处理留在手机里。它现在有了 Android 开发预览版、独立的下载地址和产品官网,也还在持续解决速度、耗电、后台运行等实际问题。
此前做 Iraq Deep Insight 网站时,我已经体验过一次用 Codex 推进完整研发的过程。这一次,我把同样的方法带到了手机 App:从想法细化到方案,从界面到代码,再到安装、验证和分发。我的职业是程序员,技术经验帮助我判断方案;工程工作交给 AI,并不意味着产品判断和验收也能省略。
这也是利用非工作时间的碎片时间做的个人项目。开发主机是一台常开、联网的个人 Mac Mini,与工作电脑和公司环境分开。配置好远程连接后,出门也可以用手机端 ChatGPT App 发指令和看进度,具体构建与测试仍由开发主机执行。腾讯云服务器承担的则是对外提供官网,两者各有分工。
Android 内测中,逐步开放体验;iOS 尚在规划。文中的真实 App 截图来自 Android 模拟器与演示素材,搜索演示中有预置描述,不能据此证明模型识别准确率或真机性能。设计稿与未来能力会单独标注。
先把“想做一个 App”,
变成一个具体问题。
一开始最容易陷入的,是把所有期待都放进去:智能相册、视频理解、语音搜索、自动拼图、跨设备同步……但第一版需要先回答一个更小的问题:用户能不能从自己拥有的照片里,找回某一个画面?
我先让 AI 拆出三件事:谁在使用、什么时候需要、找到什么才算成功。由此确定核心路线:授权访问照片 → 选择整理范围 → 建立本地索引 → 输入线索 → 查看原片。这里的“索引”,可以理解成替相册做一份能快速查找的目录。
我想做一个在手机本地寻找照片和视频的 App。请先梳理目标用户、最常见的场景、第一版必须具备的功能,以及暂时不做的内容。先用普通人能理解的话解释。
这一步的交付物是一份需求说明。验收它的方法也很简单:读完之后,能否用一句话说清楚这个 App 帮谁解决什么问题。
把需求写成可检查的产品方案。
“支持本地 AI”还不是完整需求。用户只给了部分照片权限怎么办?模型没下载好怎么办?整理到一半离开 App,会不会从头开始?照片删掉以后,旧搜索结果还会出现吗?这些才决定它能不能被日常使用。
我让 AI 把正常情况和失败情况一起写进方案:权限受限时给出入口;下载可以取消和续接;整理保留检查点;资源不足时说明原因。每一个状态,都要让用户知道发生了什么,以及接下来可以做什么。
从这里开始,聊天里的决定沉淀成产品文档、技术规格和测试计划。以后修改功能,就有了共同依据。对非技术用户来说,最值得要求的交付不是“一大段代码”,而是“可操作的版本+哪些地方已验证、哪些还没有”。
漂亮的界面,要能把事情讲清楚。
UI 是眼睛看到的颜色、排版和按钮;UX 是完成一件事时的整体感受。Phovue 探索过清透原生、温润搜索和深色图库,后来收敛到带一点建筑感的淡紫、薄荷绿与米白色。设计参考的是一种安静、有空间感的视觉语言,照片仍然是主角。

AI 图片生成工具适合探索气质、构图和品牌图标,但一张好看的图不能代替可点击的界面。文字可读性、按钮状态、滚动和系统权限,需要在实际 App 里实现并检查。官网的页面探索使用了 Superdesign,再由 Codex 接入项目中的真实素材和功能。
我反复调整的一个细节,是把“本机处理、内容不上传”放在用户能看见的位置;另一个是减少模型参数对普通用户的干扰。用户是来找照片的,不应该先研究手机使用哪一种硬件加速。



这些截图使用演示素材。它们能说明页面组织和操作路线,实际手机上的持续功耗、加速兼容性和完整相册整理用时仍要分别验证。
先能找到,再逐步理解得更深。
最初的想法很直观:让视觉大模型逐张描述照片,再拿这些描述搜索。实际推进后发现,把全相册都做一遍深度分析,可能带来很长的等待、内存压力和发热。“小模型”也不等于“几乎不占资源”。
于是方案发生了重要调整:基础搜索先为画面建立向量索引;有需要时,再用 Qwen 做更细的文字和画面分析。向量可以理解成一组描述画面特征的数字,让“公园里的小路”和相关照片更容易匹配;深度分析则像请一位更仔细的助理,再读一遍画面。
当前 Android 工程接入 EmbeddingGemma 2 基础搜索和 Qwen 深度分析,分别保留索引。更换不兼容的检索模型,需要重新建立对应目录。下载模型和运行模型的内存也分开估算,不能把“下载 2GB”直接理解成“运行只需要 2GB 内存”。
隐私边界同样写进方案:模型就绪后,照片、视频和分析结果在本机处理,不上传给服务器。模型下载需要联网;用户主动打开在线地图时也会另行联网,并涉及所选坐标等必要信息。开发时使用 ChatGPT/Codex,与 App 运行时依赖云端聊天接口,是两件不同的事。
真正的开发,是不断发现问题。
Codex 在工程里修改代码、构建安装包、运行测试,Git 保存每次变化。我的反馈尽量从“感觉不对”变成“在什么情况下,发生了什么,希望怎样处理”。例如:“取消一个等待中的下载后,列表还显示下载中;请修正状态,并验证重新下载可以开始。”
按已确认的产品和界面方案实现一条完整流程。完成后运行构建和相关测试,提供实际界面、失败情况和验证范围。没有测试过的部分请明确列出。
工程记录里已经出现过下载状态、取消与重试、模型释放、索引范围、推荐去重、详情布局和后台续接等修复。每次修改都尽量带上对应检查,避免修好一个按钮却弄坏另一条路线。

测试也分层进行:单元测试检查小规则,比如日期边界和弱证据不乱推荐;模拟器测试检查页面和操作;真实模型测试检查公开样例能否产生合理结果;真机长测才回答锁屏、后台、发热和持续整理的问题。
这里有个容易误会的地方:模拟器截图正常,不代表所有手机都稳定。现有测试计划中,仍有真机后台、整年照片长测和资源压力验证待完成;一次被锁屏阻断的测试,不能写成“测试通过”。把这些限制记录下来,比只展示一个绿色成功提示更有用。
问题能复现吗?修改符合预期吗?原本正常的流程还正常吗?产品说明和测试记录是否同步更新?
做出安装包之后,还要让人找到它。
安装包可以理解成 App 的交付文件。Phovue 的 Android 开发预览包通过腾讯云 COS 分发:COS 是一个在线文件仓库,适合存放可以被下载的大文件。官网则是一家店的门面,介绍用途、真实界面、隐私边界、版本状态和未来方向。
这条交付链路是:构建并核验安装包 → 为版本生成独立文件名 → 上传 COS → 配置下载域名与 HTTPS → 核对远端文件大小和 SHA-256 → 把官方链接和二维码接入官网。SHA-256 像文件指纹,帮助确认下载到的文件与本地准备的版本一致。
我们的主域名是 dpinsight.world。app.dpinsight.world 提供产品页面,download.dpinsight.world 提供下载。同一个已购买的域名可以配置这些子域名,不用为了每个入口再买一个域名。

官网使用静态 HTML、CSS 和少量 JavaScript,通过 Python 脚本构建,由腾讯云香港服务器上的 Nginx 提供访问。它复用已有服务器,没有为介绍页新增应用服务或云数据库。中英文页面、手机布局、下载链接和 HTTPS 都需要检查,不能只看电脑上的首页。
Android 的安装包下载也不等于已上架应用商店。当前是开发预览体验;以后如果进入商店,仍有审核、签名、隐私披露和相应政策要求。更新网站时保留旧版目录,确认后切换,出现问题才有机会快速恢复。
从“找到”,走向理解、整理和创作。
接下来最重要的不是一口气增加很多入口,而是先把首次整理、后台恢复、耗电和搜索质量做好。以下是阶段方向,不代表当前版本已经实现,也不承诺上线日期。
先稳定,再扩展。
减少首次整理负担;完善增量索引、暂停续接、温控降速、下载恢复与错误提示;按机型持续验证。
说出来,也能找。
本地语音转文字后搜索;围绕选中的照片追问,回答尽量指向原片;推进 iOS 图库和基础检索。
从找到,到创作。
先尝试模板拼图和旅行日记,再独立评估风格化、文字生图与多图融合。新能力要经过质量、资源和许可验证。
普通拼图只是排列原片,生成式融合需要新的模型能力,两者会明确区分。生成内容另存副本,保留原片;模型能力按需下载,避免为了一个小功能让所有人下载一大包组件。
iOS 也会采用分阶段路线:先做照片授权、浏览、本地索引和搜索,再评估问答与创作。Swift、SwiftUI、PhotoKit 是规划基础;Metal、Core ML 或其他推理运行时要按模型兼容性独立验证,不能把 Android 的实现直接搬过去就承诺相同性能。
最后,把工具和账单摊开。
不需要先记住这些名字。先看它们分别负责哪件事,再区分“已使用”“规划中”和“按需付费”。下表基于项目记录;价格核查日期为 2026 年 10 月 22 日。
AI 与研发工具
| 工具 | 在这个项目里做什么 | 费用与状态 |
|---|---|---|
| ChatGPT / Codex | 讨论需求、编写规格、修改工程、构建和测试;手机端远程发指令 | 已使用;账号订阅另计,以实际方案为准 |
| 图片生成工具 | 探索 UI 视觉方向、品牌图标和设计变体 | 已有设计产物;额度或费用按账号方案 |
| Superdesign 插件 | 生成、比较和细化产品官网设计 | 已有页面设计记录;用量费用另计 |
| Sites 插件 | 官网早期托管与预览探索 | 历史方案;现有生产域名由腾讯云托管 |
| Git / GitHub | 保存版本、查看差异、追溯修改 | 已使用;基础能力可用免费方案 |
| Android Studio / Android SDK / ADB | 编译安装、模拟器、设备日志与调试 | 已使用;工具本身免费,设备另计 |
| 浏览器检查工具 | 查看桌面与手机布局、图片、链接及语言切换 | 已使用;随开发环境提供 |
| 个人 Mac Mini | 常开开发主机,执行代码构建与测试 | 已有设备;硬件、电费与网络另计 |
这里把对话工具、插件和本地工具分别列出。项目中没有证据表明使用过的插件,不列为实际依赖。Figma 也不是当前 Android 工程构建所必需的工具。
Android 与 iOS 技术栈
| 平台 | 组成 | 通俗解释 |
|---|---|---|
| Android · 已接入 | Kotlin、Jetpack Compose / Material 3 | 编写功能,绘制界面与按钮 |
| Android · 已接入 | MediaStore、ExifInterface、SQLite、WorkManager | 读取允许访问的照片与拍摄信息,保存本地目录,调度后台任务 |
| Android · 已接入 | EmbeddingGemma 2、MediaPipe / LiteRT-LM、ONNX Runtime;Qwen、llama.cpp、C++ / JNI | 分别承担画面检索与按需深度理解,把模型运行能力接到手机程序中 |
| Android · 已使用 | JDK 17、Gradle、Android SDK / NDK、CMake;JUnit、Compose UI 测试 | 把源代码打包为 App,并检查规则与界面 |
| iOS · 规划中 | Swift、SwiftUI、PhotoKit、本地数据库;Xcode | 建立 iPhone 的原生图库、权限与界面,尚无正式 iOS 交付版 |
| iOS · 待验证 | Metal / Core ML 或兼容的移动推理运行时;XCTest | 验证模型兼容、内存、后台限制及测试;不承诺所有设备可运行 |
| 官网 · 已使用 | Python 构建、HTML / CSS / JavaScript、Nginx、HTTPS | 生成双语产品页面,让浏览器安全访问 |
这些开发工具大多可以免费获取,但模型许可、商业使用条件、测试设备、开发者账号和商店费用仍需单独确认。App 端侧推理不按每次搜索向 OpenAI API 付费;这不包含开发期间使用 AI 工具的订阅费用。
服务器、域名与 COS:固定成本和浮动成本
| 项目 | 配置 / 价格 | 如何理解 |
|---|---|---|
| 腾讯云轻量服务器 | 中国香港 Linux,2 核 CPU、2GB 内存、40GB SSD;38 元/月 | 已有服务器,官网与其他项目共用。相应官方套餐含 20Mbps 峰值带宽、0.5TB/月流量;超额另算。官方套餐公告 ↗ |
| dpinsight.world 域名 | GoDaddy 本次首年 6 元;续费价格另计 | 此前文章记录的实际首年优惠,不代表现在人人可买到。子域名无需分别注册;续费以账号结算页为准 |
| COS 下载存储 | 中国香港、单可用区、按量付费 | 安装包的“文件仓库”;容量、请求、下载流量分别计费,不包含在服务器流量套餐里 |
| COS 存储容量单价 | 标准存储 0.136 元/GB/月(按量计费) | 项目设置记录有新用户 50GB / 180 天容量额度,实际资格与有效期以控制台为准;不抵扣下载流量和请求费。容量计费说明 ↗ · 官方香港定价(选择香港)↗ |
| COS 下载与请求价格 | 外网下行 0.75 元/GB;标准存储读、写请求均为 0.01 元/万次 | 中国站公有云香港当前刊例价,不含资源包折扣;上传流量免费,公网下载收费。流量计费说明 ↗ |
| HTTPS / 其他费用 | 现有证书与自动续期;另计 AI 订阅、设备及未来商店费用 | 证书要维护,免费额度和优惠到期要复查;新增云服务和加速功能也可能增加账单 |
固定底座:服务器 38 元/月,按此月价算一年 456 元;加已记录的域名首年 6 元,是 462 元/年。
浮动支出:COS 容量费+公网下载费+请求费,以及可能启用的加速费用。
开发投入:AI 订阅、Mac Mini 与测试手机、网络电费、未来开发者账号等。
462 元是整台共用服务器加首年域名的算术预算,并非 Phovue 单独新增账单,也不是完整产品总成本。估算 COS 可以先不纠结单价:当前安装包约 143.8MiB,一次完整下载约 0.1404GB(按 1024 进制)。若每月完整下载 1,000 次,约产生 140.4GB 下行流量。按 0.75 元/GB,下载流量费约 105.3 元。若平均存储 1GB,一个月容量费约 0.136 元;假设只有 1,000 次标准读请求,再约 0.001 元。未使用优惠时合计约 105.44 元/月。这是简化预算,实际重试、分段请求、历史版本与账单周期都会影响结果。
通用公式是:每月 COS 费用 ≈ 月均存储 GB × 容量单价 + 下载 GB × 下行单价 + 请求费。不要把“存一个安装包很便宜”,理解成“很多人下载也基本免费”。
AI 让开始更容易,
好产品仍然需要耐心。
这次实践最有价值的部分,是把一个模糊想法变成可以看、可以用、可以检查的东西,然后承认问题,再改一次。
如果你也想开始,可以先写下一句话:我想帮助谁,在什么情况下,完成哪件事。接下来,让 AI 和你一起把这句话变成第一条能走通的路线。
认识 Phovue ↗本文由 AI 协助整理,依据项目文档、设计与验证记录撰写。