Depuração de seu código no App Inventor

Aprenda dicas para depurar seu código e corrigir erros no MIT App Inventor

O QUE É DEPURAÇÃO/DESBUGAR?

Depuração é o processo que os programadores usam para descobrir porque seu código não está funcionando e, em seguida, corrigi-lo para que funcione.

O termo depuração veio da almirante Grace Hopper, uma pioneira da computação. Ela estava trabalhando no computador Mark II na Universidade de Harvard na década de 1940 e uma mariposa ficou presa no computador e o impediu de funcionar.

Ao se livrar da mariposa, ela disse que eles estavam "depurando" o sistema. Atualmente, os programadores usam o termo para se referir a "corrigir erros em meu código".

Grace Hopper

DICAS DE PROGRAMAÇÃO

cachorro olhando para o computador

A depuração pode ser, muitas vezes, a parte mais frustrante e demorada do programação, por isso é muito importante reservar bastante tempo para ela!

E também para ser paciente!

PEQUENOS PEDAÇOS

Às vezes, os programadores ficam tentados a programar todo o aplicativo de uma só vez e depois testá-lo.

Não caia nessa tentação!!!

Se algo não funcionar corretamente, o que é provável, é difícil descobrir por onde começar a tentar corrigir o erro. 

pedaços de chocolate

Divida o código do seu aplicativo em pequenas partes. 

Faça uma coisa funcionar antes de começar outra. 

Programe um pouco, teste um pouco, confirme se funciona, então programe um pouco mais, teste um pouco mais etc. 

Por exemplo, se seu aplicativo tiver 5 botões que fazem coisas diferentes,

  1. Programe a ação para o primeiro botão
  2. Em seguida, teste para ter certeza de que está funcionando.
  3. Passe para o segundo botão
  4. Repita.

É melhor corrigir o código em um lugar do que voltar e corrigi-lo em cinco lugares se houver um erro em seu código.

aplicativo com 5 botões

CONTROLE DE VERSÃO

começou como um erro

Digamos que você siga a regra dos "pequenos pedaços" e tenha uma parte do seu aplicativo construída e funcionando.

Você adiciona um novo código e, de repente, tudo para de funcionar. 

OH NÃO!

Você tenta excluir o novo código, mas seu aplicativo ainda não está funcionando. Você não tem certeza do que deu errado e gostaria de ter um botão "desfazer".

Para evitar cenários como esse, você pode salvar versões do seu aplicativo à medida que as partes forem funcionando. 

Dessa forma, se você cometer um erro e não souber como corrigi-lo, poderá voltar à última versão funcional que salvou.

Também é possível usar o controle de versão para experimentar novos recursos sem se preocupar com a quebra do aplicativo em funcionamento.

Há duas maneiras de salvar versões diferentes no App Inventor, usando "save as" (salvar como) e "checkpoint" (ponto de controle).

O "Checkpoint (Ponto de controle)" salvará uma cópia com o nome que você der a ela, mas você continuará trabalhando na versão original. A ideia é fazer o "checkpoint" da versão que funciona e continuar o desenvolvimento na versão principal do projeto.

Menu Projeto, ponto de controle selecionado

A função "Save project as (Salvar projeto como)" criará uma cópia do código em que você está trabalhando e a salvará com um novo nome. Todas as edições que você fizer estarão na nova cópia.

menu do projeto, salvar como selecionado

COLLAPSE BLOCKS (RECOLHIMENTO DE BLOCOS)

O recolhimento de blocos (Collapsing Blocks) é uma forma de manter seu código organizado, já que o espaço de trabalho do código começa a ficar lotado de blocos.

Se você clicar com o botão direito do mouse em um bloco, verá uma opção para "collapse" (recolher).

Para expandir seus blocos novamente, clique com o botão direito do mouse sobre eles e selecione Expand Block (Expandir Bloco).

expansão de um bloco no app inventor

Os blocos recolhidos serão reduzidos a uma barra na tela.

Eles continuam funcionando da mesma forma que os blocos normais, mas ocupam menos espaço. Isso pode ser útil se você tiver blocos que não precisa mais editar e quiser limpar a tela

collapsed block (bloco recolhido)

DESATIVAR BLOCOS

Você também pode desativar os blocos.

Eles permanecem na sua tela, mas não são executados no aplicativo.

Com os blocos desativados, você pode testar seu aplicativo sem determinados blocos de código. Você pode ativá-los mais tarde e eles serão executados.

Você também pode desativar os blocos que usou apenas para testes, como os Notifiers.

Há duas maneiras de desativar os blocos no App Inventor

O simples fato de arrastar blocos para fora de um bloco manipulador de eventos os desabilitará e impedirá que sejam executados. Como eles não fazem parte de nenhum evento, não há como serem executados. Você sempre poderá colocá-los de volta para usá-los.

bloco desativado, arrastando-o para fora do bloco de eventos

Você também pode clicar com o botão direito do mouse em um bloco ou grupo de blocos e selecionar "Disable Block (Desativar Bloco)". Os blocos aparecerão em cinza para mostrar que não serão executados. Dessa forma, você pode desativar um conjunto inteiro de blocos.

Para ativar seus blocos novamente, basta clicar com o botão direito do mouse e escolher "Enable Block" (Ativar bloco).

COMENTÁRIOS

Os programadores geralmente deixam comentários em seu código para explicar o que ele faz. 

Os comentários podem ser úteis quando outras pessoas estiverem analisando o seu código, como colegas de equipe, mentores(as) e juízes.

Os comentários também podem ajudar caso você retorne ao seu código mais tarde e tenha esquecido o que partes dele fazem.

Para adicionar um comentário, clique com o botão direito do mouse nos blocos e selecione "Add Comment" (Adicionar comentário).

Depois disso, um ponto de interrogação aparecerá no canto do bloco e você poderá adicionar texto. Você pode visualizar o comentário clicando no ponto de interrogação.

Melhores práticas: Os comentários são a coisa mais útil na programação.

Já houve muitas ocasiões em que um programador programou algo e depois foi dormir e voltou na manhã seguinte sem ter ideia do que estava fazendo na noite anterior. Sempre escreva comentários!

It’s also a great way to check your knowledge, because if your coding blocks are easy to comment on then you must understand them really well! Another thing to be aware of is that <, >, =, ≤, ≥ are hard for students for the first time (and for programmers who are years into their careers). When we set a math statement to < when it should be ≤ this is called an “off by one” error and this is a problem that happens to developers with 20 years of experience 😛 It is a very popular problem so be on the lookout for that. 

O melhor tipo de depuração é a depuração com patos de borracha! É quando você está realmente se sentindo sem saída em seu código e ele não faz sentido. Você quer tirar um tempo para conversar com outra pessoa para ver se ela consegue identificar o problema, mas, infelizmente, não há ninguém por perto! Então, você tem um pato de borracha de confiança na sua mesa e explica o problema em voz alta para o seu amigo pato. Você precisa fazer isso em termos muito simples para que ele entenda e, depois disso, você mesmo encontrará o problema! Todos os meus colegas de trabalho têm patos de borracha em suas mesas e fazem isso com frequência!

Perguntas orientadoras para fazer a estudantes: Quanto tempo você acha que programadores experientes levam para depurar bugs? Seria de se esperar que eles fossem muito rápidos nisso, mas todos os grandes sites têm páginas dedicadas a ver por quanto tempo os bugs existem(Facebook, por exemplo) e também mostram se alguma de suas páginas está fora do ar/quebrada e se eles estão fazendo a depuração no momento(exemplo do Facebook).

Como você encontra bugs? (muitos e muitos testes!) Quantos testes você acha que deve fazer? Quanto teste você deve pedir para outras pessoas fazerem?

Como você sabe quando encontrou um bug? Às vezes, você pode passar uma eternidade clicando em uma imagem e perceber que o botão em que deveria estar clicando está embaixo da imagem. Isso é um bug? É uma escolha de design que o fabricante do aplicativo fez e ele não acha que seja um bug, mas você pode achar que é.

As dicas são fornecidas com o apoio do AmeriCorps.

A estilizado, logotipo da AmeriCorps em azul-marinho

DICAS DE DEPURAÇÃO

NOTIFICADORES E LABELS

O Notifier (Notificação/Notificador) pode ajudá-la a descobrir por que seu código está quebrado. 

Para colocar um Notifier no seu aplicativo no App Inventor, arraste-o da paleta da interface do usuário.

Exemplo de ShowAlert

A maneira mais fácil de usar o Notifier é adicionar blocos ShowAlert (Mostrar alerta) com informações para que você possa ver que determinados blocos foram executados (ou não).

Além das mensagens, você pode exibir informações como o valor de uma variável ou a posição de um ImageSprite.

Você também pode adicionar Labels (Rótulos/Identificadores) para exibir informações atuais em seu aplicativo. 

Por exemplo, você pode querer saber o valor de uma variável à medida que determinados eventos acontecem enquanto o aplicativo está em execução. 

Você pode definir o Label.Text para o que quiser saber e ele será exibido no seu aplicativo. 

Depois de depurar o erro, você pode tornar o rótulo/identificador invisível ou excluí-lo completamente do aplicativo.

DO IT (FAÇA)

 O componente  Do it (Faça) é outra ótima ferramenta para depuração.

Enquanto estiver testando seu aplicativo ao vivo, seja com um telefone e o aplicativo AI Companion ou com o emulador, você terá acesso a um novo comando, "Do It".

O comando fica acinzentado até que você se conecte a um telefone ou ao emulador por meio do menu Connect (Conectar).

O Do it permite executar um bloco sem precisar interagir com o próprio aplicativo, para que você possa ver o valor atual de uma variável ou elemento. 

 

Basta arrastar o bloco de variável "get global" e clicar com o botão direito do mouse. Selecione "Do It" no menu suspenso e o bloco de código será executado.

Do it no menu suspenso

Uma caixa amarela Do It aparecerá acima da caixa com o resultado. Isso também pode funcionar para qualquer propriedade de componente!

Resultado do bloco do it

Você também pode usar o Do It para alterar algo em seu aplicativo. Por exemplo, talvez você queira alterar um item em uma lista. Arraste o bloco para fazer isso e selecione Do It. Você não verá o resultado, mas a lista será atualizada no aplicativo.

 

definir um valor de lista com o do it

Você também pode executar um bloco de código existente em seu aplicativo. 

Por exemplo, aqui os elementos do ListView serão atualizados usando o Do It. Isso será refletido no aplicativo. O ListView exibirá os novos elementos definidos com o comando Do It.

atualizar um listview com o do it

USAR DADOS DE TESTE

Se você tiver muitas informações para usar em seu aplicativo, pode ser útil usar dados de teste. Os dados de teste são um conjunto de dados mais simples e menor que você pode usar para garantir que seu aplicativo esteja funcionando corretamente.

Digamos que você esteja criando um aplicativo que exibe restaurantes próximos. Você está usando o Google Tabelas para armazenar as informações do restaurante.

Você pode começar com apenas um ou dois restaurantes de teste e testar seu aplicativo para ter certeza de que ele funciona.

Quando estiver testado e funcionando, você poderá adicionar o conjunto completo de dados do restaurante à sua planilha do Google.

ALTERAR PROPRIEDADES

Se estiver testando o aplicativo em tempo real, você poderá alterar o valor de uma propriedade no Designer enquanto executa o aplicativo e ver seus efeitos.

Às vezes, isso pode ajudar a descobrir um problema.

Por exemplo, você pode estar acessando programação um jogo. A posição de um sprite não parece correta no seu telefone quando ele está em execução.

Durante o teste ao vivo, você pode

  1. Ir para o Designer
  2. alterar os valores X e Y do Sprite
  3. A posição do sprite na tela do aplicativo em execução será alterada. 

Use-o para testar e entender as coordenadas na tela.

jogo com sprites

ATIVIDADE 1: CONSERTE O BUG

Tempo estimado: 20 minutos

Correção de erros no aplicativo de Temporizador

Isso Aplicativo de Temporizador tem alguns bugs.

  1. Carregue o aplicativo no App Inventor.
  2. Conecte-se ao emulador ou dispositivo para testar o aplicativo.
  3. Try pressing Start without typing anything into the textbox. What happens?
  4. Tente inserir 0 ou um número negativo para o número de segundos. O que acontece?
  5. Corrija os erros usando blocos condicionais!

ATIVIDADE 2: ADICIONE UM COMENTÁRIO

Tempo estimado: 10 minutos

Adicione um comentário ao seu projeto no App Inventor

Se você tiver iniciado seu aplicativo final para o Technovation, use-o para esta atividade. Caso contrário, use o aplicativo DE Temporizador da Atividade 1.

Adicione pelo menos um comentário ao seu aplicativo explicando o que um grupo de blocos faz. Escolha um grupo de blocos que considere mais difícil de entender, pois esses blocos provavelmente seriam os mais difíceis de serem entendidos por outra pessoa, como um membro da equipe.

REFLEXÃO

Essas dicas podem ajudá-la quando você começar a programar o aplicativo para o Technovation.

Mas lembre-se...

Foto cedida pela DKJS Franziska Schmitt
programação não é fácil.
É bem provável que seu aplicativo não funcione perfeitamente no início!
Programe em pequenas partes.
Comemore quando você conseguir que uma pequena parte do seu aplicativo funcione.
Faça pausas! Às vezes, o simples fato de se afastar do computador por alguns minutos pode lhe dar a perspectiva nova de que você precisa.

REVISÃO DOS PRINCIPAIS TERMOS

  • Depuração - o processo que os programadores usam para descobrir porque seu código não está funcionando e corrigi-lo
  • Controle de versão - salvar versões de trabalho de seu aplicativo à medida que você avança
  • Dados de teste - um conjunto mais simples de dados que você pode usar para garantir que seu aplicativo esteja funcionando corretamente
  • Comentários -texto que é incluído no código para explicar o que ele faz

RECURSOS ADICIONAIS