春节自学了 SwiftUI 7 天,今天终于上架了第一款 iOS APP,分享一下过程

2022-02-16 11:32:46 +08:00
 graetdk
开发这个 APP 的起因是去年有一段时间我时不时会得口腔溃疡,我想记录一下,我口腔溃疡的发作频率和每次持续的时间,一开始是用备忘录,但记录起来很麻烦,所以我有了想做这样一个记录 APP 的想法

坦白说我 17 年就准备学一下 iOS 开发,但是拖延了,19 年再次想学,甚至都买了苹果开发者资格,但。。还是拖延了,今年是第三次,这次我选了春节,这样时间比较充裕,每天差不多 3-4 个小时,通过苹果官方的教程和斯坦福 cs193p 公开课(白胡子大爷讲的那个),基本了解了 swiftUI 和 MVVM 的思维,总的来说,对我来说是很大的挑战,因为我之前的经验偏后端,很多东西完全是新的

春节结束之后我每天继续花 2-3 个小时写这个 APP ,因为太菜,踩了很多坑,真正写 UI 和逻辑的时间其实不多,大量的时间花在踩坑和找解决方案上面了,但这个过程也很有乐趣,以至于我缩减了很多在大表哥 OL 里玩德州扑克的时间

最终的 APP 是这样:





你可以设置一些追踪项,例如口腔溃疡,喝咖啡,流鼻血,有心动的感觉等等等等,然后在其发生的时候很快记录一下,此后就可以通过一个 GitHub commit log 风格的图表看到其发生频率和趋势,也能看到你的历史记录

整个 APP 不向除了苹果官方之外的任何服务器发送数据,我没有后端服务器,也没有使用任何第三方统计,广告代码什么的,记录数据也只保留在你的本地和 iCloud 文稿,并且支持导出导入,总之安全隐私应该没得说。


作为我的第一个 iOS 作品,不得不承认,还有很多因为我技术不足而未完成的细节,但我之后会继续慢慢打磨,争取做成一个精致的小工具


APP 名字叫 Becord ,直接在 App Store 搜可能搜不到,可以搜 Becord 元记录,也可以直接通过链接获取: https://apps.apple.com/cn/app/becord/id1608773156


另外附上我学习的资源:
Apple 官方开发者教程: https://developer.apple.com/tutorials/app-dev-training/getting-started-with-scrumdinger
斯坦福公开课: https://cs193p.sites.stanford.edu/
17336 次点击
所在节点    分享创造
122 条回复
V9NN
2022-02-16 15:19:05 +08:00
手持安卓,但是电脑是 macOS 系统,想用这个工具,楼主可以开放桌面端适配吗?(貌似苹果新开发套件支持跨平台)
graetdk
2022-02-16 15:27:36 +08:00
@V9NN 我研究一下
AmberJiang
2022-02-16 15:28:19 +08:00
厉害啊 楼主 向你学习绑👍🤝
hccsoul
2022-02-16 15:31:49 +08:00
站长这是打算亲手写面包多的 ios 客户端?
jasonchen168
2022-02-16 15:34:25 +08:00
追踪项名称不支持输入中文吗?
graetdk
2022-02-16 15:52:04 +08:00
@jasonchen168 支持啊,图是英文的 demo
graetdk
2022-02-16 15:52:28 +08:00
@hccsoul 我们有 iOS 同学了,用 OC 在写
Tyuans
2022-02-16 16:04:11 +08:00
溃疡吃维生素 c 真的管用,好的快些。
AlwaysBee
2022-02-16 16:05:06 +08:00
@xz410236056 我理解的 button 常见的 event 通常就是点击、长按、悬浮这些都有原生的实现呀。不知道你指的是哪些场景呢?如果是想包含多种 event ,貌似和 event 的监听顺序是有关系的
glovebx
2022-02-16 16:11:41 +08:00
执行力很强了,我一直想学一直还没动手(今年一定学
lurui45
2022-02-16 16:39:40 +08:00
长按记录弹框后的确认记录按钮能否不要放在右上角,单手很难按到。
graetdk
2022-02-16 16:44:07 +08:00
@lurui45 右上角是系统带的一个东西,用起来比较方便,我后面看能不能自己写一个好看点的放下面
xz410236056
2022-02-16 16:44:14 +08:00
@AlwaysBee #69 你理解的那些不叫 event 。。。是 Gesture 才对

这些才是 event ,点击和点击也是不同的,按下就触发,和按下松手才触发是两个事件。这些东西在 swiftUI 中是需要你自己自定义的,而且还挺麻烦。
AlwaysBee
2022-02-16 16:48:36 +08:00
@xz410236056 这些确实是没有,不过我还真没有遇到这类 event 的需求,可能业务还是太简单了
Chad0000
2022-02-16 16:49:17 +08:00
楼主执行力好强啊,我的 APP 都两年了还没弄好。当然两年是业余时间。
sillydaddy
2022-02-16 16:51:18 +08:00
楼主厉害,执行力没得说。
SwiftUI 确实很易用,没有移动端开发经验的我,在仅看过那个 cs193p 教程后,就感觉非常有信心开发一个 App 了。
yunyuyuan
2022-02-16 17:00:13 +08:00
ui 挺好看的
rbe
2022-02-16 17:20:45 +08:00

app 大小好评
doitbull
2022-02-16 17:28:54 +08:00
哈哈,在即刻看到了
declandragon
2022-02-16 18:10:14 +08:00
牛逼了,支持一下

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/834180

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX