Giter Site home page Giter Site logo

wukking / briefness Goto Github PK

View Code? Open in Web Editor NEW

This project forked from iwdael/briefness

0.0 0.0 0.0 2.66 MB

数据绑定、布局绑定、控件绑定、事件绑定、数据异常预处理、开发更加简单。

License: Apache License 2.0

Java 99.05% Kotlin 0.95%

briefness's Introduction

Briefness



数据绑定、布局绑定、控件绑定、事件绑定、数据异常预处理、开发更加简单。

特点

  • 支持MVVM(Model-View-ViewModel)
  • 支持任意数据类型绑定(包含自定义控件)
  • 支持任意类绑定(Activity、Fragment、Dialog、View 如果有需要普通类也可以)
  • 规避空指针引发的异常(防止项目开发中,数据异常引起的空指针)
  • 支持View绑定(我不建议你这样做,因为根本没有必要)
  • 支持点击事件双向绑定(Activity中绑、layout中也可以)
  • 支持长按点击事件绑定
  • 支持library、application
  • 支持布局绑定
  • 支持简单比较运算

概述

Briefness能够避免在项目开发中一些重复繁琐的工作,规避因数据异常引发的空指针异常,提高开发效率。它量身为MVVM框架打造,实现UI逻辑与业务分离,解耦,提高可重用性。 它提供了3种注解方式,9种xml属性完成数据绑定,事件绑定等操作。

属性 功能 控件
imports 引入需要绑定的类 root view
viewModel 引入Viewmodel root view
bind 绑定数据 view
click 点击监听 view
longClick 长按监听 view
textChanged 文本变化监听 TextView
checkChanged 选择变化监听 CheckBox
tabSelected 选择变化监听 TabLayout
tabUnselected 选择变化监听 TabLayout
pageSelected 选择变化监听 ViewPager
progressChanged 进度变化监听 SeekBar
radioChanged 选择变化监听 RadioButton
注解 功能
BindLayout 绑定布局,并解析布局文件
BindView 绑定控件
BindClick 绑定事件
Immersive 沉浸式

比较

注解控件 注解方法 注解布局 数据绑定 任意绑定 事件传递 学习成本
Briefness 支持 支持 支持 支持 支持 支持
Databinding 不支持 不支持 不支持 支持 不支持 支持
ButterKnife 支持 支持 不支持 不支持 不支持 不支持
XUtil 支持 支持 不支持 不支持 不支持 不支持

使用说明

  1. 在使用Briefness提供的功能之前,必须调用Briefness.bind方法,该方法会返回Briefenssor的一个实现类。

  2. 在绑定和引入类中,如果你需要绑定多个数据,或者引入多个类,请使用“|”符号隔开。

  3. "$"符号必须是成对使用的,使用"$"引起来的变量表示是需要变换的。

  4. 注解使用说明

  5. XML属性标签使用说明

  6. MVVM的使用与框架搭建

快速引入项目

合并以下代码到需要使用的Module的dependencies中。

	dependencies {
                ...
              implementation 'com.hacknife.briefness:briefness:2.3.1'
    	      annotationProcessor 'com.hacknife.briefness:briefness-compiler:2.3.1'
	}

混淆

-keep class * implements com.hacknife.briefness.Briefnessor{*;}
-keep @com.hacknife.briefness.BindLayout class *
-keep public interface com.hacknife.briefness.Briefnessor{public *;}
-keep class **.BriefnessInjector {
    *;
}
-keep class **.ViewInjector {
     *;
}




感谢浏览

请不要吝啬你的小星星,如果你有任何疑问,请加入QQ群,我将竭诚为你解答。
Image Text

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.