Android项目框架从搭建到放弃(一)

如何来描述一个Android项目?


如果让我来描述一下的话,我认为一个好的Android项目它的外观美貌是设计模式,而它的内在灵魂则是框架

设计模式:
目前流行的设计模式仍为:MVC,MVP,MVVM
MVC可以说是元老级别的了,不管什么语言开发都能见到它的身影。
MVP是近年来才流行开来的,目前很是火热。
MVVM个人认为不太适合,觉得Android的双向绑定还不成熟。

本人学疏才浅,推荐几篇文章让大家自行分析:

  • 认清Android框架 MVC,MVP和MVVM
  • 浅谈Android架构之MVP,MVVM
  • 你对MVC、MVP、MVVM 三种组合模式分别有什么样的理解?

框架:
由于Android开源,这就给广大开发者带来了很大的便利。我们不用为了一个常见的功能而去码代码,因为已经有人写了更好的,所以不必去造轮子。
一个完整的Android项目需要哪些框架呢?
网络请求,屏幕适配,图片加载,Json解析,刷新加载,权限申请等。

我在使用哪些框架?


  • 网络请求 okhttputils
    鸿洋大神对OKHTTP封装的一个辅助类,让各种请求变得更方便。
  • 屏幕适配 AndroidAutoLayout
    同样来自鸿洋大神,使用了很长时间,堪称适配终结者。
  • 图片加载 glide
    推荐一个辅助工具类:GlideUtils
    图片加载有不少优秀的开源库,例如:Android-Universal-Image-LoaderpicassoFresco 等。
  • Json解析 gson
    大家都在用,就不多说了。
  • 刷新加载 SwipeRefreshLayout
    使用辅助框架:BaseRecyclerViewAdapterHelper
    这个框架大家应该不陌生吧,来自@陈宇明,介绍文章:灵活且强大的RecyclerViewAdapter源码分析,经过个人封装一下,在项目中用作下拉刷新和上拉加载的框架。
    另外用的最多的就是这个了:Android-PullToRefresh
  • 权限申请 RxPermissions
    这是我觉得最方便的权限申请方式了,配合RxJava很好用。
  • TabLayout FlycoTabLayout
    可以说Tab和Fragment在APP中是必不可少的,推荐来自@范二青年_Flyco的一个Android TabLayout库,个人觉得满足各种产品需求。
  • lambda表达式 retrolambda
    它的好处就是懒人必备,想知道怎么使用吗,推荐来自老司机@聪明叉的是时候学习一波Lambda表达式了,个人只是在使用匿名内部类的时候用,就为了节省代码量。
    附:在使用AS2.1版本及以上时,使用lambda就不需要这个插件库了。只需在gradle里配置一下即可:
android {    
      compileSdkVersion 24    
      buildToolsVersion "24.0.1"
      defaultConfig {    
           jackOptions {        
               enabled true    
           }
      }
      compileOptions {    
           sourceCompatibility JavaVersion.VERSION_1_8
           targetCompatibility JavaVersion.VERSION_1_8
      }
 }

来自: 在Android上使用官方Lambda支持 - Android N & Jack工具(兼容旧平台)

  • 如有其它好用的框架欢迎评论推荐

个人认为以上框架就能满足一般的APP产品需求了,不建议一遇到个小功能都去关联一个库来用,那样只会加大APP的负担。比如引导页和轮播图,完全可以用一个ViewPager来实现,就没必要去关联那些功能多动画多的三方库,虽然很强大,但是你不觉得拿一块牛皮只用一根牛毛很浪费吗?

以上只是我个人在项目中使用的框架,使用的感觉还不错,所以做个铺垫。下篇文章来介绍我自己封装的一些基类,一直在努力优化基类,基类写的好,就能为项目节省不少代码呢。

请观看Android项目框架从搭建到放弃(二)

你可能感兴趣的:(Android项目框架从搭建到放弃(一))