Loading documents preview...
AULA 01 ....................................................................................................... 5
1 - Introdução ao App Inventor .............................................................................. 6 1.1 - Primeiros Passos ............................................................................................. 6 1.2 - Interface de produção .................................................................................... 9
AULA 02 ..................................................................................................... 13
2 - Nosso primeiro App ..........................................................................................14 2.1 - App “Bateria_Eletronica” .............................................................................. 15 2.2 - Criação do App passo a passo ....................................................................... 15 2.3 - Programando nosso novo App ...................................................................... 24
AULA 03 ..................................................................................................... 29 3 - Diferentes modos de testar a Aplicação........................................................... 30 3.1 - Emulador .......................................................................................................33
AULA 04 ..................................................................................................... 37 4 - Verificação de condições e variáveis................................................................ 38
AULA 05 ..................................................................................................... 51 5 - Criando um cardápio mobile ............................................................................ 52
AULA 06 ..................................................................................................... 69
6 - Activity Starter, TinyDB e Clock ....................................................................... 70 6.1 - Novos componentes ......................................................................................70 6.2 - Projeto final ..................................................................................................70
Bibliografia ................................................................................................ 85
Imagens ................................................................................................................86
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
3
4
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
AULA 01 DESENVOLVIMENTO DE APLICATIVOS GOOGLE INVENTOR
Olá! Seja bem-vindo ao curso de Desenvolvimento de aplicativos com App Inventor! Neste capítulo, você verá todo o funcionamento da interface on-line do App Inventor para desenvolvimento de aplicativos em plataforma Android. Conhecerá, também, como é intuitivo o aprendizado desta poderosa ferramenta Open Source (código aberto) desenvolvida pelo MIT (Massachusetts Institute of Technology).
1 - Introdução ao App Inventor
1.1 - Primeiros Passos Para utilizar a ferramenta App Inventor, você necessariamente deverá possuir uma conta Google (a mesma utilizada para o Gmail). Caso você não possua uma conta, acesse o link a seguir: https://accounts.google.com/SignUp?continue=https%3A%2F%2Faccounts.google. com%2FManageAccount&hl=EN O App Inventor funciona como um software de criação de aplicativos, porém todo o processo de criação dos aplicativos será feito via browser (Ex.: Chrome – Preferencialmente –, Firefox etc.). Esse web app (software online) deve ser acessado no seguinte endereço: http://appinventor.mit.edu/explore/.
Fig. 1.1 - Página inicial do site do App Inventor
6
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
Como você pode ver, o site do App Inventor é bem simples e objetivo. Nele você encontrará todos os pré-requisitos exigidos pelo sistema e saberá como adequar sua máquina para rodar a aplicação. Tudo isso acessando o menu verde Start. Ao clicar em Create, no canto superior direito da tela, automaticamente você será levado para a página de login do Google. Insira seus dados de login e senha e aceite os termos de utilização e integração a contas Google do App Inventor.
Fig. 1.2 - Integração da conta Google com o App Inventor
Fig. 1.3 - Termos de serviço do App Inventor
Após aceitar os termos de serviço, o sistema o levará para a interface de desenvolvimento (ambiente de trabalho), como nas imagens a seguir. O App Inventor convidará você a responder um questionário. Faça isso, se quiser. Se optar por fazer, clique em Take Survey Now. Se quiser responder posteriormente, clique em Take Survey Later. Se deseja não responder e não receber novamente esse convite, clique em Never Take Survey.
Fig. 1.4 - Convite para responder a um questionário
A próxima tela será uma mensagem de boas-vindas.
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
7
Fig. 1.5 - Tela de Início
Clique no canto superior esquerdo no botão Start New Project e verá a seguinte tela.
Fig. 1.6 - Nomeando seu primeiro projeto
Nomeie seu projeto como “Eletronic_Drum” ou “Bateria_Eletronica” e clique em OK. Observação: para nomear um projeto, você deverá seguir as regras de nomenclatura do App Inventor, e não poderá utilizar acentos ou espaços entre palavras. Se o nome do seu projeto for uma palavra composta, como “Bateria Eletronica”, utilize a forma utilizada anterior “Bateria_Eletronica”. A seguir, veja a tela da interface de produção (Designer) do App Inventor e, posteriormente, falaremos sobre todas as possibilidades que ela nos traz.
8
DESENVOLVIMENTO EXCEL DE APLICATIVOS AVANÇADO 2013 - GOOGLE INVENTOR
Fig. 1.7 - Interface de produção
1.2 - Interface de produção A interface de produção (Designer) do App Inventor é dividida em sete setores cujas funções são distintas. Veja a seguir.
Fig. 1.8 - Setores de produção na Interface do App Inventor
Chamaremos de setores os menus da interface de produção (Designer) para que você grave na memória as funções que cada um representa. Falaremos agora, brevemente, sobre cada um deles. • O Setor 1 (verde) é o nosso menu principal. É nele que iniciamos um novo projeto, salvamos um projeto, conectamos nosso projeto com um “emulador” (para testes de visualização), “compilamos” um projeto (salvar o projeto como uma aplicação Android do tipo .apk) e também que encontramos nosso menu Help (Ajuda) para suprir nossas dúvidas; • No Setor 2 (rosa), encontramos o nome do nosso projeto à esquerda e também os botões de gerenciamento de telas (visualizações) Screen1. Uma mesma aplicação poderá ter diversas telas e será nesse botão que faremos a migração entre elas. A seguir, temos o botão Add Screen para incluirmos no projeto uma nova tela e, posteriormente, o botão Remove Screen para remover. No canto superior esquerdo, temos dois importantes botões do App Inventor: Designer e Blocks. DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
9
O botão Designer ativa a interface inicial (visual) do projeto, cujos setores estamos enumerando agora. O botão Blocks (blocos) ativa o nosso ambiente de programação por de blocos, cuja tela você vê a seguir.
Fig. 1.9 - Ambiente de programação - Blocks
O ambiente é bem parecido com nossa interface de produção (Designer), porém será aqui que faremos toda a programação dos nossos componentes da aplicação. Explicaremos, posteriormente, esse ambiente (Blocks), quando já estivermos entendendo um pouco mais sobre lógica de programação. Voltemos ao ambiente Designer (interface de produção). • O Setor 3 (azul escuro) é certamente o cérebro do nosso projeto. Nele se encontram todas as possibilidades do projeto, como utilizar um botão, uma imagem, um som etc. • Para a visualização do projeto, temos o Setor 4 (laranja), no qual podemos ver tudo o que é inserido no projeto, a fim de arquitetarmos em tempo real nossas funcionalidades. • No Setor 5 (lilás), vemos os componentes inseridos no projeto e também podemos renomeá-los para nossa melhor compreensão. • No Setor 6 (verde escuro), encontramos as propriedades do componente selecionado, ou seja, se estivermos com o componente Button selecionado na tela de visualização (Setor 4), automaticamente veremos as propriedades desse componente e poderemos alterá-las. • No Setor 7 (azul claro), gerenciamos nossas mídias. É nele que fazemos o upload (envio) de arquivos de imagens (formatos .png e .jpg), sons (somente arquivos .mp3) e vídeos (somente arquivos .mp4). Agora que você conhece um pouco da interface gráfica, vamos aprender na prática como utilizá-la. Dessa forma, construiremos nossa primeira aplicação.
10
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
Veja no próximo capítulo como fazer.
Fig. 1.10 - Tela de boas-vindas
A seguir, veja a tela inicial contendo projetos já feitos e o acesso à criação de novos projetos. Em seu primeiro acesso, obviamente, sua lista estará vazia, mas esse é só o começo!
DESENVOLVIMENTO DESENVOLVIMENTO DE APLICATIVOS DE APLICATIVOS - GOOGLE INVENTOR - GOOGLE INVENTOR
11
12
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
AULA 02 DESENVOLVIMENTO DE APLICATIVOS GOOGLE INVENTOR
Nesta segunda aula, daremos início ao nosso tão esperado primeiro aplicativo!
2 - Nosso primeiro App
Antes de iniciarmos nossa criação, vamos falar um pouco sobre Lógica de Programação. Muitos têm pavor da palavra programação, como se ela quisesse dizer “Bicho de Sete Cabeças”. Entretanto, isso não é verdade. Prova disso é que todos nós somos programadores natos. Sim, você ouviu bem! Desde muito pequenos, aprendemos a programar tudo o que fazemos, em nosso cérebro, seja quando estamos aprendendo a caminhar ou dar nossos primeiros passos. Ou seja, usamos a programação mesmo em uma tarefa simples que fazemos todos os dias, como escovar os dentes. Veja como funciona nossa programação diária de “escovar os dentes”. Primeiramente, verifi camos no banheiro se temos tudo de que precisamos, ou seja, uma pia, água, escova de dente, pasta de dente e toalha de rosto. Esses são nossos componentes. Depois, temos que saber o que fazer com eles, ou seja, quais são nossas ações. Em seguida, fazemos da seguinte forma: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Pegamos a escova de dente; Abrimos a torneira para sair a água; Molhamos a escova de dente; Fechamos torneira; Pegamos a pasta de dente; Colocamos pasta de dente na escova; Fechamos o tubo da pasta de dente; Guardamos o tubo da pasta de dente; Escovamos os dentes; Abrimos novamente a torneira; Enxaguamos a boca e lavamos a escova; Fechamos a torneira; Guardamos a escova de dentes; Pegamos uma toalha; Enxugamos o rosto e as mãos na toalha; Penduramos a toalha.
Descrita dessa forma, uma simples atividade como a de escovar os dentes demonstra o quanto nossa vida depende dessa lógica de programação. Na concepção de aplicativos, não é diferente. Temos de saber o que fazer, com o que, quando e para quê. Isso é Lógica de Programação. Agora que você compreende um pouco mais sobre Lógica de Programação, vamos iniciar a criação do nosso primeiro aplicativo (App). O primeiro passo para quem vai construir um aplicativo é idealizá-lo, ou seja, visualizar mentalmente ou por meio de rascunhos toda a interface gráfi ca do seu App (como ele será visto). Você deverá também estabelecer um fl uxo sobre o funcionamento da aplicação, desde a abertura dele ao fechamento. Veremos na prática como isso funciona.
14
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
2.1 - App “Bateria_Eletronia” Primeiramente, devemos saber como funciona uma bateria eletrônica para, assim, imaginarmos como será o nosso aplicativo. Fizemos um arquivo wireframe, como se fosse um rascunho do que será nosso App. Veja na imagem a seguir.
Fig. 2.1 - Wireframe do projeto
Nesse wireframe, podemos ver que teremos cinco botões, sendo eles Chimbal, Caixa, Tom1, Prato e Bumbo. A ideia é que, quando clicarmos nesses botões, eles emitam seu respectivo som. Utilizaremos imagens e sons para esse nosso projeto. Todos os arquivos estão no link a seguir: https://www.dropbox.com/sh/6xtd213p9vfh49y/ AAA0ooqL09h84dNfVHPOhrn_a?dl=0 Ao abrir o link, clique em Baixar. Guarde o local no qual o arquivo foi salvo, encontre-o em seu computador, clique sobre o arquivo e descompacte o arquivo. Caso não consiga acessar o link ou tenha difi culdades para baixar os arquivos, peça para seu professor os arquivos solicitados. Agora vamos abrir o App Inventor no computador e começar a criar.
2.2 - Criação do App passo a passo Como visto no capítulo anterior, para criamos um aplicativo, devemos iniciar um projeto no App Inventor. Acesse o link http://appinventor.mit.edu e clique em Create. Se você tiver acessado recentemente o App Inventor, ao acessá-lo novamente, ele automaticamente já estará logado em sua conta. Se o sistema pedir, entre com seus dados de acesso de sua conta Google. Ao entrar no ambiente, clique no projeto criado anteriormente para ser levado à interface de produção. Caso não tenha criado um projeto, clique em New project e nomeie como “Bateria_ Eletronica” seu novo projeto.
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
15
Fig. 2.2 - Nomeando o projeto
Agora, vamos prosseguir com o passo a passo da criação. Neste momento, atente-se apenas a repetir os passos solicitados. Vejamos nossa primeira tela de produção.
Fig. 2.3 - Ambiente de criação
Nosso primeiro passo será estabelecer nosso layout (disposição dos objetos). Para isso, faremos o seguinte; Clique na seção Layout, localizada no Setor 3 do nosso ambiente de produção. Em seguida, clique, arraste e solte, para o Setor 4 (visualização), o componente TableArrangement. Sua tela deverá fi car como na imagem a seguir.
Fig. 2.4 - Componente TableArrangement
16
DESENVOLVIMENTO EXCEL DE APLICATIVOS AVANÇADO 2013 - GOOGLE INVENTOR
Esse componente é utilizado para estabelecer um layout (disposição dos elementos) no formato de tabela, para que consigamos inserir nossos objetos iniciais. Agora, com o componente selecionado (TableArrangement), vá até o Setor 6 (Propriedades) e escreva, no campo Columns (colunas), o número 2. No campo Rows (linhas), coloque também o valor 2. No campo Width (largura), selecione o valor Fill parent (Preencher pai), que significa estabelecer para a largura o tamanho da largura da tela. Clique em OK. Em seguida, configure o campo Height (altura) com o valor Automatic e clique em OK. Sua tela deverá ficar como a imagem a seguir.
Fig. 2.5 - Configurando as propriedades do TableArrangement
O próximo passo será inserir os botões dentro do nosso TabletArrangement. Lembre-se de que ele possui duas colunas e duas linhas, ou seja, ele funciona como um container capaz de abrigar quatro componentes. Clique no Setor 3, na seção User interface (interface do usuário), e depois clique e arraste para dentro do componente TableArrangement o componente Button (Botão). Faça isso novamente com mais três botões. Sua tela deverá ficar como a imagem a seguir.
Fig. 2.6 - Componente Button inserido dentro do componente TableArrangement
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
17
Com o componente Button1 selecionado, vá até o menu Propriedades e encontre o campo Text. Observe que, nesse campo, já há uma informação inserida, o texto “Text for Button1”. Perceba que esse texto aparece sobre nosso Button1 no Setor 4 (visualização). Apague-o e, depois, vá até o campo Image (imagem) e clique para alterar o valor. Em seguida, clique em Upload file… (enviar arquivo). Ao clicar, o sistema abrirá um campo para upload de uma nova imagem (media). Sua tela deverá aparecer como na imagem a seguir.
Fig. 2.7 - Enviando uma imagem
Clique em Choose file (escolher arquivo), encontre o arquivo “chimbal_active.png”, que deverá estar dentro da pasta Bateria_Eletronica/imagens/, e depois clique em OK. Sua tela deverá aparecer como a figura a seguir.
Fig. 2.8 - Imagem enviada
Agora, vamos repetir os passos anteriores de inserção de imagem para os botões Button2, Button3 e Button4. Lembre-se de sempre selecionar o botão que você deseja configurar.
18
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
Após confi gurar os botões, sua tela deverá fi car como na fi gura a seguir:
Fig. 2.9 - Botões confi gurados com imagens
O próximo passo será inserir nosso último botão (Bumbo). Perceba que esse botão é maior e ocupará todo o restante de nossa tela. Dessa forma, nosso botão será inserido fora do componente TableArrangement. No menu Palette (paleta), na seção User interface, clique, arraste e solte o componente Button dentro do espaço em branco que restou na nossa Screen1. Sua tela deverá fi car como a fi gura a seguir.
Fig. 2.10 - Novo component Button5 inserido
DESENVOLVIMENTO DESENVOLVIMENTO DE APLICATIVOS DE APLICATIVOS - GOOGLE INVENTOR - GOOGLE INVENTOR
19
Agora, vamos alterar as propriedades do componente Button5, como fizemos com os botões anteriores, você ainda se lembra? A primeira delas será apagar o texto no campo Text; a segunda será alterar a largura (Width) para o valor Fit to parent e a terceira será configurar o valor da altura (Height) para o valor Automatic. Agora, vamos efetuar o upload correspondente ao componente do Button5 (Bumbo), cuja imagem será “bumbo_ active.png”. Encontre o arquivo e configure-o, como feito nos botões anteriores. Sua tela deverá ficar como a figura a seguir.
Fig. 2.11 - Novo component Button5 configurado
Perfeito! Agora, vamos renomear nossos componentes para que tenhamos um maior e melhor controle sobre nossos próximos passos. Clique em cada um dos componentes localizados no Setor 5 (Components) e, em seguida, clique em Rename (renomear). Note que uma nova tela aparecerá, conforme a imagem a seguir.
Fig. 2.12 - Renomeando componentes
20
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
Faça isso com todos os componentes e sua tela deverá ficar como a figura a seguir.
Fig. 2.13 - Componentes renomeados
Nosso próximo passo será configurar o background (imagem de fundo) do nosso componente Screen1. No Setor 5, selecione o componente Screen1, que diz respeito a todo o conteúdo do nosso aplicativo. Agora, vá até o Setor 6 (propriedades) e altere o valor do campo BackgroundImage. Clique em Upload File... e encontre no seu computador a imagem “bg2.png” . Note que o procedimento de inserção é o mesmo dos botões anteriores. Após inserir a imagem do background, sua tela deverá ficar como na figura a seguir.
Fig. 2.14 - Configurando imagem de fundo do componente Screen1
Ótimo! Nosso próximo passo será inserir os componentes de som (Sound) em nosso projeto. Diferentemente do componente Button, o componente Sound fica dentro da seção Media, no menu Palette. Após encontrá-lo, clique sobre ele, segure-o e arraste-o até o Setor 4. Observe que o componente Sound não é um objeto visual e, neste caso, ele aparecerá abaixo da nossa visualização Screen1 como Non-visible components (componentes não visíveis).
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
21
Após inserido o componente Sound1, sua tela deverá fi car como a fi gura a seguir.
Fig. 2.15 - Componente Sound1 inserido
Repita o passo anterior mais quatro vezes, totalizando a inserção de cinco novos componentes de som (Sound), sendo Sound2, Sound3, Sound4 e Sound5. Sua tela deverá fi car assim
Fig. 2.16 - Componentes de som inseridos
As propriedades dos componentes de som são apenas duas: MinimumInterval (intervalo mínimo), que diz respeito ao intervalo de tempo (pausa) entre dois sons, e Source (fonte), no qual iremos efetuar o upload dos nossos arquivos de áudio (.mp3). No caso do MinimumInterval, vamos confi gurar todos os nossos componentes de som com o intervalo “0” (zero). Com o componente Sound1 selecionado, vamos clicar em Source, em propriedades, e depois em Upload File... . Encontraremos em nosso computador o arquivo de áudio “hihat.mp3” e faremos upload dele. Em seguida, vamos fazer o mesmo procedimento com os demais componentes de som. Para o componente Sound2, selecionaremos o arquivo “snare.mp3”; para o componente Sound3, selecionaremos o arquivo “tom1.mp3”; para o componente Sound4, selecionaremos o arquivo “crash.mp3” e, fi nalmente, para o componente Sound5, selecionaremos o arquivo “kick.mp3”. Todos os arquivos estão na pasta Bateria_Eletronica/sons/.
22
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
Nosso próximo passo será renomear os componentes de som. Proceda com os passos a seguir: • • • • •
Renomeie Renomeie Renomeie Renomeie Renomeie
o o o o o
componente componente componente componente componente
Sound1 Sound2 Sound3 Sound4 Sound5
para para para para para
chimbal_sound; caixa_sound; tom1_sound; prato_sound; bumbo_sound.
Sua tela deverá fi car como a fi gura a seguir.
Fig. 2.17 - Componentes de som renomeados
Aqui, termina a inserção de conteúdo do nosso aplicativo. Agora, vamos para a tão esperada programação. Veja a seguir.
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
23
2.3 - Programando nosso novo App Como você já sabe, temos dois tipos de ambientes no App Inventor: o ambiente Designer, no qual estivemos até o momento, e o ambiente Blocks, que conheceremos agora. É no ambiente Blocks que faremos toda a programação do nosso App, ativando as funções que cada objeto terá na aplicação. Veja na fi gura a seguir o ambiente Blocks. Lembre-se de que, para ativá-lo, basta clicar no Setor 2, no botão Blocks.
Fig. 2.18 - Ambiente Blocks
Devemos, neste momento, nos atentarmos apenas a duas coisas: à seção Built-in, cujas ramifi cações são tipos de códigos utilizados, e, mais abaixo, à seção Screen1, que contém todos os componentes inseridos anteriormente. Lembre-se do que foi dito no início deste material: sempre devemos saber o que vamos fazer e também com quem ou com o que vamos fazer. No nosso caso, especifi camente, temos que fazer o seguinte: • • • • •
Ao clicar (ou tocar com o dedo) no botão CHIMBAL, devemos ativar o Play do áudio respectivo, no caso “hihat.mp3”; Ao clicar (ou tocar com o dedo) no botão CAIXA, devemos ativar o Play do áudio respectivo, no caso “snare.mp3”; Ao clicar (ou tocar com o dedo) no botão TOM 1, devemos ativar o Play do áudio respectivo, no caso “tom1.mp3”; Ao clicar (ou tocar com o dedo) no botão PRATO, devemos ativar o Play do áudio respectivo, no caso “crash.mp3”; Ao clicar (ou tocar com o dedo) no botão BUMBO, devemos ativar o Play do áudio respectivo, no caso “kick.mp3”.
Faremos isso da seguinte maneira: encontre e selecione no menu lateral o componente Chimbal, conforme fi gura seguinte.
24
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
Fig. 2.19 - Componente do tipo Button Chimbal selecionado
Note que o elemento selecionado é um botão (Button). O sistema coloca à frente dele um ícone que lembra um botão. Quando esse tipo de elemento é selecionado, o sistema automaticamente nos dá diversas opções de ação (Functions ou funções). No caso, precisamos da função de clique (.click). Nesse caso, devemos selecionar essa opção (primeira da lista). Sua tela deverá fi car como a fi gura a seguir.
Fig. 2.20 - Componente Button Chimbal com acão de clique
DESENVOLVIMENTO EXCEL DE APLICATIVOS AVANÇADO 2013 - GOOGLE INVENTOR
25
Faça isso com os demais componentes do tipo “Botão” e sua tela deverá fi car como a fi gura a seguir.
Fig. 2.21 - Componentes do tipo Button com funções de clique
As próximas ações que devemos incluir estarão conectadas às ações anteriores. Observe que os blocos inseridos até o momento são como peças de um quebra-cabeças, cujo formato se encaixa exatamente às funções que iremos inserir. Agora, as ações ocorrerão nos componentes de som, cujo ícone lembra um alto-falante. Observe. Clique no componente de som chimbal_sound e verá a tela a seguir.
Fig. 2.22 - Componente do tipo Sound Chimbal selecionado
26
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
Note que, agora, as ações apresentadas pelo sistema são outras, pois se trata de um componente de áudio. Precisamos da ação de Play (.play) para tocarmos nosso áudio. Essa ação aparece em segundo lugar na lista. Clique, segure e arraste essa ação de Play até a ação de clique do componente em questão (Chimbal). Conecte, como a figura seguinte.
Fig. 2.23 - Ação de .play do componente Sound conectado à ação .click
Muito bem! Agora, faça o mesmo com os outros componentes de áudio, conectando as ações .play às ações .click de cada um, respectivamente. Sua tela deverá ficar como na figura a seguir:
Fig. 2.24 - Ação de .play dos componentes Sound conectados à ação .click
Com isso, finalizamos as ações referentes ao conteúdo do nosso App. Agora, estamos prontos para testar. Veremos como instalar o emulador no próximo capítulo e também como testar nosso aplicativo diretamente em um smartphone Android.
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
27
28
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
AULA 03 DESENVOLVIMENTO DE APLICATIVOS GOOGLE INVENTOR
Agora que já conseguimos criar nosso primeiro aplicativo, chegou a tão esperada hora de o testarmos para podermos confi rmar se tudo está funcionando corretamente, que é exatamente o que faremos nesta aula.
3 - Diferentes modos de testar a Aplicação
O site do App Inventor nos traz três opções de teste para as aplicações criadas dentro do ambiente de produção.
Fig. 3.1 - Opções para testar a aplicação do App Inventor
A primeira opção, e também a mais recomendada pelo App Inventor, é o teste via wi-fi diretamente em um dispositivo Android. Essa opção é a mais recomenda, pois nela você terá a verdadeira impressão que um usuário Android terá quando o aplicativo estiver pronto, ou seja, é um teste muito fi el. Com o teste diretamente no dispositivo Android, você terá condições de avaliar se o projeto visual está fl uido e se o processamento da aplicação feita pelo smartphone corresponde ao esperado. Sem contar que somente nessa opção você terá condições reais de tocar na tela do dispositivo. Para poder efetuar esse teste, primeiramente será necessário possuir um dispositivo Android. Será necessário também efetuar o download do aplicativo MIT AI2 Companion, facilmente encontrado no link a seguir, que o levará para o ambiente de download da Google Play (acesse diretamente de um dispositivo Android): https://play.google.com/store/apps/details?id=edu.mit.appinventor.aicompanion3 Também será possível efetuar o download por meio do QRCODE a seguir (é necessário possuir um leitor QRCODE em seu smartphone):
Fig. 3.2 - Download do MIT AI2 Companion via QRCODE
30
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
Após instalar o aplicativo MIT AI2 Companion no smartphone, verifi que se seu computador, no qual o App Inventor está sendo executado, e seu smartphone estão utilizando a mesma rede wi-fi (requisito mínimo). Somente assim será possível efetuar esse teste. Agora que tudo está confi gurado, vamos voltar ao ambiente de produção em que nosso projeto está aberto. Com o aplicativo MIT AI2 Companion aberto em seu smartphone, vamos clicar em CONECT, localizado no Setor 1 da interface de produção. Posteriormente, vamos clicar em AI Companion. Veja a fi gura a seguir.
Fig. 3.3 - Acessando teste wi-fi via AI Companion
Observe que, ao clicar no botão AI Companion, o sistema automaticamente vai gerar um código, que poderá ser lido via QRCODE no aplicativo MIT AI2 Companion, em seu smartphone. Você poderá digitá-lo também dentro da aplicação. Veja, na fi gura seguinte, a aplicação aberta no smartphone com a opção via digitação do código gerado.
Fig. 3.4 - Acessando o teste no smartphone via código “connect with code”
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
31
Veja, a seguir, a tela com o leitor QRCODE ativado no smartphone.
Fig. 3.5 - Acessando o teste no smartphone via QRCODE “scan QR code”
Em ambas as situações, o resultado é o mesmo, como você pode ver na fi gura a seguir.
Fig. 3.6 - Testando a aplicação diretamente no smartphone via wi-fi
Esse mesmo teste via smartphone pode ser feito via USB. Para isso, você precisará de um smartphone Android, um cabo USB conectado no computador no qual o App Inventor estiver sendo executado (com os drivers reconhecidos pelo computador), e com o modo de armazenamento ativo no celular. Para efetuar esse teste, clique em CONECT e, depois, em USB. Aguarde o processamento e visualize a sua aplicação. O teste você confere na fi gura a seguir.
32
DESENVOLVIMENTO EXCEL DE APLICATIVOS AVANÇADO 2013 - GOOGLE INVENTOR
Fig. 3.7 - Testando a aplicação diretamente no smartphone via USB
3.1 - Emulador Podemos também testar a aplicação diretamente no computador com o uso do emulador fornecido pelo MIT. O emulador se chama aiStarter e as informações de instalação podem ser encontradas no link a seguir: http://appinventor.mit.edu/explore/ai2/setup-emulator.html Nesse link, você encontrará informações de instalação nas plataformas MacOs, Windows e Linux. Será necessário efetuar o download do pacote de instalação do aiStarter (emulador). Caso o emulador não esteja instalado na sua máquina ou caso você sinta dificuldades para efetuar a instalação, peça ajuda e maiores informações para seu Instrutor. Depois de instalado o aiStarter, para efetuar o teste com o emulador, volte ao App Inventor, clique em CONECT e depois em Emulador, como na figura a seguir.
Fig. 3.8 - Testando a aplicação com o emulador instalado
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
33
Se tudo estiver devidamente instalado, o App Inventor abrirá uma mensagem de carregamento do emulador.
Fig. 3.9 - Emulador sendo iniciado
Posteriormente, você verá o emulador na tela do seu computador, conforme as imagens a seguir. Observação: o processo de carregamento do emulador pode levar de 1 a 2 minutos.
Fig. 3.10 - Emulador iniciando o Android
34
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
Em seguida desbloqueie o Android (emulador) para que a aplicação possa ser inicializada.
Fig. 3.11 - Desbloqueio do Android no emulador
Pronto! O próximo passo é testar nossa aplicação no emulador. Clique nos botões da bateria eletrônica e verifi que se estão funcionando. Se tudo estiver certo, para cada clique você terá um som correspondente.
Fig. 3.12 - Aplicativo Android sendo testado no emulador
Muito bem! Chegamos ao fi nal da nossa primeira criação de um aplicativo utilizando o App Inventor. Você acaba de criar um aplicativo simples e de conhecer um pouco mais dessa ferramenta poderosa que é o App Inventor. Vamos continuar nossa caminhada e conhecer muito mais sobre desenvolvimento de aplicativos Android nos capítulos a seguir.
DESENVOLVIMENTO DESENVOLVIMENTO DE APLICATIVOS DE APLICATIVOS - GOOGLE INVENTOR - GOOGLE INVENTOR
35
36
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
AULA 04 DESENVOLVIMENTO DE APLICATIVOS GOOGLE INVENTOR
Nesta aula, aprofundaremos ainda mais nossos estudos em programação para a criação aplicativos mobile.
4 - Verificação de condições e variáveis
Em programação, utilizamos em determinados momentos algumas estruturas de seleção e também fazemos verifi cações. Estruturas de seleções são algumas perguntas que podemos fazer para o nosso código. Veja um exemplo: Vamos supor que precisamos fazer um suco de laranja e, por algum equívoco, compramos também, junto ao nosso pacote de laranjas, uma lima da pérsia (parecida com uma laranja). Nesse caso, teremos que fazer algum teste em todas as frutas que compramos para saber se o que estamos selecionando para o nosso suco é uma laranja ou uma lima da pérsia. O teste mais óbvio será provar as frutas. Assim, identifi caremos a lima da pérsia como a mais azeda e a excluiremos da produção do suco. Nesse nosso caso específi co, fi zemos a verifi cação na condição da fruta. Se for azeda, excluímos; do contrário, selecionamos. Assim também funciona em programação. Temos alguns elementos capazes de testar nossa ação (funções) de diversas maneiras. Iremos citar algumas maneiras pertinentes ao nosso aprendizado inicial, mas antes falaremos um pouco sobre as variáveis. As variáveis são como caixas, na qual guardamos “coisas” e “ações”. Em programação, utilizamos o termo “carregar” algo em determinada variável. Para entendermos como funciona a variável, vamos a um exemplo simples e prático. Supondo que teremos que carregar alguns sacos de cimento em um percurso de 10 metros lineares utilizando uma carriola (ferramenta de construção civil), teremos a quantidade de sacos de cimento como nossa variável, ou seja, nosso peso pode variar. Com base nessa variável (peso), podemos determinar a velocidade com que levaremos os sacos de cimento: quanto mais peso, menos velocidade em detrimento da difi culdade imposta. É óbvio que, para melhor entendermos essas estruturas, teremos que praticar bastante. A primeira condição, de que falamos anteriormente, é a condição IF (se), uma maneira de, por meio da programação, perguntar algo para alguma coisa (exemplo da fruta: SE fosse azeda, excluía; do contrário, selecionava). O contrário da condição IF é a condição ELSE (mais), que, apesar da tradução literal, serve para dar uma nova opção para uma ação específi ca. Se fôssemos utilizar a condição ELSE no exemplo anterior (suco), faríamos o seguinte: se a fruta for azeda, faça uma limonada; do contrário, faça o suco de laranja. Compreenderam? Vamos entender na prática.
38
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
Para isso, voltemos ao App Inventor, no ambiente Designer. Com nosso projeto “Bateria_ Eletronica” aberto, inclua um novo áudio no projeto, utilizando o componente Sound, facilmente encontrado dentro da seção Media. Veja a fi gura a seguir.
Fig.4.1 - Incluindo novo componente de som (Sound)
Renomeie o componente para “wrong”, como na fi gura a seguir.
Fig. 4.2 - Renomeando o componente de áudio
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
39
Nas propriedades do componente, confi gure o MinimumInterval para o valor “0” (zero). No campo Source, encontre o áudio específi co com o nome de “wrong.mp3”. O áudio encontra-se na pasta Sons, cujo download foi efetuado.
Fig. 4.3 - Enviando novo áudio para o projeto
Agora que você já enviou o áudio “wrong.mp3” para o novo componente de som, vamos para o ambiente de programação Blocks. Sua tela deverá aparecer como na imagem a seguir.
Fig. 4.4 - Ambiente de programação Blocks
40
DESENVOLVIMENTO EXCEL DE APLICATIVOS AVANÇADO 2013 - GOOGLE INVENTOR
Note que, ao rolar os elementos localizados à esquerda de sua tela, você encontrará o componente de som “wrong”. Clique sobre ele e selecione a ação wrong.play, como na imagem a seguir.
Fig. 4.5 - Ação .play no novo componente de áudio
Ao incluir a ação de “play” no ambiente de programação, o App Inventor irá sinalizar como um erro, mas não se preocupe: trata-se apenas de uma mensagem sinalizando a não existência de “pai” para a ação específica. O áudio “wrong.mp3” refere-se ao som de “Erro”, como uma campainha. A ideia é tocá-lo quando nossa condição for contrária à condição atual. Até o momento, não fizemos nenhuma verificação no nosso código, apenas mandamos o App Inventor tocar os áudios quando os botões forem clicados. Para efetuar uma verificação no código, primeiramente vamos focar no clique do botão Chimbal. Criaremos duas variáveis, que serão “Tocar” e “naoTocar”. Existem regras de nomenclatura para a criação de variáveis, dentre elas o fato de não utilizar acentos e não haver espaços entre as palavras. Para criar uma variável, no menu Blocks, selecione a seção Variables. Clique em Inicialize global Name to, como na imagem seguinte.
Fig. 4.6 - Criando uma variável local
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
41
Perceba que o bloco da variável pode ser renomeado no campo Name. Clique e renomeie sua variável para o valor Tocar. Aproveite para reorganizar seus blocos no ambiente de programação, como na imagem a seguir.
Fig. 4.7 - Renomeando a variável local
Agora, “falaremos” para o nosso código que a variável local Tocar tem como valor a lógica True (verdadeiro). Para isso, vá até o menu lateral esquerdo, na seção Logic, e clique no valor True. Arraste e conecte a variável Tocar, como na imagem a seguir.
Fig. 4.8 - Valor True para a variável Tocar
Agora, faremos a inclusão de uma nova variável com o nome de naoTocar, cujo valor é contrário à variável Tocar. Ou seja, colocaremos o valor False. Veja na figura a seguir como seu código deverá ficar.
42
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
Fig. 4.9 - Nova variável naoTocar com valor False
Agora, vamos incluir a condição IF em nosso código. Para isso, vá até o menu lateral esquerdo, na seção Control, e selecione a condição IF, como na fi gura a seguir.
Fig. 4.10 - Adicionando o bloco IF ao código
Vamos, agora, utilizar um bloco de comparação matemática em nosso código que funciona assim: elemento “A” pode ser igual, diferente, maior, menor, maior igual ou menor igual ao elemento “B”. Para entender melhor, no menu lateral, na seção Math (matemática), selecione o segundo bloco que aparece na lista, como na fi gura a seguir. Aproveite para reorganizar seu código, separando o botão de clique do componente Chimbal mais acima da tela.
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
43
Fig. 4.11 - Adicionando a comparação matemática
Agora, precisamos entender o processo de condicional no código. Queremos verificar se as variáveis criadas são True ou False. Tudo isso será feito dentro da nossa ação de clique, afinal é nela que a verificação será feita. Observe que, no bloco IF, existem duas conexões, uma fará a verificação e a outra conectará a ação que será feita. Nesse caso, desconecte a ação de .play do botão de clique e conecte-a no nosso IF, como na figura a seguir.
Fig. 4.12 - Reconectando a ação de play à condicional criada
O próximo passo é arrastar nossa condicional para dentro do nosso clique, carregando a ação de .play que acabamos de reconectar. Veja a figura a seguir.
44
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
Fig. 4.13 - Conectando a condicional criada com o antigo clique
Depois disso, devemos conectar nossa comparação matemática ao nosso IF, que agora está dentro da ação de clique. Veja na figura a seguir como deverá ficar sua programação.
Fig. 4.14 - Conectando a comparação matemática ao nosso IF
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
45
Você se lembra de que, anteriormente, havíamos falado sobre a condicional ELSE, que seria contrária à condicional IF? Pois é, vamos implementá-la no código. Para isso, note que, no bloco IF, existe um ícone em azul. Clique nele e selecione o valor ELSE. Arraste-o para a direita do pop-up, como na imagem a seguir.
Fig. 4.15 - Implementando a condicional IF com ELSE
Note que sua condicional agora está composta por IF e ELSE.
Fig. 4.16 - Condicional IF com ELSE
46
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
Agora, arraste o bloco .play do componente wrong criado anteriormente para dentro da condicional ELSE e conecte, como na fi gura a seguir.
Fig. 4.17 - Condiciona ELSE com ação de play
Para que nosso conjunto de ações funcione, precisamos completar nossa comparação matemática. Podemos resolvêla de diversas maneiras, por isso a programação é tão interessante, pois é pura criatividade. Vamos incluir mais dois novos blocos. O primeiro deles será o bloco GET (obter), que está dentro da seção Variables, localizada no menu lateral esquerdo da tela. Veja a imagem a seguir.
Fig. 4.18 - Adicionando o bloco SET na programação
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
47
O bloco GET faz referência às variáveis criadas, podendo ser Tocar ou naoTocar. Confi gure o bloco GET com a variável Tocar por meio do seletor existente.
Fig. 4.19 - Carregando a variável Tocar dentro do bloco GET
Conecte o bloco GET, no primeiro valor que está vazio, no bloco de comparação matemática, como na fi gura a seguir.
Fig. 4.20 - Conectando a variável Tocar com GET à comparação matemática
Agora, inclua um novo bloco GET na programação. Desta vez, confi gure-a com a variável naoTocar. Na sequência, conecte-a ao segundo campo da comparação matemática. Sua tela deverá fi car como a fi gura a seguir.
48
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
Fig. 4.21 - Conectando a variável naoTocar com GET à comparação matemática
Observe que, nesse momento, já não haverá mais nenhuma mensagem de erro na tela, pois sua ação (função) está correta. Porém, vamos analisar a nossa comparação matemática imposta na verifi cação IF. Note que estamos querendo saber nessa comparação SE a variável Tocar é IGUAL ( = ) à variável naoTocar. Lembre-se de que, ao criarmos as variáveis, determinamos valores para elas, sendo que a variável Tocar tem o valor True e a variável naoTocar tem o valor False. Ou seja, elas NÃO são iguais. Neste caso, nossa verifi cação IF não foi validada, sendo a condição ELSE favorável. Conclusão: ao efetuar o teste no emulador ou no smartphone, note que o áudio “wrong.mp3” será tocado. Vamos testar? Proceda com os passos aprendidos anteriormente para emular a sua aplicação. Caso tenha dúvidas, peça ajuda para seu professor.
DESENVOLVIMENTO EXCEL DE APLICATIVOS AVANÇADO 2013 - GOOGLE INVENTOR
49
Viram como ficou? Muito bem! Agora vamos alterar a nossa comparação matemática e verificar se a variável Tocar é DIFERENTE ( ≠ ) da variável naoTocar, alterando o seletor da comparação matemática para o símbolo ≠. Veja a imagem a seguir.
Fig. 4.22 - Reconfigurando a comparação matemática
Note que, ao configurar o valor da comparação matemática para ≠, você fez a seguinte pergunta para a programação da verificação IF: se a variável Tocar for DIFERENTE ( ≠ ) da variável naoTocar, toque o áudio chimbal_sound. Neste caso, a verificação foi favorável ao IF. Sendo assim, note que, ao emular o aplicativo, o som Chimbal será tocado corretamente, e não mais o áudio “wrong.mp3”. Faça agora esse mesmo conjunto de verificações e comparações para os outros componentes de clique em sua programação. Aproveite para alternar os valores das comparações matemática e, assim, efetuar novos testes. Sua tela poderá ficar como na figura a seguir.
Fig. 4.23 - Condicionais e verificações inseridas em todos os componentes de clique
Parabéns! Você acaba de se aprofundar ainda mais no mundo da programação e na criação de aplicativos mobile. Pratique, tente novas ações e experiências para aprimorar ainda mais seu conhecimento. 50
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
AULA 05 DESENVOLVIMENTO DE APLICATIVOS GOOGLE INVENTOR
Hoje, vamos criar um novo aplicativo. Será um cardápio mobile, muito útil nos dias de hoje e, ainda assim, muito pouco utilizado. Veja essa oportunidade de aprender como uma possibilidade de criar algo que, se bem lapidado, poderá ser comercializado futuramente e trazer valores monetários também.
5 - Criando um cardápio mobile
Para criar nosso novo aplicativo, utilizaremos novas imagens, que podem ser baixadas no link a seguir: https://www.dropbox.com/sh/3cd8znn2zqzigc3/AAC3MtJDn5OFS_r9I2O_t6Sqa?dl=0 Caso não consiga efetuar o download das imagens pelo link, peça para seu Instrutor os arquivos solicitados. Vamos para o App Inventor iniciar um novo projeto. Nomeie o projeto como Cardapio_Mobile (sem espaços entre as palavras e sem acentos).
Fig. 5.1 - Novo projeto - Cardápio Mobile
Nosso cardápio consiste em termos quatro telas (Screens) em um mesmo projeto. Para isso, clique no Setor 2, no botão Add Screen. Repita o procedimento até possuirmos quatro telas, que serão: Screen1, Screen2, Screen3 e Screen4. Selecione a Screen1, como na fi gura a seguir.
Fig. 5.2 - Seelcionando a Screen1
52
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
A Screen1 será a nossa tela de apresentação (início) e as demais telas serão nossos pratos selecionados. Para o desenvolvimento dessa aplicação, vamos utilizar um importante componente do App Inventor, o Listpicker, que é capaz de gerar uma lista de objetos que podem ser clicados e direcionar para novas telas ou novas ações. Primeiramente, vamos confi gurar nossa tela inicial. Na Screen1, adicione como backgroundImage (em propriedades) a imagem cheffmenu.png, como na fi gura a seguir.
Fig. 5.3 - Inserindo backgroundImage na Screen1
Sua Screen1 deverá fi car como na fi gura a seguir. Lembre-se de confi gurar o valor de BackgroundColor da Screen1 para None.
Fig. 5.4 - BackgroundImage da Screen1
O próximo passo será incluir o componente Listpicker. Clique e arraste para a Screen1. Note que o componente Listpicker se comporta como um botão ao ser inserido na tela. Confi gure-o com width Fill Parent e height Automatic. Limpe o texto no campo Texto das propriedades do Listpicker e insira uma imagem cujo nome é cliqueaqui.png.
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
53
Fig. 5.5 - Inserindo imagem no Listpicker
Sua tela deverá fi car como na fi gura a seguir.
Fig. 5.6 - Imagem inserida no Listpicker
Lembre-se de editar o valor de BackgroundColor do Listpicker para None (nenhum). Agora, vamos inserir as demais imagens nas próximas telas.
54
DESENVOLVIMENTO EXCEL DE APLICATIVOS AVANÇADO 2013 - GOOGLE INVENTOR
Selecione a Screen2.
Fig. 5.7 - Selecionando a Screen2
Na Screen2, vamos inserir um botão e, posteriormente, uma imagem. Para o botão, renomeie o texto para “Clique para voltar”. Para o width do botão, insira o valor Fill parent e, para o heigth, o valor Automatic. Sua Screen2 deverá ficar assim.
Fig. 5.8 - Inserindo um botão na Screen2
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
55
Acima do botão inserido, arraste o componente Image e configure-o com width Fill parent e height 800 pixels.
Fig. 5.9 - Inserindo Image na Screen2
Nas propriedades do componente Image, no campo Picture, insira a imagem exemplo_a.png.
Fig. 5.10 - Fazendo upload da imagem no componente Image
Sua tela deverá ficar como na figura a seguir.
56
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
Fig. 5.11 - Imagem inserida no componente Image
Observe que a rolagem da tela foi ativada, pois temos uma imagem com altura maior do que a Screen. Role até o fi nal e note que nosso botão inserido anteriormente está no rodapé da nossa tela.
Fig. 5.12 - Componentes Image e Button inseridos na Screen2
Agora, faça o mesmo com a Screen3 e com a Screen4, porém, para a Screen3, utilize a imagem exemplo_b.png. Para a Screen4, utilize a imagem exemplo_c.png. Lembre-se de sempre adicionar primeiro o componente Button na tela e, posteriormente, o componente Image acima do Button.
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
57
Agora que você já inseriu as imagens e os componentes, vamos programá-los. Selecione a Screen1 e o ambiente Blocks referente a ela. A primeira coisa que devemos fazer é criar uma variável. Vamos nomeá-la como listaCardapio.
Fig. 5.13 - Variavel listaCardapio criada na Screen1
Agora, vamos utilizar o bloco Make a list, localizado na seção Lists, e conectá-lo com a nossa variável listaCardapio. Como teremos uma lista com três exemplos, clique no ícone azul do bloco Make a list e insira mais um item, como na figura a seguir.
Fig. 5.14 - Conectando bloco Make a list com três itens à variável listaCardapio
58
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
Agora, temos que inserir para cada item do bloco Make a list um bloco de texto. Edite cada bloco com os valores: Exemplo A, Exemplo B e Exemplo C, respectivamente. Sua tela deverá ficar como na figura a seguir.
Fig. 5.15 - Inserindo blocos de texto no bloco Make a list
Agora, já temos nossa variável com os valores necessários para ser utilizada no componente Listpicker. Será preciso carregar nossa variável logo na inicialização do aplicativo, para que nossos seletores estejam ativos (lista de opções). Selecione o componente Screen1, clique no bloco When Screen1 inicialize e arraste-o, como na figura a seguir.
Fig. 5.16 - Inserindo o bloco When Screen1 inicialize
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
59
Esse bloco fará o carregamento da seleção de objetos do Listpicker. Para isso, selecione o componente Listpicker, arraste-o e conecte ao bloco Set Listpicker1 elements to o bloco When Screen1 inicialize, como na fi gura a seguir.
Fig. 5.17 - Conectando o bloco Set Listpicker1 elements to ao When Screen1 inicialize
O próximo passo será conectar a variável listaCardápio ao Listpicker. Utilize o bloco GET, como na fi gura a seguir.
Fig. 5.18 - Conectando a variável ao bloco Set Listpicker1 elements to
60
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
Neste momento, efetue um teste com o emulador ou com um dispositivo smartphone e verifi que se o funcionamento está como nas fi guras a seguir.
Fig. 5.19 - Emulando o aplicativo
Fig. 5.20 - Listpicker no emulador
Note que, ao clicar na tela inicial, automaticamente você é levado para o Listpicker, como na imagem anterior. Repare que, ao clicar em uma das opções, o App Inventor retorna para a tela inicial, pois ainda não implementamos a ação após o objeto selecionado.
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
61
Agora, com o componente Listpicker selecionado, arraste para o ambiente Blocks o bloco When Listpicker1 .AfterPicking.
Fig. 5.21 - Selecionando o bloco When Listipker1.AfterPicking
Fig. 5.22 - Bloco When Listipker1 .AfterPicking inserido
62
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
Esse bloco corresponde ao objeto clicado no Listpicker (objeto selecionado). Neste bloco, faremos a seguinte verifi cação com IF/ELSE: se o texto referente ao clique retornar o valor Exemplo A, vamos para a Screen2; se retornar o texto Exemplo B, vamos para a Screen3; se retornar o texto Exemplo C, vamos para a Screen4. Primeiramente, vamos inserir uma condição IF dentro do bloco When Listipker1.AfterPicking e dentro dela vamos implementar mais dois ELSE/IF, como na fi gura a seguir.
Fig. 5.23 - Inserindo condicional ELSE/IF dentro do bloco When Listipker1 .AfterPicking
Precisaremos conectar em nossas condicionais IF e ELSE/IF um bloco de comparação de texto, como na fi gura a seguir.
Fig. 5.24 - Inserindo comparação de texto aos nossos IF e ELSE
DESENVOLVIMENTO EXCEL DE APLICATIVOS AVANÇADO 2013 - GOOGLE INVENTOR
63
Sua tela deverá fi car como na fi gura a seguir.
Fig. 5.25 - Comparação de texto inserida aos nossos IF e ELSE
Note que o seletor de comparação de texto deverá fi car com o valor IGUAL ( = ). Lembre-se de que queremos comparar o valor do texto recebido na seleção do Listpicker com o valor inserido no campo posterior. Dessa forma, insira o bloco Listpicker.Selection em cada campo inicial da nossa comparação de texto. Sua tela deverá fi car como a fi gura a seguir.
Fig. 5.26 -Variável listaCardapio inserida na comparação de texto
64
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
Agora, nos campos restantes, vamos inserir os valores de comparação, que são: Exemplo A, Exemplo B e Exemplo C. Utilize o bloco Text. Sua tela deverá fi car como a fi gura a seguir.
Fig. 5.27 - Comparando o texto da variavel recebida com o texto inserido
Já temos nossas condicionais inseridas, porém ainda não inserimos as ações para cada uma delas. Agora é simples: vamos inserir o bloco Open another screen sreen name em cada uma das ações Then dos nossos IF e ELSE. Para isso, localize o bloco Open another screen screen name, que está na seção Control, no menu lateral esquerdo.
Fig. 5.28 - Bloco Open another screen screen name
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
65
Insira os blocos Open another screen screen name para cada uma das ações Then dos nossos IF e ELSE. Sua tela deverá ficar como a figura a seguir.
Fig. 5.29 - Blocos Open another screen screen name inseridos
Agora, faremos a inserção de mais três blocos de texto, cada um contendo a informação referente à tela que vamos migrar após a validação dos IF/ELSE. O primeiro deles será o texto “Screen2”, o segundo o texto “Screen3” e, por último, o texto “Screen4”. Conecte os blocos de texto criados às ações de troca de tela, como na figura a seguir.
Fig. 5.30 - Blocos de texto com os valores conectados
Ótimo! Aqui terminamos a programação da nossa Screen1. Agora, vamos programar os cliques dos botões das telas Screen2, Screen3 e Screen4. Selecione a Screen2 no botão correspondente localizado no Setor 2. Agora, com o componente Button1 selecionado, insira um bloco .click na tela. Posteriormente, você deverá inserir um bloco Open another screen screen name e preenchê-lo com um bloco de texto cujo valor será Screen1.
66
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
Perceba que estamos programando o retorno para a Screen1 após o clique no botão Clique para voltar. Sua tela deverá fi car como a fi gura a seguir.
Fig. 5.31 - Clique do componente Button1 confi gurado
Repita esses passos nas telas Screen3 e Screen4, fazendo sempre a mesma referência no bloco de Text para o valor Screen1 (retornar para a Screen1). Perfeito! Agora, podemos efetuar nosso teste fi nal no emulador ou smartphone e verifi car o funcionamento do nosso novo aplicativo Cardápio Mobile.
DESENVOLVIMENTO EXCEL DE APLICATIVOS AVANÇADO 2013 - GOOGLE INVENTOR
67
68
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
AULA 06 DESENVOLVIMENTO DE APLICATIVOS GOOGLE INVENTOR
Nesta aula, faremos o fechamento do curso de App Inventor. É muito importante que você recorde os passos anteriores e os repita diversas vezes para a fi xação do conteúdo.
6 - Activity Starter, TinyDB e Clock
Faremos agora um novo e último projeto. Neste projeto, você conhecerá três novos componentes non-visibles (invisíveis) na interface Designer, porém são componentes muito importantes e de enorme utilidade em projetos que necessitam de atividades nativas do sistema operacional Android, bem como em automação de projetos.
6.1 - Novos componentes O Activity Starter é um componente responsável por integrar ações nativas do Android (do sistema operacional) com as ações do usuário. O componente TinyDB é o banco de dados da aplicação. Ele é capaz de indexar informações dentro da aplicação para que ela consuma os dados salvos. Os dados são salvos com chaves (tags), dessa forma é possível consumir dados de diversas chaves em determinadas situações. O componente Clock é responsável pela automação da aplicação. É a persistência automatizada, podendo ser utilizado como uma espécie de timer para determinadas ações dentro da aplicação.
6.2 - Projeto final Nosso projeto fi nal tem como objetivo consumir dados inseridos na aplicação, gravar automaticamente os dados inseridos e acessar uma função nativa do sistema operacional. Faremos um App de pesquisa nas redes sociais. Teremos auxílio de um componente que estamos vendo pela primeira vez, cujo nome é TextBox, que possibilita a chamada (utilização) do teclado virtual (função nativa) na inserção de texto. Neste novo desenvolvimento, você utilizará novas imagens, que podem ser baixados no link a seguir: https://www.dropbox.com/sh/66yvxt8eg6oeva8/AADVb6ZXLTwUo-8AWVsAtIt6a?dl=0 Se não for possível acessar o link, peça para o seu educador disponibilizar os arquivos. Primeiramente, inicie um novo projeto com o nome Search_Social.
70
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
Fig. 6.1 - Novo projeto Search Social
O próximo passo será inserimos, com o auxílio do menu lateral, à esquerda da interface de produção do App Inventor, o componente TableArrangement. Vamos confi gurá-lo com duas colunas e duas linhas. Confi gure o width com o valor Fill parent e o height com valor Automatic, como na imagem a seguir.
Fig. 6.2 - TableArrangement
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
71
Faremos a inserção de quatro botões dentro do TableArrangement, respeitando as disposições impostas de duas colunas e duas linhas. Confi gure os botões com o width no tamanho de 160 pixels e o height com 160 pixels também. Lembre-se de remover os textospadrão dos botões inseridos. Veja a seguir.
Fig. 6.3 - Botões inseridos
Agora, vamos inserir as respectivas imagens referentes aos botões. Fique à vontade para posicioná-las. Veja a seguir.
Fig. 6.4 - Imagens dos botões inseridas
72
DESENVOLVIMENTO EXCEL DE APLICATIVOS AVANÇADO 2013 - GOOGLE INVENTOR
Agora, vamos inserir o componente TextBox acima do nosso TableArrangement. Para as configurações desse componente, insira, no campo Hint, o texto search here. O width deverá estar com Fill parent e o height com 100 pixels. Para o BackgroundColor, configure a cor Light Gray. Perceba que temos um checkbox com os dizeres Multiline (multilinhas). Clique e selecione essa opção. Sua tela deverá ficar como a imagem a seguir.
Fig. 6.5 - TextBox inserido e configurado
Agora, vamos inserir os componentes non-visibles. Faremos, primeiramente, a inserção do componente Activity Starter, facilmente encontrado no menu lateral da seção Conectivity. Arraste-o para a interface de produção. Nas configurações, preencheremos apenas o campo referente à seção Action com o valor android.intent.action.VIEW (escrito exatamente dessa forma). Veja como sua tela deverá ficar na figura a seguir.
Fig. 6.6 - Activity Starter inserido
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
73
Agora, faremos a inserção do componente TinyDB (banco de dados), que será encontrado na seção Storage. Arraste-o para a interface de produção. Nesse componente, não será necessário efetuar nenhuma configuração.
Fig. 6.7 - TinyDB inserido
O próximo componente a ser inserido será o Clock. Ele é encontrado na seção Storage. Arraste-o para a interface de produção e mantenha as configurações-padrão do componente.
Fig. 6.8 - Componente Clock inserido
Termina aqui nosso trabalho na interface Designer. Vamos para a interface Blocks para editarmos nossa programação.
74
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
Com a interface de Blocks aberta, devemos primeiramente interpretar as funções .click que teremos. Serão quatro ações, uma para cada botão inserido - Button1, Button2, Button3 e Button4. Insira as ações, conforme a fi gura a seguir.
Fig. 6.9 - Ações de clique inseridas
Agora, faremos a inserção do componente Set ActivityStarter1.DataUri to. Faremos a inserção desse componente em todas as ações de clique inseridas. Note que essa ação está ligada ao componente ActivityStarter, ou seja, para inserir as ações, primeiramente devemos clicar nesse componente. Sua tela deverá fi car como a fi gura a seguir.
Fig. 6.10 - Blocos Set conectados aos cliques
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
75
O próximo passo será inserir um bloco do tipo Text com a ação Join (juntar) em cada um dos componentes Set recém-inseridos. Sua tela deverá ficar como a figura a seguir.
Fig. 6.11 - Blocos Join conectados aos blocos Set
Faremos a inserção de um bloco de texto editável para cada primeira conexão dos blocos Join inseridos anteriormente. Veja como deverá ficar.
Fig. 6.12 - Blocos Text conectados aos blocos Join
76
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
Agora, no conector que sobrou do bloco Join, vamos inserir o bloco TextBox1.text em cada um deles, como na figura a seguir.
Fig. 6.13 - Blocos TextBox1 conectados aos blocos Join
Perceba que Button1 faz referência ao ícone da rede social Facebook. Já o Button2 faz referência ao Twitter e os Button3 e Button4 fazem referência ao YouTube e ao Google Plus, respectivamente. Agora, vamos editar os blocos Text inseridos, sendo que cada um terá um texto diferente. Veja a seguir os textos que devem ser inseridos em cada botão. • • • •
Button1 Button2 Button3 Button4
-
https://www.facebook.com/search.php?q= https://twitter.com/search?q= https://www.youtube.com/results?search_query= https://plus.google.com/s/
Veja a seguir como deve ficar a estrutura.
Fig. 6.14 - Textos inseridos nos blocos Text
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
77
Acabamos de descrever um link para cada rede social clicada. Agora, faremos a inserção da programação do nosso banco de dados. Utilizaremos o bloco Call TinyDB1.StoreValue conectado ao nosso bloco ActivityStarter1. Para encontrar esse bloco, lembre-se de manter selecionado o componente TinyDB1. Veja a fi gura a seguir.
Fig. 6.15 - Bloco Call TinyDB1.StoreValue conectado
Como você pode ver, esse bloco possui duas conexões e elas são obrigatórias. Faremos a inserção de um bloco Text na conexão Value e novamente vamos inserir o bloco TextBox1, desta vez nas conexões valueToStore. Insira, no bloco Text, o texto Search (procurar).
Fig. 6.16 - Blocos Text e TextBox1 conectados ao .StoreValue do banco de dados
78
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
Agora, faremos a inserção do bloco responsável por inicializar a ação do ActivityStarter. Esse bloco se chama Call ActivityStarter.StartActivity. Vamos conectá-lo logo abaixo do bloco Call TinyDB1.StoreValue. Lembre-se de selecionar o componente ActivityStarter1.
Fig. 6.17 - Bloco .StartActivity conectado
Aqui terminamos nossa função de clique, mandando e recebendo informações do banco de dados, porém ainda temos que confi gurar outras ações ligadas à inicialização do nosso App e também ligadas à nossa persistência automatizada, responsável por gravas nossos dados no banco automaticamente, de 1 em 1 segundo. Selecione a Screen1 e, em seguida, encontre o bloco When Screen1 initialize. Coloque-o no ambiente Blocks. Agora, conecte o bloco Set TextBox1.Text ao bloco inserido anteriormente. Você deverá ter a seguinte tela.
Fig. 6.18 - Set TextBox1.Text conectado
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
79
Conecte agora o bloco Call TinyDB1.GetValue ao bloco inserido anteriormente.
Fig. 6.19 - Get TinyDB1 .GetValue conectado
Note que esse bloco traz, já conectado com ele, um bloco Text. Vamos inserir mais um e vamos editá-los com os textos Search e Search here, respectivamente.
Fig. 6.20 - Get TinyDB1 .GetValue com tags confi guradas
80
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
Agora, vamos programar o componente Clock1 com a ação .Timer. Selecione o componente Clock1 e, em seguida, o bloco When Clock1.Timer.
Fig. 6.21 - Inicializando o componente Clock1
Lembre-se de que esse componente é responsável pelo nosso salvamento automático, ou seja, ele fará o salvamento automático das nossas informações no banco de dados. Conecte a esse componente o bloco Call TinyDB1.StoreValue.
Fig. 6.22 - Call TyniDB1 .StoreValue conectado
DESENVOLVIMENTO EXCEL DE APLICATIVOS AVANÇADO 2013 - GOOGLE INVENTOR
81
Na sequência, vamos conectar um bloco de Text, cujo texto será novamente Search. Logo abaixo, na conexão ValueToStore, o bloco TextBox1.Text, como na fi gura a seguir.
Fig. 6.23 - Blocos Text e TextBox1 .Text conectados
Com isso, fi nalizamos nossa programação. Agora, devemos testar nossa aplicação e ver o que ela é capaz de fazer.
Fig. 6.24 - Testando a aplicação
Se você seguiu corretamente os passos, sua aplicação deverá agir da seguinte forma: Ao inserir uma palavra simples ou composta no componente TextBox1 e, posteriormente, clicar em um dos botões, automaticamente sua aplicação acionará um recurso nativo do seu smartphone, o browser de navegação. Ao retornar do browser para o aplicativo, note que a pesquisa inserida anteriormente está mantida no TextBox1, pois temos o componente Clock1, que salva nossas informações automaticamente em nosso banco TinyDB1. Faça diversas pesquisas em seu novo aplicativo para compreender melhor seu funcionamento.
82
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
6.3 - Conclusão Aqui termina nosso curso de desenvolvimento de aplicativos com o App Inventor. Note que você aprendeu diversos recursos e poderá usá-los de maneiras distintas. Navegue sempre pelo site do App Inventor para acompanhar tutoriais e informações atualizadas sobre essa valiosa ferramenta de criação.
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
83
84
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
Bibliografia
Júlio Battisti MCSE, MCSA, MCDBAeE MCSD, Windows Server 2003 – Curso Completo Sites: Disponível em: . Acesso em 16 de Out. de 2014. Disponível em: . Acesso em: 16 de Out. de 2014. Disponível em: Acesso em: 16 de Out. de 2014. Disponível em: Acesso em: 18 de Out. de 2014. Disponível em: Acesso em: 19 de Out. de 2014. Disponível em: Acesso em: 19 de Out. de 2014.
-
Disponível em: Acesso em: 19 de Out. de 2014. Disponível em: Acesso em: 19 de Out. de 2014. Disponível em: Acesso em: 19 de Out. de 2014. Disponível em: Acesso em: 19 de Out. de 2014. Disponível em: Acesso em: 19 de Out. de 2014. Disponível em: Acesso em: 19 de Out. de 2014. Disponível em: Acesso em: 19 de Out. de 2014. Disponível em: Acesso em: 19 de Out. de 2014. Disponível em: Acesso em: 19 de Out. de 2014. Disponível em: Acesso em: 19 de Out. de 2014. Disponível em: Acesso em: 19 de Out. de 2014. Disponível em: Acesso em: 19 de Out. de 2014. Disponível em: Acesso em: 19 de Out. de 2014.
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR
85
Disponível em: Acesso em: 19 de Out. de 2014. Disponível em: Acesso em: 19 de Out. de 2014. Disponível em: Acesso em: 19 de Out. de 2014.
Imagens: A responsabilidade pelos direitos autorais das imagens desta obra é do autor.
86
DESENVOLVIMENTO DE APLICATIVOS - GOOGLE INVENTOR