Skip to content

My first technical test. MVVM architecture, Coroutines, Navigation, Retrofit, Room, Moshi, RxJava3, DataStore Preferences. ✔ Lead to a job offer

Notifications You must be signed in to change notification settings

sophicapri/MySmartHome

Repository files navigation

Technical test project

My Smart Home

An app that lets the user control their connected devices.

Technical Stack and Libraries Used

  • MVVM Architecture
  • AndroidX
  • Android KTX
  • Navigation
  • View Binding
  • Lifecycles - To create a UI that automatically responds to lifecycle events.
  • LiveData - Build data objects that notify views when the underlying database changes.
  • ViewModel - To store UI-related data that isn't destroyed on app configuration changes.
  • Room - Local database.
  • Hilt: - For dependency injection
  • Kotlin Coroutines - For managing background threads with simplified code and reducing needs for callbacks
  • Preferences DataStore - To store simple data. "DataStore uses Kotlin coroutines and Flow to store data asynchronously, consistently, and transactionally."
  • RxKotlin/RxJava - In this project I've used it to handle the call to the remote data. But I could've used Coroutines Flow for more consistency in the entire project.
  • Retrofit - REST client for web services calls.
  • Moshi - JSON library to parse remote data.
  • MockK - Mocking library for easier and more readable tests.
  • Lottie - Animations library.
  • LeakCanary - A memory leak detection library.

About

My first technical test. MVVM architecture, Coroutines, Navigation, Retrofit, Room, Moshi, RxJava3, DataStore Preferences. ✔ Lead to a job offer

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published