README.md 3.3 KB
Newer Older
Christophe Henry's avatar
Christophe Henry committed
1 2 3 4
# FreshRSS Android application

Finally, an Android application specifically dedicated to the awesome [FreshRSS aggregator](https://freshrss.org/)

5 6 7
![splash screen](./fastlane/metadata/android/en-US/images/phoneScreenshots/splash-screen.png)  
![landing all](./fastlane/metadata/android/en-US/images/phoneScreenshots/landing-all.png)![landing unread](./fastlane/metadata/android/en-US/images/phoneScreenshots/landing-unread.png)  
![subscription articles](./fastlane/metadata/android/en-US/images/phoneScreenshots/subscription-articles.png)![article details](./fastlane/metadata/android/en-US/images/phoneScreenshots/article-detail.png)
Christophe Henry's avatar
Christophe Henry committed
8

Christophe Henry's avatar
Christophe Henry committed
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
## Getting started

This project is a fairly standard Android application. As long as you use an correct setup of [Android studio](https://developer.android.com/studio/), 
everything should be fine.

## Running the tests

This project has no tests yet ¯\_(ツ)_/¯
There is an issue [about setting them up](https://git.feneas.org/christophehenry/freshrss-android/issues/16), 
though, as well as one for [setting up a CI](https://git.feneas.org/christophehenry/freshrss-android/issues/17)

## Contributing

As stated, this is a fairly standard Android project. There are a few things to know, though, before contributing...

1. This project is a pure Kotlin project. No Java will be tolerated. 
The original author is highly allergic to Java and was very happy to see the Android team embrace Kotlin. 
Since Kotlin is becoming the standard to develop Android applications 
(Android's support library are being rewritten in Kotlin, Jetpack — the Android library for rapid application development — 
is also written in Kotlin, and examples in Android's documentation show Kotlin code by default), this project adopted Kotlin.

2. It also heavily relies on [Jetpack](https://developer.android.com/jetpack/), the Android's rapid application development library. 
In particular, it uses:
  * [JP's data binding](https://developer.android.com/topic/libraries/data-binding/)
  * [`LiveData` classes](https://developer.android.com/topic/libraries/architecture/livedata)
  * [Navigation](https://developer.android.com/topic/libraries/architecture/navigation/)
  * [Room persistence library](https://developer.android.com/topic/libraries/architecture/room) for database interaction,
  * [`ViewModel`s](https://developer.android.com/topic/libraries/architecture/viewmodel)
It would be advised to read [Android's guid to app architecture](https://developer.android.com/jetpack/docs/guide)

3. It uses [Kovenent](http://kovenant.komponents.nl/), as Kotlin promise library to perform async operations.

4. It uses [Fuel](https://fuel.gitbook.io/documentation/) for HTTP requests.

5. You can debug your application using [Facebook's Stetho](http://facebook.github.io/stetho/).

45
6. Serialization and deserialization of HTTP request is handled by [Jackson](https://github.com/FasterXML/jackson-core). 
Christophe Henry's avatar
Christophe Henry committed
46 47 48 49 50 51 52 53 54 55

## License

This project is licenced under GNU GPL v.3. See [LICENSE](https://git.feneas.org/christophehenry/freshrss-android/blob/develop/LICENSE).

## Aknowledgments

Thanks to [Marien Fressinaud](https://github.com/marienfressinaud), 
[Alexandre Alapetite](https://github.com/Alkarex) and all the FreshRSS contributors for their awesome work. 
And thanks again to Alexandre for helping in understanding their implementation of Google reader's API.