65 lines
2.9 KiB
Markdown
65 lines
2.9 KiB
Markdown
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](https://git.adlerneves.com/adler/reddit-image-wall-getter) e este [início de reescrita do anterior em Rust](https://git.adlerneves.com/adler/reddit-image-wall-rs), 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 é.
|