乐于分享
好东西不私藏

使用AI开发一个“找手机”应用

使用AI开发一个“找手机”应用

经常在家带娃的宝妈可能会有这样的困扰:手机不知道放在家里哪个角落了,要想用的时候找不到。这时候常用的方法是问一下宝爸“我手机呢?”,或者说“你给我打一个”。但也有不奏效的时候,有时候手机调成了振动或者音量调低了(怕吵到娃),打电话也找不着。或者有时候宝爸不在家或者耐心耗尽了不愿意配合:-)。家里有天猫精灵音箱,于是在某个时候突然灵光一闪,可以开发一个应用,让天猫精灵帮忙找手机。手机不见的时候对天猫精灵说“我手机呢”,它就会触发手机上的应用以大音量播放响铃。

应用介绍:https://any-builder.com/find-the-phone/

在动手前让千问找了一下市场有没有已有的应用,国内是没有的,国外有PagerDuty这样的应用但不支持华为的HMS。于是决定自己动手(让AI动手)。咨询了千问后整体的架构是这样的:

由于Claude限制了中国地区的IP使用,所以最开始的时候使用的是OpenCode,模型是选择当时OpenCode内集成的的免费的MiniMax M2.1(后来MiniMax免费不给用了,我充了它的Code Plan)。描述了基本需求后,它很快就做出一个可以运行的Android应用。似乎CLI方式的编程工具能力更强大,相比之下,之前使用TRAE/Qoder/Kiro等IDE时产出的代码没有这么靠谱。MiniMax也提供Anthropic兼容的API,后来我便切到了ClaudeCode+MiniMax的方式了。App运行效果:

App虽然可以运行,但是还是遇到了一些问题,其中一个是应用启动时获取HMS Push Token总是失败,和AI交互了几轮之后仍然没有修复。后来是退出OpenCode后重新进入再描述下问题后它给修复了。这是由于多轮交互后模型的上下文变长会影响其效果,可使用`/clear`命令清理。

另一个问题是发送Push通知的格式问题,AI给出的body json不对,只发送了普通的通知,而没有发送透传通知,这个交互了几轮仍然没有解决。最后是去Huawei开发者文档中找到官方示例解决的。

有了App后就需要生成一个Logo,我开始用千问和豆包效果都不太理想,最后是用Google Gemini生成的:

完成了App之后,还需要写两个云函数,一个是作为设备注册时将Push Token保存到OSS,另一个是作为天猫精灵的语音技能触发Web Hook。也使用AI来写,可能是FC的流行度不不够广,AI写出来的函数代码还是有些问题。所以就手动写了一个Skills,教AI如何写FC Python函数。Claude Skills是一些Markdown文档,用自然语言的方式描述如何完成一项任务,它创建起来比较简单,效果也很好,能够“教”AI更好地完成任务。

应用想要上架到华为应用市场时遇到一个阻碍:它要求提供软件著作权证书。自己申请的话需要几个月,也有提供上架审批授权证书的服务,但是要收费600元。只好暂时作罢。

真机上使用这个App时,偶尔还是会遇到没有响铃的情况。通过千问调研了一下,这是因为国产的手机厂商为了省电会频繁地杀掉后台应用同时限制通知唤醒应用。所以App启动后会在通知栏保留一个通知(Foreground Service)避免被杀(但即使这样还是有概率会导致无法响铃)。暂时也没有更好地优化手段了。

一些思考

  • AI对于生产力的提升进步非常明显,从去年的生成代码片段,到现在能够完成整个项目。在另外一个项目中,我让Claude Code连夜持续工作了7个多小时完成一个镜像构建脚本的编写,它能自己不断地修改验证直到成功。

  • MiniMax模型编程能力很强,我曾经连续3天挂单差一点点买入它的股票:-(。期间也试用过qwen-coder,一是效果一般,二是qwen没有提供Code Plan,便没有再使用。

  • 无论是华为应用市场还是天猫精灵对开发者还不太友好,首先它们的后台界面就非常简陋,另外天猫精灵不支持通过API创建语音技能,还是有些阻碍创新的。

本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » 使用AI开发一个“找手机”应用

评论 抢沙发

8 + 6 =
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
×
订阅图标按钮