Code challenge Android
Create a simple photo library that downloads images from [flickr] (https://www.flickr.com/services/api/) and that uses most if not all of the below:
- [MVVM Pattern] (https://github.com/googlesamples/android-architecture)
- [Architecture Components] (https://developer.android.com/topic/libraries/architecture/)
- [BindingAdapter] (https://developer.android.com/reference/android/databinding/BindingAdapter.html)
- [ConstraintLayout] (https://developer.android.com/training/constraint-layout/)
- [Retrofit2] (https://github.com/square/retrofit)
- [RxJava2] (https://github.com/ReactiveX/RxJava)
- [Glide v4] (https://github.com/bumptech/glide)
- [GlideModule] (http://bumptech.github.io/glide/doc/generatedapi.html#availability)
- [LeakCanary] (https://github.com/square/leakcanary)
- [OkHttp] (https://github.com/square/okhttp)
- [DataBinding] (https://developer.android.com/topic/libraries/data-binding/index.html)
- [Room Persistence Library] (https://github.com/googlecodelabs/android-room-with-a-view)
- [Espresso - Testing] (https://github.com/googlesamples/android-testing)
- [Firebase & Firestore] (https://firebase.google.com/docs/firestore/)
- Search for images by keyword
- Download pictures from the flickr api and display them (Grid or Constraint Layout)
- Implement a
Detail
screen which should show the picture in bigger resolution/ full screen - Add save to device function
- Add unit tests
- Download images without using any external libraries (i.e. use native)
- Share the pictures, use swipe gestures, custom animations
Please follow clean code principles!
Happy Coding!