SweetBank

Sweet Bank is an Android app in Kotlin that I developed to play around with some principles of mobile development such as scope separation, design patterns ( such as MVVM ), and much more. I used Starling Bank APIs to fetch and send data to the Sandbox: this really helped me to focus on what really matters. Their APIs are very well documented and there is a lot to explore in their developer dashboard. I used the MVVM pattern to make the code more readable, scalable, and easily testable. To do this I divided the project into view slices and three layers.

Date
2.1.20
Scroll Down

Under the Hood

Sweet Bank is an Android app in Kotlin that I developed to play around with some principles of the mobile development such as scope separation, design patterns ( such as MVVM ) and much more.

I used Starling Bank APIs to fetch and send data to the Sandbox: this really helped me to focus on what really matters. Their APIs are very well documented and there is a lot to explore in their developer dashboard. Try it!

Version 2.0.0 released!

I decided to change the UI ( yeah, again ) and I got big help from my brother with all the new concepts and elements of the home screen. Motion Layout is now even more present here and the blobs move up along with the sheet.

The "Payee" part has been hidden ( temporary ) and the "profile picture" upload has been added instead ( with a picture rotation fix function ).

I changed the implementation of the styles by adding ☀️🌑 Dark Theme , using the Theme.MaterialComponents.DayNight.NoActionBar, and the typography system, using the TextAppearance.MdcTypographyStyles.

I started using Koin instead of Dagger2, just because I wanted to try that: it's nice, for a project this small!

I used the MVVM pattern to make the code more readable, scalable and easily testable. To do this I divided the project into view slices and three layers:

  1. UI
  2. Repository - that could handle both local (SharedPrefs etc…) and network requests
  3. Network - that fetches the data from StarlingBank APIs

As you can see from the above picture ( you can click it if you want to zoom the structure ) the app is divided into several modules that communicate altogether.

I used some libraries such as:

  1. Android Jetpack ( ViewModels, LiveData )
  2. ViewPager2
  3. Dagger
  4. Retrofit
  5. Kotlin Coroutines
  6. Moshi
  7. Google Android Material
  8. JUnit4 / Coroutine-test
  9. Mockk
  10. Shimmer Animation for Android ( Facebook )
  11. MotionLayout