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)
 
(12 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 4: Linha 4:
prepará-las para o uso do App Inventor com:
prepará-las para o uso do App Inventor com:


*Distribuição e preparação do celular
*distribuição e preparação do celular
*depuração da aplicação via WiFi
*depuração da aplicação via WiFi
*acesso ao GPS
*acesso ao GPS
Linha 10: Linha 10:
*acesso a base de dados remota
*acesso a base de dados remota
*uso de notifiers
*uso de notifiers
=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:
**http://appinventor.mit.edu/download/MITAICompanion.apk (não tem na PLAY STORE do ANDROID para esta versão do celular)
**bar code scanner do PLAY STORE
**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 17: Linha 29:




[[Arquivo:AppInventor_Design_ApGPS1.png|400px]]
[[Arquivo:AppInventor_Fig1TelaGPS.png|600px]]


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


[[Arquivo:AppInventor_Design_ApGPSFig2.png|400px]]
[[Arquivo:AppInventor_Fig2TelaGPS.png|600px]]


[[Arquivo:AppInventor_Design_ApGPSFig2b.png|400px]]
=Parte 2 - Acesso ao GPS=


=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).
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'''
Arraste também um Clock. Deixe-o TimerEnable com '''[ ] Enable''' o TimerAlwaysFire '''[x] Enable'''
===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 36: Linha 53:


[[Arquivo:Fig2GPS.png|800px]]
[[Arquivo:Fig2GPS.png|800px]]
'''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:


[[Arquivo:Fig3GPS.png|800px]]
[[Arquivo:Fig3GPS.png|800px]]

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.