Engenharia de Front-end Mobile
História
John Doe adquiriu 3 sensores compatíveis com a plataforma proposta. Ao abrir o aplicativo, com sua conta, registrou os 3 sensores no app, cada um para um propósito diferente, o primeiro "Controle de ambiente do escritório", monitorando "Temperatura", em ºC, e "Luminosidade", em lux. O segundo, "Freezer do armazém", medindo apenas "Temperatura", em ºC. O terceiro, "Oxigenação do aquário", monitorando a concentração de "Oxigênio", em mg/L.
De acordo com o modelo de domínio, cada sensor e stream recebe uma chave de identificação (key), uma string alfanumérica (semelhante a 10dd35008a0f4d838c3dc22856660928 ) ao ser cadastrada. Com essa chave a ativação dos sensores físicos pode ser concluída, e considerando os sensores do John Doe já funcionando, seus dados já estão sendo publicados na plataforma IoT e consequentemente podem ser acompanhados no app.
A equipe de back-end da plataforma desenvolveu uma RESTful API que suporta as operações que o usuário deve ser capaz de desempenhar através dos aplicativos, de forma que cabe a equipe de front-end mobile desenvolver os aplicativos utilizando esta API.
Objetivo
Desenvolver um aplicativo Android do ponto de vista funcional, que permita (I) listar os sensores já existentes na conta do usuário, (II) visualizar os detalhes de um sensor, (III) acompanhar os dados mais recentes de uma stream, (IV) além de registrar, tanto novos sensores quanto novas streams.
Quanto a característica funcional da proposta, significa que o projeto deve ser voltado para a arquitetura da aplicação e design, UI e UX não estão no escopo da atividade. Considere que o aprimoramento visual do app será realizado por outra equipe ou em outra iteração.
É solicitado que o desenvolvimento do aplicativo empregue a arquitetura MVP (Model-View-Presenter), considerando a familiaridade da equipe mobile da Evológica a esse design pattern. Abaixo algumas telas de como ao final do sprint a aplicação deveria se comportar.
|
Sensores do Usuário |
Detalhe do Sensor |
Detalhe da Stream |
|
|
|
|
Ferramentas e Ajuda
MVP (Model-View-Presenter)
- https://blog.mindorks.com/essential-guide-for-designing-your-android-app-architecture-mvp-part-1-74efaf1cda40 (apenas a parte I)
- https://medium.com/@cervonefrancesco/model-view-presenter-android-guidelines-94970b430ddf
- https://antonioleiva.com/mvp-android/
- http://www.tinmegali.com/en/model-view-presenter-android-part-1/
Android Básico
-
RecyclerView
- Intents
- Criação de interfaces de usuário no Android:
Rest API
- Postman (https://chrome.google.com/webstore/detail/postman/fhbjgbiflinjbdggehcddcbncdddomop?hl=en)
- FastAndroidNetworking. (https://amitshekhariitbhu.github.io/Fast-Android-Networking/get_request.html).
Após iterações de desenvolvimento com a equipe de design o app (fora do scopo do seu projeto) se aproximaria desse layout:
| Sensores do Usuário | Detalhe do Sensor | Detalhe da Stream |
|
|
|
|
RESTful API
Primeiramente, para utilizar a API, é necessário enviar um token de autenticação (X-AUTH-TOKEN) no header de cada requisição HTTP. A URL base dos resources da API é http://multicast.vix.br:8082. O token que você deve utilizar é:
cba991ae0c38408a84cf01687c60d075
Ex:
curl --request GET \
--url http://multicast.vix.br:8082/sensors \
--header 'content-type: application/json' \
--header 'x-auth-token: cba991ae0c38408a84cf01687c60d075'
Endpoints
| GET | /sensors |
| Get user sensors | |
<= response[
|
|
| POST | /sensors |
|
Register new sensor |
|
|
{
{
|
|
| GET | /sensors/{sensorOid} |
|
Get user sensor by Id |
|
|
{
|
|
| POST | /sensors/{sensorOid}/streams |
|
Register new stream |
|
|
{
{
|
|
| GET | /sensors/{sensorOid}/streams/{streamOid} |
| Get stream info and recent data | |
<= response{
|
|






No Comments