Oficina 3 de App Inventor: mudanças entre as edições

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Eraldo (discussão | contribs)
Eraldo (discussão | contribs)
 
(9 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 11: Linha 11:
*uso de notifiers
*uso de notifiers


==distribuição e preparação do celular==
=Distribuição e preparação do celular=


*Os chefes de cada equipe devem receber um celular com fonte e preencher um documento de compromisso de devolução do dispositivo.
*Os chefes de cada equipe devem receber um celular com fonte e preencher um documento de compromisso de devolução do dispositivo.
Linha 18: Linha 18:
**bar code scanner do PLAY STORE
**bar code scanner do PLAY STORE
**GPS status
**GPS status
=APLICAÇÃO-EXEMPLO de uso de componentes de interesse do Projeto Integrador=
Na sequência desenvolveremos uma pequena aplicação que demonstra o uso dos sensores GPS, bússola (sensor de orientação), armazenamento local de dados (tyniDB) e armazenamento remoto de dados (WebDB).


=Parte 1 - Preparação dos componentes visuais=
=Parte 1 - Preparação dos componentes visuais=
Linha 38: Linha 42:
Arraste também um Clock. Deixe-o TimerEnable com '''[ ] Enable''' o TimerAlwaysFire '''[x] Enable'''
Arraste também um Clock. Deixe-o TimerEnable com '''[ ] Enable''' o TimerAlwaysFire '''[x] Enable'''


==parte de acionamento manual===
===Parte de acionamento manual===
 
No código a seguir mostramos o acionamento do GPS de forma manual (ligando e desligando no botão) e sem apoio
de eventos de clock. A ideia é ligar o GPS e esperar que ele gere um evento LocationChange com a posição lida.
Este evento é gerado a toda modificiação de posição e no momento que o GPS tem a primeira leitura válida.


Abra o Editor de Blocos e arraste e conecte os componentes conforme mostrado na figura abaixo:
Abra o Editor de Blocos e arraste e conecte os componentes conforme mostrado na figura abaixo:
Linha 46: Linha 54:
[[Arquivo:Fig2GPS.png|800px]]
[[Arquivo:Fig2GPS.png|800px]]


==parte de acionamento com clock==


'''Exercício:''' fazer um adendo para que a aplicação mostre a latitude média a partir de 3 leituras do GPS. Faça um contador e crie uma variável para armazenar a soma acumulada das latitudes. Quando obtiver as três leituras mostre em um label.
===Parte de acionamento com clock===
Neste código é mostrado o uso de leituras periódicas do GPS usando como apoio o componente clock.
O clock gera eventos segundo um periodo determinado. A ideia é capturar estes eventos e efetuar a leitura neste momento.


Abra o Editor de Blocos e arraste e conecte os componentes conforme mostrado na figura abaixo:
Abra o Editor de Blocos e arraste e conecte os componentes conforme mostrado na figura abaixo:

Edição atual tal como às 08h19min de 28 de junho de 2013

1 Objetivos

Preparar as equipes para o desenvolvimento do projeto integrador. Mais especificamente, prepará-las para o uso do App Inventor com:

  • distribuição e preparação do celular
  • depuração da aplicação via WiFi
  • acesso ao GPS
  • acesso a base de dados local
  • acesso a base de dados remota
  • uso de notifiers

2 Distribuição e preparação do celular

  • Os chefes de cada equipe devem receber um celular com fonte e preencher um documento de compromisso de devolução do dispositivo.
  • Os chefes deverão colocar uma conta google e configurar uma rede WIFI (IFSC-ALUNOS). Os seguintes softwares deverão ser instalados:

3 APLICAÇÃO-EXEMPLO de uso de componentes de interesse do Projeto Integrador

Na sequência desenvolveremos uma pequena aplicação que demonstra o uso dos sensores GPS, bússola (sensor de orientação), armazenamento local de dados (tyniDB) e armazenamento remoto de dados (WebDB).

4 Parte 1 - Preparação dos componentes visuais

Nesta etapa colocaremos todos os componentes visuais necessários a aplicação.


Observe os nomes dos componentes. Para padronização usamos lb (label) e bt como iniciais de rótulos e botões. Observe também que foram usados dois organizadores tipo tabela.

5 Parte 2 - Acesso ao GPS

Vá até a pallete Sensors do projeto e arraste um LocationSensor para o Viewer. Nas propriedades do componente, mude DistanceInterval = 0; Desabilite o gps com [ ] Enable. Altere o TimeInterval = 1000 (milisegundos). Arraste também um Clock. Deixe-o TimerEnable com [ ] Enable o TimerAlwaysFire [x] Enable

5.1 Parte de acionamento manual

No código a seguir mostramos o acionamento do GPS de forma manual (ligando e desligando no botão) e sem apoio de eventos de clock. A ideia é ligar o GPS e esperar que ele gere um evento LocationChange com a posição lida. Este evento é gerado a toda modificiação de posição e no momento que o GPS tem a primeira leitura válida.

Abra o Editor de Blocos e arraste e conecte os componentes conforme mostrado na figura abaixo:


Exercício: fazer um adendo para que a aplicação mostre a latitude média a partir de 3 leituras do GPS. Faça um contador e crie uma variável para armazenar a soma acumulada das latitudes. Quando obtiver as três leituras mostre em um label.

5.2 Parte de acionamento com clock

Neste código é mostrado o uso de leituras periódicas do GPS usando como apoio o componente clock. O clock gera eventos segundo um periodo determinado. A ideia é capturar estes eventos e efetuar a leitura neste momento.

Abra o Editor de Blocos e arraste e conecte os componentes conforme mostrado na figura abaixo:

6 Parte 3 - Acesso a base de dados local

Vá até a Pallete Basic do projeto e arraste um objeto TinyDB para o Viewer.

Para testar se o armazenamento na base local está funcionando, siga os seguintes passos:

  1. baixe o app desenvolvido para o celular;
  2. Execute o app e armazene um ponto na base local [SALVAR].
  3. Recupere o ponto da base local [LER].
  4. Para verificar a permanência do dado após o fechamento do app, feche o app e reabra em seguida.
  5. Recupere o ponto da base local [LER].
  6. Para verificar a permanência do dado após o desligamento do dispositivo, deslige-o, religue-o, reabra em seguida o app.
  7. Recupere o ponto da base local [LER].

7 Parte 4 - Acesso a base de dados remota

Vá até a Pallete Other Stuff do projeto e arraste um objeto WebDB para o Viewer.

Abra o Editor de Blocos e e codifique da forma:

Nota os dados são armazenados no banco de dados indicado no endereço no campo ServiceURL do componente TinyWebDB. Por default o banco de dados do MIT é utilizado. Para verificar se o dado está armazenado no WebDB, copie o seu endereço http://appinvtinywebdb.appspot.com/. Uma tela com os comandos de acesso ao DB pela interface do Browser é mostrada.

Para testar se o dado esta armazenado, utilize o comando getvalue com a Tag utilizada no armazenamento. Por exemplo, no caso acima EQX-P1 retornará a string: ["VALUE", "EQX-P1", "\"P1LOCAL: -27,60847 , -48,6328\""].

7.1 Url do TinyWebDB

Além da base de dados padrão do MIT, você também pode usar as bases de dados disponibilizadas pelo IFSC.

8 Parte 5 - Sensor de Orientação (bússola)

Exercícios

  • Completar o bloco de instruções acima para mostrar os ângulos de Roll e Pitch
  • Implementar um adendo no bloco para que uma notificação apareça quando o azimute estiver entre 300 e 310 graus.