O aplicativo possui duas telas: uma listagem de jogos e o detalhe de cada jogo.
- Lista de jogos
- Nome dos times
- Escudos
- Placar
- Data e horário
Considere as seguintes condições:
-
A lista de jogos deve estar disponível offline
-
O usuário pode querer atualizar a lista de jogos
-
Clicar sobre um jogo leva o usuário para a tela de detalhe daquele jogo
Exemplo de uma lista de jogos na web (lado direito): brasileirão série a.
-
Detalhe do jogo
- Nome dos times
- Escudos
- Placar
- Data e horário
- Local
-
Lance a Lance
- Lista de momentos importantes do jogo
- Tempo no jogo
- Descrição
- Lista de momentos importantes do jogo
-
Atalho para voltar para a tela inicial
O app descrito acima foi criado nas arquiteturas MVVM, MVVM com RXSwift, VIP(clean Swift) e VIPER
Para Lista de Jogos foi utilizado a propria api do Globo Esporte:
https://api.globoesporte.globo.com/tabela/d1a37fa4-e948-43a6-ba53-ab24ab3a45b1/fase/fase-unica-campeonato-brasileiro-2021/rodada/2/jogos/
Para a listagem de momentos importantes para o "Lance a Lance" foi feito um micro serviço em node que recebe a url encontrada na api de jogos na propriedade transmissao.url
e "crawleia" os dados e retorna um Json para o app.
https://gecrawler.herokuapp.com/?url=https://globoesporte.globo.com/sp/futebol/brasileirao-serie-a/jogo/16-09-2018/corinthians-sport.ghtml
- Alamofire: Para requsições HTTP
- Realm: Para armazenamento de dados locais
- SDWebImage: Para download de imagens com um bom gerenciamento de cache
- RXSwift e RxCocoa: Para uso de programação baseada em eventos (reativa), de forma assíncrona e que pode ser composta e encadeada (funcional) através de operadores
- Poderia ter feito um loading na tela de Listagem de partidas igual ao usado na tela de resumo
- Gostaria de incluir uma animação de transição entre a mudaça de listagem de partida e a tela de resumo.