Seleção de Desenvolvedor de Software – Escribo
Teste Técnico 02
Instruções para Uso:
Para a segunda tarefa, foi solicitado o desenvolvimento de uma aplicação que simulasse
o jogo indiano “Cobras e Escadas”.
Nas instruções enviadas no guia para o teste, foi solicitado que a aplicação rodasse
em dispositivos Android. Levando em conta esta necessidade, aproveitei de uma das
vantagens do Flutter e desenvolvi um Web App, hospedei o mesmo em um projeto no FireBase
e dessa forma o resultado pode ser avaliado e testado em qualquer navegador, seja em
dispositivos Android, seja em dispositivos IOS.
Samsung Galaxy S8+
Google Pixel 5
Iphone XR
O link para o Web App: https://sds-escribo-teste02.web.app/
Mas caso desejem instalar a aplicação em um dispositivo ou em um emulador Android, segue o link com o APK:
https://drive.google.com/file/d/1VmWTcCKuUgNYX5m1xPQQZ5xsT3fYos-Z/view?usp=sharing
Como eu citei acima, uma das maiores vantagens do Flutter é a possibilidade de “buildarmos” a mesma aplicação
para diversos dispositivos, sem a necessidades de mudanças ou adições drásticas ao código.
Dentre outras exigências do guia para o teste, estava a criação de uma Classe “CobrasEscadas”.
A mesma pode ser encontrada no seguinte caminho:
lib/models/cobras_escadas.dart
Outra solicitação era exibir avatares que representam cada um dos dois jogadores.
Os jogadores são representados por cada uma das caixas, sendo que, na vez de determinado jogador, o ícone P1 ou
P2 é exibido e a caixa tem uma elevação. Indicando dessa forma de quem é a respectiva vez.
Outra solicitação era que houvesse um “Botão Jogar”:
Nesse caso o botão apresenta a cor de acordo com a vez de cada jogador, clicando no mesmo, ele gera os valores
dos dados e apresenta as informações da última jogada, ex: Resultado da jogada, casas deslocadas, encontros com
escadas ou cobras.
Por último, podemos acompanhar a evolução de cada jogador, indicado pelos ícone P1 e P2, no grid do App:
O Codigo foi refatorado de forma que a conferencia e avaliação fiquei mais pratica.
Toda a aplicação é composta somente pelos seguintes scripts:
lib/main.dart
lib/screens/home_screen/home_screen.dart
lib/models/cobras_escadas.dart
lib/models/player_model.dart
lib/widgets/dado_widget.dart
lib/widgets/dados_informacoes_widget.dart
lib/widgets/grid_widget.dart
lib/widgets/jogadoresInfo_widget.dart
lib/widgets/texto_jogador_widget.dart