Skip to content

luizcamposmc/ExactaChallenge

Repository files navigation

Exacta Challenge

Features

  • Clean Architecture with MVVM
  • View Components
  • Kotlin Coroutines with Flow
  • Room Database
  • Dagger Hilt
  • Navigation Component
  • Retrofit
  • OkHttp Interceptor
  • Image manipulation

Prerequisite

To build this project, you require:

  • Android Studio Dolphin
  • Gradle 7.4
  • Kotlin 1.7.20
  • Android Gradle Plugin 7.4

Screenshots


Libraries

  • ViewModel - Presenter for persisting view state across config changes
  • MutableStateFlow - Provides a setter for value
  • StateFlow - Is a state-holder observable flow that emits the current and new state updates to its collectors
  • MutableLiveData - LiveData which publicly exposes setValue and postValue method
  • LiveData - Is considers an observer, which is represented by the Observer class, to be in an active state if its lifecycle is in the STARTED or RESUMED state. LiveData only notifies active observers about updates
  • Room - Provides abstraction layer over SQLite
  • kotlinx.coroutines - Library Support for coroutines,provides runBlocking coroutine builder used in tests
  • Espresso - Test framework to write UI Tests
  • Dagger Hilt - Handles dependency injection
  • Toasty - The usual Toast, but with steroids
  • Retrofit - A type-safe HTTP client for Android and Java
  • OkHttp Interceptor - An OkHttp interceptor which logs HTTP request and response data
  • Glide - A fast and efficient open source media management and image loading framework for Android that wraps media decoding, memory and disk caching, and resource pooling into a simple and easy to use interface

License

Copyright 2021-2022 Luiz Campos

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.