我是怎么用SwiftUI开发出一款独立App的

大家好,我是阿树。

两个月前,我还是一名游戏全职开发者,因为厌倦了996的强压工作,想试试做一名独立开发者。一晃已经两个月过去了,我的App已经上线了app store。我想写一点总结一下开发的整个过程,下面的是app下载链接

「早晨计划」app store下载链接

1.  我要做一个什么样的App

在一开始其实我已经有一些想法了,因为我经常工作完没事就开始玩游戏,对自己的生活未来没有规划,我不想时间如沙子一样从手中流逝,最后一无所获,同时我也需要有一款软件来帮助我在独立开发者这条孤独的路上前行,所以我想做出一款早晨利用早起一小时计划整天的工作,让自己有计划的生活,而不是随波逐流。

2. 技术栈的选择

确立了目标,第二步就需要做出技术栈的选择,首先独立app的话首选应该是IOS,因为IOS的用户付费意愿比较高。我没有考虑安卓,因为安卓的机型比较复杂,跨平台开发的话,会消耗我大量的精力,在平台上。所以只考虑了IOS,同时我选择了最新的SwiftUI来开发,因为看着比较顺眼,不喜欢手动拖拽拼界面,实际用下来感觉SwiftUI开发速度也很快!

用户的数据都存在本地的sqlite里,没有放后端,后端的话只用了python的flask做一些后端基础服务,比如说支付的验证。前后端的交互也会浪费大量开发时间,而且服务器也比较贵,所以就基本不依赖服务器。

3. 设计App的界面

说实话,我基本没怎么设计界面,就是按照感觉走的,朴素简洁风。比如说下面的目标界面,就是很朴素的app store的风格。我个人就是比较喜欢这种简单的美,让界面显得不多余。

目标界面:

任务界面:

4. 代码开发

1. 尽量使用开源库,减少开发工作量

代码目前代码的开发占据了大部分的时间,本着能用开源库就用开源库的精神,减少工作量,收集了一些swift的库。

  • SQLite.swift 操作sqlite3的库,我的大部分用户数据都是用sqlite去存储的。

  • Alamofire 网络请求库,api比较友好简单,易于使用

  • Toucan 图片处理库

  • FSCalendar 日历控件

2. 使用简单的框架

有人说过这么一句话,调试的复杂度是代码复杂度的两倍,当你写出来的框架足够复杂的时候,可能你已经没有能力去调试其中的bug了。我只使用了简单的MVC,MVC的好处很多,有个最明显的好处就是降低耦合,减少重复代码的可能。

3. 遇到多Google,多Stack Overflow

因为SwiftUI普及度还没那么多,文档也没那么多,加上新技术不稳定,有bug是肯定的,这时候多用关键字去搜索,国外的大佬还是挺多的。

4. 重构

当代码看着不顺眼,可能就要开始重构了。我这里有两个重构的经验,一是事不过三,如果重复代码超过三次说明需要提取成一个函数。二是如果想破脑袋也没办法给提取出来的函数命名就不要提取合并代码。一个不明所以的函数可能比bug更糟糕。

5. 上架

不需要等产品完美了再上架,因为追求完美其实是一种不可取的事情。没有用户反馈的情况下,做任何优化都有用户不买账的风险,先做出个大致的情况,测试几遍没有bug之后就可以考虑上架了。

我上架的时候第一次被拒绝了,因为使用照片权限的描述不够清楚。第二次审核的话很快,用了两天就过审了。

以上就是我所有的总结,如果有任何疑问都可以跟我私聊讨论。

最后,我是独立开发者阿树,希望你过的健康幸福!

「早晨计划」app store下载链接

分类:
阅读
标签: