https://github.com/pakoito/functionalrx2
  
  
    FunctionalRx2 is a collection of constructs to simplify a functional programming approach to Java and Android [STABLE] 
    https://github.com/pakoito/functionalrx2
  
functional-programming java rxjava2
        Last synced: 7 months ago 
        JSON representation
    
FunctionalRx2 is a collection of constructs to simplify a functional programming approach to Java and Android [STABLE]
- Host: GitHub
- URL: https://github.com/pakoito/functionalrx2
- Owner: pakoito
- License: other
- Created: 2017-01-21T15:02:47.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2017-03-22T00:12:37.000Z (over 8 years ago)
- Last Synced: 2025-03-26T20:49:53.273Z (7 months ago)
- Topics: functional-programming, java, rxjava2
- Homepage:
- Size: 60.5 KB
- Stars: 83
- Watchers: 4
- Forks: 2
- Open Issues: 0
- 
            Metadata Files:
            - Readme: README.md
- License: LICENSE.md
 
Awesome Lists containing this project
README
          # FunctionalRx2
FunctionalRx2 is a collection of constructs to simplify a functional programming approach to development on Java and Android.
[](https://android-arsenal.com/details/1/5147)
For the RxJava 1.X version please go to [FunctionalRx](https://github.com/pakoito/FunctionalRx).
# Rationale
The base Java 7 framework does not contain most constructs to do even the simplest functional development. Given that functional programming is a paradigm that's not limited by languages, a series of libraries have been created to bridge some of the gap to others like Kotlin, Scala or Clojure.
FunctionalRx uses RxJava as a backend for their functions and helpers. It's meant to be used in combination with their rective streams.
# Usage
An overview of the libraries can be read at [Building a Functional Toolset on Android](http://www.pacoworks.com/2016/05/25/building-a-functional-toolset-for-android/) on my blog. If you want to see them in action, watch my presentation on [Fully Reactive Apps](http://www.pacoworks.com/2016/11/02/fully-reactive-apps-at-droidcon-uk-2016-2/) or visit the [FunctionalAndroidReference](https://github.com/pakoito/FunctionalAndroidReference) sample project.
A thorough description and examples of each construct can be found in the readme of their repositories:
[RxTuples2](https://github.com/pakoito/RxTuples2) - Simple tuples to use with RxJava
[RxSealedUnions2](https://github.com/pakoito/RxSealedUnions2) - Tagged Unions for the RxJava aesthete
[RxComprehensions](https://github.com/pakoito/RxComprehensions) - Reduce boilerplate in RxJava by abstracting chained flatMaps, concatMaps and switchMaps
[RxPartialApplication2](https://github.com/pakoito/RxPartialApplication2) - Simple partial application for FunctionN and ConsumerN on RxJava
[RxCurrying2](https://github.com/pakoito/RxCurrying2) - Simple currying for FuncN and ActionN on RxJava
[RxConsumers](https://github.com/pakoito/RxConsumers) - Simple ConsumerN composition to use with RxJava
[RxFunctions2](https://github.com/pakoito/RxFunctions2) - Advanced Function composition to use with RxJava
[RxMemoization2](https://github.com/pakoito/RxMemoization2) - Simple Function result caching for RxJava
## Distribution
Each library can be added individually, or as a group by adding FunctionalRx2.
Add as a dependency to your `build.gradle`
```groovy
repositories {
    ...
    maven { url "https://jitpack.io" }
    ...
}
    
dependencies {
    ...
    compile 'com.github.pakoito:FunctionalRx2:1.1.0'
    // This version includes:
    // compile 'com.github.pakoito:RxTuples2:1.0.0'
    // compile 'com.github.pakoito:RxSealedUnions2:1.0.0'
    // compile 'com.github.pakoito.RxComprehensions:rxcomprehensions2:1.3.0'
    // compile 'com.github.pakoito:RxMemoization2:1.0.0'
    // compile 'com.github.pakoito:RxPartialApplication2:1.0.0'
    // compile 'com.github.pakoito:RxCurrying2:1.0.0'
    // compile 'com.github.pakoito:RxFunctions2:1.0.0'
    // compile 'com.github.pakoito:RxConsumers:1.0.0'
    ...
}
```
or to your `pom.xml`
```xml
    
        jitpack.io
        https://jitpack.io
    
    com.github.pakoito
    FunctionalRx2
    1.1.0
```
## License
Copyright (c) pakoito 2017
The Apache Software License, Version 2.0
See LICENSE.md