Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/drjacky/mvimodularizationtemplate

An Android Template with MVI and Modularization
https://github.com/drjacky/mvimodularizationtemplate

android android-template coroutine coroutines coroutines-android flow gradle graphql hilt kotlin kotlin-dsl modularization mvi navigation-component pagination-component rick-and-morty rick-and-morty-api rickandmorty rickandmortyapi template-project

Last synced: 20 days ago
JSON representation

An Android Template with MVI and Modularization

Awesome Lists containing this project

README

        

# MVIModularizationTemplate ๐Ÿงžโ€

![Language](https://img.shields.io/badge/Kotlin-1.7.21-blue) ![License](https://img.shields.io/github/license/Drjacky/MVIModularizationTemplate?logo=MIT) [![Actions Status](https://github.com/Drjacky/MVIModularizationTemplate/workflows/Pre%20Merge%20Checks/badge.svg)](https://github.com/Drjacky/MVIModularizationTemplate/actions) [![Build Status](https://github.com/Drjacky/MVIModularizationTemplate/workflows/Android%20CI/badge.svg)](https://github.com/Drjacky/MVIModularizationTemplate/actions) [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=Drjacky_MVIModularizationTemplate&metric=alert_status)](https://sonarcloud.io/dashboard?id=Drjacky_MVIModularizationTemplate)
[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2FDrjacky%2FMVIModularizationTemplate.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2FDrjacky%2FMVIModularizationTemplate?ref=badge_shield) [![CodeScene Code Health](https://codescene.io/projects/29432/status-badges/code-health)](https://codescene.io/projects/29432)

##



A simple Android template that lets you create an **Android** project quickly.

## How to use ๐Ÿ‘ฃ

Just click
on [![Use this template](https://img.shields.io/badge/-Use%20this%20template-brightgreen)](https://github.com/Drjacky/MVIModularizationTemplate/generate)
button to create a new repo starting from this template.

## Features ๐Ÿ•น

- 100% Kotlin-only template
- Following MVI Architectural Design Pattern
- Template Project
- [GraphQL](https://graphql.org/) - Gives clients the power to ask for exactly what they need from
API
- [Coroutines](https://developer.android.com/kotlin/coroutines) - A concurrency design pattern
library
- [Flow](https://developer.android.com/kotlin/flow) - Built on top of coroutines and is stream of
data that can be computed asynchronously
- Github Actions - CI
- [Hilt](https://dagger.dev/hilt/) - Dependency Injection framework
- [Transition](https://developer.android.com/guide/navigation/navigation-animate-transitions) -
Animation
- [Paging V3](https://developer.android.com/topic/libraries/architecture/paging/v3-overview) -
Pagination
- [View Binding](https://developer.android.com/topic/libraries/view-binding) - View Binding
- [OkHttp3](https://github.com/square/okhttp) - Network interceptor
- [Retrofit](https://github.com/square/retrofit) - HTTP client
- [Glide](https://github.com/bumptech/glide) - Loading images
- [Timber](https://github.com/JakeWharton/timber) - Log
- [Material Components](https://github.com/material-components/material-components-android) -
Material Design
- [Lottie](https://airbnb.design/lottie/) - Vector animation library
- [Kotlin DSL](https://docs.gradle.org/current/userguide/kotlin_dsl.html) - Alternative syntax to
the Groovy DSL
- [Detekt](https://github.com/detekt/detekt) - Static code analysis for Kotlin
- [Gradle Doctor](https://github.com/runningcode/gradle-doctor) - Gradle build scan plugin
- [Navigation](https://developer.android.com/guide/navigation) - Navigate through the app
- [LeakCanary](https://square.github.io/leakcanary/) - Memory leak detection
- [Chucker](https://github.com/ChuckerTeam/chucker) - An HTTP inspector for Android & OkHTTP
- [StrictMode](https://developer.android.com/reference/android/os/StrictMode) - A developer tool
which detects things you might be doing by accident
- [Dependency Analysis](https://github.com/autonomousapps/dependency-analysis-android-gradle-plugin)-
Dependency analysis android gradle plugin
- [Sonatype Scan Gradle Plugin](https://github.com/sonatype-nexus-community/scan-gradle-plugin)-Gradle
plugin that scans the dependencies of a Gradle project using Sonatype platforms: OSS Index and
Nexus IQ Server.

## Under Development ๐Ÿšง

- ~~Add detail screen~~

## CI ๐Ÿญ

This template is
using [GitHub Actions](https://github.com/Drjacky/MVIModularizationTemplate/actions) as CI.

Available workflows listed as follows:

- [Validate Gradle Wrapper](.github/workflows/gradlew-validation.yml) - Checks the gradle wrapper
has a valid checksum.
- [Pre Merge Checks](.github/workflows/pre-merge.yml) - Runs `build` task.
- [Android](.github/workflows/android.yml) - Runs `assembleDebug` task.

## Tasks ๐Ÿ”ง

- Gradle Doctor: `dependencyUpdates` - Displays the dependency updates for the project.
- Detekt: `detektAll` - Run the static Kotlin code analysis for the whole project at once.
- The Dependency Analysis: `buildHealth` - Provides advice for managing dependencies and other
applied plugins
- Sonatype Scan Gradle Plugin - AKA Sherlock Trunks: `ossIndexAudit` - Scans the dependencies of a
Gradle project using Sonatype platforms; OSS Index and Nexus IQ Server.

## References ๐Ÿงท

- [The Rick and Morty API](https://rickandmortyapi.com/)

## Contributing ๐Ÿค

Feel free to open an issue or submit a pull request for any bugs/improvements.

## Result ๐Ÿ“บ

## License โš–๏ธ

[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2FDrjacky%2FMVIModularizationTemplate.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2FDrjacky%2FMVIModularizationTemplate?ref=badge_large)