爱意满满的作品展示区。
graetdk
23.27D

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

  graetdk · Feb 16, 2022 · 20108 views
  •   You need to sign in to view this topic
    This topic created in 1611 days ago, the information mentioned may be changed or developed.
    开发这个 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 replies    2022-04-13 15:25:04 +08:00
    1  2  
    Leonard
        1
    Leonard  
       Feb 16, 2022
    新学的就做了 app 上架,挺牛逼的,不管怎样支持一下
    crayygy
        2
    crayygy  
       Feb 16, 2022
    厉害啊,自学七天就能出成果,非常有执行力了
    levon
        3
    levon  
       Feb 16, 2022
    orzz
        4
    orzz  
       Feb 16, 2022
    厉害了,看来是有基础啊 老铁
    14v45mJPBYJW8dT7
        5
    14v45mJPBYJW8dT7  
       Feb 16, 2022
    界面设计很好看,前端开发吗
    graetdk
        6
    graetdk  
    OP
       Feb 16, 2022
    @orzz 之前主要有写后端的经验,但我代码水准其实比较菜,swiftUI 整体重塑了我很多基础的概念,我觉得这个还挺重要的
    graetdk
        7
    graetdk  
    OP
       Feb 16, 2022   ❤️ 1
    @rimutuyuan 说来你可能不信,完全是苹果原生的组件,这也是编译出来只有 2M 大小的原因
    Pogbag
        8
    Pogbag  
       Feb 16, 2022
    下载支持了 UI 不错
    qq316107934
        9
    qq316107934  
       Feb 16, 2022
    楼主可以分享下使用的 SwiftUI 的学习教程吗? 我使用官方教程学习发现学不到大部分控件和排版的用法,只能跟着官方代码一步一步走。
    Leonard
        10
    Leonard  
       Feb 16, 2022   ❤️ 1
    @qq316107934 #9 楼主最后发的那个斯坦福公开课 CS193P 就挺好的,比官方教程好
    graetdk
        11
    graetdk  
    OP
       Feb 16, 2022   ❤️ 1
    @qq316107934 一步步走就能学到很多了,我不知道你看的官方教程是哪个,我知道是有两个,一个相册的,一个是我贴的 Scrum 的,后者能学到更多,按教程最终做出来的是完全够上架标准的一个 APP 了
    Varsion13
        12
    Varsion13  
       Feb 16, 2022
    棒诶
    uCharles
        13
    uCharles  
       Feb 16, 2022
    口腔溃疡就买意可贴 ,第二天就好了
    graetdk
        14
    graetdk  
    OP
       Feb 16, 2022
    @Leonard CS193P 没得说,但是对我这种没经验的人来说,有点点吃力,先刷一下官方的再看就会好不少,个人感觉
    graetdk
        15
    graetdk  
    OP
       Feb 16, 2022
    @sugz 那个靠激素,据说用多了会不管用,我只有比较严重的时候会用
    qq316107934
        16
    qq316107934  
       Feb 16, 2022
    @Leonard @graetdk 抱歉,没看到 post 最后一行。感谢。
    我就是按照 Scrumdinger 走的,学到一半发现各种排版方式都是只能按照官方走,自己排出来就很丑,也可能是我理解不到位哈哈,之前写过 Vue 一类的单页面前端,但是排版还是不太一样。
    VoyagerOne
        17
    VoyagerOne  
       Feb 16, 2022
    刚好需要这种记录时间间隔的软件,试试看,好用就订阅一下
    moohng
        18
    moohng  
       Feb 16, 2022
    你这个 UI 好漂亮,是自己设计的吗?我是前端开发,每次想做一个什么东西的时候,都卡在了 UI 上,然后就进行不下去了
    graetdk
        19
    graetdk  
    OP
       Feb 16, 2022   ❤️ 1
    @moohng 是的,但是用的都是 iOS 的原生组件,我也是慢慢调的,觉得好看就保留,不好看就换一个这样
    youthfire
        20
    youthfire  
       Feb 16, 2022
    很棒的分享,一直也想尝试,然后又独守在 Python 上没有敢踏出一步
    Hequndev
        21
    Hequndev  
       Feb 16, 2022 via iPhone
    UI 真挺好看的,看了一下版本要求 IOS15.晚点试用看看。
    Pazakui1259
        22
    Pazakui1259  
       Feb 16, 2022   ❤️ 10
    花了点时间试了试您的 App ,发现了一些问题,希望能在细节上继续优化:
    1. 免费版我能添加 3 个另外的 track ,加上默认的 3 个我就有 6 个了,超出了免费版我能用的 5 个。
    2. 很多英语翻译不是很通顺,大小写没有正确使用,中间用了很多中文标点,结尾没有句号等。比如主界面的提示那里。
    3. Set Track 那里的 section 的 header 希望能变成 footer ,明明是解释用的语句。
    4. 主页的设置按钮可不可以改成 ToolbarItem(placement: .primaryAction)直接放在标题右边?
    5. 内购的那个 Sheet 好像 ScrollView 前面还套了一层别的 view ,导致白色边框,而且没有关闭按钮,英文的文案也有打错,trail➡️trial 。
    6. 希望所有的 picker 样式都能.pickerStyle(MenuPickerStyle()),默认的打开另一个页面的样式跳跃感很大不是很美观。
    7. 添加 record 的加号和别的按钮都太靠近了。希望也能和上面那个主页设置按钮一样直接变成 ToobarItem ,编辑和分享可以放在屏幕下面。
    8. 希望能支持 Application Shortcut ,就是能在桌面长按图标进行快捷操作,比如快速给某个 track 添加 record 。
    9. 没有对无障碍进行优化,旁白情况下完全无法正常使用 App 。
    Borden
        23
    Borden  
       Feb 16, 2022
    楼主你那个大方块和小点点是用的 LazyGrid 么?我找不到一个定行定列的非 Lazy 的 grid view ,好难受
    usVexMownCzar
        24
    usVexMownCzar  
       Feb 16, 2022   ❤️ 1
    @qq316107934 教程也可以下载 raywenderlich 上面的书籍,有两种,一个学徒级的,还有一个 tutorial
    《 SwiftUI Apprentice 》,《 SwiftUI by Tutorials 》
    graetdk
        25
    graetdk  
    OP
       Feb 16, 2022
    @Pazakui1259 感谢!你提到的一些是我已经知道并且准备下个版本改的,有些是我真没想到的,我之后会更新的~
    MakHoCheung
        26
    MakHoCheung  
       Feb 16, 2022
    我 7 天 Swift 都没学完
    xz410236056
        27
    xz410236056  
       Feb 16, 2022
    swiftUI 现在很多功能还不完善(也有方便的地方),比 UIKit 功能少很多,storyboard Xib 也很方便。当玩具学习还行,项目上不太好用。
    codespots
        28
    codespots  
       Feb 16, 2022
    dk 的执行力好强啊
    nl101531
        29
    nl101531  
       Feb 16, 2022
    666 ,这个软件很有用
    graetdk
        30
    graetdk  
    OP
       Feb 16, 2022
    @MakHoCheung 我也没学完,就能用的先学着
    Immortal
        31
    Immortal  
       Feb 16, 2022
    问个题外话
    如果想搜索类似斯坦福等大学的优秀课程,能在什么地方看到课程列表或者怎么个搜索姿势?
    直接在斯坦福等的 youtube 帐号下搜索吗
    wwnje
        32
    wwnje  
       Feb 16, 2022
    比我棒。。我用了一个月
    UI 看起来很简洁
    wwnje
        33
    wwnje  
       Feb 16, 2022
    graetdk
        34
    graetdk  
    OP
       Feb 16, 2022
    @Immortal YouTube 有,B 站也有搬运的
    Immortal
        35
    Immortal  
       Feb 16, 2022
    @wwnje #33
    谢谢
    不过我指的是类似的 比如我想学其他方面的东西 想优先搜索优秀大学的课程 不一定是 swift
    caisanli
        36
    caisanli  
       Feb 16, 2022
    还是要有英文基础才能学
    没有找到好的中文教程
    要不就是太旧
    Immortal
        37
    Immortal  
       Feb 16, 2022   ❤️ 1
    在知乎找到一个列表
    https://zhuanlan.zhihu.com/p/391591909
    qq73666
        38
    qq73666  
       Feb 16, 2022
    iOS15 以上?😓
    catoncat
        39
    catoncat  
       Feb 16, 2022
    有 bug ,我添加了一项「跳绳」追踪,然后编辑默认追踪里面的 「 Emotions 」 新加了两个选项,保存之后发现「跳绳」被新的 「 Emotions 」覆盖了。原来的「 Emotions 」还在。
    环境:m1 mac
    FightPig
        40
    FightPig  
       Feb 16, 2022
    lz 执行能力很强啊
    catoncat
        41
    catoncat  
       Feb 16, 2022
    复现了,当编辑一个选项类型的追踪时,在添加选项时,输入完名字不点加号而是直接点右上角的更新时可以触发
    daQiuQiu
        42
    daQiuQiu  
       Feb 16, 2022
    执行力好高啊
    graetdk
        43
    graetdk  
    OP
       Feb 16, 2022
    @crs0910 我没有复现,能否麻烦发个录屏给我哇?微信 Z3JlYXRkaw==
    catoncat
        44
    catoncat  
       Feb 16, 2022
    qiaobeier
        45
    qiaobeier  
       Feb 16, 2022
    我光研究怎么上架就花了至少一个礼拜😂
    graetdk
        46
    graetdk  
    OP
       Feb 16, 2022
    @crs0910 收到!我研究下,但目前真的还没对 Mac 或者 iPad 适配,看着有点辣眼睛,建议还是在手机上使用~
    catoncat
        47
    catoncat  
       Feb 16, 2022
    触发了上面的问题之后,删掉所有追踪的时候会崩溃退出,重新打开被删掉的会回来。
    andyforxxx
        48
    andyforxxx  
       Feb 16, 2022
    即刻上是不是也发过,我在即刻上也看到 lz 的动态😄
    graetdk
        49
    graetdk  
    OP
       Feb 16, 2022
    @andyforxxx 是的,正是在下
    x86
        50
    x86  
       Feb 16, 2022
    原来是你,早些年在 V2EX 的一个微笑群见过楼主,印象很深
    x86
        51
    x86  
       Feb 16, 2022
    微信群
    catoncat
        52
    catoncat  
       Feb 16, 2022
    @graetdk 那可能就是同时显示双栏导致的状态更新问题。用了下手机版,很好,没问题。
    ninevcat
        53
    ninevcat  
       Feb 16, 2022
    赞 执行力很高
    xff1874
        54
    xff1874  
       Feb 16, 2022
    优秀,行动力也强。我也时不时有念头,一直没动手
    iiqiu
        55
    iiqiu  
       Feb 16, 2022
    面包多站长吗 厉害
    AlwaysBee
        56
    AlwaysBee  
       Feb 16, 2022
    @xz410236056 SwiftUI 3 我感觉还行,基本上我要做的功能都能实现了
    eason1874
        57
    eason1874  
       Feb 16, 2022
    网页不太行了,我也想做点 APP 卖

    想知道做一款收费 iOS APP 需要什么条件呢?个人可以吗?我只知道注册要开发者费用
    graetdk
        58
    graetdk  
    OP
       Feb 16, 2022   ❤️ 1
    @eason1874 个人就可以,699 一年的开发者会员费
    xz410236056
        59
    xz410236056  
       Feb 16, 2022
    @AlwaysBee #56 button 设置不同 Event 这种常见需求都需要通过复杂自定义实现
    angith
        60
    angith  
       Feb 16, 2022
    很棒,我以前也一直有做一个类似这样的小东西来记录生活😄
    V9NN
        61
    V9NN  
       Feb 16, 2022
    手持安卓,但是电脑是 macOS 系统,想用这个工具,楼主可以开放桌面端适配吗?(貌似苹果新开发套件支持跨平台)
    graetdk
        62
    graetdk  
    OP
       Feb 16, 2022
    @V9NN 我研究一下
    AmberJiang
        63
    AmberJiang  
       Feb 16, 2022
    厉害啊 楼主 向你学习绑👍🤝
    hccsoul
        64
    hccsoul  
       Feb 16, 2022
    站长这是打算亲手写面包多的 ios 客户端?
    jasonchen168
        65
    jasonchen168  
       Feb 16, 2022
    追踪项名称不支持输入中文吗?
    graetdk
        66
    graetdk  
    OP
       Feb 16, 2022
    @jasonchen168 支持啊,图是英文的 demo
    graetdk
        67
    graetdk  
    OP
       Feb 16, 2022
    @hccsoul 我们有 iOS 同学了,用 OC 在写
    Tyuans
        68
    Tyuans  
       Feb 16, 2022
    溃疡吃维生素 c 真的管用,好的快些。
    AlwaysBee
        69
    AlwaysBee  
       Feb 16, 2022
    @xz410236056 我理解的 button 常见的 event 通常就是点击、长按、悬浮这些都有原生的实现呀。不知道你指的是哪些场景呢?如果是想包含多种 event ,貌似和 event 的监听顺序是有关系的
    glovebx
        70
    glovebx  
       Feb 16, 2022
    执行力很强了,我一直想学一直还没动手(今年一定学
    lurui45
        71
    lurui45  
       Feb 16, 2022
    长按记录弹框后的确认记录按钮能否不要放在右上角,单手很难按到。
    graetdk
        72
    graetdk  
    OP
       Feb 16, 2022
    @lurui45 右上角是系统带的一个东西,用起来比较方便,我后面看能不能自己写一个好看点的放下面
    xz410236056
        73
    xz410236056  
       Feb 16, 2022
    @AlwaysBee #69 你理解的那些不叫 event 。。。是 Gesture 才对

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

    app 大小好评
    doitbull
        79
    doitbull  
       Feb 16, 2022
    哈哈,在即刻看到了
    declandragon
        80
    declandragon  
       Feb 16, 2022
    牛逼了,支持一下
    Chism
        81
    Chism  
       Feb 16, 2022 via Android
    用 SwiftUI 开发的 App 是不是要求 iOS 11 以上才能安装?
    graetdk
        82
    graetdk  
    OP
       Feb 16, 2022
    @Chism 我用了一些新特性,要求 iOS 15 。。。。
    cssk
        83
    cssk  
       Feb 16, 2022 via iPhone
    整个 tintcolor 都红色了,navigation bar 返回按钮是默认的蓝色,不协调
    wingkwanli888
        84
    wingkwanli888  
       Feb 16, 2022
    @graetdk last month, last quarter 那幾個控件叫什麼啊,第一次見這種 button
    abc635073826
        85
    abc635073826  
       Feb 16, 2022
    光执行力就得 5 星
    WhiteQian
        86
    WhiteQian  
       Feb 16, 2022
    @sillydaddy cs193p 都 50 个小时了,能看完也很强了
    sillydaddy
        87
    sillydaddy  
       Feb 16, 2022
    @WhiteQian 难道我们看的不是一个吗?
    - https://cs193p.sites.stanford.edu 或者 https://www.youtube.com/playlist?list=PLpGHT1n4-mAsxuRxVPv7kj4-dQYoC3VVu
    - 16 个视频
    - 每个视频大概 80~90 分钟,总共约 22~24 小时

    有 2 个 App 的开发过程,不一定都看,而且虽然讲得很细致,有些地方还是可以倍速播放的。
    edinina
        88
    edinina  
       Feb 16, 2022 via iPhone
    话说问问大伙儿零基础到这种程度的话,需要学点啥,大概多长周期。主要还是感兴趣
    littlewing
        89
    littlewing  
       Feb 16, 2022
    厉害,学 7 天,2-3 小时就能做成这样
    littlewing
        90
    littlewing  
       Feb 16, 2022
    我看了 7 天 rust ,还是一句都写不出来(手动狗头.jpg )
    Mistwave
        91
    Mistwave  
       Feb 16, 2022 via iPhone
    nice 啊 实现力超高
    su0818
        92
    su0818  
       Feb 16, 2022 via iPhone
    发现你这个 app 完全是之前一个帖子的需求啊

    https://www.v2ex.com/t/832056?p=1

    加油啊
    Chism
        93
    Chism  
       Feb 16, 2022 via Android
    @graetdk 哈哈,确实是 7 天
    AsianChampion
        94
    AsianChampion  
       Feb 16, 2022 via iPhone
    怎么不是中文,你的用户大部分也是中文用户啊
    graetdk
        95
    graetdk  
    OP
       Feb 16, 2022
    @AsianChampion 做了中文和英文两个版本的,图用的是英文的,用户我希望能做全球化,虽然比较困难
    Procumbens
        96
    Procumbens  
       Feb 16, 2022   ❤️ 2
    @Immortal
    我之前有整理过一些,主要是美国 Top 4 大学的公开课程: https://learncs.me/curriculum
    以后有机会有时间我再加点
    graetdk
        97
    graetdk  
    OP
       Feb 17, 2022
    @wingkwanli888 Picker ,style 为 segmented
    Maskeney
        98
    Maskeney  
       Feb 17, 2022
    之前用过一个类似的 叫 知我
    wanacry
        99
    wanacry  
       Feb 17, 2022 via iPhone
    美区貌似搜不到
    dotfun
        100
    dotfun  
       Feb 17, 2022
    App 做到这样很不错了,我也有学习 SwiftUI 的计划,希望能和楼主一样坚持下来
    1  2  
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1412 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 184ms · UTC 17:04 · PVG 01:04 · LAX 10:04 · JFK 13:04
    ♥ Do have faith in what you're doing.