RoboBinding 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
RoboBinding 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
RoboBinding 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」 !
RoboBinding 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」「最积极运营项目」 !
RoboBinding 获得 2020 年度 OSC 中国开源项目评选「最积极运营项目」 !

软件简介

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

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (4)

加载中
打分: 较差
和DateBinding貌似没有太大的区别
2017/10/10 15:10
回复
举报
打分: 较差
我还是学习DateBinding吧
2017/03/16 16:18
回复
举报
数据绑定机制太弱,不能支持{model.name}这样,暂时还无法投入生产环境 RoboBinding
2014/09/14 11:40
回复
举报
不利于代码的混淆,写死在xml里面 RoboBinding
2014/09/14 14:48
回复
举报
更多评论
发表了资讯
2015/08/02 00:00

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

RoboBinding 0.8.10 发布了,在这个新版本中,你可以为80%以上的Android Views或自定义Views声明简单单向绑定如下。RoboBinding为你产生代码。没有性能影响,纯静态。 @ViewBinding(simpleOneWayProperties={"typeface"}) class MyTextViewBinding extends CustomViewBinding<TextView> {   ... } 这样,你就可以开始使用typeface这个属性来做绑定了。详细请从这里开始了解。...

11
19
发表了资讯
2014/09/27 00:00

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

RoboBinding目前是最受欢迎的Android native MVVM框架。其他的有Android Binding,Bindroid等。 RoboBinding是一个实现了数据绑定 Presentation Model(MVVM) 模式的Android开源框架。请看框架介绍与最简单的AndroidMVVM了解学习。MVVM模式是MVC模式的重要更新,使得项目结构更加的优美,易于维护以及方便于测试。这也是为什么几个主流的语言都有相应的MVVM框架实现如Microsfot WPF, Silverlight,JavaFX以及Flex。 项目的地址也...

0
38
发表了资讯
2014/09/21 00:00

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

首先恭喜RoboBinding成为最流行的Android native MVVM框架。 RoboBinding是一个实现了数据绑定 Presentation Model(MVVM) 模式的Android开源框架。请看框架介绍了解学习。MVVM模式是MVC模式的重要更新,使得项目结构更加的优美,易于维护以及方便于测试。这也是为什么几个主流的语言都有相应的MVVM框架实现如Microsfot WPF, Silverlight,JavaFX以及Flex。 项目的地址也入门介绍: 框架首页 - https://github.com/RoboBinding/R...

8
21
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
2020/01/17 10:28

Android上的MVC模式

是否可以在Android版Java中实现模型-视图-控制器模式? 还是已经通过活动实施了? 还是有更好的方法来为Android实现MVC模式? #1楼 我认为最有用的简化说明在这里: http : //www.cs.otago.ac.nz/cosc346/labs/COSC346-lab2.2up.pdf 从我在这里看到和阅读的所有其他内容来看,实现所有这些东西会使它变得更加困难,并且与android的其他部分不太匹配。 通过活动实现其他侦听器已经是Android的标准方法。 最无害的方法是像幻灯片中...

0
0
发表了博客
2019/08/12 07:31

[源码和文档分享]基于Android的生活助手APP的设计与实现

摘 要 随着移动互联网的高速发展,Android操作系统在移动设备中地位已经被牢牢稳固。然而大量的Android设备高速普及过程中,与其配套的Android应用的开发速度和项目质量极为令人担忧。本课题的研究目的是通过114生活助手系统的开发,寻找Android应用快速迭代开发和高质量保证的开发方式。 在课题的研究过程中,通过对114生活助手系统的开发。实现了手机端的交通信息查询,建立了简易的在线交易市场,并实现了一套基于位置的周边...

0
0
发表了博客
2019/08/12 07:45

[源码和文档分享]基于Android的生活助手APP的设计与实现

摘 要 随着移动互联网的高速发展,Android操作系统在移动设备中地位已经被牢牢稳固。然而大量的Android设备高速普及过程中,与其配套的Android应用的开发速度和项目质量极为令人担忧。本课题的研究目的是通过114生活助手系统的开发,寻找Android应用快速迭代开发和高质量保证的开发方式。 在课题的研究过程中,通过对114生活助手系统的开发。实现了手机端的交通信息查询,建立了简易的在线交易市场,并实现了一套基于位置的周边...

0
0
发表了博客
2019/08/14 16:59

[源码和文档分享]基于Android的生活助手APP的设计与实现

摘 要 随着移动互联网的高速发展,Android操作系统在移动设备中地位已经被牢牢稳固。然而大量的Android设备高速普及过程中,与其配套的Android应用的开发速度和项目质量极为令人担忧。本课题的研究目的是通过114生活助手系统的开发,寻找Android应用快速迭代开发和高质量保证的开发方式。 在课题的研究过程中,通过对114生活助手系统的开发。实现了手机端的交通信息查询,建立了简易的在线交易市场,并实现了一套基于位置的周边...

0
0
发表了博客
2018/02/08 12:34

从零開始的Android新项目7 - Data Binding入门篇

Data Binding自从去年的Google I/O公布到至今,也有近一年的时间了。这一年来,从Beta到如今比較完好的版本号。从Android Studio 1.3到如今2.1.2的支持,能够说Data Binding已经是一个可用度较高,也能带来实际生产力提升的技术了。 然而其实,真正使用到Data Binding的公司、项目仍然是比較少的。 可能是出于稳定性考虑,亦或是对Data Binding技术本身不够熟悉,又也许对新技术没什么追求。 我司在新的产品中就全面使用了Data ...

0
0
发表了博客
2016/03/11 15:50

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

不知道从什么时候开始,很多一说起国产好像就非常愤慨,其实大可不必。做开源中国六年有余,这六年时间国内的开源蓬勃发展,从一开始的使用到贡献,到推出自己很多的开源软件,而且还有很多软件被国外的认可。中国是开源不可忽视的力量。 而我们这个榜单也是从这些国人开发、主要参与开发或者基于国外开源软件进行改进并形成独立版本的软件中,根据该软件的访问、收藏、下载等多个角度,从而得出前 100 名最受欢迎的开源软件。我...

0
24
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
4 评论
242 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部