WakeUp课程表重构说明

马不停蹄!

Posted by YZune on August 15, 2018

WakeUp课程表 3.0

下载地址:酷安市场源

上架情况

  • 酷安[√]
  • 应用宝[√]
  • 魅族应用商店[√]
  • 小米应用商店[√]
  • OPPO应用商店[√]
  • VIVO应用商店[√]
  • 华为应用商店[x]

华为给的驳回理由是没有提供测试账号,我猜测是因为侧栏有个“点击登录”的提示。看来上架华为应用商店要等登录功能做好了hhh。不过不得不说华为应用商店的审核确实比较严格,现在上传的应用涉及敏感权限的都要截图写个文档来证明。

下面是一些截图。

重构概况

这是WakeUp课程表的Kotlin重构版本,它重构的地方不仅仅是换了一种语言来编写这么简单。若只是单单地用Kotlin替换Java,那重构的意义其实也不太大🤔。在用户看来,这是一个界面更为友好、启动更为迅速、功能更为强大的版本。对我而言,此次重构的意义更在于设计模式的转变。

旧版从动手到首次发布,仅仅用了一周的时间,编写过程极为匆忙,很多地方都来不及细想,代码写得不甚规范,经常是一个Activity把所有与它有关的代码容纳进去了。后期维护起来看得确实有点头晕,而且需要扩展新功能的时候……嗯无从下手,老是用一些曲线救国的方法。我认为旧版从实现上最令人诟病的一点,应该是数据的存储过分依赖SharePreferences,其实核心的课程数据也是用SP来存储的🤣。旧版第一次引入数据库还是为了管理AppWidget桌面小部件,使用的是GreenDao,这种做法好像是在我设计咩咩时想出来的。咩咩的桌面小部件方面我自认为是做得很完美了。

代码糟糕的旧版在前,重构时我就重视起了框架。MVC、MVP、MVVM……其实我是一直会纠结哪种框架是最佳实现的,也关注Google推荐哪种框架。然后就发现了Android Architecture Components,谷歌在Google I/O 2017发布一套帮助开发者解决Android架构设计的方案,名字有点长……这套框架我这萌新在使用初期真的是各种不爽,但到了后期,写着写着就忍不住感叹这套框架是真的牛逼。不过关于这套框架的大部分中文资料都只是官方文档的翻译,会让人摸不着头脑。我会尝试具体写一下我使用这套框架的情况。

开源相关

使用的开源库

其他

模拟登录和课程解析部分参考了另一个课程表项目,不过我对课程解析部分改动非常大,导入更为准确。

TODO

  • 集成“咩咩”(这意味着咩咩也要用Kotlin重构啦)
  • 完善对方正教务课程的解析
  • 数据备份和恢复
  • 课程分享
  • 增加对夏冬令时的支持
  • 注册登录,小范围的社交,主要是为社团的活动服务