RxJava开发精要3-向响应式世界问好

页面导航:首页 > 软件编程 > Java编程 > RxJava开发精要3-向响应式世界问好

RxJava开发精要3-向响应式世界问好

来源: 作者: 时间:2016-01-18 15:52 【

原文出自《RxJava Essentials》 原文作者 : Ivan Morgillo 译文出自 : 开发技术前线 www devtf cn 转载声明: 本译文已授权开发者头条享有独家转载权,未经允许,不得转载! 译

向响应式世界问好

在上一章中,我们对观察者模式有个理论上的快速概述。我们也看了从头开始、从列表、或者从已经存在的函数来创建Observables。在本章中,我们将用我们学到的来创建我们第一个响应式Android应用程序。首先,我们需要搭建环境,导入需要的库和有用的库。然后我们将创建一个简单的应用程序,在不同的flavors中包含几个用RxJava填充的RecycleView items。

启动引擎

我们将使用IntelliJ IDEA/Android Studio来创建这个工程,因此你会对截图看起来比较熟悉。

让我们开始创建一个新的Android工程。你可以创建你自己的工程或者用本书中提供的导入。选择你自己喜欢的创建方式这取决于你。

\

依赖

很明显,我们将使用Gradle来管理我们的依赖列表。我们的build.gradble文件看起来像这样:
\

正如你看到的我们引入了RxAndroid。RxAndroid是RxJava的增强版,尤其是针对Android设计的。

RxAndroid

RxAndroid是RxJava家族的一部分。它基于RxJava1.0.x,在普通的RxJava基础上添加了几个有用的类。大多数情况下,它为Android添加了特殊的调度器。我们将在第七章Schedulers-Defeating the Android MainThread Issue再讨论它。

工具

出于实用,我们引入了Lombok 和 Butter Knife。这两个可以帮助我们在Android应用程序中少写许多模板类代码。

Lombok

Lombok使用注解的方式为你生成许多代码。我们将使用它老生成getter/settertoString()equals()hashCode()。它借助于Gradle依赖和一个Android Studio插件。

Butter Knife

Butter Knife使用注解的方式来帮助我们免去写findViewById()和设置点击监听的痛苦。至于Lombok,我们可以通过导入依赖和安装Android Studio插件来获得更好的体验。

Retrolambda

最后,我们导入Retrolambda,是因为我们开发的Android是基于Java 1.6,然后我们可以借助它来实现Java 8 Lambda函数从而减少许多模板代码。

我们的第一个Observable

在我们的第一个列子里,我们将检索安装的应用列表并填充RecycleView的item来展示它们。我们也设想一个下拉刷新的功能和一个进度条来告知用户当前任务正在执行。

首先,我们创建Observable。我们需要一个函数来检索安装的应用程序列表并把它提供给我们的观察者。我们一个接一个的发射这些应用程序数据,将它们分组到一个单独的列表中,以此来展示响应式方法的灵活性。

private ObservableD4NCjxwcmUgY2xhc3M9"brush:java;">
private void refreshTheList() {
    getApps().toSortedList()
            .subscribe(new Observablejust(),repeat(),defer(),range(),interval(),和timer()方法展示一些例子。

just()

假如我们只有3个独立的AppInfo对象并且我们想把他们转化为Observable并填充到RecyclerView的item中:

List应用程序。我们从头、从已有的列表、从已有的函数来创建Observable。我们也学习了如何创建重复发射的Observables,间隔发射的Observables以及延迟发射的Observables。

在下一章中,我们将掌握过滤操作,能够从我们接收到的序列中创建我们需要的序列。

Tags:

文章评论


<