记一次独立开发APP的感悟
第一次接触Android开发大约是去年八月份,是在大一的暑假,感觉这个学起来挺简单的,还能够放在手机上运行,感觉美滋滋。
于是学了两个月之后,一个朋友要我做一个功能,说能不能在锁屏界面上弹出一个框框,然后可以在上面记录一下今天要做的事情,这样就可以每次点亮屏幕的时候就能够看到了。于是匆匆忙忙搞了出来,但是程序似乎挺容易被系统杀死的,之后就弹不出来了,后来也就不了了之了。
但是最近又学了一点进程保活的技巧,便用在了那个项目身上,发现效果还不错。于是又萌生了完善那个APP的想法,说干就干,功能比较简单,几天就搞定了第一版。
第一个版本
只考虑实现某些功能,不考虑别的,是一个完完全全的单机APP,代码也是寥寥草草,扩展性非常差。数据库的表结构也没有怎么设计,看到还差什么属性就往上加,然后更新一下数据库的表结构。这样反反复复改了好几次吧,总算第一个原型出来了,没有发现什么bug,但是bug总是存在的,只是还没发现罢了(后来在一个低版本的机器上发现了)。
第二个版本
第二个版本是想重构一下代码,考虑一下未来可能会发生变化的地方,于是尝试使用了MVP架构去优化代码,结果重构了两个界面,花了足足4个多小时!但是不得不说,程序的可扩展性还是提高了很多,至少将View和Model进行了解耦。但是后来发现MVP实在是太难使用了,特别是adapter的逻辑比较复杂的时候,就感觉使用MVP是一个错误。
第三个版本
这也是最新的一版,但是还没有进行编码。因为吸取了前面两次的教训,不弄清楚需求之前,尽量不要编码实现,不然改动的时间会非常多,而且会破坏代码的结构。所以今天花了一些时间和同学讨论,某些功能是否有必要,如果需要,又该怎样排版。以及界面该如何美化,如何提升用户体验等等。讨论了很多,之后依然没有编码,因为感觉还没有达到一个最终的效果,许多东西还有待商榷。
感悟
- 需求很模糊的时候,尽量不要编码。
- 界面最好要能够确立风格,各个界面的风格要统一。
- 在编码的时候,最好把架构搭好,根据复杂度选择不同的架构。
- 给别人打工比自己当老板要轻松。
由于是自己想做一个好用的APP,然后推荐给大家使用,所以总想加入一些实用的功能,又不知道具体的细节,所以走了很多不必要的弯路。接下来准备花一个星期去确定功能和界面,然后下个周末再编码,希望能够做出一个自己满意的效果。
还想问大家一个问题:没有美工,且自身的审美能力极差,该如何设计出好看的APP界面呢