All Projects → revolut-mobile → RxData

revolut-mobile / RxData

Licence: Apache-2.0 license
RxData is Android mobile library for building reactive data flow in Android application.

Programming Languages

kotlin
9241 projects
java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to RxData

MockAppMVVM
A sample app structure using the MVVM architecture using Retrofit, Dagger2, LiveData, RxJava, ViewModel and Room.
Stars: ✭ 14 (-68.18%)
Mutual labels:  rxjava2, rx-android
RxPagination
Implement pagination in just few lines with RxPagination
Stars: ✭ 20 (-54.55%)
Mutual labels:  rxjava2, rxkotlin
repolib-android
RepoLib Rx - Android
Stars: ✭ 13 (-70.45%)
Mutual labels:  rxjava2, rxkotlin
Poolakey
Android In-App Billing SDK for Cafe Bazaar App Store
Stars: ✭ 60 (+36.36%)
Mutual labels:  rxjava2, rxkotlin
Theatre
Pet project using Clean Architecture + MVVM + Reactive Extensions + Android Architecture Components. The data are fetched from LondonTheatreDirect API. 🎭
Stars: ✭ 577 (+1211.36%)
Mutual labels:  rxjava2, rxkotlin
MVPArchitecture
Android MVP architecture in Kotlin using Dagger2, RxJava2, Retrofit2 and so on
Stars: ✭ 27 (-38.64%)
Mutual labels:  rxjava2, rxkotlin
demo-vertx-kotlin-rxjava2-kubernetes
Demonstration of Eclipse Vert.x, Kotlin, RxJava2 and Kubernetes
Stars: ✭ 23 (-47.73%)
Mutual labels:  rxjava2, rxkotlin
Kotlin Android Mvp Starter
Create/Generate your kotlin MVP projects easily
Stars: ✭ 270 (+513.64%)
Mutual labels:  rxjava2, rxkotlin
Rxanimation
Simple way to animate your views on Android with Rx 🚀
Stars: ✭ 521 (+1084.09%)
Mutual labels:  rxjava2, rxkotlin
Rxbiometric
☝️ RxJava and RxKotlin bindings for Biometric Prompt (Fingerprint Scanner) on Android
Stars: ✭ 295 (+570.45%)
Mutual labels:  rxjava2, rxkotlin
Istheapp
Open-source android spyware
Stars: ✭ 186 (+322.73%)
Mutual labels:  rxjava2, rxkotlin
Aic Mobile Android
Art Institute of Chicago Official Mobile App - Android
Stars: ✭ 31 (-29.55%)
Mutual labels:  rxjava2, rxkotlin
java-modern-tech-practice
😎 Java™ modern tech practice sandbox ⏳
Stars: ✭ 43 (-2.27%)
Mutual labels:  rxjava2, rxkotlin
MVPSamples
🚀(Java 版)快速搭建 MVP + RxJava + Retrofit + EventBus 的框架,方便快速开发新项目、减少开发成本。
Stars: ✭ 113 (+156.82%)
Mutual labels:  rxjava2
BakingApp
Udacity Android Developer Nanodegree, project 2.
Stars: ✭ 54 (+22.73%)
Mutual labels:  rxjava2
Android-Code-Demos
📦 Android learning code demos.
Stars: ✭ 41 (-6.82%)
Mutual labels:  rxjava2
Atoms-mvp
A component architecture for android applications based on MVP
Stars: ✭ 63 (+43.18%)
Mutual labels:  rxjava2
WanAndroid
wanandroid的Kotlin版,采用Android X
Stars: ✭ 20 (-54.55%)
Mutual labels:  rxjava2
Android
Step by step guide for various components in android
Stars: ✭ 32 (-27.27%)
Mutual labels:  rxjava2
Sunset-hadith
Islamic app written with Kotlin, using KTOR + coroutines + flow + MVVM + Android Jetpack + Navigation component. Old version using RxJava + Retrofit + OKHttp
Stars: ✭ 26 (-40.91%)
Mutual labels:  rxjava2

RxData Version PRs Welcome

RxData is Android mobile library for building reactive data flow in Android application.

Installation

Gradle is the only supported build configuration. Since 1.4 RxData is hosted on mavenCentral, in order to fetch the dependency, add the following lines to your project level build.gradle.kts:

allprojects {
    repositories {
        mavenCentral()
    }
}

And then to the module level build.gradle.kts:

dependencies {
    implementation 'com.revolut.rxdata:dod:1.4'
    implementation 'com.revolut.rxdata:core:1.4'
    implementation 'com.revolut.rxdata:scheduler:1.4'
}

You can add only the necessary modules. Core would be required everywhere for defining interfaces and working with models, but core only needed in data layer, where you are going to be implementing DataObservableDelegate.

Scheduler is completely optional library for Android modules.

Snapshots

For using snapshot dependencies use the separate repository:

allprojects {
    repositories {
        maven(url = "https://s01.oss.sonatype.org/content/repositories/snapshots/")
    }
}

Examples

You can find several examples of how RxData is used in Revolut application in this Revolut Tech article. Also, fully documentation TBD soon here.

Here is the exemplary code that get you started in your application:

private val observePortfolio: DataObservableDelegate<Any, String, Portfolio> = DataObservableDelegate(
    fromNetwork = {
        tradingService.getPortfolio()
            .flatMap { portfolioDto ->
                getConfig().map { stocksConfig -> portfolioDto.toDomain(stocksConfig) }
            }         
    }

    // You can define other network / memory / storage lambdas here
)

Contribution

You can also take part in improving RxData codebase! We do appreciate community engagement in that project.

You can propose bugfix or improvement to this project by submitting a pull request.

When sharing the code, please make sure that your contribution follows the existing code convention to let keep the code clean and readable.

License

Copyright 2019 Revolut

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].