Skip to content

Latest commit

 

History

History
96 lines (75 loc) · 4.17 KB

README.md

File metadata and controls

96 lines (75 loc) · 4.17 KB

Delivery App

Modularized app, based on MVI and Clean Architecture. It allows you to create, read, update and delete a delivery form on a local database. The city field is fetched from a remote API (Brazilian cities) after choosing the State. Static code analysis with detekt, Github Actions CI and complete unit and instrumented testing.

Built with:

  • Jetpack Compose
  • Hilt
  • Room
  • ViewModel
  • Flow / Coroutines
  • Compose Navigation
  • Retrofit / OkHttp / Moshi
  • Material3
  • Mockk
  • Resource localization
  • Detekt
  • Dependabot
Screenshot

:app

Contains the root NavHost for navigating between features. All feature modules have their own internal navigation graph implemented with a public NavGraphBuilder extension function.

:feature

Feature modules contain logically related user flows. Features can navigate between each other through the :app module NavHost. Features are structured with domain/data/presentation logic for separation of concerns. Feature modules don't depend on each other.

:core:database

Contains database initialization. Features can implement their own tables and expose DAOs to be injected in feature module data sources.

:core:designsystem

App-wide reusable components and app theme.

:core:network

Abstracts away the logic for building Retrofit, interceptors, logging etc. Features can just call retrofit.create() with their own interface.

:core:ui

Contains some useful UI utilities.

:core:testing

Useful testing libraries and helper classes.

Screenshots

Screenshot_1713805325 Screenshot_1713805403 Screenshot_1713805348 Screenshot_1713805421 Screenshot_1713805431

Installation instructions

Just run the app module

Português

Aplicativo modularizado, baseado em MVI e arquitetura limpa. Permite realizar um cadastro de entrega e salvar em banco de dados local. A lista de cidades é populado a partir de uma consulta na API do IBGE (https://servicodados.ibge.gov.br/api/docs/localidades#api-Municipios-estadosUFMunicipiosGet), após preencher o campo Estado. Análise estática de código com o detekt, CI com Github Actions e testes unitários e instrumentados.

Construído com:

  • Jetpack Compose
  • Android Architecture Components
  • Hilt
  • Room
  • ViewModel
  • Flow / Coroutines
  • Compose Navigation
  • Retrofit / OkHttp / Moshi
  • Material3
  • Mockk
  • Localização
  • Detekt
  • Dependabot

:app

Contém o NavHost raiz para navegar entre as features. Todos os módulos de feature possuem seu próprio gráfico de navegação interna implementado com uma função de extensão pública do NavGraphBuilder.

:feature

Os módulos de feature contêm fluxos logicamente relacionados. Features podem navegar entre si por meio do NavHost do módulo :app. As features são estruturadas com lógica de domínio/dados/apresentação para separação de camadas. Módulos de feature não dependem um do outro.

:core:database

Contém inicialização do banco de dados. As features podem implementar suas próprias tabelas e expor DAOs para serem injetados em seus data sources.

:core:designsystem

Componentes reutilizáveis em todo o aplicativo e o tema base.

:core:network

Abstrai a lógica para construção do Retrofit, interceptores, logging etc. As features podem simplesmente chamar o retrofit.create() com sua própria interface.

:core:ui

Contém alguns utilitários de úteis de UI.

:core:testing

Bibliotecas de testes e classes auxiliares.

Instruções de instalação

Apenas executar o módulo :app