You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
Adler Neves cd3aaf2197 Merge branch 'feature-remove-doc-references-to-overtime' into dev 5 months ago
.idea feature: MVP 5 months ago
app feature: MVP 5 months ago
diagrams feature: docs: add navigability state diagram 5 months ago
gradle/wrapper feature: MVP 5 months ago
.drone.yml feature: empty skeleton project 5 months ago
.gitignore feature: MVP 5 months ago
CHANGELOG.md fix: doc: README: pós execução no diário de bordo 5 months ago
README.md fix: finalização 5 months ago
VERSION fix: doc: README: pós execução no diário de bordo 5 months ago
build.gradle feature: MVP 5 months ago
gradle.properties feature: empty skeleton project 5 months ago
gradlew feature: empty skeleton project 5 months ago
gradlew.bat feature: empty skeleton project 5 months ago
settings.gradle feature: empty skeleton project 5 months ago
sonar-project.properties feature: empty skeleton project 5 months ago

README.md

Teste admissional: Uppersoft

  • Vaga: Desenvolvedor Android Nativo Pleno/Sênior
  • Data: 2020-12-14T17:12:26-0300
  • Prazo: 2020-12-16

Solicitado

Boa tarde Adler,

Segue o teste para a vaga de Desenvolvedor Android.

Desenvolver um app Android de consulta a base de dados do Reddit. A tela inicial de abertura deve dar acesso, por meio de um botão, a uma nova tela a qual trará informações do subreddit em uma lista personalizada.

A tela de listagem do conteúdo deve conter o título "r/androiddev" e uma lista com as principais informações dos tópicos obtidos (trazidos pela API).

Link da API: https://www.reddit.com/r/androiddev.json?raw_json=1

Linguagem: Kotlin.

Disponibilizar o teste em um repositório git e nos enviar o link para análise. O prazo é até quarta-feira, dia 16/12.

Atenciosamente,

[REDACTED]

Diário de bordo

Primeiras Impressões

Sabendo que viram meu repositório, especificamente este crawler em python e este início de reescrita do anterior em Rust, talvez este teste esteja subdimensionado.

Planejamento Inicial

Após leitura:

  • Repositório GIT criado como público;
  • Vontade de modelar o diagrama de estados da tela usando PlantUML, para não depender do texto;
  • Vontade de criar uma pipeline de CI, mas com 2GB de uso de disco livres não será possível;
  • Ponderações sobre como incrementar o produto mínimo que ficará para a branch;
  • Ações de toque curto e toque longo?

Resoluções:

  • Commits na master terminam com o projeto vazio enviado;
  • Usar Conventional Commits e commits frequentes;

Extras que poderiam entrar para o backlog:

  • Paginação;
  • Adicionar tag NSFW;
  • Adicionar caching;
  • Adicionar mudança de categoria de visualização (top (padrão), new, best, rising);
  • Mostrar a thumbnail;
  • Comentários (dificuldade possivelmente elevada, já que são aninhados).

Execução

A expectativa de fazer diversos commits não vingou: uma primeira tela era pequena demais para justificar um commit só para ela; a outra, era "o restante do aplicativo".

Android Studio 4.2 beta 2 estava suficientemente instável para me fazer perder muito tempo. Adicione a isso a obsolecência do Anko e do KotlinX Synthetic, que me pegaram de surpresa.

Vendo outros aplicativos similares ("rif is fun" e "old.reddit.com") mostram uma thumbnail para posts que referenciam imagens, tal elemento da branch de overtime teve sua prioridade aumentada para a normal.

Infelizmente, a ferramenta que faria versionamento automático e um CHANGELOG a partir da leitura das mensagens de commit não funcionou da forma como esperava.

Me enganei quanto ao parâmetro GET allow_over18=1, necessário à API gateway.reddit.com, ser também necessário na API em www.reddit.com: não é.