夜雨聆风学习资料网

ARTICLE · 1332368

不懂代码也能做 APP:我把发票整理装进手机

不懂代码也能做 APP:我把发票整理装进手机
我们单位出差多,不少同事一出去就是大半个月。回到酒店、走在路上,报销全靠手机,根本没时间坐到电脑前。偏偏财务的规矩是刚性的:发票文件名不规范,一律退单。最近这一阵,光我知道的就有好几个同事,因为文件名写得不合规被退了回来。最折磨人的,是退回来改文件名这件事。手机上导出的文件名乱七八糟,同事得一张一张点开、看清楚内容、退出来、再改名字——十几张票,来来回回,大把时间耗在“打开—查看—退回—改名”上。这套活儿,对常年在外的人尤其不友好。PC 端那套发票整理技能群,我早用 WorkBuddy 跑顺了,解决的是我自己坐电脑前的痛点。但同事们的战场在手机。我就想,能不能在手机上就地把文件名规范好,让他们少跑几趟退单、少点几次“打开—查看”?于是我动了心思:能不能用 AI 当搭档,自己动手做一个安卓 APP?我得先说清楚一件事:我不是专业安卓开发,具体的架构怎么搭、代码怎么写,我一概不懂。但有一件事我比谁都清楚——我们单位的报销业务到底长什么样、财务要什么、同事卡在哪儿。我后来慢慢体会到:在 AI 时代,这恰恰够用了。这篇不是一次成型,是我用两个 AI 工具接力做出来的。先用另一个 AI 编程工具从零试出一版(1.0),跑起来像那么回事,却被 BUDDY 查出一堆致命问题;后来拿 WorkBuddy 接手,一处处修、一步步打磨到 1.4.0。两程都是我老李自己的经历——我出业务、出需求、出验收标准,AI 出代码、出方案,最后拍板的都是我。

一、动手前我先想明白:做什么形态

我没急着让 AI 写代码,先想了一件事:这东西做成微信小程序,还是原生 APP?

我去查了小程序的官方说明,三条硬约束把我劝退了:

 1. 小程序没法把文件写回手机目录——而“就地改名”正是我要做的核心,它天生做不到;

 2. 小程序在手机上没有本地解析发票的能力,唯一的出路是把发票传服务器,这和我“发票不上传”的底线直接冲突;

 3. 小程序后台待一会就把任务挂起,“收到发票自动整理”这种常驻能力压根不存在。

所以最后定调:做原生安卓 APP,发票全程在手机本地处理、不上传任何服务器,先在内部用安装包分发。小程序最多做个轻量的下载入口页。

这一步我想明白了一个道理:先想清楚“要做什么”,比急着“怎么做”重要。我把业务约束摆出来,AI 帮我校验了技术可行性,形态就这么定了。

二、第一版是我用另一个 AI 工具试出来的——结果翻车了

第一版(1.0),是我先让另一个 AI 编程工具做的。我把 PC 端发票整理的需求交给它,它照着出了蓝图、生成了框架,还自己装了开发工具做代码同步和打包——可麻烦也在这:打包出来的东西,经常和我改过的对不上,人根本追不上。发布那一刻我以为成了,真拿去跑实际发票,处理效果却不尽如人意。

我抱着试一试的心态,让 WorkBuddy 读了我和那个 AI 的交流记录、还有项目源码。它一查,直接给我列出 8 项致命问题——最要命的压根不是大家以为的“识别准不准”,而是“文件落不了地”。这 8 项,是 BUDDY 从源码里扒出来的,我自己一行代码都看不懂:

#
表现出来的毛病
本质(BUDDY 查出来的)
1
文件存不进手机目录,改名后找不到
读写方式用错了系统
2
解压的文件看不到、改名的也看不到
解压到一半文件就被清掉了
3
压缩包里只整理了第一张票
程序只跑了第一张就停了
4
用着用着就卡死、崩
重活全挤在主线程
5
手机整理的回 PC 端对不上
命名规则和 PC 不一致,金额起讫全丢
6
文件名里的日期被覆盖错
兜底规则没边界,盖掉了正确日期
7
存储权限形同虚设
声明了却从不申请
8
“后台自动监听”是假功能
压根没接上,逻辑是空壳

看到这些我才回过味:前 4 条直接让文件存不对——识别再准,文件都找不到地方放,全白搭。我也想通了一件事:光让 AI 一把梭不够,得有人把业务流程拆清楚、把容易错的地方守住。于是我让 WorkBuddy 当搭档,不是从头再来,而是拿它帮我一处处修、系统性地重做。毕竟 PC 端的那套技能本就是在 BUDDY 上开发出来的,它天生就懂这套业务需求,事实也证明——它接手后改出来的东西,才真正对得上。

三、第一刀:先让文件真正落得了地

针对那 8 项,我让 WorkBuddy 重写了一轮,就是 1.1.0。我做的不是亲手敲代码——是把问题拆清楚、列成清单交给 BUDDY 写,再逐条验收。活儿是它干的,方向是我定的。

这一轮改完,肉眼能感受到的变化是:

 1. 文件终于能稳稳存进手机目录、改名后找得到了;

 2. 解压不再半路丢文件,压缩包里所有票都走到整理,而不是只处理第一张;

 3. 不再卡死,重活挪到了后台,配了个进度条;

 4. 手机端命名规则,对齐到了 PC 技能群。

我还顺手让它把发票里的文字提取能力补上,选了现成成熟的方案而不是更底层但难调的。对一个不懂安卓的人来说,早点跑通比“更底层”重要。

四、最关键的决定:命名规则必须和电脑端统一

这一点我单独拎出来,因为它是整条工具链成不成立的关键——而这是只有懂业务的人才能拍板的。

PC 端报销技能群,是靠解析文件名拿字段来生成报销说明的——文件名里已经编码了“日期 / 起讫 / 类别 / 金额”。如果我在手机端自创一套命名,手机整理完的文件回 PC 端就解析不动,手机→PC→BIP 这条上报链路直接断在接缝处。

所以我回去和 PC 端对齐了权威口径,做成双方案。我还专门写了个交叉核对,拿样本对拍,差异 0 条——手机端和 PC 端生成的文件名要能逐字对上。

教训:两套并存等于白做。任何“端”的改造,第一件事是回去对齐另一端。这是业务判断,不是技术判断。

五、真机才暴露的坑(最打脸的一段)

实验室跑通那会儿我还挺得意。结果同事甩给我一份 18张发票的文件.zip 和实机截图,我当场被教做人——四个症状看得我头皮发麻:原始文件名全乱码、17 张铁路票金额“未识别”变成 0 元、合并打印件被当 1 张票生成垃圾文件、识别出来的信息还搅在一起。

根因我一个个和 BUDDY 查出来,全是真实样本才暴露的:

 1. 压缩包里文件名是老编码:一读就乱码,改成两种编码各读一遍、挑能正常显示的中文胜出;

 2. 金额识别漏了铁路票面:铁路票只有“票价”没有“价税合计”,PC 端早有兜底,APP 漏了,我把几种金额写法全补上;

 3. 合并打印件:一张纸印了 18 张不同发票,按发票号个数判定,标成“合并票据,请提供单张”,跳过命名;

 4. 信息位置搅在一起:调整了抽取顺序和兜底,把销售方竖排这类特殊情况也兜住。

这些坑,光在测试文件上跑永远发现不了。真实发票才是最好的测试集。也正因为这一顿打脸,我才真正把“拿真实场景验”刻进了流程里。

六、怎么保证“改了不会坏”

版本越改越多,我最怕“修一个、坏三个”。我和 BUDDY 一起立了三道关:

 1. 用真代码跑真用例:直接拿 APP 的真实源码编译跑测试,比用别的语言翻译一遍对拍强得多——测的是真东西,不是翻译版。到 1.4.0 时全量 6 组、228 项断言全过。那次全绿,我才算真正松了口气。

 2. 三端一起对拍:APP / PC / BIP 一起改、一起重跑,规则与字典逐一核对一致。

 3. 交付前真核验安装包:一项项读安装包信息、校验签名一致性。而且我一律看内容指纹判断有没有重新打包,绝不看体积——有一回新老安装包体积一模一样但内容不同,靠体积判断会误以为“没重新打包”,坑过我一次。

这三道关不是锦上添花,是敢不敢交给同事用的底气。

七、体验一点点打磨到 1.4.0

从 1.1.0 到 1.4.0,功能不是一次设计好的,是遇到痛点一个一个长出来的:

版本
解决的核心问题
1.1.0
修 8 项致命、双命名方案、发票文字层、票据类型区分、网约车识别、暖色界面
1.2.0
39 项分类字典、附件规则(行程单/结算单随主票)、分类标准可切换
1.3.0
成组发票同批配对、按行程笔数命名
1.3.1
应用名称统一为「发票整理」
1.3.2
设置页方案列表修复
1.3.3
设置页双标签页、命名元素可点选插入
1.4.0
行程规则按方案独立配置、编辑页按大类配置模板

期间还补了:后台收到发票自动解压重命名、一键分享到微信/企业微信/钉钉、12 列报销汇总表、默认目录调整。每一条,都是同事在用、在反馈,我再把它变成需求交给 BUDDY。

八、几条我自己也说不清的“幕后保障”

这一节我得老实交代:下面这些保障,是 BUDDY 在背后替我守着的,具体的门道我根本不清楚,只知道它们很重要。

最直观的一次是:有一回排查时误把源文件覆盖了,正是靠 BUDDY 之前的备份和“改动可重放”机制,才完整救回来——我当时只下了个“重跑脚本”的指令,具体怎么恢复的,它没细说,我也没追问。至于文件安全替换、编译失败的处理这类更底层的细节,更是 BUDDY 自己定、自己干的,我一个都讲不明白。

但这些恰恰让我敢反复改、敢交付。我越来越确信:你不需要懂每一行背后发生了什么,只要你能判断“这对不对、好不好”,就够和 AI 搭档把事做成。

九、回头看:AI 时代,不懂代码也能圆梦

这个 APP 不复杂,但它把我一个习惯固化下来了:碰到月月重复、机械的琐事,第一反应别是“忍一忍”,而是“能不能让它在手机上自己跑”。

更深的体会是:作为一个 70 后、自认 AI 初学者的 IT 人,我过去很多年都觉得——“做个 APP”这种事,是专业程序员的事,我最多提提需求。可这一次,我一行架构没画、一行代码没写,靠的是把业务嚼碎了说清楚、把验收标准列明白,就让两个 AI 工具接力,把一个真能用的安卓 APP 从 1.0 一路做到了 1.4.0。

这就是 AI 时代给我的最大底气:你不必懂具体的架构和代码,只要你真正了解自己的业务、能把需求说清楚,那些原来“敢想不敢做”的梦,现在真的可以落地。

如果你也在被某件月月重复的琐事折磨,不妨也试着拆一下:它到底由哪几步组成?哪几步能交给机器?哪几步必须你亲自确认?把那张表列出来——你会发现,缺的从来不是写代码的能力,而是把业务想清楚的决心。

三个关键点(给想动手的人)

给想动手的人,三个关键点:

 1. 先想清楚要做什么,再想怎么做:小程序做不到写回手机、本地解析、后台常驻,这类需求直接选能做的形态。业务约束摆清楚,AI 帮你校验可行性。

 2. 把需求说清楚,比自己写代码重要:命名规则对齐、字段口径统一,这些是业务判断,得你自己拍板。AI 负责实现,你负责定义“对”。

 3. 真实场景才是试金石:乱码压缩包、合并打印件、竖排销售方,这些只有真实发票才暴露。敢不敢交付,看你拿真实样本验过几遍。

作者

(作者:讠尔You亻言 · 70 后 AI 初学者,关注公众号「讠尔You亻言」)

回首页,搜索你想要的文档

在首页搜索框输入关键词,快速定位资料

文库首页搜索指引 立即搜索

相关学习资料