Android数据绑定框架 RoboBinding

Android数据绑定框架 RoboBinding

Apache
Java
Android
2014-09-14
cheng112

RoboBinding是一个实现了数据绑定 Presentation Model(MVVM) 模式的Android开源框架。从简单的角度看,他移除了如addXXListener(),findViewById()这些不必要的代码,连如BufferKnife那样的InjectView都不需要,因为你的代码一般不需要依赖于这些界面组件信息。下面以一个最简单的AndroidMVVM为例。

Layout:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:bind="http://robobinding.org/android">
    <TextView
        bind:text="{hello}" />
        ...
    <Button
        android:text="Say Hello"
        bind:onClick="sayHello"/>
</LinearLayout>

Presentation Model:

public class PresentationModel extends AbstractPresentationModel {
    private String name;
    public String getHello() {
        return name + ": hello Android MVVM(Presentation Model)!";
    }
    ...
    public void sayHello() {
        firePropertyChange("hello");
    }
}

Activity将layout与对应的presentation model绑定在一起。

public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        ...
        PresentationModel presentationModel = new PresentationModel();
        View rootView = Binders.inflateAndBindWithoutPreInitializingViews(this, R.layout.activity_main, presentationModel);
        setContentView(rootView);
    }
}

这样layout的{hello}与PresentationModel.hello绑定,layout的sayHello与PresenationModel.sayHello方法绑定。我们不需要在Layout中定义TextView, Button的Id因为我们不关心,且没有必要。当我们进一步观察时,我们发现PresentationModel是一个Pure POJO。这也是为什么软件界的泰斗Martin Fowler在2004年,提出了Presenation Model(MVVM) 模式。它是我们所熟悉的MVC的升级,进一步的把界面状态与逻辑解藕到Presentation Model中。我们可以通过以下几个示例项目学习RoboBinding使用,他们都可以直接导入Android Studio无需额外配置:

1.AndroidMVVM,最小的RoboBinding使用例子。

2.Album Sample,是Martin Fowler的Presentation Model模式原始例子基于RoboBinding的Android翻译版本。

3.Gallery,是用于展示RoboBinding的各种特性的使用包含Fragment, Menu, ViewPager等。

项目的中文文档地址是:http://robobinding.github.io/RoboBinding/index.zh.html

加载中

评论(4)

迟墨亚
迟墨亚
和DateBinding貌似没有太大的区别
飞翔的爱码士
飞翔的爱码士
我还是学习DateBinding吧
火-星-人
火-星-人
数据绑定机制太弱,不能支持{model.name}这样,暂时还无法投入生产环境 RoboBinding
Forever____
Forever____
不利于代码的混淆,写死在xml里面 RoboBinding

RoboBinding 0.8.10 发布 - Android数据绑定框架

RoboBinding 0.8.10 发布了,在这个新版本中,你可以为80%以上的Android Views或自定义Views声明简单单向绑定如下。RoboBinding为你产生代码。没有性能影响,纯静态。 @ViewBinding(simpleO...

2015/08/02 14:38

RoboBinding 0.8.8 发布,Android数据绑定框架

RoboBinding目前是最受欢迎的Android native MVVM框架。其他的有Android Binding,Bindroid等。 RoboBinding是一个实现了数据绑定 Presentation Model(MVVM) 模式的Android开源框架。请看框架...

2014/09/27 12:18

RoboBinding 0.8.6 发布,Android数据绑定框架

首先恭喜RoboBinding成为最流行的Android native MVVM框架。 RoboBinding是一个实现了数据绑定 Presentation Model(MVVM) 模式的Android开源框架。请看框架介绍了解学习。MVVM模式是MVC模式的...

2014/09/21 16:21

没有更多内容

加载失败,请刷新页面

没有更多内容

暂无问答

2014年国人开发的最热门的开源软件TOP 100

不知道从什么时候开始,很多一说起国产好像就非常愤慨,其实大可不必。做开源中国六年有余,这六年时间国内的开源蓬勃发展,从一开始的使用到贡献,到推出自己很多的开源软件,而且还有很多软...

2016/03/11 15:50
421
1

没有更多内容

加载失败,请刷新页面

没有更多内容

返回顶部
顶部