Kotlin实现MVP架构的Android快速开发框架

原创 2018年04月14日 22:32:27

简介

  • KCommon快速开发框架是基于rxjava、rxcache、okhttp、retrofit、rxlifecycle等第三方库,采用mvp架构,使用kotlin语言开发的一个第三方库,配合一键生成mvp相关代码文件的Android Studio模板文件,可以使使用者快速开发,专注于代码逻辑,而非mvp相关的繁琐配置。并且集成了Loading、成功、失败和空页面的切换,同时还提供了对下拉刷新以及上拉加载更多的列表的模板(BaseRefreshAndLoadMoreActivity||BaseRefreshAndLoadMoreFragment),省去了Android开发人员对相同类型代码的重复编写。Github地址
  • 使用此开发框架需要的一些前置知识
    • 熟悉android中的mvp架构
    • 熟悉rxjava、rxcache、rxlifecycle等响应式编程框架
    • 熟悉okhttp、retrofit
    • 会复制快速开发模板到指定位置并使用
  • KCommon提供了两种便于开发的模板
    • 以Base开头的BaseActivity和BaseFragment。这种适合通用的开发。具体的使用请参考相关的demo。
    • 以BaseRefreshAndLoadMore开头的BaseRefreshAndLoadMoreActivity和BaseRefreshAndLoadMoreFragment。这种适合列表展示的页面开发,具备下拉刷新和上拉加载更多数据的功能。具体的使用请参考相关的demo。
    • kotlin版本的demo java版本的demo

图片展示

  • 总的演示
    演示图片
  • 下拉刷新和上拉加载更多
    图片1
  • 空页面
    图片2
  • 在断网情况下加载缓存
    图片3
  • 网络请求错误并重新加载
    图片4

基于Kotlin的使用说明(Java的使用具体参考java版本的demo)

  • 导入依赖
    • 在根目录中的build.gradle文件中加入

      maven { url "https://jitpack.io" }
    • 在应用下的build.gradle文件中加入
      “`
      api ‘com.blackflagbin:kcommonlibrary:0.0.4-test’
  • 在自定义的Application类中的onCreate方法中初始化CommonLibrary
//初始化KCommon
CommonLibrary.instance.initLibrary(this,
                BuildConfig.APP_URL,
                ApiService::class.java,
                CacheService::class.java)

详细说明

  • CommonLibrary.instance.initLibrary()
    /**
     * 初始化
     *
     * @param context Application
     * @param baseUrl retrofit所需的baseUrl
     * @param apiClass retrofit使用的ApisService::Class.java
     * @param cacheClass rxcache使用的CacheService::Class.java
     * @param spName Sharedpreference文件名称
     * @param isDebug 是debug环境还是release环境。debug环境有网络请求的日志,release反之
     * @param startPage 分页列表的起始页,有可能是0,或者是2,这个看后台
     * @param pageSize 分页大小
     * @param headerMap 网络请求头的map集合,便于在网络请求添加统一的请求头,比如token之类
     * @param errorHandleMap 错误处理的map集合,便于针对相关网络请求返回的错误码来做相应的处理,比如错误码401,token失效需要重新登录
     * @param onPageCreateListener 对应页面activity或fragment相关生命周期的回调,便于在页面相关时机做一些统一处理,比如加入友盟统计需要在所有页面的相关生命周期加入一些处理
     * @param onPageDestroyListener 对应页面activity或fragment相关生命周期的回调,便于在页面相关时机做一些统一处理,比如加入友盟统计需要在所有页面的相关生命周期加入一些处理
     * @param onPageResumeListener 对应页面activity或fragment相关生命周期的回调,便于在页面相关时机做一些统一处理,比如加入友盟统计需要在所有页面的相关生命周期加入一些处理
     * @param onPagePauseListener 对应页面activity或fragment相关生命周期的回调,便于在页面相关时机做一些统一处理,比如加入友盟统计需要在所有页面的相关生命周期加入一些处理
     *
     */
    fun initLibrary(
            context: Application,
            baseUrl: String,
            apiClass: Class<*>,
            cacheClass: Class<*>,
            spName: String = "kcommon",
            isDebug: Boolean = true,
            startPage: Int = 1,
            pageSize: Int = 20,
            headerMap: Map<String, String>? = null,
            errorHandleMap: Map<Int, (exception: IApiException) -> Unit>? = null,
            onPageCreateListener: OnPageCreateListener? = null,
            onPageDestroyListener: OnPageDestroyListener? = null,
            onPageResumeListener: OnPageResumeListener? = null,
            onPagePauseListener: OnPagePauseListener? = null)

用Kotlin写Android Gradle脚本

Android应用开发中,离不开Gradle脚本的构建。大部分Android开发同学忽视了脚本的力量,甚至有很大一部分同学不知道Gradle脚本是什么,用什么语言编写的;当然,也有相当一部分同学知道G...
  • apple337008
  • apple337008
  • 2018-01-26 13:20:09
  • 387

从Java切换到Kotlin:5个令Android开发者兴奋的特征

1.命名参数 每个Java开发者的噩梦:大量的参数(例如在Cursors或Android中创建SQLite查询),它们的名字和方法定义中的顺序。如果没有文档或IDE帮助,您无法在Java中正确编写它...
  • qq_21793463
  • qq_21793463
  • 2018-04-10 10:36:08
  • 176

使用Kotlin进行Android开发

Kotlin是一门基于JVM的编程语言,它正成长为Android开发中用于替代Java语言的继承者。Java是世界上使用最多的编程语言之一,当其他编程语言为更加便于开发者使用而不断进化时,Java并没...
  • asmcvc
  • asmcvc
  • 2016-06-16 15:52:26
  • 25834

五分钟教你Android-Kotlin项目编写

背景之前就看到过Kotlin这一门语言,也有不少大神和愿意走在知识最前沿的哥哥姐姐们说这一门语言有多么多么的好,但是本人并没有去了解他,直到前段时间Google大会直接说会支持Kotlin语言,所以我...
  • u013243573
  • u013243573
  • 2017-06-05 22:16:17
  • 1544

Kotlin实现MVP设计模式

零、前言此篇为用kotlin实现的简单mvp设计模式,Demo功能是登录。通过此篇文章可以学习Kotlin语言基础使用,以及理解mvp设计模式。项目源码:KotlinAndroiMVP壹、mvp简介 ...
  • DG_summer
  • DG_summer
  • 2017-08-21 19:47:57
  • 531

Android快速开发MVP框架,Android Studio、Eclipse多平台支持

  • 2017年10月27日 11:00
  • 15.83MB
  • 下载

Kotlin写Android(一)——开发环境搭建

0 背景近日,以前的领导找到我,让我给做个项目。嗯~,项目很简单,就是一个题库,但想在做的过程中学点东西,就想到了之前朋友跟我提的用kotlin写项目,于是就想在这次项目中学习学习。写这个也算是对自己...
  • github_34790294
  • github_34790294
  • 2016-12-31 00:09:00
  • 792

如何在Android Studio中使用Kotlin开发app

Kotlin已经成为了Android的官方语言,相信之后会使用得越来越广泛。但是在Android Studio 3.0 才会自带支持kotlin,可以再3.0以下的版本要怎么使用kotlin开发安卓项...
  • SilenceOO
  • SilenceOO
  • 2017-07-14 14:39:17
  • 1528

Android架构——MvpClean(kotlin)!!!

概述 第一次知道MvpClean还是在搜寻架构组件的博客时,出于好奇便学习了下。MvpClean给我的第一感觉是烦,写一个功能要创建n个文件,但不可否认对于大型项目和多人合作开发有很大的优势。 ...
  • qq_24442769
  • qq_24442769
  • 2018-03-07 13:25:15
  • 39

十分钟学会kotlin实现Android MVP模式开发

谷歌宣布,将Kotlin语言作为安卓开发的一级编程语言 Google I/O 大会全程视频直播为什么要学习Kotlin?因为它能使Android的开发更简洁、高效及安全,更因为谷歌的推崇!不说废话,...
  • dongdong230
  • dongdong230
  • 2017-05-23 16:01:49
  • 4012
收藏助手
不良信息举报
您举报文章:Kotlin实现MVP架构的Android快速开发框架
举报原因:
原因补充:

(最多只允许输入30个字)