All Projects → florent37 → Rx.observe

florent37 / Rx.observe

Licence: apache-2.0
Transform any method to an Rx Observable ! (VIPER)

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Rx.observe

android-online-course
Android Online Course
Stars: ✭ 22 (-35.29%)
Mutual labels:  rxjava, rxjava2, rxjava-android
Android Kotlin Mvp Architecture
This repository contains a detailed sample app that implements MVP architecture in Kotlin using Dagger2, Room, RxJava2, FastAndroidNetworking and PlaceholderView
Stars: ✭ 615 (+1708.82%)
Mutual labels:  rxjava, rxjava2, rxjava-android
RxRetroAPICall
API call example using Retrofit and RxJava2
Stars: ✭ 16 (-52.94%)
Mutual labels:  rxjava, rxjava2, rxjava-android
Rxjavapriorityscheduler
RxPS - RxJavaPriorityScheduler - A RxJava Priority Scheduler library for Android and Java applications
Stars: ✭ 138 (+305.88%)
Mutual labels:  rxjava, rxjava2, rxjava-android
Rxcache
简单一步,缓存搞定。这是一个专用于 RxJava,解决 Android 中对任何 Observable 发出的结果做缓存处理的框架
Stars: ✭ 377 (+1008.82%)
Mutual labels:  rxjava, rxjava2, rxjava-android
Android Clean Architecture Boilerplate
Apply clean architecture on Android
Stars: ✭ 141 (+314.71%)
Mutual labels:  rxjava, rxjava2, architecture
Rxanime
Visualizer to understand RxJava operators
Stars: ✭ 261 (+667.65%)
Mutual labels:  rxjava, rxjava2, rxjava-android
T Mvp
Android AOP Architecture by Apt, AspectJ, Javassisit, based on Realm+Databinding+MVP+Retrofit+Rxjava2
Stars: ✭ 2,740 (+7958.82%)
Mutual labels:  rxjava, rxjava2, apt
Grox
Grox helps to maintain the state of Java / Android apps.
Stars: ✭ 336 (+888.24%)
Mutual labels:  rxjava, rxjava2, rxjava-android
Freezer
A simple & fluent Android ORM, how can it be easier ? RxJava2 compatible
Stars: ✭ 326 (+858.82%)
Mutual labels:  rxjava, rxjava2, rxjava-android
Mvpframes
整合大量主流开源项目并且可高度配置化的 Android MVP 快速集成框架,支持 AndroidX
Stars: ✭ 100 (+194.12%)
Mutual labels:  rxjava, rxjava2, rxjava-android
Rxjava2 Operators Magician
你用不惯 RxJava,只因缺了这把钥匙 🔑 You are not used to RxJava, just because of the lack of this key.
Stars: ✭ 868 (+2452.94%)
Mutual labels:  rxjava, rxjava2, rxjava-android
Thirtyinch
a MVP library for Android favoring a stateful Presenter
Stars: ✭ 1,052 (+2994.12%)
Mutual labels:  rxjava, rxjava2, architecture
AndroidVIP
Android project to experiment the VIPER approach using mosby, RxJava and dagger2
Stars: ✭ 21 (-38.24%)
Mutual labels:  viper, rxjava2, rxjava-android
Nybus
NYBus (RxBus) - A pub-sub library for Android and Java applications
Stars: ✭ 283 (+732.35%)
Mutual labels:  rxjava, rxjava2, rxjava-android
Android Mvp Architecture
This repository contains a detailed sample app that implements MVP architecture using Dagger2, GreenDao, RxJava2, FastAndroidNetworking and PlaceholderView
Stars: ✭ 4,360 (+12723.53%)
Mutual labels:  rxjava, rxjava2, rxjava-android
Traceur
Easier RxJava2 debugging with better stacktraces
Stars: ✭ 502 (+1376.47%)
Mutual labels:  rxjava, rxjava2, rxjava-android
Retrofitclient
基于Retrofit2.x和Rxjava2.x封装的请求工具类(内含Retrofit2.x & rxjava1.x)
Stars: ✭ 532 (+1464.71%)
Mutual labels:  rxjava, rxjava2
Swift Viper Module
Xcode template for VIPER Architecture written in Swift 4
Stars: ✭ 527 (+1450%)
Mutual labels:  viper, architecture
Rxjava2 Android Samples
RxJava 2 Android Examples - Migration From RxJava 1 to RxJava 2 - How to use RxJava 2 in Android
Stars: ✭ 4,950 (+14458.82%)
Mutual labels:  rxjava, rxjava2

Rx.Observe

RxJava2 ready !

Android app on Google Play

Create an interface with @Observe annotated method

public class User {

       private int age;

       @Observe
       public int getAge() {
           return age;
       }

       @Observe
       public void setAge(int age) {
           this.age = age;
       }

}

Will generate 2 observables

Observable<Integer> getAge()

Observable<T> setAge(T toReturn, int age)

setAge is a void method so it will return the first T toReturn argument (useful for your flatmaps)

Those observable are accessible through Rx.observe(user)

Static

public class Calculator {

    @Observe
    public static int addOne(int number) {
        return number + 1;
    }

}

Will generate

Observable<T> addOne(int age)

Accessible through Rx.observeCalculator()

Example

User user = new User();

Rx.observe(user).setAge(user, 3)
         .flatMap(u -> Rx.observe(u).getAge())
         .flatMap(age -> Rx.observeCalculator().addOne(age))

         .subscribeOn(Schedulers.newThread())
         .observeOn(AndroidSchedulers.mainThread())

         .subscribe(integer -> {
             Toast.makeText(getBaseContext(), "" + integer, Toast.LENGTH_SHORT).show();
         });

RxJava2

Rx.Observable is also compatible with @Single, @Flowable, @Completable

Download

Buy Me a Coffee at ko-fi.com

In your module Download

repositories {
    google()
    jcenter()
    maven { url "https://dl.bintray.com/florent37/maven" }
    // ...
}
provided 'com.github.florent37:rxobserve-annotations:1.0.0'
annotationProcessor 'com.github.florent37:rxobserve-compiler:1.0.0'

compile 'io.reactivex:rxjava2:2.0.7'

Credits

Author: Florent Champigny http://www.florentchampigny.com/

Blog : http://www.tutos-android-france.com/

Fiches Plateau Moto : https://www.fiches-plateau-moto.fr/

Android app on Google Play Follow me on Google+ Follow me on Twitter Follow me on LinkedIn

License

Copyright 2017 florent37, Inc.

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].