The applications architecture is based on RxJava and Dagger. The REST api is consumed using retrofit.
I have tried my best to utilize and demonstrate things on the top of my mind:
- Dagger
- RxJava
- Java8 and RetroLambda
- RecyclerView
- SupportAnnotations
- Abstraction when handling errors and showing loading progress
- Abstraction in fragments and adapters
- Basic Android Unit Tests to consume webservices
- View Injections for cleaner code
Would like to demonstrate further
- Spoon and ability to tests UI on multiple devices
- Activity Rules
- Espresso
- Better UI with parallex Image View for detail view
- About Fragment
- Mock Ok Http Client with an error rate
- Better Image palceholders
- Better Implmentation of Loading listener
- Tablet Layouts
- Logging leveraging DI
- UnitTests for HandlerSubscriber class
- Bus leveraging Rx to do inter Fragment activity communication
- New Permissions api
- New Data Binding api
- Alternate layout for landscape orientation of Detail
- Using android annotations to clean up some more code
Stuff that should be a part of production app:
- Analytics
- Crash Reports
- Bug Report Sender (Instabug)
- Priority Queues for Http requests
- Glide configuration with insight to app data