Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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: about 2 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 8 years ago)
- Default Branch: master
- Last Pushed: 2017-03-22T00:12:37.000Z (almost 8 years ago)
- Last Synced: 2024-10-16T06:42:33.258Z (2 months ago)
- Topics: functional-programming, java, rxjava2
- Homepage:
- Size: 60.5 KB
- Stars: 83
- Watchers: 5
- 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.
[![Android Arsenal](https://img.shields.io/badge/Android%20Arsenal-FunctionalRx2-blue.svg?style=flat-square)](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