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)
 
(15 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]]
Linha 69: Linha 96:
==[[Url do TinyWebDB]]==
==[[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.
Além da base de dados padrão do MIT, você também pode usar as bases de dados disponibilizadas pelo IFSC.
=Parte 5 - Sensor de Orientação (bússola)=
[[Arquivo:AppInventor_Design_Fig1Bussola.png|800px]]
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.

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.