2025 Apple Student Challenge 申请之路

271 阅读6分钟

上周我放下所有事,决定全力冲刺Apple Student Challenge比赛。

要在短时间内完成一个App,说实话,是非常有挑战的。

我决定参加的时候,离截止只有两周的时间了,时间非常紧张。而且是全英文申报,要写项目介绍,还要设计界面、写代码、整合代码、然后把体验优化好,好多事要做啊。

但是这个比赛要对我很重要,我决定借助这个比赛完成自己的第一个APP,我一直想做,但都没有真正的驱动力。我暂时先放下Decision-1的学习,开始全力构建这个项目。

幸运的是,一切事情当你行动起来,它马上开始变得简单了。

我一直渴望当一名医生,或者是从事医疗方面的工作。 我就想能不能以现在的能力,编写一个帮助人们管理健康和病例的程序,同时把当下流行的AI工具、一些大模型方面的东西都顺便熟悉下。 其实在App Store也能找到很多类似的软件,做的也不错,不过没有接大模型,也不够智能,有些太多广告,还有些功能太多。我就做一款简单的吧,只有提醒吃药、和病例管理两个功能。大家都能用,爷爷奶奶也能用的那种。

image.png

代码就不说了,说说这个项目我觉得有价值的地方吧。日常看病我们总会去医院,但是管理每次就诊的那些检查报告、医生处方、医嘱,甚至记住医生说了什么,其实是很麻烦的事情,有时候又不想扔掉。我们就做一个页面把他们都记下来,这不是挺好吗?

这里我想只需要把每次的检查报告拍下来,存储起来就好了。Apple 有个自带的大模型Core ML,可以直接通过Swift进行调用。无需联网就能做很多事情(主要是苹果要求项目所有代码都不能联网,要单机使用)。然后我们通过提示词可以自动识别它是什么检查报告,我发现这太厉害了。

血液、尿液、B超、CT、核磁等检查类型自动识别。这不是太方便了吗,以后拍照就行了,不用输入呀。大家可以仔细看看下图 let repotKeywords[ ] 这段.

image.png

我用的这个是Vision模型里面的一个最简单的文本识别模型(import进来就行了),是利用苹果VisionKit的能力,给他那些关键的提示词然后让他识别到这些数据以后,他们就自动匹配并选择。我上传了一份关于尿常规的报告,当他识别到尿常规这些数据以后,CoreML的能力会让应用自动分析这个报告类型属于尿常规里面的。

而且Core ML和苹果设备整合的很好,Swift调用页很方便,其实在开发之前我都是不知道的,结果去网上一查,能做的事情太多了,例如录音这个事情,把跟医生的沟通过程录下来,方便了解医生当时都怎么诊断的。通过调用CoreML,竟然可以把医生和患者的语音相互区分出来,并且直接转化成文字,既有录音又有文本,这样以后就可以通过其他大模型进行关键内容提炼。

image.png

在上面这张图,简单来说是一个提醒功能,我希望用户打开应用就能看到每日提醒(当然Apple设备也会自动推送通知),我最初的想法是提醒人们吃药,但是,我想既然能提醒吃药,也能提醒其他的咯,反正都是差不多的代码,我就增加了运动提醒、喝水提醒、睡眠提醒、视力保护提醒、等等等等。

最复杂的是吃药提醒,每天吃几次、如果自动提醒,餐前还是餐后,还是有很多复杂的逻辑的,虽然整体看起都不错,也能正常运行,但是还是有些bug没解决、有些逻辑比如说按疗程吃药等,对我来说都有点太复杂了,搞不定。先不去搞了,抓紧时间跑通提交是最重要的。

然后还需要做一个设置界面,可以录入使用者自己的信息,如性别、身高、体重、血型、血压等。这个部分我增加了一个接口可以自动调取iPhone健康的数据,基本日常的运动、站立、步数、热量消耗都会自动取出来。Swift有专门的方法调取Apple Health Kit的接口,整合的非常好,调用方法也很简单。不得不再次感叹,苹果真的好强大,生态太完善了,能想到的都给你做了。

image.png

这个项目是为了参加Apple Student Challenge比赛,比赛的主题是设计一个能够解决实际问题的应用程序。我做的这个App是关于一个个人健康数据以及病例数据管理的一个App,这个App可以提醒使用者吃药和根据日常运动和作息来提醒使用者。

在项目进行过程中,还是有很多问题,最主要是时间管理问题。我以为我可以在周五提交项目,结果,周五熬夜、周六熬夜、周日熬夜到早晨7点.... 到后面就是要在界面设计上磨,反复磨,要花费大量的时间去调整,让他看起好看。要把某个事物或者是某个按键做到到极致,做到极致真的是非常耗时间的.....

在这个过程中,我意识到,如果想做出一个成功的项目,首先必须有一个清晰的愿景和好的想法,但真正有效的想法,其实都是在一边做边想之中得到的。还有,要用简单的语言表达复杂的概念,不光人能听懂,机器也能听明白。这些技能不仅对编程有帮助,对日常生活和学习也很有用。

总的来说,这次参加Apple编程项目,让我学到了很多技术知识,感觉这两周学到的东西比学校半年学的还多。

为了解决一些iOS方面的技术问题,我还专门拜访了Flipos.cn的创始人Kelvin老师,他见过蒂姆·库克。他在产品方面给了我很好的建议。

整个开发过程我主要用了Claude3.5和Cursor这两个工具,辅助我构建、调试代码、还有一些样式调优,它们真的很强大、确切的说非常强大。

界面我是用MasterGo Design的AI界面生成器完成的,全免费的。

另外,再去www.recraft.ai/ 生成一个适合自己App的LaunchView页面,这真的很有帮助,感觉让app看起来很高级。

image.png

最后,借助Deepseek给App起个名字 ——— JoyCare(悦健)。啊哈,真了不起!

时间已经来到了周一凌晨6:00 ...

从头检查一切,截图、打包、提交学校证明、润色产品介绍、检查开发者信息。 is no problems

Well down!

image.png