Sobre este projeto
it-programming / mobile-development
Aberto
# Preâmbulo
Para o sucesso da tarefa e poupar o tempo de todos (inclusive o seu), por favor, leia todo este descritivo e faça perguntas caso não tenha entendido qualquer item abaixo.
De antemão agradecemos o interesse em trabalhar conosco.
Comunicação é fundamental.
Se você acha que irá atrasar a entrega, informe de imediato. Entendemos que existem eventos que não podemos evitar e além de tudo somos humanos, mas não iremos aceitar desculpas como `por motivos pessoais`, `fiquei doente`, `minha avó morreu`, `fui atropelado`, `computador quebrou`, `vírus`, `perdi o fonte e não tenho backup`, etc - sim já ouvimos de tudo. Não toleramos mentira e se em sua primeira tarefa você furar o prazo com uma desculpa esfarrapada ou se você faz isso no dia-a-dia e acha normal, pare de ler aqui e não aceite esta tarefa, pois não temos interesse em trabalhar com você.
# Tarefa Programador Java/Android
Sua tarefa é criar um app Android que tire print (screenshot) da tela enquanto o app esteja em segundo plano sem mostrar a notificação de que a tela foi printada.
- O código precisa ser em Java, não em Kotlin. O app que você irá implementar a rotina é em Java, não iremos migrar para Kotlin.
- O aplicativo não precisa ter interface, só estamos interessados no código/funcionalidade para colocarmos no nosso aplicativo principal.
- Deve ser criado uma classe e quando essa classe for chamada, deve retornar o caminho onde a imagem foi salva.
- O app deve ser instalado e em seguida será fechado manualmente pelo programador que estará executando os testes, ou seja, o app precisa conseguir tirar o print enquanto o app está em segundo plano (background).
- O usuário não pode ver nenhum tipo de notificação de que o print está sendo tirado, ou seja, precisa ser `invisível` ao usuário final.
- Você pode usar o WorkManager (sugestão) ou FCM (push notification) para executar a rotina e tirar o print.
- O app precisa continuar tirando o print depois que o aparelho é reiniciado.
- A princípio o print deve ser salvo no cache do app, mas para simplificar e facilitar o debug, salve na galeria de fotos.
- Na versão final desse código, a imagem será enviada para um servidor usando POST (okhttp ou volley) e excluída, mas neste momento, não se preocupe com isso.
- O ideal é que a função funcione a partir da API 19 do android (`minSdkVersion 19` - Android 4.4), se você não consegue fazer nessa api, antes de prosseguir, informe qual a api mínima que você consegue. A idéia é permitir que essa função seja usada pelo número máximo de aparelhos disponíveis no mercado.
- O target deve ser 26 e não deve ser alterado (`targetSdkVersion 26`).
- O app será usado por diversas versões do Android a começar com a API mínima concordada (ex. Android 4.4) e deverá funcionar corretamente em todas as versões a partir da versão mínima (ex.
Da versão 4.4 até 11 do Android).
- Uma sugestão talvez seja usar MediaProjection para aparelhos versão 5.0 pra cima e outra funcionalidade para outras versões.
- Você pode usar qualquer permissão do Android que desejar.
O usuário deverá ser solicitado para dar qualquer permissão necessária para a funcionalidade funcionar.
- Precisa funcionar em aparelhos com e sem root.
- O aplicativo não será disponibilizado na Play Store, será instalado manualmente nos aparelhos.
# Notas Finais
- Não nos importa se você trabalha de 8:00 às 12:00 ou de 17:00 às 2:00 da manhã, desde que você cumpra os prazos e faça as entregas.
- Você deve enviar o projeto completo pelo Workana ao final da tarefa. O projeto será revisado por outro programador e será compilado e testado usando Android Studio em 4 aparelhos físicos: `Motorola Moto X (Android 5.1)`, `Samsung S6 Edge (Android 7)`, `Xiaomi Redmi S2 (Android 9)`, `Samsung A21s (Android 10)`.
Você pode usar emulador ou qualquer outro modelo nos seus testes.
- Você pode usar qualquer biblioteca que desejar disponível na internet.
- Neste primeiro momento não será necessário escrever unit ou qualquer outro tipo de tests, nem comentar demais o código e nem usar git.
A única coisa que iremos olhar é a organização, como você fez e mais importante se o código funciona. Lembre-se que o outro programador que irá ler seu código está recebendo a mesma instrução que você, se você não entende o que está fazendo, ele certamente não entenderá.
- Não nos preocupa se você copiar o código de algum app na internet, desde que você saiba como o código funciona e saiba alterar caso necessário ou tenha algum bug depois de pronto.
- Se possível escreva os nomes/variáveis/comentários em inglês, mas não é essencial nesta primeira tarefa.
- Revise o código e comentário por erros de português. Não use abreviações ou nomes de variáveis sem sentido.
# Obrigado
Agradecemos por ter lido até aqui. Caso você não deseje continuar com a tarefa, entenderemos e desejamos sucesso.
Categoria TI e Programação
Subcategoria Programação de Apps para Android, iOS e outros
Qual é o alcance do projeto? Alteração média
Isso é um projeto ou uma posição de trabalho? Um projeto
Disponibilidade requerida Conforme necessário
Eu preciso Eu preciso modificar um app existente
Prazo de Entrega: Não estabelecido
Habilidades necessárias