Giter Club home page Giter Club logo

mobilechallengeandroid's Introduction

MobileChallenge

Primeiro teste para o aplicativo de trabalho de engenheiro Android

Aplicativo nativo Android usando arquitetura MVVM construída com a linguagem Kotlin

1 - Primeiro, faça um fork deste projeto para sua conta no GitHub (crie uma se você não possuir). 2 - Em seguida, implemente o projeto tal qual descrito abaixo, em seu próprio fork. 3 - Por fim, empurre todas as suas alterações para o seu fork no GitHub e envie um pull request para este repositório original. Se você já entrou em contato com alguém da companhia sobre uma vaga, avise também essa pessoa por email, incluindo no email o seu usuário no GitHub.

Recomendações de design do Google com

  • LiveData
  • ViewModels
  • Observable Objects

Estrutura e Design:

An old rock in the desert

Também use:

  • Couchbase Lite 2.5 para persistencia de dados
  • Retrofit2 para http requests
  • Anko Layouts para look&Feel
  • Android API 29 para debugging

Descrição do APP:

Utilizando as APIs do Github API do GitHub, seguir o padrão MVVM, que tenta separar a recuperação de dados, a lógica de exibição e a apresentação em três áreas. Por motivos de desenvolvimento de software e codificação relaxante, usei a próxima configuração:

O aplicativo deve exibir inicialmente uma lista paginada dos repositórios, ordenados por popularidade decrescente (exemplo de chamada da API: https://api.github.com/search/repositories?q=language:Java&sort=stars&page=1).

Cada repositório deve exibir Nome do repositório, Descrição do Repositório, Nome / Foto do autor, Número de Stars, Número de Forks.

Ao tocar em um item, deve levar a lista de Pull Requests do repositório. Cada item da lista deve exibir Nome / Foto do autor do PR, Título do PR, Data do PR e Body do PR.

Ao tocar em um item, deve abrir no browser a página do Pull Request em questão.

Você pode se basear neste mockup para criar as telas:

mockup

Dados:

Eu usei "pojos" em kotlin (classe de dados) para a representação de dados reais e abstração de objetos, esses objetos usados ​​para recuperar todos os tipos de informações (banco de dados e fictícios) para interagir com UI e UX. você pode encontrá-lo na pasta "data".

Repositórios:

Os repositórios possuem lógica para obter, processar e compartilhar informações com domínio do App, no meu caso, tive três grandes entidades de 29 informações: Produtos de catálogo, pedido e descontos esses objetos foram manipulados usando Retrofit para rede, couchbase lite para persistência de banco de dados e LiveData para sincronia.

Interfaces do Usuário:

As interfaces de usuário do aplicativo são armazenadas na pasta "ui", você pode encontrar uma atividade principal (tabbet para navegação), atividade final (feedback pago fictício) e conjunto de fragmentos para mostrar produtos e detalhes do pedido, também dividi o adaptador recycleViews em um adaptador diferente diretório para legibilidade.

ViewModels:

Compartilhe objetos LiveData entre Fragments usando viewModels nesta pasta, você pode encontrar as classes que usei para esta tarefa.

Usando github application:

Você pode escolher todos os produtos que desejar no catálogo de produtos (essas informações são carregadas usando a API REST do Github).

mobilechallengeandroid's People

Contributors

igsurf avatar monteoliva avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.