- RxJava/RxAndroid: In my opinion, Rx is the best way to do async operations. It's easy to execute task in any thread that you want and has a lot of operators to switch between them, to perform actions on stream and error handling. There's a big community behind.
- Retrofit: It's the client HTTP that I know better and the most popular for Android. I started using it because was the first to support Rx.
- Butterknife: For view binding. Reduces the boilerplate.
- Picasso: I usually use Glide to perform image downloading and caching operations but that's fine knows anything else new. Very easy to use.
- JUnit, Espresso, Mockito and the rest: Recommended libraries to execute unit and instrumented test.
Download apk if there are any build or configuration problem.