hiccLoghicc log by wccHipo日志

Hipo 2.0 Swift重写,限时免费!限时免费!限时免费!

toc

Intro

Hipo 2.0.0

2015年10月16日Hipo 2.0.0正式上线App Store,似乎倏忽间就将这大半年的躁郁一扫而光。上线全新版本,限时免费限时免费限时免费(已经结束限免)^_^

####Hipo 1.X

Hipo 1.X使用当时移动Js框架新秀ionic开发,虽说是phoneGap应用,但是做出来发现体验到也不差,使用Js开发移动应用,快速,成本低,门槛低,Hipo上线初就获得了App Store首页优秀App的推荐,这也直接决定了我走上了独立开发这条不归路-_-#

至今仍然喜欢AngularJs,ionic,仍然相信在App初期多数情况下使用Js开发是个很好的选择。

####iOS原生开发学习

在变成果粉的同时,Apple推出了Swift语言,能够看得懂的语法,满足了我尝鲜的欲望,加之当时考虑实现Hipo数据云端保存,跨设备同步的功能,索性决定使用swift重写Hipo,于是:

  • 看国内翻译的swift语法文档
  • 继续看其他版本的swift语法资料
  • ……如此重复纠结……
  • 看完swift语法,发现对iOS开发还是一无所知,买了bitfountain出的iOS 8,swift视频教程,教程属于入门教程,然后用iPad看视频,电脑开着Xcode,Google联系,倒也跟得上,iOS原生开发逐渐入门。
  • 看完bitfountain视频,发现对着空屏幕还是无从下手,又发现iTunes出了斯坦福白胡子老头iOS swift教程,又开始进入左边iPad,右边电脑模式……
  • 一边看斯坦福教程,一边也用swift重写Hipo,至此算是具备了写iOS原生App的基础元知识。
  • YouTube上有不少高质量视频教程。
  • Apple iOS API官方文档是个好东西,先看别入门教程,代码阶段常开iOS API官方文档。
  • Xcode playground是个好东西,可以快速练习Swift,新手用它来验证下代码最好不过了。

学习期间,看了不少教程,回过头来发现美剧刷的更多-_-#

####Hipo 2.0 UI重新设计

Hipo 1.X的问题是

  • 将预算/统计以及其他入口放倒了右侧的滑动菜单中,"Out of Sight, Out of Mind",有限的几次使用中,根本不会用到这些地方,
  • 首页也似乎有点单调,
  • 对于历史数据的查看路径过长,
  • 最后iOS自带键盘输入金额太过麻烦。

因此Hipo 2.0.0:

  • 首页集合每月花销,预算/花费,新建类入口都在首页;
  • 数据按照月为单位,一月一屏,历史展示年的列表一页足以,相互很方便的切换。
  • 全新设计的记账表单页面,自定义数字键盘。

学习iOS开发过程中也会用纸币简单画画2.0的原型,也参考了学习了Google Design,具体UI,使用sKetch,配合sKetch Mirror,几番修改,快速搞定。

动效部分,因为进度问题只是脑子中过了下。

####Hipo 2.0核心功能实现

Hipo数据方面,本地CoreData存储,使用增量同步策略。

  • 本地选择CoreData纯粹是因为不太喜欢sql的方式,而且想靠近点Apple官方推荐方式,以便后期能够不太费力的使用Apple提供的新东西。至于具体CoreData操作还是借助了MagicalRecord,在此推荐。
  • Hipo 1.x中数据存储在Sqlite中,为了迁移到CoreData,之前选了个Swift的Sql库,但是Swift升级到2之后,发现几个有名的Swift Sql库都没能第一时间升级到Swift 2,最后只得使用了OC语言的FMDB。
  • Swift 语法从1到2,本以为会很头疼,结果Xcode自动转换,一次成功!
  • 在数据网络存储,多设备同步的实现方案的选择中纠结了很久,初期的考虑使用类似LeanCloud的方式,但是后来发现似乎LeanCloud方案无法仅依靠客户端实现增量同步(可能是我没想到如何做),需要依赖云端代码,所需的技术栈略长。
  • 在开始代码不久,才惊喜发现Apple Cloudkit能够仅靠客户端实现增量同步,免费额度很高,用户无需登录注册,相对而言开发者更加不用关心数据安全等,决定转而使用Cloudkit实现Hipo增量同步,之后的Demo测试发现CloudKit似乎比外界认为的要好,在此占个坑,后续打算写写CloudKit的文章,安利安利CloudKit。
  • Hipo将用户数据存储到了用户自己iCloud账户下的私有数据库,用户将数据完全隔离,即使我也没办法看到用户记账数据。
  • 之前准备将同步做为2.0.0内购,后来听取建议,同步完全免费!同步完全免费!同步完全免费!

####Hipo 2.0 UI布局测试

  • 因为有HTML,CSS相关基础,Hipo使用Storyboard布局,个别地方代码布局,虽说繁琐倒也轻车熟路。
  • UI只是参考一点Google Design,虽说挺喜欢它的东校,但是在iOS实现相对复杂只能作罢。
  • 因为进度问题,iPad布局基本还是按照iPhone思路,后续可以考虑优化iPad布局。
  • Hipo中引入了腾讯Bugly,Bug跟踪平台,自动上传符号表比较省事。希望能够尽可能减少Hipo bug。
  • 测试使用Apple TestFlight,每次上传到iTunes Connect想死。
  • 最后提交审核居然遇到Apple iTunes Connect bug,大半夜改半天plist配置才提交成功。
  • 周日提交周五审核通过~~

最后在此感谢LifeHacker群内各位大拿以及公司iOS大神的帮助🙏

####Hipo 2.X TODO

  • 同步是个相对复杂的东西,得继续大力优化同步。
  • 可能会有Apple Watch版本
  • 可能会有iOS Widget
  • 可能会有Web版(hipo.cash域名都准备好了^_^)。
  • 很大可能会有家庭账本。

####……

个人开发就像独行沙漠,间或的几点绿洲便足以让我继续前行。

Hipo AppStore qrcode