春节自学了 SwiftUI 7 天,今天终于上架了第一款 iOS APP,分享一下过程 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
graetdk
23.15D
V2EX    分享创造

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

  graetdk 2022-02-16 11:32:46 +08:00 18478 次点击
这是一个创建于 1338 天前的主题,其中的信息可能已经有所发展或是发生改变。
开发这个 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/
122 条回复    2022-04-13 15:25:04 +08:00
1  2  
shervy
    101
shervy  
   2022-02-17 09:16:48 +08:00
楼主好脑子 。我想学习其它的也会很快吧~
Nicksong
    102
Nicksong  
   2022-02-17 09:35:59 +08:00 via iPhone
@sugz 这个不一定,现在对我不起效果了。
cashew
    103
cashew  
   2022-02-17 10:06:20 +08:00   1
口腔溃疡中期可以尝试吃猕猴桃,有奇效(至少对我是有效果的)每次 2-3 个,汁水尽量去覆盖一下溃疡面(会很疼)。
药物的话,我也用过很多种类,后来有位医生推荐我使用的《绿袍散》,它是清热消肿、化腐解毒的,感觉效果挺好的。
run2
    104
run2  
   2022-02-17 13:30:27 +08:00
cs193p 开了这么多年了,我至少看了两届(还是 Objective-c 的),还是一点精深的东西都没造出来
看来还是执行力不够
moshou
    105
moshou  
   2022-02-17 13:53:35 +08:00
Unicorns96
    106
Unicorns96  
   2022-02-17 14:05:15 +08:00
看过两节斯坦福课程,布置的课后作业是阅读官方 swift 文档,内容好多啊,而且全是英文的,我感觉单看视频一周还可以,楼主有看是第二课的课后作业 pdf 吗
graetdk
    107
graetdk  
OP
   2022-02-17 14:16:32 +08:00
@Unicorns96 我是先跟着苹果自己的教程走,然后看斯坦福的课理解一些思维,没有跟着课去走
CookCoder
    108
CookCoder  
   2022-02-17 14:59:10 +08:00
记录没有办法删除
graetdk
    109
graetdk  
OP
   2022-02-17 15:01:09 +08:00
@CookCoder 新版本已经支持了,在等苹果审核
shawndev
    110
shawndev  
   2022-02-17 18:24:00 +08:00
Update to Pro 点击闪退
graetdk
    111
graetdk  
OP
   2022-02-17 18:43:28 +08:00
@shawndev 已经修复了,等苹果审核,这个原因是没有从苹果拿到商品数据,你可以先随便点点,等一会儿再去点,应该就没事了
x2ex
    112
x2ex  
   2022-02-18 15:29:38 +08:00
挺好用的,感谢作者~也说下我希望的改进:
1.齿轮图标可以放右上角吗?
2.轻按长按双击可以自定义好评~希望把提示语放到底部,并改成灰色,淡化提示信息
3.点“Pro”无反应?
4.看不到上次同步到 iCloud 的时间
graetdk
    113
graetdk  
OP
   2022-02-18 16:14:20 +08:00
@x2ex 收到!建议很好,我下个版本优化一下,谢谢~ Pro 无反应可能是苹果商店接口的问题,目前还没做错误处理,你可以再试一下
bbis
    114
bbis  
   2022-02-19 10:03:33 +08:00 via iPhone
后续希望支持 Apple Watch 和 Siri ,
自己快捷指令做了个记录喝咖啡的杯数和体重,添加进健康
HeapOverflow
    115
HeapOverflow  
   2022-02-19 11:49:45 +08:00
你好,请问 app store 的预览图是用什么工具 /网站生成的?
asuka02
    116
asuka02  
   2022-02-20 16:39:12 +08:00
@graetdk 楼主牛逼啊 7 天上架佩服。问一问公开课有翻译吗?英语不好纯英文对话看不懂
graetdk
    117
graetdk  
OP
   2022-02-20 18:59:05 +08:00
@asuka02 B 站有熟肉,但感觉略有机翻的痕迹
storyxc
    118
storyxc  
   2022-02-22 00:09:51 +08:00
这执行力是个狠人,最近我也有研究 swift 的计划,准备开发个自用的提醒事项在 mac 上用,youtube 上斯坦福那个大爷的教程我也收藏了不过最近工作忙还没时间搞,先膜拜下楼主
Leooe1
    119
Leooe1  
   2022-02-24 18:05:06 +08:00
太棒了,产品很喜欢
EggmanQ
    120
EggmanQ  
   2022-04-12 11:07:44 +08:00
下载了
liukay2008
    121
liukay2008  
   2022-04-13 11:53:15 +08:00
咨询一下 OP ,switfUI 对产品同学友好吗?不熟悉代码,只会写 sql ,能不能比较快的上手 ...
graetdk
    122
graetdk  
OP
   2022-04-13 15:25:04 +08:00
@liukay2008 最容易上手的肯定是前端,其他可能会稍难点,但也相对比较容易上手
1  2  
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5429 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 29ms UTC 08:11 PVG 16:11 LAX 01:11 JFK 04:11
Do have faith in what you're doing.
ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86