simpleLib - android快速开发核心框架

2019-06-05  本文已影响0人  极客收藏夹

SimpleLib

🔥 simpleLib 是笔者开发历程中积累下来的能大幅提升效率的方法和约束整合。旨在 帮助基于该类库的开发者能够高效的完成 Android 项目搭建和开发

项目 持续迭代更新 中,会继续丰富类库功能。

基于 Java1.8 开发,深度依赖以下开源类库

data-binding RxJava glide okHttp Gson

项目基本结构

└── simplelib
    ├── Const.java                     类库所需常量
    ├── LibCore.java                   初始化核心
    ├── core                              
    │   ├── JsonHelper.java            Json转化
    │   ├── ImageLoader.java           图片加载    
    │   ├── Logs.java                  日志管理
    │   ├── PrefHelper.java            SharePreference管理
    │   ├── Router.java                界面跳转路由
    │   ├── RxBus.java                 事件管理
    │   ├── RxHelper.java              RxJava线程调度
    │   └── UiHelper.java              界面工具集合
    ├── http
    │   ├── OkHttpHelper.java          okHttp管理
    │   ├── SslCertHelper.java         ssl信任
    │   ├── cookie                     cookie管理
    │   └── intercaptor                拦截器
    ├── model
    │   ├── DeviceInfo.java            设备信息
    │   └── CommonEvent                事件载体
    ├── ui
    │   ├── BindingAdapters.java       dataBindingAdapter
    │   ├── activity                   activity界面基类
    │   ├── adapter                    基础适配器
    │   ├── fragment                   fragment界面基类
    │   ├── interfaces                 接口约束
    │   └── web                        WebView的封装处理(腾讯x5)
    ├── util
    │   ├── CallBacks.java             基础回调封装
    │   ├── StringHelper.java          字符串工具类集合
    │   ├── ThreadHelper.java          线程调度工具类集合
    │   └── UrlUtil.java               Url工具类集合
    └── view                           自定义view集合

如何使用

1. 引入依赖

// app/build.gradle 处添加依赖
implementation 'com.github.cchao:simpleLib:[last_version]'

clone 类库作为项目的子模块引用

2. 初始化类库

public class App extends Application {
    
    @Override
    public void onCreate() {
        super.onCreate();
        
        // 核心 初始化
        LibCore.init(mContext, new LibCore.InfoSupport() {
            // 使用Lib提供的 OkhttpClient 能获取基本的网络交互日志
            public OkHttpClient getOkHttpClient() {
                return OkHttpManager.getOriginClient();
            }

            public LibCore.ILogEvents getLogEvents() {
                return new LibCore.ILogEvents() { /* 自定义日志上报规则 */};
            }

            public LibCore.RouterConfig getRouterConfig() {
                return new LibCore.RouterConfig() { /* 自定义路由拦截规则 */};
            }
        });
        
        // 自定义基础样式
        LibCore.setLibConfig(new LibCore.LibConfig() { /* 自定义界面基础样式 */ });
    }
}

类库说明

核心依赖

基础核心,进行初始化和依赖对象的注入, 由 InfoSupportLibConfig 提供配置项

[图片上传失败...(image-72f37a-1575336981955)]

篇幅有限,更详细的配置范例移步 详细配置范例 查看

界面基础

ui目录提供了 基础的 BaseActivityBaseFragment 实现,各级界面 Base 类通过接口实现 约束,方便子类业务交互调用

[图片上传失败...(image-1528df-1575336981955)]

网络交互

RxHelper 依赖 Rxjava 提供了线程切换和结合基础界面接口 BaseView/BaseStateView 的交互和状态切换

(执行 Error consumer 均会触发 Logs 的异常日志收集上报)

// 显示 加载框,开始发起网络请求
showProgress();
addSubscribe(RetrofitHelper.getApis().login(email, password)
    .compose(RxHelper.toMain())
    .subscribe((respBean -> {
        hideProgress();
        // 失败,弹出异常文案
        if (respBean.isCodeFail()) {
            showToast(respBean.getMsg());
            return;
        }
        // 发送事件,登录成功
        RxBus.get().postEvent(Constant.Code.LOG_IN);
    }, RxUtil.getHideProgressError(this));

其他核心类

篇幅有限,更多的类库使用范例移步 核心类库使用范例 查看

ChangeLog

v1.2.0

v1.1.0

上一篇 下一篇

猜你喜欢

热点阅读