最近趁着寒假的时间,上架了一个「记录倒数日和纪念日」的应用,其实很惭愧,在最初几乎没有完整功能的时候就上架,美其名曰「为了激励自己先上架」;再到一次大版本更新,上架前都不好好做好测试,导致了在 Price Tag 上宣传之后用户反馈并不好,这里做个自我反省。

为什要做独立开发

首先本来就在学生时代,除了平时练手的小 demo 就基本碰不到什么项目,做独立开发的目的之一就是将所学到的开发技能运用起来;

其次,在去年还是前年的时候,开始关注图拉鼎,接着认识到了很多大佬,一些同龄或者大几届的 WWDC Scholarship Winner 的学长,都在做一些独立开发的工作,再后来知道 61 老板和图拉鼎一群人创办了「烧蛋工作室」,很羡慕独立开发者们的生活。

于是也开始走上了独立开发的路。

为什么要用 Flutter

决定使用 Flutter 是在去年末时 Flutter 发布 1.0 版本的时候,看中的是 Flutter 的跨平台,因为我觉得一个好的 App 不应该只局限在 iOS 平台上,于是希望能使用 Flutter 做一款不单单在功能、在设计和交互上也很不错的跨平台应用。

使用 Flutter 后的感受

在初期觉得 Flutter 还不错,写界面的过程就像是写前端一样,但是随着界面越来越复杂,使用的组件越来越多,组件嵌套越来越深,代码变得复杂起来,尤其是引入了 redux 管理状态之后,需要使用 StoreConnector 来获取状态和对状态的更新,组件嵌套深度+2。

当然我觉得 80% 可能是我写 Flutter 的方式不太对,没有使用组件化,还是比较笨的在一个页面中完成所有组件的渲染和逻辑处理,导致单文件代码行数巨大,感觉对之后的新功能添加与问题定位是个不小的麻烦。

Flutter 作为一个新技术,我觉得还不够成熟,有很多坑自己踩了才知道,甚至在 Stack Overflow 上都没有解决方案。

在应用上架之后,除了收到 bug 反馈,也受到了一些对新功能的需求,比如给 iOS 端添加小组件,我也希望能加入 iCloud 同步等等具有原生平台特性的功能,但目前还没有尝试,不知道 Flutter 与原生的交互如何。

独立开发路漫漫

作为第一个独立开发的产品,使用 Flutter 这样的新技术来开发无疑是个很愚蠢的选择(对这个 App 已经做了无数个愚蠢的选择),但不管怎样,还是需要坚持维护下去。但是接下来的 App 独立开发,我应该暂时不会再选择 Flutter 了。毕竟,不说靠独立开发发家致富,至少苹果的保护费应该赚回来吧。

除了编程,设计和交互也是独立开发中必不可少的一个环节,我一直觉得设计比编程更难,而我这款 App 的设计风格直言不讳的说是借鉴了多个 App。以及设计完之后的实现也是一个困难,交互设计后的动画实现等等。

小结

总而言之,年初的 flag 也算完成了一点点,继续加油吧