Course_modularizing_android_apps - Multi-module demo app that gets data from a Dota2 api

Overview

Work in progress

Multi-module demo app that gets data from a Dota2 api.

Module name Type Description
app Android Application MainActivity, BaseApplication, Theme, Hilt setup.
core Java/Kotlin Library Core business models and classes.
hero-datasource Java/Kotlin Library Data-sources (network and cache) for the hero Module.
hero-datasource-test Java/Kotlin Library Data-source test fakes. These are contained in their own module so they can be used in tests in other modules.
hero-domain Java/Kotlin Library Domain models and classes for the hero Module.
hero-interactors Java/Kotlin Library Use-cases for the hero Module.
ui-heroList Android Library UI components for the HeroList screen.
ui-heroDetail Android Library UI components for the HeroDetail screen.
constants Java/Kotlin Library Random constants.
components Android Library Common Composables.

List to Detail screen

Filtering

Tests

Unit Tests

I wrote unit tests for every use-case.

  1. GetHerosTest.kt
  2. GetHeroFromCacheTest.kt
  3. FilterHerosTest.kt

Compose UI Tests

UI Tests

build.gradle files

There are 3 types of build.gradle files.

  1. android application (app module)
  2. android-library-build.gradle
    • Android module that contains ui components.
  3. library-build.gradle
    • Pure java/kotlin library.

API

https://docs.opendota.com/

Hero Stats (GET)

https://api.opendota.com/api/heroStats

Known issues

  1. HeroListFilter.kt
    • Changing the filter does not rebuild the dialog with the correct size.

Credits

  1. Hristijan
    • Thanks for the chat and great sample.
You might also like...
Demo for Jetbrains webinar on "How to share data layer in KMM"

RealmDemo Demo application demostrating how to share data layer in an KMM project using Realm Kotlin SDK and Atlas App Service. Webinar Link : https:/

Android App Module - Activity Result Contracts
Android App Module - Activity Result Contracts

Activity Result Contract with async & await (Asynchronous) - Android App Module App Features Activity Result Contract : ActivityResultContracts Permis

PackageReferenceComparison - Do app/module dependencies that share a dependency use the same Singleton ref?
PackageReferenceComparison - Do app/module dependencies that share a dependency use the same Singleton ref?

PackageReferenceComparison Do app/module dependencies that share a dependency us

Easy to use cryptographic framework for data protection: secure messaging with forward secrecy and secure data storage. Has unified APIs across 14 platforms.
Easy to use cryptographic framework for data protection: secure messaging with forward secrecy and secure data storage. Has unified APIs across 14 platforms.

Themis provides strong, usable cryptography for busy people General purpose cryptographic library for storage and messaging for iOS (Swift, Obj-C), An

A basic application demonstrating IPFS for collaborative data analysis, from the perspective of a Data Analysis Provider.

Spacebox A basic application demonstrating IPFS for collaborative data analysis, from the perspective of a Data Analysis Provider. Description This pr

🚧 General-Purpose Module System for Kotlin.

🚧 Modules: General-Purpose Module System A module system & loader for Kotlin. Made for me to use. Architecture Module is a building block for this sy

A simple xposed module that helps you fully control your location.

FuckLocation An simple xposed module that helps you fully control your location. 一个可以帮助你完全控制位置授权的模块 Currently, you may return custom location to speci

This is a demo android app representing implementation of SE principles in android app development

Articles Demo This repository contains a sample Android App that shows most popular articles data from NY Times API. This is a sample app that shows h

Android Spinner Dialog Library supported on both Java and Kotlin, Use for single or multi selection of choice
Android Spinner Dialog Library supported on both Java and Kotlin, Use for single or multi selection of choice

SpinnerDialog Android Spinner Dialog Library, Use for single or multi selection of choice Android UI Download To include SpinnerDialog in your project

Owner
Julio Ribeiro
Android Engineer at Ampli
Julio Ribeiro
A multi module app, for improve knowledges

MultiModuleApp App multimódulos para estudos Aqui existem vários apps simples (1 em cada módulo) e está sendo construído por: App multi módulos Consum

PLINIO DA SILVA ALENCAR 0 Dec 27, 2021
Workout Journal is a mobile app based on Multi-Module and Clean Architecture for those who want to track their progress over a workout and a calendar period.

Workout-Journal Workout Journal is a mobile app for those who want to track their progress over a workout and a calendar period. The app allows you to

Maxim Smolyakov 4 Oct 23, 2022
Calorie tracking app using multi-module CLEAN architecture

CalorieTrack Calorie tracking app using multi-module CLEAN architecture Tech used Multi-module Application (Improve build time & componentization) Kot

Chris Athanas 4 Aug 14, 2022
Sample project that shows an approach for designing a multi-module architecture for Jetpack Compose Android applications.

Compose Multi-Module Architecture Sample Sample project that shows an approach for designing a multi-module architecture for Jetpack Compose Android a

Pavlo Stavytskyi 77 Jan 3, 2023
A set of highly-opinionated, batteries-included gradle plugins to get you started building delicious multi-module Kotlin projects

Sourdough Gradle What is Sourdough Gradle? Sourdough is a set of highly opinionated gradle plugins that aim to act as the starter for your Kotlin proj

Backbone 0 Oct 3, 2022
Sample application to demonstrate Multi-module Clean MVVM Architecture and usage of Android Hilt, Kotlin Flow, Navigation Graph, Unit tests etc.

MoneyHeist-Chars Sample application to demonstrate Multi-module Clean MVVM Architecture and usage of Android Hilt, Kotlin Flow, Navigation Graph, Room

Hisham 20 Nov 19, 2022
Multi module architecture Android template project using MVVM, Dagger-Hilt, and Navigation Components

ModularAppTemplate An Android template project following a multi module approach with clean architecture. It has been built following Clean Architectu

Mbuodile Obiosio 7 May 23, 2022
Example Multi module architecture Android project using MVVM, Dynamic Features, Dagger-Hilt, Coroutines and Navigation Components

ModularDynamicFeatureHilt An Android template project following a multi module approach with clean architecture. It has been built following Clean Arc

Mbuodile Obiosio 25 Nov 23, 2022
A CLI tool to convert multi-module Jetpack Compose compiler metrics into beautiful HTML reports

A CLI tool to convert multi-module Jetpack Compose compiler metrics into beautiful HTML reports 1. What are Jetpack Compose compiler metrics? The Comp

Jaya Surya Thotapalli 116 Jan 3, 2023