/ValorantInfo

This app includes Valorant weapons and their features.

Primary LanguageKotlin

ValorantInfo

Valorant Info app is a to demonstrate tech stacks with a MVVM architecture, with emphazies on Unit & UI testing.This app includes Valorant weapons and their features.


License API Kotlin MVVM Coroutines

Screenshots

Splash Home Detail Demo

Tech stack & Open-source libraries

  • Minimum SDK level 21
  • 100% Kotlin based + Coroutines and Flow
  • MVVM Architecture - Modern, maintainable, and Google suggested app architecture
  • Material Design 3 is the latest version of Google’s open-source design system.
  • Navigation Component - Single activity multiple fragments approach
  • JetPack
    • LiveData - Notify domain layer data to views.
    • Lifecycle - Dispose of observing data when lifecycle state changes.
    • Fragment-ktx - A set of Kotlin extensions that helps with fragment lifecycle.
    • View Binding - Allows you to more easily write code that interacts with views
    • ViewModel - UI related data holder, lifecycle aware.
  • Architecture
    • MVVM Architecture (View - DataBinding - ViewModel - Model)
    • Repository pattern
    • Clean Architecture approach.
  • Hilt is a dependency injection library for Android
  • Retrofit A type-safe HTTP client for Android and Java
  • Gson Google Gson is of libraries for handling JSON objects
  • Navigation Component - Single activity multiple fragments approach
  • Coil - An image loading library for Android backed by Kotlin Coroutines
  • Splash Screen
  • Testing
    • Mockito A mocking framework that tastes really good. It lets you write beautiful tests with a clean & simple API
    • MockWebServer A scriptable web server for testing HTTP clients
    • Truth A library for performing assertions in tests
    • Turbine A small testing library for kotlinx.coroutines Flow

Architecture

This app uses MVVM (Model View View-Model) architecture

mvvm

Modules Design:

  • Data
    • Api (Api Service)
    • DTO
    • Mapper
    • Reprository (RepositoryImpl)
    • Source (RemoteDataSource, RemoteDataSourceImpl)
  • Di
  • Domain
    • Model (WeaponUiData)
    • Repository (Repository)
    • UseCase (GetWeaponByIdUseCase, GetWeaponsUseCase)
  • Ui
    • Base (BaseRecyclerViewAdapter, BaseViewHolder)
    • Component (ValorantUiComponent)
    • Contract (AbstractTextWatcher)
    • Detail
    • Home
  • Utility (Extensions)

Open API

Valorant Agents uses the Valorant-api for required data. Valorant-api provides an extensive API containing data of most in-game items, assets and more!

Connect with me 💌

Linkedin Badge

License

Designed and developed by 2022 Hilalkrnz

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.