Skip to content

App for managing favourite albums. Task given as part of an application for an internship as Android-Developer

Notifications You must be signed in to change notification settings

Minh-Trng/MusicManager

Repository files navigation

MusicManager

App for managing favourite albums. Excercise based on a task with requirements.

Time spent on the project

Estimated Time until all requirements were fulfilled: 40-45 hours (including time spent on reading about different frameworks and problems) Breakdown of the days:

  • Monday, 24.12:
    8-10 hours (around 5h trying to create a Create a CustomConverter and its factory to unwrap the JSON-Response, both were discarded and replaced with a custom Interceptor)
  • Tuesday, 25.12:
    8-10 hours (around 4 hours reading up on Navigation Component and Dagger to solve the dependency problem in Repository and ViewModel. Dagger did not end up being used in the project)
  • Wednesday, 26.12:
    8-10 hours (around 3 hours to solve the fact, that the API is not consistent, in the instances of returned Albums. Solution: custom JSONDeserializer, more information on this as a comment above the Deserializer-class)
  • Thursday, 27.12:
    8-10 hours (around 3 hours to solve a databinding problem in AlbumDetailFragment, more details can be found as a comment in the class)
  • Friday, 28.12:
    5 hours
  • Saturday, 29.12:
    30 minutes for introducing SingleLiveEvent-class

Remarks on design decisions:

  • Package-structure: by feature (in my opinion much easier to work with, as coupled classes are easier to find)
  • AlbumRepository is a classical Singleton with getInstance()-method. Another solution would have been using Kotlins Object-class with an init()-Method which is called in an extended application class. Looking back, the latter might have been the better decision, since the Viewmodels would not require the injection of the repository-dependency through the ViewModelFactory in that case.

About

App for managing favourite albums. Task given as part of an application for an internship as Android-Developer

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages