Projeto 03: App GitHub O Git é essencial para o desenvolvimento de software porque facilita o controle de versões, a colaboração em equipe e o gerenciamento eficiente de mudanças no código-fonte.
A REST API do GitHub permite a interação programática com repositórios, gerenciar projetos, usuários e organizações, facilitando operações como criação, leitura, atualização e exclusão de dados diretamente via chamadas HTTP.
Utilizando a ferramenta Expo Snack, desenvolva uma aplicação em React Native para a gestão de projetos no GitHub. A aplicação deve permitir que o usuário consulte os repositórios dos quais faz parte, bem como as Issues associadas a cada repositório.
Tarefa 01: Criando o projeto
Desenvolva uma aplicação utilizando a plataforma Expo. Estruture os diretórios da seguinte forma:
screens (ou outro nome que represente componentes do tipo tela); components (para componentes menores e reutilizáveis); api (para recursos relacionados ao consumo de dados da Rest API); Outros diretórios que considerar necessários para a organização do projeto. Não concentre múltiplos componentes em um único arquivo, mantendo cada componente em arquivos separados para melhor modularidade e manutenção.
Não utilize outras bibliotecas de componentes que não as que foram estudadas em aula.
Tarefa 02: Implementando Interfaces
A aplicação deve possuir uma interface de autenticação, nesta será solicitado ao usuário, o token para acessar as suas informações privadas do GitHub.
Também haverá uma interface que exibirá as informações do usuário quando o mesmo estiver logado.
Também haverá uma interface que listará os repositórios em que o usuário autenticado faça parte e outra para listar as issuesatribuídas ao usuário.
Essas interfaces devem estar responsivas e adaptativas, alterando a disposição dos layouts conforme a orientação do dispositivo. Certifique-se de detectar dinamicamente a orientação do dispositivo e ajustar o layout do componente conforme necessário.
Tarefa 03: Carregando Dados e Listas
No diretório api, implemente um objeto responsável por consumir a Rest API oficial, que fornece dados do GitHub:
https://api.github.com Gerar o token: https://github.com/settings/tokens Os recursos que serão consumidos são:
Para pegar as informações gerais do usuário autenticado. GET /user Authorization: Bearer USER_TOKEN Para pegar a lista de repositórios de que o usuário fazer parte. Esta rota possui recurso de paginação. GET /user/repos?page=# Authorization: Bearer USER_TOKEN Para pegar a lista de issues atribuída ao usuário. GET /issues Authorization: Bearer USER_TOKEN USER_TOKEN é o token que o usuário adquire na plataforma do GitHub e que deverá ser solicitada pela aplicação para uso durante a execução do App.
Implemente a lista de repositórios utilizando a funcionalidade de Lazy Loading, permitindo a paginação das consultas à Rest API de forma transparente para o usuário. Inclua também uma barra de progresso, que indique em porcentagem a quantidade de itens já carregados, com base no total de itens disponíveis na Rest API.
Adicionalmente, em todas as listas, implemente a funcionalidade de Pull to Refresh para permitir a atualização da lista e buscar dados mais recentes. Além de implementar mecanismos de filtro e de ordenação.
Utilize o(s) método(s) de entrada mais adequado(s) para facilitar a escolha do astro e a exibição das imagens.
Tarefa 04: Navegação para Detalhes do Item
Implemente nas listas, a funcionalidade que permite ao usuário selecionar um item em exibição via Swipe. Ao selecionar um item, a aplicação deve navegar para outra interface onde serão exibidos os detalhes sobre o item selecionado. Utilize os dados fornecidos pela Rest API para apresentar informações adicionais sobre o repositório ou a issue selecionada.
Para a lista de Issues, também deve haver a implementação da manipulação via Swipe para alterar o estado da issues.
Também deve haver uma interface em que será permitido, via formulário, criar novas issues.
A aplicação deve estar componentizada.
Envie o link para o projeto Expo Snack.
Veja um protótipo de exemplo: