Wan Android 项目总结
Wan Android 项目总结
项目的由来
这个项目也算是自己学习了一段时间的Android以后的一个总结和学习吧,项目采用了Kotlin语言,Api采用的hongyang大神的WanAndroid 网站的API,就在昨天晚上这个APP的1.0 版本完成了,今天就来总结一下这个项目吧。
项目地址
Github WanAndroid
关于Kotlin的思考
Kotlin并不仅仅是语法糖,她很好,但在我看来她也不完美无缺的。
Kotlin改良了
Java对于嵌套类和内部类的定义的别扭之处,因为我并不是一个纯粹的Java开发者,所以在我接触Java的 嵌套类
和 内部类
的时候,尤其是 static
关键字用于定义嵌套类的时候是在是让我恶心的不轻,至今我还不太理解这个蜜汁操作。
Kotlin中并没有受检查异常,这一点着实是让代码看起来利索了不少,我们不必再一次又一次的去try-catch 。
更简单的IO,Kotlin对Java中的IO框架进行了进一步的封装,简化了一些机械性的工作,Java的IO用过的都知道。。。。这也是我至今接受不了的一个地方(Java那驳杂的IO体系)。
扩展方法和Lambda表达式的支持,这些简便的操作,让我的编码体验更加丝滑。
内联函数,了解过Java泛型擦除的应该都知道,Java的泛型是又一个令人诟病的地方。在Kotlin中通过内联函数的方式缓解了一下这个显现。
...
Kotlin让我很不爽
说了Kotlin不好的地方了,这次就来吐槽一波吧
Kotlin中并没有 静态
这个概念,而是采用伴生对象的机制来实现的类似静态的操作,这让我很是无所适从,我的代码编程了下面这样。
companion object {
fun show(context: Context) {
val intent = Intent(context, MainActivity::class.java)
context.startActivity(intent)
}
}
伴生对象的机制,不仅仅是让代码多了一层前端套,更为致命的是,我甚至都不知道将它放置在类中的哪个位置。这个体验让我很是不爽啊。
Kotlin中的变量的声明,从单纯的变量变为了 val
和 var
的声明的方式,而 val 声明的变量,就类似Java中的 final
关键在修饰的变量类似,这让我很是费解。或是是为了更好的性能?这就不得而知了。
Kotlin中没有字段,Kotlin中虽然并非是真的没有字段,但是我们却无法显式的声明它,所以当我们需要一些字段的时候,我们不得不声明一个 private
的属性。
...
Kotlin自从被作为Android的第一开发语言来被 Google 扶持了以后,她就一直饱受争议,在我看来她并不是完美的,甚至有很多对人不太友好的地方,但是她绝对不是一些语法糖而已。她也确实是提高了我们的开发效率。
轮子加轮子
这是一个轮子+轮子的作品,项目中用到了大量的轮子来提高开发效率或是美化项目,这些轮子都非常受欢迎,使用非常简单,在用这些轮子的时候,我感到有些沮丧,我的项目中导出都是这些轮子的影子,而这就显得我自己的东西就很少了。 还是得老老实实的编码争取自己也可以写出来好的轮子。
无法驾驭的项目结构与无法保证的代码质量
在学习MVP架构的时候,看上去非常的简单和容易上手,但是自己真正去用的时候就感觉难以驾驭经常性的偏离轨道,所以不得不一次又一次的对整体的架构动一些大手术。
在写代码的时候,我总是很难控制代码的质量,出现了命名规范不统一,类的继承结构有问题的情况,在写代码的时候总是集中注意力于功能上,但是这就导致了很多冗余的垃圾代码,甚至这些代码到现在还存在于项目中。
UI设计
在做这个APP的时候,UI的设计让我绞尽脑汁并且也占据了大量的时间,但是最后也没得到一个比较漂亮的UI,哎,关于UI设计真是一言难尽,纯属是赶鸭子上架的举措了。
写在最后
好了知耻而后勇,代码总是一步一步优化的,我将会一点点的优化这些瑕疵,使其成为一个比较完美的作品,好了,本文到此为止,与诸君共勉。