Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Codificação II [Technovation Girls 22]

Codificação II [Technovation Girls 22]

Aula para estudantes do ensino superior do projeto de extensão Technovation Girls 2022, sobre Codificação II: Transformando a ideia na prática.

Deborah Camila

April 18, 2021
Tweet

More Decks by Deborah Camila

Other Decks in Technology

Transcript

  1. 2ª parte: O que veremos? - Lógica avançada e operadores

    lógicos - Loops (FOR, FOR EACH, WHILE) - Usando sensores e componentes no App Inventor - Guardar informações localmente (TinyDB) - Guardando informações na nuvem e APIs - Como debugar o código no App Inventor - Fluxograma
  2. Operadores lógicos: permitem que os computadores tomem decisões com base

    em várias condições. - E (and) - Ou (or) - Não (not) No App Inventor, esses são blocos que precisam de duas entradas:
  3. Operador E (and): Produzirá true (verdadeiro) quando todas as condições

    de entrada forem verdadeiras. Se alguma das condições de entrada for falsa, a saída será falsa.
  4. Exemplo usando o operador E (and): • Se (o nome

    de usuário está correto) e (a senha está correta) → então permita que o usuário faça o login • Se um deles estiver incorreto → então não permita que o usuário faça login As duas condições no App Inventor Aqui estão essas duas condições em um bloco E (and)
  5. Continuação do exemplo usando o operador E (and): Agora você

    pode colocá-los em uma instrução if (se). Esta instrução if só fará o login da pessoa se ambas as condições forem verdadeiras Mais alguns exemplos de quando você pode usar E (and): • Ganhando um jogo: - Se (o jogador termina o nível) e (o tempo não acabou) → então o usuário ganha • Encontrar uma mercearia nas proximidades: - Se (a loja está aberta) e (a loja está perto do usuário) → então aparecem nos resultados da pesquisa • Postagem de fotos com legendas: - Se (o usuário selecionou uma imagem) e (o usuário inseriu uma legenda) → então permita que o usuário poste a imagem
  6. Operador Ou (or): Para que o operador Ou (or) produza

    true (verdadeiro), apenas uma das entradas precisa ser true (verdadeiro).
  7. Exemplo usando o operador Ou (or): Imagine que você está

    criando um jogo. Você quer que o jogo acabe quando o tempo acabar ou quando o jogador perder todas as suas vidas. As duas condições no App Inventor Aqui estão essas duas condições em um bloco Ou (or)
  8. Continuação do exemplo usando o operador Ou (or): Agora você

    pode colocá-los em uma instrução if (se). Esta declaração if encerrará o jogo se pelo menos uma das condições for verdadeira Mais alguns exemplos de quando você pode usar Ou (or): • Mostrando resultados de pesquisa - Se (o título corresponder) ou (a descrição corresponder) → mostre-o nos resultados da pesquisa • Recomendar vídeos a um usuário - Se (os amigos do usuário gostarem) ou (é semelhante a algo que o usuário gostou) → então recomende ao usuário
  9. Operador Não (not): O operador Não (not) muda o valor

    de uma condição de entrada para ser o oposto do que é.
  10. Exemplo usando o operador Não (not): Supondo que você queria

    verificar se o usuário inseriu uma pergunta na caixa de texto. Você pode usar o operador Não (not) para se certificar de que a caixa de texto não está vazia Condição no App Inventor Aqui está como você pode colocar essa condição em uma instrução if. Esta instrução if só dará ao usuário uma resposta se a caixa de texto não estiver vazia.
  11. Aqui estão alguns outros exemplos em que você pode usar

    o operador Não (not): • Você deseja excluir os resultados da pesquisa sobre cachorros, então você verifica a palavra “cachorrinho” usando o operador Não (not) . - Se não (o artigo contém a palavra “cachorrinho”) → mostre os resultados • Você pode combinar operadores lógicos para fazer mais coisas. Veja como você poderia mostrar resultados de pesquisa que têm a palavra “gatinho” e não têm a palavra “cachorrinho”. - Se não (o artigo contém a palavra “cachorrinho”) e (o artigo contém a palavra “gatinho”) → mostre os resultados
  12. Loops: são uma forma de dizer ao computador para fazer

    algo várias vezes seguidas. Imagina que você foi solicitada a escrever seu nome 100 vezes consecutivos! Isso pode levar muito tempo e você pode cometer alguns erros ao longo do caminho. Mas você pode ter a vantagem usando: Loops! Loop é um bloco de código que se repetirá continuamente.
  13. While: serão repetidos até que uma condição não seja mais

    verdadeira. For: se repetirão um certo número de vezes. For Each: são um tipo de loop for que se repete uma vez para cada item em uma lista.
  14. For: repetirão um bloco de código um determinado número de

    vezes. A razão que eles são chamados FOR loops é que você pode dizer ao seu aplicativo quantas vezes você quer que ele repita para o código for . Você pode pensar em loops for como dizer ao seu aplicativo, “repita isso, por 20 vezes” ou “repita isso, por 5 vezes”. Os For loops usam uma variável para contar quantas vezes o código foi repetido, chamado de count (contador). Você controla quantas vezes o loop se repete definindo onde o contador começa e termina. Você também define o quanto o contador sobe cada vez que o código se repete. Na maioria dos cenários, você deseja que o contador aumente em 1 cada vez que o loop se repetir.
  15. Exemplo usando o loop For: - Nesse exemplo, o contador

    se chama number. - O número começará em 1 e parará quando for igual a 5. - Cada vez que o código dentro do loop se repete, o number aumenta em 1. - Portanto, este loop repetirá o código dentro dele 5 vezes. - Nós não mudamos nada sobre o number, mas nós adicionamos um código para o fazer parte do loop. - Cada vez que este loop é executado, o aplicativo irá alertar seu usuário “hello”, então o usuário será alertado 5 vezes.
  16. Outra maneira que os loops For podem ser úteis é

    usando a variável counter em seu código: - Cada vez que o loop for executado, a variável do contador (number) terá um valor diferente e isso pode ser muito útil. - Neste loop for , estamos usando o number no código, anexando-o à palavra “hello”. - O number aumenta em 1 a cada vez, então o aplicativo continuará imprimindo coisas diferentes cada vez que for executado.
  17. Exemplo usando o loop For Each: - Aqui, a variável

    do contador é chamada de item e este loop já está configurado para se repetir para o número de itens em uma lista. - Esses loops são muito úteis sempre que você precisa fazer algo com uma lista.
  18. Digamos que você tenha uma lista de números e queira

    somar todos os números da lista e armazená-los em uma variável chamada sum: Cada vez que o loop for executado, a variável sum obterá um item de numberList adicionado a ela. O loop irá parar automaticamente depois que todos os números da lista forem adicionados. Aqui está o que o loop faz: • Há um item na lista, que inicia o loop. - Soma Global = 0 + 44 • Os itens ainda estão em loop, repita. - Soma Global = 44 + 7 • Os itens ainda estão em loop, repita - Soma Global = 51 + 16 • Não há itens restantes, saia do loop. - Defina o texto Label1 para 67
  19. While: são loops que continuarão até que uma condição não

    seja mais verdadeira. O motivo pelo qual eles são chamados de loops while é porque o código se repetirá enquanto uma condição ainda for verdadeira. Você pode pensar nos loops while dizendo ao seu aplicativo “ enquanto isso acontece, repita isso” ou “ enquanto isso não mudou, repita isso”. - Você está dando uma festa e quer que a música continue tocando até que todos os convidados saiam. Você pode descrever sua festa como este ciclo: • Enquanto (convidados na festa> 0) • fazer: continue tocando música - E se você também quiser que sua música pare de tocar quando for depois da meia-noite? Agora você pode descrever sua festa como este loop. • Enquanto (convidados na festa> 0) e (hora <meia-noite) • fazer: continue tocando música Nesse caso, a música parava assim que todos saíssem da festa ou se já passasse da meia-noite.
  20. Aparência do loop While no App Inventor: CUIDADO! Com loops

    while é possível cometer erros! Se você escolher uma condição que nunca será falsa, seu loop nunca terminará. Isso é chamado de loop infinito. - Para usar um loop while, você precisa configurar uma condição que comece como verdadeira. - Se sua condição começar como falsa, seu loop nunca será executado. - O loop verificará a condição todas as vezes antes de se repetir para garantir que a condição ainda seja verdadeira.
  21. Sensores e componentes: Permitirão que seu aplicativo faça muitas coisas

    diferentes. Componentes O que faz Câmera, alto-falante, microfone Permitem que você tire fotos, vídeos, grave sons GPS Mostra a localização do telefone Armazenamento em um telefone Permite que você armazene preferências, imagens e sons Conectividade com a web Permite que você conecte o telefone a informações na web Acelerômetro, giroscópio Mostra o quão rápido o telefone está se movendo Chamadas, mensagens de texto, listas de contatos Permite fazer chamadas, enviar mensagens de texto e se conectar com pessoas
  22. Componentes de mídia: Componentes que usam recursos relacionados a coisas

    como fotos, áudio e vídeo. Componentes Filmadora Gravador de som Câmera Jogador ImagePicker / Biblioteca de fotos Som Video Player Reconhecedor de Fala YandexTranslate Texto para fala
  23. Componentes Redes Sociais: Componentes que fazem ligações, envia e-mails, mensagens

    de texto e compartilha certos tipos de informações. Componentes ContactPicker Mensagem de texto EmailPicker Compartilhamento PhoneNumberPicker Twitter Chamada Telefônica
  24. Componentes de conectividade: Componentes que permitem que seu aplicativo interaja

    com lugares fora de seu aplicativo, como a web e outros aplicativos. Componentes ActivityStarter Rede Mapas Cliente Servidor e Bluetooth
  25. Sensores: Sensores para que o seu aplicativo colete informações sobre

    o mundo ao seu redor ou o usuário. Sensores Sensor acelerômetro Relógio Pedômetro Sensor de localização Giroscópio Sensor de proximidade
  26. Em seu aplicativo, você pode usar o armazenamento local para:

    Armazenar informações entre os momentos em que o usuário abre e fecha o aplicativo. • Lista de contatos - você armazena os números de telefone de seus amigos para que possa usá-los mais tarde • Aplicativo de mensagens - a maioria dos aplicativos de mensagens armazena automaticamente mensagens antigas para que você possa lê-las mais tarde • Arquivo - você armazena e organiza a papelada aqui Para armazenar informações localmente usamos valores de pares de chaves. Esse tipo de armazenamento é o tipo utilizado em objetos. Cada informação tem sua chave e um valor. pessoa:{ nome: “Deborah”, idade: 22 }
  27. Banco de dados: É uma coleção organizada de informações. Acessar

    um banco de dados é conhecido como chamá-lo ou fazer uma chamada para ele . Ao chamar um banco de dados, você pode obter informações, excluir informações, armazenar novas informações ou atualizar informações. A chave é como um nome de variável, é como você informa ao banco de dados quais informações deseja obter, armazenar, atualizar ou excluir. Usando o componente TinyDB : esse componente, permite que você salve dados no telefone do usuário que estarão lá cada vez que ele fizer login em seu aplicativo. O TinyDB permite apenas armazenar dados localmente. Isso significa que dois usuários não podem compartilhar dados com o mesmo TinyDB. Quando um usuário armazena dados em TinyDB, eles só estarão disponíveis em seu telefone e de mais ninguém.
  28. Você pode falar com seu TinyDB ou Armazenamento local fazendo

    chamadas para ele. Quando você faz uma chamada, pode armazenar e obter coisas a partir dela. A maneira como você armazena dados é dando a eles uma “tag” no App Inventor. Este é um nome que você usará para recuperar os dados. É muito parecido com um nome de variável. Se você usar o mesmo nome de tag ou nome de chave para armazenar dados duas vezes, o TinyDB ou o armazenamento local sobrescreverá ou apagará os dados antigos com os novos. Isso pode ser útil se você precisar atualizar o que está em seu armazenamento, mas deve ter cuidado para nunca repetir nomes de outra forma! Armazenar ou Salvar Obter
  29. Exemplo: Digamos que você precise armazenar três coisas em um

    banco de dados. Uma são as listas de frutas , uma delas é a sua idade e a outra é uma lista de suas atividades favoritas.
  30. Armazenamento na nuvem: Digamos que você tenha dois telefones executando

    um aplicativo, o telefone A e o telefone B. Se o telefone A armazena dados no armazenamento local, o telefone B não pode acessá-los. Se o telefone A armazena dados em um armazenamento em nuvem ou um banco de dados da web, o telefone B pode acessar os dados.
  31. Usos para Cloud Storage: é necessário para que os aplicativos

    usem informações que mudam com frequência. Então, quando você usaria o armazenamento em nuvem? Aqui estão alguns usos comuns: • Exigindo login e senhas para usuários. • Compartilhamento de dados de um jogo, como uma lista de pontuação. • Permitir que os usuários compartilhem imagens uns com os outros por meio de um feed. • Exibir um feed que atualiza todos os usuários veem. • Lembrar-se de coisas sobre um usuário, como transações, registros financeiros ou médicos.
  32. Existem algumas opções diferentes para armazenamento em nuvem no App

    Inventor. A maioria deles é chamada de bancos de dados da web. (exemplo a CloudDB). É importante saber que, ao usar o armazenamento em nuvem, os telefones precisam ter uma conexão com a Internet para obter informações. Se o telefone tiver uma conexão lenta com a Internet, isso pode tornar seu aplicativo lento ou impossibilitar sua atualização.
  33. API: significa interface de programação de aplicativo. Uma API é

    uma maneira de obter informações de outro site ou banco de dados de outro site. Digamos que você esteja criando um aplicativo para ajudar as pessoas a decidir o que vestir com base no clima. Você pode gastar muito tempo enviando dados sobre o tempo para um banco de dados, mas já existem sites que mostram o tempo. Uma solução melhor seria simplesmente pegar os dados desse site e mostrá-los aos usuários por meio do seu aplicativo. Uma API é o que permite que você faça isso.
  34. Como fazer requisições para APIs no App inventor: Link do

    vídeo - parte 1 Link do vídeo - parte 2
  35. A depuração: é o processo que os codificadores usam para

    descobrir por que seu código não está funcionando. Talvez você já tenha se deparado com algo que a forçou a voltar ao código e descobrir onde cometeu um erro. Esta é a essência da depuração. Às vezes, você já sabe como codificar algo, mas ainda assim levará muito tempo para fazê-lo. Grandes programadores ainda cometem erros, mesmo quando sabem exatamente o que estão fazendo, por isso é importante construir uma caixa de ferramentas de técnicas de depuração que podem ajudá-lo quando você não tiver certeza do que deu errado. Todo mundo tem um método diferente para depurar seu código e você descobrirá qual é o seu depois de praticar um pouco. A depuração costuma ser a parte mais demorada da codificação, por isso é muito importante reservar bastante tempo para isso! 6 dicas de depuração:
  36. 1- Usando dados de teste: são um conjunto mais simples

    de dados que você pode usar para garantir que seu aplicativo esteja funcionando corretamente. Digamos que você esteja fazendo um aplicativo que mostra ao usuário onde fica o restaurante mais próximo dele. Você deseja usar tabelas para armazenar nomes de restaurantes, dados de localização e números de telefone. Para começar a construir seu aplicativo, você não precisa ter uma lista inteira de restaurantes prontos em sua mesa para começar a codificar seu aplicativo. Você pode simplesmente colocar em um ou dois restaurantes de teste e fazer seu aplicativo funcionar antes de adicionar os dados reais.
  37. 2- Usando o Notificador: Isso pode ajudá-lo a descobrir por

    que seu código está corrompido. Para colocar um notificador ou alerta em seu aplicativo, arraste-o da paleta da interface do usuário. Ele aparecerá como um componente invisível. Alguns cenários em que este método de teste pode ser útil: - Depurando se o botão está travando ou se sua função não está funcionando. - Testar se uma tela está carregando ou travando. - Testar se um loop está travando.
  38. 3- Blocos em colapso: ótimo recurso para ajudá-lo a manter

    seu código organizado no App Inventor Os blocos recolhidos irão compactá-lo em uma barra na tela. Se você clicar com o botão direito em um bloco, verá uma opção para recolhê-lo. Os blocos recolhidos ainda funcionam da mesma forma que os normais, apenas ocupam menos espaço. Isso pode ser útil se você tiver blocos que não precisa mais editar e quiser limpar sua tela. Para expandir seus blocos novamente, clique com o botão direito sobre eles.
  39. 4- Bloqueios de desativação: Você também pode desativar os blocos.

    Isso os manterá na tela, mas os impedirá de fazer qualquer coisa. Isso pode ser muito útil se você deseja testar seu aplicativo sem certos blocos de código, mas não deseja excluí-los
  40. 5- Comentários: Os programadores costumam deixar comentários em seu código

    para explicar o que ele faz. Os comentários podem ser úteis quando outras pessoas estão analisando seu código, como colegas de equipe, mentores e juízes. Os comentários também podem ajudar se você retornar ao seu código mais tarde e tiver esquecido quais partes dele fazem.
  41. 6- Controle de versão: você pode criar diferentes versões do

    seu aplicativo. Essas versões salvarão seu código para que, se você cometer um erro e não souber como corrigi-lo, possa voltar para a última versão de trabalho que salvou. Você também pode usar o controle de versão para experimentar novos recursos sem se preocupar em quebrar seu aplicativo. Existem duas maneiras de salvar versões diferentes no App Inventor, usando “salvar como” e “ponto de verificação”. A opção “Salvar projeto como” permite criar uma cópia do código que você está trabalhando e salvá-lo com um novo nome. A opção “Checkpoint” permite que você salve seu código, pois está com um novo nome.
  42. Fluxograma: é um diagrama que representa um algoritmo. É lido

    de cima para baixo e usa formas e setas para mostrar o que acontece em um programa.