接上一篇总结,不妨紧接着聊聊自己对于项目的心得,理论上不该在这个点聊心得,权当作开发过程的简述吧。
首先谈谈在项目开发过程中的感受,我和康鑫同学作为一个UI小组,主要是负责日历、日记、瓶子、情绪统计图等UI模块的编写,我们初期是共同完成编程的,后来由于需要赶进度做了一些细微的分工。我们是从日历界面开始的,开始的时候我们刚刚阅读完郭霖老师的《第一行代码》而积极地开始安卓开发之路,但是我们遇到的第一个控件就是一个大问题,我们需要用到安卓系统的日历控件—MaterialCalendarView,网上搜到很多应用这个控件的博客,但是我们发现很难找到风格符合我们预期的样例,于是我们截取了最基础的一段例程然后开启了我们的开发之路,过程的艰辛只有走过的人才知道,就连日历上字体大小的设置我们都是翻了十几篇博客才找到答案,设置完之后我们开始研究日历模式的切换问题,传统方式是设置一个按钮通过点击进行切换,但我们之后在安卓市场上找到一个叫美日记的APP,里面的日历就是实现了通过滑屏实现日历折叠切换模式的效果(这里还涉及另一个强大的滑动控件RecyclerView),当时我们就心动了,我记得我是花了一个上午的时间来做这个效果,后来是在队友的帮助下完成的,虽然细节上没有那么完美,但是我们还是非常开心。当然我的队友后来还使用TimepickerView实现了自选日期功能。
情绪统计图部分主要是我的队友完成的,他使用了一款名为MPAndroidChart的图表控件,完成了此页面的大部分,我之后也是对页面的很多细节进行了必要的完善,意在为用户提供更好的视觉体验。很明显在经历了之前的摸索后,我们在这个模块上的工作明显顺利了很多。
此外还有日记的编辑界面,当然编辑框很简单只是一个支持多行输入的TextInputLayout布局,重点在于支持用户修改字体、添加标签以及插入图片,之前我们自己写了很简单的编辑器,后来在网上看到别人写好的富文本编辑器,我们一时心动就换上了,费了好大功夫写到最后才发现人家竟然不支持用户修改字体,我们认为这是无法接受的,于是近两天我们开始一起使用控件SpannaleStringBuilder自己编写支持用户修改字体颜色、大小、样式以及文本缩进、对齐、高亮等功能的富文本编辑器,而且还需要自行设计下拉框的UI,虽然说自己设计远比直接用开源库费力,但是我们是在追求功能的完善性,在追求质量的卓越,所以我们没有任何怨言,一直在努力探索,结伴前行。
然后是对接过程,我们在与另外一个UI小组进行对接的过程中,遇到的最大问题就是版本不一致,由于另外一组两位成员的as版本还停留在2.2.2,而我们组的分别为3.0.1和3.1.2,我们的gradle版本分别达到了4.1和4.4,对方则是2.2,直接导致很多我们调用的系统库他们无法使用,而且不同版本下很多函数的定义都发生了变化,因此这次失败给了我们很大的教训,最近一次组会决定统一版本为3.0.1和4.1(我的版本比这个高,由于as版本是向下兼容的所以我无需改变)。
最后谈谈和队友的合作吧。说实话,我的队友真的很强大,经常是我在寝室抓耳挠腮为一个问题苦恼而到处翻博客的时候,队友发个消息过来说已经实现了这个什么功能,所以每次这样我都很不好意思,所以可以说我的进度有一部分是被队友激励出来的吧。我们合作的时候经常会遇到困难,我们也会相互打气,不得不承认过程很煎熬,但是有队友陪着真的就是莫大的幸福,希望我们能一直顺利地合作下去,把我们的团队项目做好。而我们和另一个UI小组也经常进行交流,尤其是对接的时候,我们也有很多不兼容的地方,总会有一方需要做出改变,我认为这是合作过程中的必经之路,我认为我们有能力把它解决好。
软件工程是一门技术课,但更多的是在培养品质,挑战困难的品质、团队合作的品质、阶段规划的品质,说大一点,这其实都是做人的品质。