Skip to content

ilya-rb/RevolutTestTask

Repository files navigation

Revolut test task

Release APK can be found here

CircleCI codecov

List all currencies you get from the endpoint (one per row). Each row has an input where you can enter any amount of money. When you tap on a currency row it should slide to the top and it's input becomes the first responder. When you’re changing the amount the app must simultaneously update the corresponding value for other currencies. Use any libraries and languages(java/kotlin) you want. Please, note that the solution should be ​production ready. ​(Please use the public stable version of Android studio, if you’re using this IDE for development).

Tech stack

  • Kotlin
  • RxJava3
  • Dagger
  • AndroidX libraries (Material, ViewModel, RecyclerView, etc..)
  • Glide
  • Retrofit (Moshi for deserialization)
  • Adapter delegates for RecyclerView
  • Binary preferences as a file cache
  • LeakCanary and Flipper for debugging
  • JUnit5 for unit and integration tests
  • Jacoco for tests coverage
  • Detekt for static analysis
  • CircleCI as a CI server
  • Firebase crashlytics
  • Timber for logging
  • a small bunch of functional tests with Kaspresso

Additional things included

  • Dark theme support
  • Offline mode (caching and auto reconnecting when network available)
  • Settings connectivity panel (from Android Q)
  • Edge to edge support

Screenshots

1 2 6 3 4 5 7