felipeabsilva / MovieWish

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

MovieWish

Application Layers:

Adapter: Includes the recycler view adapters and viewholders, responsible for creating the movies and genres list.

Data: Includes database package, which manages all the data received from API. Includes model package, providing the data model for the API requests.

Remote: Build and Manage the API requests.

Repository: It's the connection between the functions provided from Database to ViewModel.

Utilities: It has some object extensions and Constants which makes the functions handle easier.

View: Includes all the app views, which manages the UI changes.

ViewModel: Provides to View all it needs to manage the UI changes.

Libraries:
Kodein as Dependecy Injection
Retrofit as API Request and Cache
GsonConverter as JSON Manager
Glide as Image Loader

1. What is the principle of sole responsibility? What's its purpose?
It's about each class be responsible for just one thing. It makes the code interpretation, implementation, and maintenance easier.

2. What characteristics does, in your opinion, have a "good" code or clean code?
Each class needs to have a sole responsability.
The project follows some development pattern (like MVVM or MVP)
The variables and functions name are self explanatory.
All the ids follow some pattern, like (view tipe + layout name + view reference. E.g.: image_main_movie)
All the strings are extracted to the strings file.
Code reuse and object extensions.

About


Languages

Language:Kotlin 100.0%