Skip to content

Aplicativo simples para ver o perfil publico do github. Feito em Compose para estudo.

Notifications You must be signed in to change notification settings

Wottrich/android-github-profile

Repository files navigation

Github Profile Overview

Veja o seu perfil publico do github, ou de outros usuarios, por esse aplicativo simples e rapido.

Resumo

O objetivo do aplicativo foi estudar mais sobre a prataforma Android. Utilizando metodos Agile como SOLID e Clean Code, foram implementados chamadas api utilizando Retrofit juntamente com Coroutines que serviu para lidar com a parte asyncrona do projeto e deixar mais leve e facil de entender. A arquiterura escolhida para o projeto foi a MVVM utilizando Compose para lidar com os estados das UIs, Resource para lidar com o status da Network, StateFlow para comunicação com o compose e ViewModelProvider para podemos criar um ciclo de vida proprio da nossa ViewModel podendo haver activity rotation sem perda de estado ou crashes indesejaveis. A aplicação é internacionalizada e está disponivel em inglês e português(dependendo da linguagem do dispositivo).

Projeto

Projeto inteiramente desenvolido em Kotlin tento em vista que é a linguagem oficial recomentada para o Android e também tendo em vista suas facilidades e tecnologias, dentro da IDEA Android Studio para uma melhor perfomace no desenvolvimento.

Arquitetura e dependencias

Arquitetura

A arquitetura escolhida para o desenvolvimento foi a Model View ViewModel(MVVM). Esta arquitetura foi escolhida para atuar em conjunto com o Compose e Architecture Components, facilitanto o código e beneficiando os testes

Blueprint:

➡️ Módulo App - Principal módulo do projeto

  • archive: Onde ficam os arquivos de extension do kotlin.
  • injection: Onde ficam os arquivo para Dependency injection.
  • ui: Onde fica os fluxos, features e ViewModels do aplicativo.
  • util: Onde ficam os arquivos de apoio. (Base)

➡️ Módulo Datasource - Módulo onde é concentrado a fonte de dados do projeto

  • adapters: Onde ficam os network adapters.
  • api: Onde ficam as interfaces de chamada da api.
  • dispatchers: Onde fica a representação de CoroutineDispatcher do projeto.
  • models: Onde ficam os modelos para mapeamento dos services.
  • network: Onde fica a principal configuração da api do projeto.
  • resource: Onde ficam os responsáveis por digerir a resposta da api e devolver de uma forma fácil.

➡️ Módulo UI - Módulo onde ficam os principais recursos de UI do projeto

  • components: Onde fica os componentes base do projeto.
  • state: Onde fica o State, principal responsável por contruir as tela em Compose nesse projeto.
  • value: Colors, Text. Onde ficam os Conjutos que formam um Desing System do projeto.
  • widget: Onde ficam alguns componentes legados do projeto.

Dependencias

object Versions {

    const val kotlinVersion = "1.5.21"
    const val coreKtxVersion = "1.6.0"
    const val coroutinesVersion = "1.5.2"

    //AppCompat and UI things
    const val appCompatVersion = "1.4.0-alpha01"

    //Koin
    const val koinVersion = "3.1.2"

    //Compose
    const val composeVersion = "1.0.2"
    const val composeActivityVersion = "1.3.1"
    const val composeNavigationVersion = "2.4.0-alpha08"

    //Coil
    const val coilVersion = "1.3.0"

    //Retrofit and api things
    const val retrofitVersion = "2.9.0"
    const val loggingInterceptorVersion = "4.9.0"

    //Gradle
    const val gradleVersion = "7.0.0"

    //Test
    const val mockKVersion = "1.12.0"
    const val coreTestingVersion = "2.1.0"
    const val junitVersion = "4.13.2"
    const val junitExtVersion = "1.1.3-beta01"
    const val espressoCoreVersion = "3.4.0-beta01"
}

Aplicação

➡️ Video da aplicação em uso

Screenrecorder-2021-09-26-23-48-20-518.mp4

A aplicação consiste em um activity onde você pode pesquisar por um perfil do github e também acessar os repositórios desse perfil pesquisado.

➡️ Inicio

Step onde o aplicativo é inicializado e podemos ver a funcionalidade de buscar perfil.

➡️ Busca

Step que podemos ver como fica a funcionalidade de buscar e como utilizar ela.

➡️ Perfil

Step que mostra o resultado de uma busca.

➡️ Perfil não encontrado

Step que mostra o resultado não encontrado de uma busca.

➡️ Detalhes do repositório

Step que mostra o detalhe de um repositório.

About

Aplicativo simples para ver o perfil publico do github. Feito em Compose para estudo.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages