Prévia do material em texto
PROGRAMAÇÃO CODING (MOBILE) Unidade 1 Ambiente e fundamentos do desenvolvimentos mobile CEO DAVID LIRA STEPHEN BARROS Diretora Editorial ALESSANDRA FERREIRA Gerente Editorial LAURA KRISTINA FRANCO DOS SANTOS Projeto Gráfico TIAGO DA ROCHA Autoria LUIZ FERNANDO CORCINI 4 PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 A U TO RI A Luiz Fernando Corcini Olá. Sou graduado em Engenharia Eletrônica, especializado em Administração de TI, mestre em Educação e Novas Tecnologias e Doutorando em Sistemas Tutores Inteligentes. Tenho experiência técnico-profissional na área de desenvolvimento e gestão da produção de software nas áreas de Gerenciamento de Processos Empresariais. Uso os recursos disponibilizados pela web há mais de 20 anos. Sou professor universitário há mais de 15 anos e já publiquei vários livros técnicos sobre assuntos voltados à área de informática. Sou apaixonado pelo que faço e adoro transmitir minha experiência de vida àqueles que estão iniciando em suas profissões. Por isso fui convidado pela Editora Telesapiens a integrar seu elenco de autores independentes. Estou muito feliz em poder ajudar você nessa fase de muito estudo e trabalho. Conte comigo! 5PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 ÍC O N ESEsses ícones aparecerão em sua trilha de aprendizagem nos seguintes casos: OBJETIVO No início do desenvolvimento de uma nova competência. DEFINIÇÃO Caso haja a necessidade de apresentar um novo conceito. NOTA Quando são necessárias observações ou complementações. IMPORTANTE Se as observações escritas tiverem que ser priorizadas. EXPLICANDO MELHOR Se algo precisar ser melhor explicado ou detalhado. VOCÊ SABIA? Se existirem curiosidades e indagações lúdicas sobre o tema em estudo. SAIBA MAIS Existência de textos, referências bibliográficas e links para aprofundar seu conhecimento. ACESSE Se for preciso acessar sites para fazer downloads, assistir vídeos, ler textos ou ouvir podcasts. REFLITA Se houver a necessidade de chamar a atenção sobre algo a ser refletido ou discutido. RESUMINDO Quando for preciso fazer um resumo cumulativo das últimas abordagens. ATIVIDADES Quando alguma atividade de autoaprendizagem for aplicada. TESTANDO Quando uma competência é concluída e questões são explicadas. 6 PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 SU M Á RI O Android ..................................................................................... 10 Dispositivos móveis ...........................................................................................10 Android: um pouco de história .......................................................................12 Android: características ...................................................................................13 Arquitetura da plataforma .................................................................17 Requisitos para o desenvolvimento de um aplicativo ................................ 18 Ambiente de desenvolvimento Java para mobile ................. 20 Instalar o JDK ......................................................................................................20 Configurando as variáveis de ambiente .......................................... 24 Instalar e configurar o Android Studio .......................................................... 29 Instalando o Android Studio .............................................................29 Configurando o Android Studio ........................................................ 35 Configurar o Android SDK Manager ...............................................................39 Testando o ambiente de desenvolvimento .................................................. 42 Fechando a aplicação Android ........................................................................53 Estrutura do projeto Java-Android ........................................ 55 Conhecendo a interface Android Studio .......................................................55 Tela de boas-vindas ............................................................................56 Tela principal ........................................................................................57 Estrutura do projeto Java-Android..................................................................63 Pasta Manifests .....................................................................................64 Pasta Java ..............................................................................................70 Pasta Res ...............................................................................................73 7PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 Fundamentos do Java para mobile......................................... 76 Java: Um pouco de história ..............................................................................76 A tecnologia Java ................................................................................................77 A linguagem Java .................................................................................77 Esquema de execução de um programa em Java ......................... 78 A plataforma Java ................................................................................79 Entendendo, instalando e configurando o ambiente Java ......................... 80 Instalando o JDK ..................................................................................80 Instalando o IDE ..................................................................................81 Instalando o Eclipse ............................................................................82 8 PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 A PR ES EN TA ÇÃ O Você sabia que a compreensão a respeito de ambientes e fundamentos do desenvolvimento mobile é essencial para trabalhar na área de programação, que é uma das mais demandadas do mercado de trabalho atualmente? Isso mesmo. Nesta unidade, faremos uma introdução aos dispositivos móveis e ao sistema operacional Android, tratando um pouco sobre a história desse sistema, suas características e seus requisitos, como sua arquitetura funcional, compatibilidades e limitações. Veremos também como operar a interface de desenvolvimento de aplicativos do ambiente Java para dispositivos móveis, a estrutura da linguagem de programação e o método de organização do código. Além disso, aprenderemos como desenhar e organizar os elementos de um projeto de desenvolvimento de aplicativos para Android utilizando a linguagem Java Mobile. Entendeu? Ao longo desta unidade letiva, você vai mergulhar nesse universo! 9PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 O BJ ET IV O S Olá. Seja muito bem-vindo à Unidade 1. Nosso objetivo é auxiliar você no desenvolvimento das seguintes competências profissionais até o término desta etapa de estudos: 1. Reconhecer e manipular os recursos do sistema de operação Android, compreendendo sua arquitetura funcional, compatibilidades e limitações; 2. Operar a interface de desenvolvimento de aplicativos do ambiente Java para dispositivos móveis; 3. Explicar a estrutura da linguagem de programação Java para dispositivos móveis e seu método de organização do código; 4. Desenhar e organizar os elementos de um projeto de desenvolvimento de aplicativos para Android utilizando a linguagem Java Mobile. 10 PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 Android OBJETIVO Ao final deste capítulo, você será capaz de reconhecer e manipular os recursos do sistema operacional Android, compreendendo sua arquitetura funcional, compatibilidades e limitações. Trata-se de um conhecimento essencial para iniciar nossa viagem na complexa área de conhecimentos com que estamos lidando. E então? Motivado para desenvolver essa competência? Avante! Dispositivos móveis Dispositivos móveis, mobile devices, também conhecidos como smartphones, podem ser definidos como pequenos computadorespara o correto entendimento do conteúdo. Quadro 1.1 – Conceitos importantes Item Descrição JDK Conjunto de ferramentas de desenvolvimento que permite criar programas na plataforma Java. Contém o JRE e outras ferramentas, tais como o compilador (javac), o empacotador (jar) e ferramentas para documentação (javadoc). JRE Contém a JVM e as bibliotecas de classes Java (APIs Java). JVM Ferramenta fundamental para permitir a funcionalidade do Java de ser multiplataforma. Antes de instalar uma JVM, é necessário definir em qual sistema operacional ela será utilizada. IDE Ambiente de desenvolvimento que permite ao programador o acesso a uma interface amigável de desenvolvimento que facilita, organiza e otimiza o desenvolvimento, o teste e a distribuição da aplicação. Fonte: Elaborado pela autoria (2023 ). Precisamos instalar ambas as ferramentas (JDK e IDE) em nosso computador. Instalando o JDK O processo de instalação do kit de desenvolvimento Java já foi explicado anteriormente. Caso você tenha realizado todas as atividades desta unidade até aqui, não precisará reinstalá-lo. Pode passar para o próximo passo. Mas é importante lembrar de 9 .Java Development JDK – JAVA. 10 .Integrated Development Environment: ambiente de desenvolvimento integrado. 81PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 que, se você quiser apenas trabalhar com a linguagem Java em outro computador em que não instalou os itens relacionados no capítulo 2, você deverá executar o item 2.1 antes de continuar por aqui. Instalando o IDE Trabalharemos com o IDE Eclipse Photon, que pode ser encontrado clicando aqui . Imagem 1.53 – Baixando a IDE Fonte: Elaborada pela autoria (2023). Ao abrir esse endereço web em seu navegador, selecione Download Packages, como mostrado na imagem anterior, e uma nova tela será carrega em seu navegador. Depois, selecione o pacote Eclipse IDE for Java EE Developers e a versão do seu sistema operacional (32 ou 64 bits). Para esse material, trabalharemos com a versão 64 bits. 82 PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 Imagem 1.54 – Baixando a IDE Fonte: Elaborada pela autoria (2023). Baixe o arquivo eclipse_jee_photon-R-win32-x86_64.zip e descompacte-o no mesmo diretório em que está o JDK. Para o nosso caso, é o diretório c:\program files\ java\. A pasta Eclipse será criada dentro desse diretório. IMPORTANTE O Eclipse não precisa ser instalado. Uma vez descompactado, é só clicar no arquivo eclipse.exe e mãos à obra! Instalando o Eclipse Para ter certeza de que todas as instalações e descompactações ocorreram de acordo com o esperado, segue uma lista de testes necessários antes de prosseguir: Execute o arquivo eclipse.exe. Uma tela como a mostrada a seguir deve aparecer: 83PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 Imagem 1.55 – Tela Splash do Eclipse Photon Fonte: Elaborada pela autoria (2023). Logo em seguida, o Eclipse solicitará que seja informado qual o caminho para o workspace, como mostrado na próxima imagem. Imagem 1.56 – Selecionar o diretório de trabalho Fonte: Elaborada pela autoria (2023). 84 PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 O workspace significa espaço de trabalho e define o endereço (diretório e pasta) em que serão colocados todos os arquivos do seu projeto. Podem ser criados vários workspaces, um para cada projeto que seja desenvolvido. Para esse teste, digite o endereço: c:\Teste e clique em OK. O Eclipse criará uma pasta com o nome, no local especificado. Nesse caso, a pasta é Teste e o local é c:\. O Eclipse carregará as bibliotecas necessárias, e a tela será apresentada da seguinte maneira: Imagem 1.57 – Tela de abertura do Eclipse Fonte: Elaborada pela autoria (2023). Clique em Workbench, como mostrado na imagem anterior. 85PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 Imagem 1.58 – IDE Eclipse Fonte: Elaborada pela autoria (2023). Esse é o ambiente de desenvolvimento integrado ou IDE do Eclipse. Nesse ambiente, serão escritos os códigos em Java para os programas propostos em nossos estudos. Em momento posterior, serão apresentadas as funcionalidades necessárias dessa interface. Para finalizar, (1) minimize a janela do Eclipse; (2) abra o Windows Explorer; (3) verifique que a pasta Teste foi criada no drive c:\; (4) abra a pasta Teste e verifique que o Eclipse criou toda a estrutura de pastas e arquivos para que seu projeto possa funcionar. Feche o Eclipse e delete a pasta Teste no navegador, pois ela foi criada apenas para esse primeiro exemplo-teste. Nos exercícios mais avançados, serão utilizados outros workspaces. Muito bem! Depois de tudo isso, você deve estar em condições de desenvolver em Java e para dispositivos móveis, que é o nosso foco no momento. Você deve estar “louco” para aprender mais, mas não podemos colocar tudo em uma única unidade, não é mesmo? 86 PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 RESUMINDO E então? Gostou do que lhe mostramos? Aprendeu mesmo tudinho? Agora, só para termos certeza de que você realmente entendeu o tema de estudo deste capítulo, vamos resumir tudo o que vimos. Você deve ter aprendido a desenhar e a organizar os elementos de um projeto de desenvolvimento de aplicativos para Android utilizando a linguagem Java Mobile. Esperamos que você tenha gostado e continue praticando o que aprendeu até aqui. A aprendizagem não pode parar! Até a próxima unidade! 87PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 RE FE RÊ N CI A S AMAR, R. Android. Hardware.com.br, 2009. Disponível em: https://www.hardware.com.br/livros/smartphones/android.html. Acesso em: 21 jan. 2024. ANDROID Lifecycle: ciclo de vida de uma aplicação Android. DevMedia, 2014. Disponível em: https://www.devmedia.com.br/ android-lifecycle- ciclo-de-vida-de-uma-aplicacao-android/29991. Acesso em: 21 jan. 2024. CORDEIRO, F. Android Studio. 3. ed. [S. l.]: AndroidPro, 2016. CORDEIRO, F. Android aprendiz. AndroidPro, 2017. Disponível em: https://www.androidpro.com.br/. Acesso em: 21 jan. 2024. OGLIARI, R. S.; BRITO, R. C. Android: do básico ao avançado. Rio de Janeiro: Editora Ciência Moderna Ltda., 2014. PEREIRA, A. P. O que é XML? TecMundo, 2009. Disponível em: https://www.tecmundo.com.br/programacao/1762-o-que-e-xml-. htm. Acesso em: 21 jan. 2024. POZZEBOM, R. O que são sistemas embarcados? Oficina da Net, 2014. Disponível em: https://www.oficinadanet.com.br/ post/13538-o-que-sao-sistemas-embarcados. Acesso em: 21 jan. 2024. VISÃO geral do manifesto do aplicativo. Developers, 2014. Disponível em: https://developer.android.com/guide/topics/ manifest/manifest-intro. Acesso em: 21 jan. 2024. Android Dispositivos móveis Android: um pouco de história Android: características Arquitetura da plataforma Requisitos para o desenvolvimento de um aplicativo Ambiente de desenvolvimento Java para mobile Instalar o JDK Configurando as variáveis de ambiente Instalar e configurar o Android Studio Instalando o Android Studio Configurando o Android Studio Configurar o Android SDK Manager Testando o ambiente de desenvolvimento Fechando a aplicação Android Estrutura do projeto Java-Android Conhecendo a interface Android Studio Tela de boas-vindas Tela principal Estrutura do projeto Java-Android Pasta Manifests Pasta Java Pasta Res Fundamentos do Java para mobile Java: Um pouco de história A tecnologia Java A linguagem Java Esquema de execução de um programa em Java A plataforma Java Entendendo, instalando e configurando o ambiente Java Instalando o JDK Instalando o IDE Instalando o Eclipseque normalmente cabem na palma da mão. Esses “computadores de mão” costumam ter uma tela que normalmente é sensível ao toque, para permitir ao usuário a entrada (input) de dados por meio de um miniteclado, apresentado na própria tela ou por meio de opções a serem selecionadas. A saída (output) pode ocorrer de várias formas, desde a exibição de imagens, de sons ou de vídeos, vibrações, capturas de movimentos, até a execução de uma aplicação mais complexa, com o envio ou recebimento de mensagens, a execução de um programa especializado, acesso a redes sociais, ou a câmera do dispositivo. Por se tratar de minicomputadores, todos eles necessitam de um sistema operacional1 para gerenciar seu correto funcionamento e para que as várias aplicações possam ser executadas. Com o avanço constante da tecnologia, os dispositivos móveis vêm se aprimorando em aspectos que até recentemente 1 Sistema operacional é o conjunto de programas que gerenciam recursos, processadores, armazenamento, dispositivos de entrada e saída e dados da máquina e seus periféricos. Exemplos: Dos, Unix, Linux, Mac OS, OS-2, Windows etc. (Sistema, 2003-2023). 11PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 eram considerados limitações relevantes no que diz respeito à usabilidade e ao desenvolvimento de aplicativos, como: • Tamanho do ecrã2; • Memória limitada (primária e secundária); • Poder de processamento limitado; • Baixo consumo de energia; • Conectividade limitada. Em razão dessas características, os sistemas operacionais para dispositivos móveis, ou mobile operating systems (MOS), em inglês, têm características diferentes dos sistemas operacionais para desktops. SAIBA MAIS Em relação aos MOS mais utilizados, é importante estar atualizado em relação os relatórios das empresas do setor, como da IDC, que você pode acessar pelo QR code. Nele, são apresentados os sistemas operacionais dominantes do mercado de dispositivos móveis. Assim como os MOS, as linguagens de programação devem estar adaptadas às restrições dos dispositivos móveis. Entre as linguagens, podemos citar: Java, C#, OPL, Objective-C, Ruby, Python, Flutter, Go, Rust, Lua, entre outras. 2 Ecrã: superfície fluorescente sobre a qual se forma a imagem nos tubos catódicos (televisão, informática etc.) = tela. https://www.idc.com/promo/smartphone-market-share/os 12 PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 Em nossos estudos, trabalharemos com o MOS Android e com a linguagem de programação Java. Android: um pouco de história A empresa norte-americana Google foi fundada por Larry Page e Sergey Brin em 4 de setembro de 1998. Desde o início, a missão declarada da empresa era de organizar as informações mundiais e torná-las universalmente acessíveis. O foco da Google sempre foi hospedar e desenvolver uma série de produtos e serviços baseados na internet. De acordo com Amar (2009), depois de muita caminhada e de já estar famosa com seu sistema de busca inovador, entre outros serviços e produtos, a empresa resolveu comprar, em 2005, uma pequena empresa de sistemas embarcados3 chamada Android Inc. e decidiu entrar também no ramo de smartphones. Dois anos depois (em 2007), o projeto foi apresentado ao público e se mostrou mais ambicioso do que um mero modelo específico de smartphone. Tratava-se de um sistema operacional com código aberto (open-source4) para dispositivos móveis, baseado em Linux, com uma interface de programação em Java. O Android estava sendo lançado! 3 O sistema embarcado, também chamado de sistema embutido, é um sistema microprocessado em que um computador está anexado ao sistema que ele controla. Um sistema embarcado pode realizar um conjunto de tarefas que foram predefinidas. O sistema é usado para tarefas específicas, e assim, por meio de engenharia é possível otimizar um determinado produto e diminuir o tamanho, bem como os recursos computacionais e o seu valor final. (Pozzebom, 2014, on-line). 4 Código aberto (open-source) é um software de utilização livre, para quem quiser. Todos podem contribuir com ele, seja no seu desenvolvimento, seja na correção de erros, seja na documentação, desde que a condição de liberdade seja mantida. Exemplos: Linux, Android, Apache, gcc, PostgreSQL, MySQL etc. 13PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 SAIBA MAIS Para conhecer um pouco mais da história do sistema operacional Android e todas as suas versões, acesse o QR code. Agora que você conhece um pouquinho da história do MOS Android, vamos apresentar suas características. Android: características O Android não é uma linguagem de programação, mas uma distribuição do sistema operacional Linux multiusuário. Para programar aplicativos para os dispositivos móveis que utilizam o SO (sistema operacional) Android, são necessárias a instalação e a configuração de um ambiente de desenvolvimento apropriado, conforme aprenderemos adiante. Os programas escritos no ambiente de desenvolvimento Android devem ser compilados juntamente com todos os arquivos disponibilizados (recursos), de maneira a gerar um arquivo com a extensão APK, que é o arquivo utilizado pelos dispositivos para instalar a aplicação Android. VOCÊ SABIA? “APK” vem de “Android package”, que significa “arquivo de pacote de aplicativos” em tradução livre. É o formato de arquivo utilizado pelo MOS Android para distribuição e instalação de aplicativos para dispositivos móveis. Uma vez instalado no dispositivo, cada aplicativo recebe um número de identificação único, chamado de ID do usuário, de maneira que cada ID se torna um usuário Linux gerenciado pelo https://www.hostmidia.com.br/blog/o-que-e-android/ 14 PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 sistema Android. O sistema, por padrão, executa cada uma das IDs em processos separados, isto é, para cada aplicação que está em execução no dispositivo, existe uma máquina virtual (VM) que a gerencia e monitora, permitindo a cada uma delas o acesso aos recursos necessários para executar suas tarefas e nada mais. Essa característica de isolar as aplicações cria um ambiente mais seguro e otimizado, em que os aplicativos acessam apenas os recursos de que precisam. Para o caso de aplicativos que precisam acessar dados ou recursos de outros aplicativos, eles devem compartilhar o mesmo ID de usuário e, dessa maneira, podem ser executados em um único processo ou até compartilhar a mesma VM. Outros tipos de permissão, tais como acessar os dados gravados no dispositivo (contatos, telefones) ou acessar recursos, como câmera ou bluetooth, devem ser definidos pelo programador no momento do desenvolvimento e da instalação do aplicativo. Cada aplicação Android é formada por componentes, que são como blocos de construção. Eles executam tarefas específicas e têm sua própria identificação. Podem ser utilizados como pontos de entrada do usuário ou para integração entre aplicativos, no caso de dependência de recursos. Dentro de um dispositivo móvel, como o smartphone, podem existir vários aplicativos instalados, e pode-se utilizá-los (executá-los) com um simples toque, o que permite que dois ou mais aplicativos estejam rodando (sendo executados) ao mesmo tempo. No gerenciamento de aplicativos realizado pelo Android, um desses aplicativos (que estão sendo executados) sempre estará visível, e os outros estarão parados temporariamente (com status igual a paused) ou parados definitivamente (com status igual a stopped), mas, ainda assim, ocupando memória e outros recursos, em segundo plano. Um caso comum ocorre quando o usuário está 15PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 verificando seus compromissos no aplicativo calendário/agenda e recebe uma ligação, por exemplo. Nesse cenário, o Android vai parar temporariamente (pause) o aplicativo calendário/agenda e colocá-lo em segundo plano, enquanto o aplicativo que permite o atendimento da ligação (chamada telefônica) é colocado em primeiro plano e executado. Quando a ligação for encerrada,o Android fechará o aplicativo chamada telefônica e reposicionará o aplicativo calendário/agenda para o primeiro plano, permitindo que o usuário dê sequência à sua consulta de compromissos. Olhando dessa forma, pode até parecer que o processo é simples. Mas não é! Os recursos de um dispositivo móvel são limitados, de modo que o Android pode fechar qualquer aplicação que não esteja em primeiro plano no caso de esses recursos ficarem em situação crítica, ou quando alguma configuração do dispositivo for alterada. Como o avanço da tecnologia, essas situações estão sendo minimizadas e quase não são perceptíveis para os usuários. Causaria muitos problemas ao usuário se, no exemplo citado, o Android apenas fechasse o aplicativo calendário/agenda porque o aparelho está recebendo uma ligação, pois todas as alterações que o usuário fazia até então e não teve a oportunidade de salvar, como o agendamento de compromissos importantes, seriam perdidas. Esse tipo de atuação funciona como uma gestão dos recursos de que o aparelho dispõe, para que consiga desempenhar variadas tarefas com qualidade e o mínimo de interrupções. VOCÊ SABIA? Quando um aplicativo é desenvolvido para os dispositivos que trabalham com Android, a programação deve prever que ele pode parar temporariamente quando colocado em segundo plano, de modo que seus estados (configurações, dados etc..) devem ser salvos para que o usuário possa retomá-los, caso necessário. 16 PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 Para auxiliar nesse gerenciamento dos aplicativos, o sistema Android trabalha basicamente com quatro tipos diferentes de componentes, que são: • Atividades (activities); • Serviços (services); • Provedores de conteúdo (content providers); • Receptores de broadcast (broadcast receivers). Cada um desses itens relacionados serve a propósitos distintos e tem diferentes ciclos de vida. Pode-se observar essa questão nas Atividades: Toda aplicação Android pode ser formada por uma ou mais Activities. Estas Activities são, na verdade, pequenas “atividades” executadas uma de cada vez. A maneira mais fácil de entender as Activities é associar cada tela a uma Activity. Para controlar todas estas Activities, já que apenas uma Activity pode ser executada de cada vez, existe a Activity Stack, ou pilha de Activity. (Ogliari; Brito, 2014) SAIBA MAIS O código-fonte do Android está disponível para acesso, basta acessar o QR code. https://source.android.com/?hl=pt-br 17PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 Arquitetura da plataforma A arquitetura da plataforma Android está apresentada de forma esquematizada na imagem a seguir. Imagem 1.1 – Esquema básico da arquitetura da plataforma Android Aplicativos Frameworks, serviços e bibliotecas Bibliotecas e serviços nativos Linux Intents Activities Retrofit Widgets Services Retrofit Fonte: Adaptado de Cordeiro (2017). https://apps.uk/android-annotations/ https://square.github.io/retrofit/ 18 PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 Nesse contexto, Cordeiro (2017) explica: • Aplicativos: são os aplicativos e jogos desenvolvidos em Java; • Frameworks, serviços, bibliotecas: geralmente são escritos em Java e servem para facilitar o desenvolvimento de aplicativos e jogos; • Bibliotecas e serviços nativos: são recursos que já vêm com o Android, para serem utilizados pelo desenvolvedor; • Linux é a base de tudo e inclui todos os drivers de hardware e redes (bluetooth, câmeras, USB, GPS etc.), sistemas de arquivos e processamento. SAIBA MAIS Para saber em detalhes como é a arquitetura da plataforma Android, acesse pelo QR code. Requisitos para o desenvolvimento de um aplicativo Para desenvolver aplicativos para Android, são necessários alguns requisitos: • Conhecer as bases da programação em linguagem Java; • Conhecimento básico sobre arquivos XML; https://developer.android.com/guide/platform?hl=pt-br 19PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 • Montar o ambiente de desenvolvimento, que consiste em: instalar e configurar o JDK5; • Instalar e configurar o Android Studio. Configurar o SDK6 Manager. Estabelecida essa parte inicial que aprendemos até aqui, podemos começar a montar o nosso ambiente de desenvolvimento. As bases da programação Java e dos conhecimentos necessários em arquivos XML serão apresentados durante nossos estudos em situação e profundidade oportunas, para que você possa tirar o máximo proveito e desenvolver com tranquilidade aplicações para dispositivos móveis. Dito isso, seguimos em frente mostrando como preparar o ambiente para desenvolvimento Java para mobiles. RESUMINDO E, então? Gostou do que lhe mostramos? Aprendeu mesmo tudinho? Agora, só para termos certeza de que você realmente entendeu o tema de estudo deste capítulo, vamos resumir tudo o que vimos. Você deve ter aprendido a reconhecer e manipular os recursos do sistema operação Android, compreendendo sua arquitetura funcional, compatibilidades e limitações. Também estabelecemos os requisitos principais para o desenvolvimento de aplicativos que funcionem nesse sistema. Esperamos que tenha gostado e compreendido tudo o que foi apresentado até aqui. Pronto para continuar e aprender ainda mais? Vamos lá! 5 JDK é a sigla de Java Development Kit: Kit de desenvolvimento Java. 6 O Android SDK ou Kit de Desenvolvimento de Software para Android é um pacote com diversas ferramentas utilizadas pelo Android Studio e pelos desenvolvedores. 20 PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 Ambiente de desenvolvimento Java para mobile OBJETIVO Ao final deste capítulo, você será capaz de operar a interface de desenvolvimento de aplicativos do ambiente Java para dispositivos móveis. Está preparado para embarcar nessa viagem rumo ao conhecimento? Então vamos juntos! Antes de desenvolver qualquer aplicação para dispositivos móveis, é necessário instalar e configurar o ambiente de desenvolvimento. Você já pode ir se acostumando, pois esse é um procedimento normal para a maioria das linguagens de programação em quase todos os ambientes. Sendo assim, execute atentamente cada passo apresentado a seguir, para que, ao terminar cada etapa, tenha baixado, instalado e configurado adequadamente o ambiente de desenvolvimento. Instalar o JDK Como os aplicativos desenvolvidos para funcionar no MOS Android são desenvolvidos em linguagem Java, é preciso instalar o kit de desenvolvimento Java, o qual pode ser encontrado para download em vários sites. Um deles você encontra clicando aqui . Ao seguir esse endereço da web, seu navegador abrirá um site da Oracle, como mostrado na imagem a seguir. O exemplo em questão traz a versão 21.0.2, de modo que é importante estar atualizado a respeito das possíveis alterações das versões mais recentes. Clique sobre a palavra download para selecionar a função apresentada na imagem anterior, e uma nova tela será apresentada, permitindo que você escolha o arquivo para 21PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 download referente ao sistema operacional da sua máquina, como mostrado nas imagens a seguir. Imagem 1.2 – Baixando o JDK Fonte: Elaborada pela autoria (2024). Imagem 1.3 – Baixando o JDK Fonte: Elaborada pela autoria (2023). Em nossos estudos, será considerado que o sistema operacional de seu computador é o Windows 11 (64 bits), mas novamente ressaltamos que é imprescindível a um profissional da área estar atualizado das versões mais recentes. Faça o download e execute o arquivo. IMPORTANTE Não se esqueça de aceitar os termos de licença antes de selecionar o arquivo para fazer o download. 22 PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 Logo que o arquivo for baixado, você deverá executá- lo. Uma tela, como a mostrada a seguir, deve aparecer. Proceda conforme indicado a seguir. Imagem 1.4 – Instalando o JDK Fonte: Elaborada pela autoria (2024). Passo 1: clique em Next. 23PROGRAMAÇÃO CODING (MOBILE) U ni da de 1Imagem 1.5 - Instalando o JDK Fonte: Elaborada pela autoria (2024). Passo 2: selecione o diretório no qual deve ser instalado o JDK e clique em Next; recomendamos deixar o local do arquivo conforme definido como padrão. Aguarde a instalação, conforme a imagem a seguir. Imagem 1.6 - Instalando o JDK Fonte: Elaborada pela autoria (2024). 24 PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 Imagem 1.7 - Instalando o JDK Fonte: Elaborada pela autoria (2024). Quando o JDK estiver instalado com sucesso, clique em Close. Configurando as variáveis de ambiente Passo 3: busque por “variáveis do ambiente” na busca do Windows e clique no botão “Variáveis de Ambiente”, como mostrado na figura a seguir. 25PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 Imagem 1.8 – Variáveis de ambiente Fonte: Elaborada pela autoria (2023). Isso fará com que surja a seguinte tela: Imagem 1.9 – Variáveis de ambiente Fonte: Elaborada pela autoria (2024). 26 PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 Passo 4: crie uma Variável do sistema com o nome JAVA_ HOME e, como valor da variável, coloque o caminho em que foi instalado o JDK, como apresentado na imagem a seguir. Imagem 1.10 – Criação de nova variável do sistema Fonte: Elaborada pela autoria (2024). Passo 5: clique em OK na tela da figura anterior. Passo 6: localize na lista de variáveis da figura, a variável de nome Path e clique duas vezes sobre ela. A seguinte tela será apresentada. Imagem 1.11 - Criação da variável Path Fonte: Elaborada pela autoria (2024). 27PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 Passo 7: clique no botão Novo e digite o endereço do arquivo javac.exe, como: C:\ Program Files\Java\jdk1.7.0_04\bin ou, se preferir, %JAVA_HOME%\bin, como mostrado na imagem anterior. Passo 8: clique em OK. Passo 9: crie uma nova variável com o nome CLASSPATH e coloque como valor da variável: C:\Program Files\Java\jdk1.7.0_04\ lib\, como mostrado na imagem a seguir. Imagem 1.12 – Criando a variável CLASSPATH Fonte: Elaborada pela autoria (2023). Passo 10: depois de clicar em OK, reinicie o computador para que as alterações tenham efeito. Ao que tudo indica, o JDK está instalado, mas é bom fazer um teste, não é mesmo? Então vamos lá. Para verificar se o JDK foi instalado corretamente e que o seu computador está reconhecendo-o, entre no Prompt do DOS e digite o comando java -version. O resultado deve ser parecido com o apresentado na imagem a seguir. 28 PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 Imagem 1.13 – Testando a instalação do JDK Fonte: Elaborada pela autoria (2023). Ainda no Prompt do DOS, digite outro comando: javac -version. O resultado deve ser parecido com o apresentado na imagem a seguir. Imagem 1.14 – Testando a instalação do JDK Fonte: Elaborada pela autoria (2023). O JDK está instalado e reconhecido. Podemos seguir para os próximos passos. 29PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 Instalar e configurar o Android Studio Chegamos ao momento de instalar e configurar a ferramenta oficial de desenvolvimento Android do Google: o Android Studio. Cada passo desse processo será explicado a seguir. Instalando o Android Studio Passo 1: baixe o Android Studio. O link para baixar a ferramenta está acessível no QR Code. IMPORTANTE Caso seu sistema operacional seja 64 bits, clique no botão de download. Se não for esse o caso, clique em Download Options e selecione o link para a versão 32 bits, seguindo as instruções do instalador. Não se esqueça de verificar as atualizações. Nesse caso, o arquivo a ser baixado tem o seguinte nome: android-studio-ide-173.4907809- windows. exe. Trata-se do nome na versão 64 bits, mas pode variar conforme o sistema operacional utilizado em seu computador. https://developer.android.com/studio 30 PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 Passo 2: execute o arquivo baixado. Ao clicar duas vezes sobre ele, o assistente de instalação do Android Studio será iniciado, apresentando a tela a seguir. Imagem 1.15 – Assistente de instalação do Android Studio (tela 1) Fonte: Elaborada pela autoria (2023). Ressaltamos que as ilustrações têm a finalidade de ajudá- lo no aprendizado, como um guia visual, mas esses serviços têm constantes atualizações e mudanças, de modo que a interface com que o usuário se depara agora pode não ser igual alguns meses depois. Por isso é importante entender o processo como um todo, já que não há como “decorar” o jeito de fazer. 31PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 Passo 3: clique em Next, e a seguinte tela será apresentada. Imagem 1.16 – Assistente de instalação do Android Studio (tela 2) Fonte: Elaborada pela autoria (2023). Passo 4: verifique se a checkbox da opção Android Studio está marcada e marque também a checkbox da opção Android virtual device. 32 PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 Passo 5: clique em Next. Imagem 1.17 – Assistente de instalação do Android Studio (tela 3) Fonte: Elaborada pela autoria (2023). Passo 6: escolha o local em que o aplicativo deve ser instalado (é recomendável deixar o padrão). 33PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 Passo 7: clique em Next. Imagem 1.18 – Assistente de instalação do Android Studio (tela 4) Fonte: Elaborada pela autoria (2023). Passo 8: clique em Next e o processo de instalação terá início, como mostra a figura a seguir. Imagem 1.19 – Assistente de instalação do Android Studio (tela 5) Fonte: Elaborada pela autoria (2023). 34 PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 Aguarde até a instalação ser completada. Passo 9: clique em Next. Imagem 1.20 - Assistente de instalação do Android Studio (tela 6) Fonte: Elaborada pela autoria (2023). Passo 10: marque a opção para iniciar o aplicativo Android Studio. Passo 11: clique em Finish. A seguinte tela aparecerá: Imagem 1.21 – Assistente de instalação do Android Studio (tela 7) Fonte: Elaborada pela autoria (2023). 35PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 Passo 12: selecione a opção de Não importar configurações (Do not import settings) e clique em OK. A instalação foi finalizada. Vamos agora para a configuração do Android Studio. Configurando o Android Studio Após clicar em OK, conforme o passo 12 da instalação que acabamos de aprender, a tela do assistente de configuração aparecerá. Imagem 1.22 – Assistente de configuração (tela 1) Fonte: Elaborada pela autoria (2023). 36 PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 Passo 13: clique em Next. Imagem 1.23 – Assistente de configuração (tela 2) Fonte: Elaborada pela autoria (2023). Passo 14: mantenha marcada a opção Standard para que a instalação aconteça com as configurações e opções padrão. 37PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 Passo 15: clique em Next. Imagem 1.24 – Assistente de configuração (tela 4) Fonte: Elaborada pela autoria (2023). Passo 16: clique em Finish. Passo 17: selecione a aparência desejada para a interface. Recomendamos a opção Dracula, porque apresenta fundo mais escuro e, por isso, cansa menos a visão. 38 PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 Imagem 1.25 – Assistente de configuração (tela 3) Fonte: Elaborada pela autoria (2023). Depois de instalado e configurado o programa, a tela de boas-vindas do Android Studio deve ficar assim: 39PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 Imagem 1.26 – Ferramenta Android Studio depois de instalada Fonte: Elaborada pela autoria (2023). Antes de começar um novo projeto com essa ferramenta, precisamos verificar o SDK Manager. Configurar o Android SDK Manager Passo 18: clique no botão Configure e na opção SDK Manager, conforme apresentado na imagem a seguir: 40 PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 Imagem 1.27 – Configurando o SDK Manager Fonte: Elaborada pela autoria (2023). A seguinte tela deverá ser apresentada: Imagem 1.28 – Configurando o SDK Manager Fonte: Elaborada pela autoria (2023). 41PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 Passo 19: selecione a guia SDK Platforme os itens apresentados na figura anterior – da API Level 14 até a 28. Passo 20: clique na guia SDK Tools e marque os itens apresentados na imagem a seguir. Imagem 1.29 – Configurando o SDK Manager Fonte: Elaborada pela autoria (2023). Passo 21: clique em Apply e aguarde que a atualização seja realizada. Passo 22: clique em OK. 42 PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 IMPORTANTE Certifique-se de que os seguintes pacotes estejam listados como instalados na coluna Status: • Tools > Android SDK Tools; • Tools > Android SDK Platform-tools; • Tools > Android SDK Build-tools; • SDK Platform (versão mais recente) > SDK Platform; • SDK Platform (versão mais recente) > ARM EABI v7a System Image; • Extras > Android Support Repository; • Extras > Android Support Library; • Extras > Google Repository; • Extras > Google USB Driver (necessário apenas em sistemas Windows). Muito bem! Agora estamos prontos para testar o ambiente de desenvolvimento Android. Testando o ambiente de desenvolvimento Para montar o nosso primeiro projeto Android, clique em Start a new Android Studio Project, conforme apresentado na tela a seguir. 43PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 Imagem 1.30 – Novo projeto Android Fonte: Elaborada pela autoria (2023). Ao clicar no local marcado na imagem anterior, a seguinte tela será apresentada. Imagem 1.31 – Criando um projeto Android Fonte: Elaborada pela autoria (2023). 44 PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 Em Application Name (Nome do aplicativo), digite Meu primeiro App, deixando os demais itens como estão, e clique em Next. Na tela apresentada na imagem a seguir, marque apenas a checkbox referente ao item Phone and Tablet e selecione, na combobox (caixa de combinação), o item API 21: Android 5.0 (Lollipop). Note que essa tela permite configurar o dispositivo para o qual você deseja desenvolver o projeto Android e que, além da opção que marcamos (Phone and Tablet), também há outras opções, tais como dispositivos chamados de wearables, Android TV, entre outros. Imagem 1.32 – Criando um projeto Android Fonte: Elaborada pela autoria (2023). 45PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 IMPORTANTE Sempre que você for selecionar um tipo de dispositivo para o projeto, precisa definir qual é a API mínima que o referido dispositivo deve ter para rodar/suportar adequadamente o executável do projeto. Caso você tenha alguma dúvida sobre qual API deve ser selecionada, clique no link Help me choose, destacado em branco na imagem anterior. Ao clicar nesse link, uma nova tela será apresentada (ver a imagem a seguir), em que será possível verificar qual é a abrangência da API selecionada. Imagem 1.33 – Tela que apresenta a abrangência das API disponíveis Fonte: Elaborada pela autoria (2023). Analisando a imagem anterior, verificamos que, se selecionarmos a API 25 para o nosso projeto, implementamos uma aplicação que terá apenas 1,5% dos dispositivos capazes de executá-la. Se selecionarmos a API 21, nossa abrangência aumenta 46 PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 para 50% dos dispositivos atualmente no mercado. E, para ter uma abrangência garantida para a maioria dos dispositivos, escolhemos a API 15, que nos dá praticamente 100% de abrangência para a nossa aplicação. Dessa forma, depois de selecionada a API 15 para o dispositivo Phone and Tablet, clique em Next. A próxima tela a ser apresentada (imagem a seguir) permite selecionar a activity padrão para seu aplicativo. A activity é um módulo único e independente que costuma estar relacionado diretamente a uma tela de interface de usuário e suas respectivas funcionalidades. Não se preocupe em entender completamente esse conceito agora, pois trataremos dele com detalhes em outro momento. Por enquanto, basta entender que cada activity representa uma tela do aplicativo que estamos a desenvolver. Imagem 1.34 – Tela de seleção do tipo de activity do aplicativo Fonte: Elaborada pela autoria (2023). 47PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 Selecione uma Empty activity, como mostra a figura anterior, e clique em Next. A tela a seguir permite que você defina o nome da activity e o nome do layout para a sua aplicação. • Activity name: isso dá à sua activity um nome para se referir no código. Uma classe Java será criada e usará o conteúdo desse campo de texto para dar um nome à classe (Cordeiro, 2017). • Layout name: define o nome do arquivo XML que contém as configurações do layout que será exibido para o usuário do aplicativo. Nesse momento, deixe com os nomes padrões e clique em Finish. Imagem 1.35 – Tela de configuração da activity do aplicativo Fonte: Elaborada pela autoria (2023). 48 PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 O seu projeto será criado conforme as configurações que você definiu e será apresentado na IDE7 do Android Studio, conforme imagem a seguir. Imagem 1.36 – IDE do Android Studio Fonte: Elaborada pela autoria (2023). Muito bem. Agora falta pouco! Depois de todo esse trabalho, o que precisamos é ver se o aplicativo está funcionando corretamente, certo? Para isso, clique no menu Run e selecione o primeiro item, Run app. Uma nova tela será apresentada, conforme a imagem a seguir. 7 Integrated Development Environment - Ambiente de Desenvolvimento Integrado - que permite ao programador o acesso a uma interface amigável de desenvolvimento que facilita, organiza e otimiza o desenvolvimento, o teste e a distribuição da aplicação. 49PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 Imagem 1.37 – Tela para seleção do dispositivo virtual Android Fonte: Elaborada pela autoria (2023). Repare que a lista de dispositivos virtuais conectados está vazia () e, por isso, caso você clique em OK, uma mensagem de erro será apresentada, informando que nenhum dispositivo virtual foi selecionado. Precisamos, então, criar um dispositivo virtual para rodar a nossa aplicação-teste. É importante notar que o Android Studio está simulando uma aplicação em um dispositivo móvel, mas seu computador, mesmo sendo um notebook, não é um dispositivo móvel como um celular ou um tablet. Por isso, precisamos permitir que o Android Studio faça a simulação desse dispositivo, ou seja, precisamos criar um dispositivo virtual Android ou, em inglês, um Android virtual device. Para isso, clique no botão Create New Virtual Device e selecione o dispositivo Phone - Nexus 4, conforme mostrado na imagem a seguir: 50 PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 Imagem 1.38 – Criando o AVD (Android virtual device) Fonte: Elaborada pela autoria (2023). Clique em Next e faça o download da API 28, conforme mostrado na próxima imagem: Imagem 1.39 – Carregando as API necessárias para o aplicativo Fonte: Elaborada pela autoria (2023). 51PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 Clique em Next novamente. Imagem 1.40 – Configuração do AVD Fonte: Elaborada pela autoria (2023). Escolha um nome qualquer para o seu AVD, bem como a orientação inicial, e clique em Finish. Se tudo estiver de acordo, aparecerá um emulador do dispositivo Android executando seu primeiro app, conforme a próxima imagem. 52 PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 Imagem 1.41 – AVD executando seu primeiro app mobile Fonte: Elaborada pela autoria (2023). Não foi tão difícil assim, não é mesmo?! Agora que você tem seu primeiro projeto funcionando em um dispositivo virtual Android, podemos considerar que tudo está instalado e configurado corretamente. SAIBA MAIS A fim de aprofundar seus conhecimentos em programação para dispositivos Android, acesse o QR code . https://developer.android.com/guide/ 53PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 Fechando a aplicação Android Precisamos executar mais duas atividades para concluir a presente etapa. • Primeiro: feche o AVD (Android virtual device), clicando no X que está localizado no canto superior direito da barra lateral, destacado na imagema seguir. Imagem 1.42 – Como fechar o AVD Fonte: Elaborada pela autoria (2023). • Segundo: feche o projeto-teste adequadamente. Para isso, clique no menu File e selecione o item Close project, como mostra a imagem. 54 PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 Imagem 1.43 – Fechando o projeto corretamente Fonte: Elaborada pela autoria (2023). Podemos, assim, passar para a próxima fase do nosso aprendizado: entender o funcionamento e os recursos disponibilizados pela interface Android Studio e, em seguida, aprender os fundamentos da linguagem Java. Detalharemos o passo a passo de cada etapa realizada até o momento no desenvolvimento de aplicativos para dispositivos móveis. RESUMINDO E então? Gostou do que lhe mostramos? Aprendeu mesmo tudinho? Agora, só para termos certeza de que você realmente entendeu o tema de estudo desse capítulo, vamos resumir tudo o que vimos. Você deve ter aprendido a operar a interface de desenvolvimento de aplicativos do ambiente Java para dispositivos móveis, testando o aplicativo e observando seu funcionamento. Espero que tenha gostado e compreendido tudo o que foi apresentado até aqui. E aí, pronto para continuar? Vamos juntos! 55PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 Estrutura do projeto Java- Android OBJETIVO Ao final deste capítulo, você será capaz de explicar a estrutura da linguagem de programação Java para dispositivos móveis e seu método de organização do código. Motivado para desenvolver essa competência? Avante! Antes de darmos sequência ao aprendizado e à implementação de programas para dispositivos móveis utilizando Java-Android, é importante entender os recursos disponibilizados pela interface do ambiente de desenvolvimento integrado (IDE) Android Studio, bem como seu funcionamento. É importante destacar que a interface utilizada em nossos estudos não é a única maneira de desenvolver aplicativos Java para dispositivos móveis. Poderíamos, por exemplo, ter instalado o próprio ambiente de desenvolvimento Java, baixando o JDK na sua última versão disponível na página da Oracle (empresa proprietária do Java). Trataremos mais do assunto adiante e exploraremos a interface Android Studio. Conhecendo a interface Android Studio Como você deve ter percebido no primeiro app que desenvolvemos juntos, a interface da IDE Android Studio tem uma grande variedade de telas e funções. Vamos apresentar as mais relevantes que você vai precisar utilizar nos exemplos e exercícios no escopo dos nossos estudos. 56 PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 Novamente salientamos que as imagens são ilustrativas de uma versão corrente do programa, que pode, a qualquer tempo, receber atualizações e ser modificado. Tela de boas-vindas Imagem 1.44 - Tela de boas-vindas Fonte: Elaborada pela autoria (2023). Ao abrir a IDE Android Studio, normalmente a tela de boas- vindas será a primeira a aparecer. IMPORTANTE Isso só não vai acontecer caso você tenha fechado a IDE sem antes fechar o projeto. Para esse caso, a IDE abrirá e carregará diretamente o projeto que estava aberto. Caso isso tenha acontecido com você, feche corretamente o projeto e você terá acesso à tela de boas-vindas, conforme apresentado na imagem anterior. 57PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 Não está errado fechar diretamente a IDE sem fechar antes o projeto. Estamos procedendo assim, dessa vez, para ter acesso a todas as telas e funcionalidades relevantes para o escopo de nosso aprendizado. Repare que a tela de boas-vindas está dividida em duas colunas, a saber: • A coluna da esquerda apresenta a lista dos últimos projetos trabalhados; • A coluna da direita fornece uma lista de possibilidades, entre as quais destacamos as duas primeiras: (1) iniciar um novo projeto Android Studio e (2) abrir um projeto Android Studio existente. Clique no projeto-teste, na coluna da esquerda, para ter acesso à tela principal do projeto. Tela principal É preciso dizer que o layout e a configuração dos painéis da tela principal variam conforme o gosto de desenvolvedor e, também, de acordo com as ferramentas utilizadas da última vez que o projeto foi aberto. 58 PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 Imagem 1.45 – Tela principal do IDE Android Studio Fonte: Elaborada pela autoria (2023). Na imagem anterior, destacamos os seguintes itens: A – Barra de menus: barra tradicional com as opções de salvar, abrir, importar, exportar, navegar, executar etc. Veremos os mais relevantes no decorrer de nossos estudos. Nesse momento, é importante entender alguns itens dessa barra de menus, conforme explicaremos a seguir. Menu File: • New: permite a criação de um novo projeto, classe, activity, módulo, entre outros. Aprenderemos a trabalhar com cada um desses itens futuramente; • Open: permite abrir um projeto existente; • Close project: fecha o projeto em uso; • Settings: apresenta uma nova tela que permite configurações de aparência e comportamento da IDE, tais como tamanho, cor e tipo de fonte do código, cor de fundo da IDE, entre outras; 59PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 • Project structure: apresenta uma nova tela que permite configurar características, tais como a localização do Android SDK e JDK, bem como verificar as versões do Android, entre outras; • Save all: salva todas as janelas de código abertas; • Exit: fecha a IDE sem fechar o projeto. Caso algum projeto esteja aberto, este será carregado da próxima vez que a IDE for aberta. Menu Edit: dá acesso às funções tradicionais de undo (desfazer) e redo (refazer), bem como copiar, colar, recortar, colar, selecionar tudo e localizar. Menu View: • Tool window: permite acesso às janelas da IDE, tais como Logcat, Project, Favorites, Structure, entre outras; • Demais itens: permitem a visualização de alterações recentes, bem como a ativação ou desativação da visualização das barras de ferramentas, status, navegação e botões. Menu Navigate: permite o direcionamento do ponteiro de ação do editor para uma determinada classe, linha de aviso de erro etc. Menu Code: atalhos para a geração de código ou inserção de comentários (em linha ou em bloco), entre outras coisas. Veremos esses itens com mais detalhes quando tratarmos do código Java do projeto. Menu Run: permite a execução do projeto em modo normal ou em modo debug. 60 PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 Menu Tools: permite acesso ao SDK Manager, ao AVD Manager, ao editor de temas, e aos menus VCS, Windows e Help – sobre os quais aprenderemos mais adiante. Existem ainda os menus Analyze, Refactor e Build. B – Barra de navegação: permite a movimentação entre os arquivos, subpastas e pastas que compõem o projeto. Segue o mesmo princípio da barra de navegações do Windows Explorer. C – Barra de ferramentas: é composta por botões que servem como atalho para as funções que são utilizadas com mais frequência. Pode ser personalizada, clicando com o botão direito na barra e selecionando a opção Menus and Toolbars. D - Janela do editor de código: exibe o conteúdo (código) do arquivo no qual o programador está trabalhando no momento. Quando estiver trabalhando com várias janelas (arquivos) de código, cada uma delas será representada por uma aba, seguindo a mesma lógica dos navegadores na internet. E – Janela de ferramentas de projeto: fornece uma visão hierárquica da estrutura do arquivo de projeto, permitindo a navegação para arquivos e pastas específicos para serem abertos. A configuração padrão é a visualização Android, que é o modo a ser utilizado em nossos estudos. F – Barra de status e demais janelas de ferramentas: Barra de status - exibe mensagens informativas sobre o projeto e as activities do Android Studio. Janelas de ferramentas - localizadas no canto esquerdo, permitem acesso a uma variedade de janelas que apresentam dados importantes sobre o projeto. 1.1.1 Demais janelas de ferramentas 61PROGRAMAÇÃO CODING (MOBILE)U ni da de 1 Para ter acesso às demais janelas de ferramentas disponibilizadas pela IDE, pare o cursor do mouse sobre o ícone localizado no canto inferior esquerdo da IDE, conforme mostra a imagem a seguir. Imagem 1.46 – Lista das janelas de ferramentas disponibilizadas pela IDE Fonte: Elaborada pela autoria (2023). Como se pode verificar, a IDE fornece uma grande variedade de janelas de ferramentas. As mais utilizadas, de acordo com Cordeiro (2016), são as seguintes: • Project: fornece uma visão geral da estrutura de arquivos que compõe o projeto, permitindo uma navegação rápida entre os arquivos; • Structure: permite uma visão de alto nível da estrutura das classes atualmente exibidas no editor. Essa informação inclui uma lista de itens, tais como classes, métodos e variáveis no arquivo; • Build variants: uma maneira rápida de configurar diferentes tipos de compilação para o projeto atual (por exemplo, diferentes versões para debug e liberação 62 PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 de versões do aplicativo, ou várias compilações para atingir diferentes categorias de dispositivos); • Todo: fornece um lugar para os itens que ainda têm de ser concluídos no projeto; • Messages: os dados dessa janela são gerados a partir do sistema de compilação Gradle e podem ser úteis para identificar as causas de problemas na compilação de projetos; • Android monitor: possibilita o acesso ao sistema de debug do Android. Dentro dessa janela, podemos executar tarefas básicas de debug, como monitorar a saída de log de um aplicativo em execução, tirar screenshots e vídeos do aplicativo e parar um processo; • Android model: exibe uma lista completa das configurações do seu projeto. Essas podem variar entre configurações mais óbvias, tais como a versão do SDK alvo, e coisas mais escondidas, tais como regras da configuração de compilação; • Terminal: é uma janela de terminal do sistema na qual o Android Studio está em execução. No Windows, essa interface é o prompt de comando; • Run: essa ferramenta torna-se disponível quando um aplicativo está sendo executado e fornece uma visualização dos resultados da execução, junto a opções para parar ou reiniciar o processo; • Event log: exibe mensagens relacionadas a eventos e atividades realizadas no Android Studio. A compilação bem-sucedida de um projeto, por exemplo, ou o fato de que um app está sendo executado serão mostrados dentro dessa janela; 63PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 • Gradle console: usada para exibir todas as saídas do sistema Gradle enquanto os projetos são compilados dentro do Android Studio. Isso inclui informações sobre o sucesso ou insucesso do processo de desenvolvimento, assim como avisos ou detalhes de qualquer erro; • Gradle: mostra as tarefas do Gradle que compõem a configuração do projeto. Essa janela lista as tarefas que estão envolvidas na compilação dos vários elementos do projeto em um aplicativo Android. Estrutura do projeto Java-Android Agora nos dedicaremos ao reconhecimento de alguns arquivos e características importantes para o entendimento da estrutura básica do projeto Java-Android. Trataremos, nesse momento, apenas dos arquivos e das características relevantes para o entendimento do projeto. Para verificar a estrutura do projeto, abra o Android Studio e crie um novo projeto com as seguintes características: Na tela Create Android project: • Defina o Application name: AppEstrutura. Na tela Target Android device: • Marque a opção Phone and tablets; • Selecione a API 15. Na tela Add an activity to mobile: • Selecione: Empty activity. Na tela Configure activity: • Defina o Activity name: principal; 64 PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 • Defina o Layout name: activity principal; • Clique em Finish e aguarde a criação do projeto. Uma vez que o projeto esteja criado, a janela de ferramenta de projeto deve estar como apresentada na imagem a seguir. Imagem 1.47 – Tela de ferramentas de projeto Fonte: Elaborada pela autoria (2023). Note que a estrutura de pastas do projeto possui duas pastas “raiz”: (1) app e (2) Gradle scripts. A pasta app é composta por três subpastas: (a) pasta Manifests; (b) a pasta Java; (c) e a pasta Res. A seguir, entenderemos melhor cada uma delas. Pasta Manifests Dentro da pasta Manifests existe um arquivo chamado AndroidManifests.xml. Todo aplicativo Java-Android deve ter um arquivo com esse mesmo nome. Pode ser um projeto desenvolvido (ou em desenvolvimento) por você ou de outra pessoa. Ele é o manifesto do aplicativo, o qual contém informações essenciais sobre o aplicativo cujo código nós estamos analisando. O termo manifesto consiste em um substantivo masculino cujo significado diz respeito à exposição em que se manifesta o 65PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 que é preciso ou o que se deseja saber a respeito de algo. Com essa definição, podemos inferir que o arquivo manifesto do aplicativo tem a função de conter as informações necessárias (que devem ser passadas para o MOS Android) para que o aplicativo seja corretamente executado. De maneira geral, segundo a própria documentação fornecida pelo site do Android, o arquivo do manifesto serve para: • Nomear (identificar unicamente) o pacote Java para o aplicativo; • Descrever os componentes do aplicativo; • Declarar as permissões que o aplicativo deve ter para acessar partes protegidas da API; • Declarar as permissões que o aplicativo deve ter para interagir com outros aplicativos; • Declarar qual é a API mínima necessária para a correta execução do aplicativo; • Listar as bibliotecas às quais o aplicativo necessita estar vinculado para funcionar adequadamente. Agora que você sabe o que é e para que serve o arquivo referente ao manifesto do aplicativo, vamos analisar a estrutura deste. A imagem a seguir apresenta uma cópia do AndroidManifest. xml do projeto que estamos desenvolvendo. Ele deve ser idêntico ao do seu projeto. 66 PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 Imagem 1.48 – Arquivo AndroidManifest.xml Fonte: Elaborada pela autoria (2023). Algumas considerações preliminares são importantes. O manifesto é um arquivo no formato XML (Extensible Markup Language) que, conforme aponta Pereira (2009), é uma linguagem de marcação recomendada pela W3C para a criação de documentos com dados organizados hierarquicamente, assim como faz o HTML, porém seu diferencial é ser extensível, o que permite ao utilizador definir seus próprios conjuntos de elementos de marcação. Em HTML, utilizamos conjuntos de TAGs ou marcadores predefinidos, tais como , etc. Com XML, é possível criar nossos próprios marcadores. Você pode criar um marcador, como: , etc.. Para o caso do arquivo AndroidManifest.xml, apresentado na imagem anterior, podemos identificar alguns marcadores definidos por quem elaborou essa solução para o desenvolvimento de aplicativos para dispositivos móveis. Note que a linha número 1 contém um cabeçalho. Todos os arquivos XML precisam ter esse cabeçalho e informar ao navegador ou ao MOS Android que o arquivo a ser lido está no 67PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 formato XML. Ao passar para o conteúdo do arquivo, veja que, na linha 2, existe um marcador chamado , o qual inicia o documento e, consequentemente, também o finaliza, pois temos, na linha 21, o fechamento do mesmo marcador. Na linha 5, temos o marcador , que é fechado na linha 19. Também temos o marcador na linha 12 e que é fechado na linha 18. Vamos verificar quais são os marcadores e suas utilidades (as TAGs), apresentadas na imagem anterior: - é o elemento-raiz de todo arquivo AndroidManifest.xml. • Deve definir o namespace do Android, cujo atributo, segundo o Android, pode ser sempre definido como: http://schemas.android.com/apk/res/android; • Deve identificaro pacote (package) ao qual a aplicação pertence. O nome completo desse pacote é definido quando estamos criando um projeto no Android Studio. O nome do pacote também representa, conforme Android, a identificação (ID) da aplicação, a qual deve ser única e será usada caso se queira publicar a aplicação na Google Play; • Deve conter pelo menos uma aplicação (representada pelo marcador ). Existem muitos outros elementos que podem estar contidos dentro do marcador . Nesse momento estamos nos dedicando apenas àqueles que o arquivo da imagem apresenta. : é a declaração da aplicação. Esse elemento deve conter todos os subelementos que declaram cada um dos componentes da aplicação e, também, pode conter atributos que 68 PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 afetem esses componentes. São exemplos de atributos: icon, label, permission, process etc. Atributos: • Android:allowBackup: determina se o aplicativo em questão participa ou não da infraestrutura de backup e restauração. Pode ser configurado para verdadeiro (true) ou falso (false); • Android:icon: define um ícone para a aplicação como um todo e um ícone padrão para cada componente da aplicação. Deve ser configurado como uma referência para uma fonte de imagem apontada pelo elemento @ drawable/icon (que veremos mais adiante); • Android:label: define uma etiqueta (label) legível para a aplicação como um todo e uma etiqueta (label) padrão para cada componente da aplicação; • Android:roundIcon: A partir da versão 8 do MOS Android, foram introduzidos ícones adaptativos que podem ter os mais variados formatos. Um deles é o formato arredondado, por isso roundIcon; ACESSE Para saber mais sobre os ícones adaptativos, acesse o QR code disponível aqui. • Android:supportsRtl: declara se sua aplicação suporta layouts “Right-to-Left”. https://developer.android.com/develop/ui/views/launch/icon_design_adaptive?hl=pt-br 69PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 Podem ser definidos como verdadeiro (true) ou falso (false). • Android: theme: define um tema padrão para todas as atividades (telas) contidas na aplicação. Atividades individuais que usem esse atributo podem se sobrepor à definição padrão. - Declara uma atividade, isto é, uma interface (tela) visual para o usuário. Uma aplicação pode ter várias telas, e cada uma delas deve ser representada por um elemento distinto dentro do arquivo do manifesto. Atributos: android:name: define o nome da atividade. • : intent é um objeto de mensagem que pode ser usado para solicitar uma ação de outro componente de aplicativo Android. O especifica o tipo de intent a que uma atividade, serviço ou receiver está apto a responder. Explicando melhor: um intent-filter declara o que uma atividade ou serviço pode fazer e quais tipos de broadcasts um receiver pode manipular. Nesse momento, nos importa saber que, no caso da figura anterior, aparecem dois subelementos: (1) action; (2) category; • Action: adiciona uma ação ao elemento intent-filter (que pode possuir um ou mais elementos de ações). No caso em estudo, temos que a ação é definida como MAIN. Essa ação (MAIN) informa ao MOS Android que essa é a atividade principal da aplicação; • Category: adiciona um nome de categoria ao elemento intent-filter. No caso em estudo, temos que a categoria foi declarada como launcher (iniciar, lançar, começar, empreender). Isso informa ao MOS Android que a 70 PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 atividade deve estar visível no launcher do dispositivo móvel. Finalizamos a análise do arquivo de manifesto do aplicativo. Passamos agora para a próxima pasta. IMPORTANTE Não se preocupe se tudo isso ainda parece meio confuso. Estamos na fase inicial. Trabalharemos em detalhes cada um desses elementos e outros mais para que você possa se sentir confiante ao desenvolver uma aplicação para dispositivo móvel. Pasta Java A pasta Java tem, normalmente, três subpastas. A primeira contém as classes (arquivos.java) referentes às activities (telas) da sua aplicação e demais classes que você porventura precise desenvolver em uma aplicação mais sofisticada. As outras duas pastas são pastas de testes, não sendo nosso foco agora. Vamos, então, para a classe Principal.java, que deve conter a estrutura da nossa activity. A imagem a seguir mostra o conteúdo dessa classe. Imagem 1.49 – Classe Principal.Java Fonte: Elaborada pela autoria (2023). 71PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 Não iremos estudar a linguagem Java nesse momento. Mas, apesar disso, precisamos fazer aqui algumas considerações. • Na linha 1, a palavra destacada package define em que pacote essa classe está declarada. Um pacote pode conter várias classes que devem estar separadas por assunto ou aplicação, assim como separamos documentos em uma pasta ou pacote; • Na linha 3, a palavra destacada import declara quais são as bibliotecas que essa nossa classe Principal vai precisar usar para que seja executada adequadamente pelo MOS Android. As classes importadas não aparecem por motivos de organização de código, mas, se você clicar nos três pontinhos que estão logo depois da palavra import, poderá ver quais são as classes necessárias para fazer esse projeto ser executado; • Na linha 6, a classe principal é definida. A palavra destacada class define que Principal é uma classe. A palavra public define que essa classe pode ser instanciada por qualquer outra que a utilize, sem precisar ser uma classe-filha. Já a palavra extends declara que a classe Principal (nossa classe) deve estender (herdar) as características (atributos) e os comportamentos (métodos) da classe AppCompatActivity; • Na linha 8, a palavra @Override informa que o método da linha abaixo (onCreate) está fazendo sobreposição8 de um método já existente na classe- mãe (AppCompatActivity); • Na linha 9, o método onCreate é definido. Ele é responsável por carregar os layouts e outras operações 8 Sobreposição (override) é uma característica da programação orientada a objetos que permite a uma subclasse ou classe-filha prover uma específica implementação de um método que já foi implementado pela classe-mãe. 72 PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 de inicialização. Veremos com mais detalhes esse método quando estudarmos o ciclo de vida completo da activity; • A palavra void declara que esse método não retorna qualquer valor, ao passo que protected define que esse método não pode ser acessado por qualquer classe, apenas pelas classes-filhas dessa que estamos criando; • Note também que o método onCreate tem um parâmetro, mas não se preocupe com ele agora. Estudaremos essa parte com detalhes quando tratarmos do ciclo de vida de uma activity. • Na linha 10, a palavra reservada super indica que o método onCreate original (definido na classe-mãe) deve ser chamado e executado; • Na linha 11, o método setc.ontentView será chamado. Ele tem a função de apresentar um conteúdo na tela. Esse conteúdo é definido por um layout que está declarado no argumento ou parâmetro desse método (R.layout. activity_principal); • R indica a pasta res (abreviatura de resource); • Layout é o nome da subpasta da pasta res; • Activity_principal é o nome do arquivo (activity_ principal.xml). A pasta res será analisada agora, e você terá uma visão da estrutura completa. 73PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 Pasta Res É a pasta de recursos (resources) da sua aplicação Android. Pasta Drawable: na qual serão armazenados todos os recursos de imagens para o seu aplicativo. Pasta Layout: na qual ficarão armazenados todos os layouts que você for utilizar em cada uma das activities (telas) de sua aplicação. Dentro dessa pasta, existe um arquivo chamado activity_principal.xml, sobre o qual falamos há pouco. Esse arquivo define o layout da única activity que você tem, porenquanto, em sua aplicação. A imagem a seguir mostra o conteúdo do referido arquivo. Imagem 1.50 – Arquivo de Layout – activity - principal.xml Fonte: Elaborada pela autoria (2023). • Pasta mipmap: local em que são armazenados todos os ícones utilizados em sua aplicação. Existem duas subpastas: (1) ic_launcher e (2) ic_launcher_round, nas quais você pode verificar os arquivos.png utilizados na sua aplicação; 74 PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 • Pasta Values: contém três arquivos, como mostrado na imagem a seguir: Imagem 1.51 – Arquivo de Layout – activity-principal.xml Fonte: Elaborada pela autoria (2023). Colors.xml: é recomendado que você registre aqui todas as cores que você pretende utilizar dentro da sua aplicação. Depois de registrado aqui nesse arquivo, a cor pode ser referenciada nos arquivos de layouts de cada uma das telas (activities) de sua aplicação. Uma vez que você queira alterar a cor que você utilizou em 10 layouts, por exemplo, é só trocar aqui, e os layouts que fazem referência a essa cor serão alterados automaticamente. Strings.xml: tem o mesmo funcionamento que o arquivo de cores explicado anteriormente. Nele, devem ser registrados todos os textos estáticos da sua aplicação. Antes de definir um texto para um botão ou um texto para um label, defina-o aqui e use a referência aqui definida nos layouts. Uma vez que você mude aqui o texto do botão, como de “Alterar”, para “Editar”, por exemplo, todos os botões das telas que fazem referência a esse texto serão alterados automaticamente. Styles.xml: define o estilo de sua aplicação. Aqui serão definidas características como tamanho, margem, cor de fundo etc. e da mesma forma que acontece com o arquivo de strings ou de cores, usa apenas a referência a esse estilo dentro dos layouts. Quando você alterar um parâmetro de margem ou cor de fundo 75PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 aqui nesse arquivo, estará automaticamente alterando em todas as telas (activities) da sua aplicação que a eles fazem referência. Agora que você entendeu um pouco como funciona a estrutura de uma aplicação Java-Android, vamos aos fundamentos da programação Java para dispositivos móveis. RESUMINDO E então? Gostou do que lhe mostramos? Aprendeu mesmo tudinho? Agora, só para termos certeza de que você realmente entendeu o tema de estudo deste capítulo, vamos resumir tudo o que vimos. Você deve ter compreendido como funciona a estrutura da linguagem de programação Java para dispositivos móveis e seu método de organização do código. Espero que tenha gostado e compreendido tudo o que foi apresentado até aqui. Está pronto para continuar? Vamos juntos! 76 PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 Fundamentos do Java para mobile OBJETIVO Ao final deste capítulo, você será capaz de desenhar e organizar os elementos de um projeto de desenvolvimento de aplicativos para Android utilizando a linguagem Java Mobile. E então? Motivado para desenvolver essa competência? Avante! Java: Um pouco de história Era o ano de 1991, e a empresa Sun Microsystems trabalhava em um projeto chamado Green Project, cujo objetivo era desenvolver uma nova plataforma para a computação interativa. O resultado desse projeto foi a criação do Handheld StarSeven (cujo símbolo era “*7”). Tratava-se de um dispositivo com tela sensível ao toque (touchscreen) que controlava uma variedade de aparelhos domésticos. Pode-se dizer que consistia em um controle remoto sofisticado, com a capacidade de controlar uma grande variedade de aparelhos domésticos disponíveis na época, apresentando uma interface animada, em uma tela colorida de cinco polegadas, de LCD, sensível ao toque. A linguagem de programação desenvolvida para o StarSeven foi denominada de linguagem Oak, que, em português, quer dizer “carvalho”. Ela tinha esse nome porque seria a árvore que um dos criadores da linguagem, James Gosling, via de sua janela. O projeto, no entanto, não deu muito certo e foi abandonado, pois, segundo alguns, estava bem à frente de seu tempo. Mas a linguagem Oak, por ser independente de plataforma, tornou-se de grande interesse para a Sun e foi retrabalhada, ajustada e moldada por uma equipe de engenheiros para se tornar, depois de dois ou três anos de pesquisa, a primeira versão da linguagem Java. 77PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 Em 23 de maio de 1995, foi anunciado que a tecnologia Java estava disponível, na sua primeira versão, incorporada ao navegador Netscape. A tecnologia Java Quando se fala em tecnologia Java, faz-se referência à linguagem Java e à plataforma Java, sobre as quais aprenderemos a seguir. A linguagem Java A linguagem Java é uma linguagem de alto nível. A seguir, estão relacionadas algumas de suas características: • Orientada a objetos; • Para ambientes distribuídos: um sistema distribuído é um conjunto de computadores independentes que aparenta ao usuário ser um único computador. Exemplo: sistema de reserva de passagens aéreas, serviços da internet; • Arquitetura neutra e portável: é uma linguagem criada para rodar em várias plataformas; • Alto desempenho. Interpretada. 78 PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 IMPORTANTE Vale destacar aqui a diferença entre linguagens de programação interpretada e compilada. Linguagem interpretada: é uma linguagem de programação em que o programa (código-fonte) é lido (executado) por um interpretador que o faz diretamente durante a execução, isto é, não existe o executável do programa. Exemplos: Java, C#, ASP. Linguagem compilada: é uma linguagem de programação cujo código-fonte é traduzido pelo compilador, gerando um arquivo executável do programa (linguagem de máquina) que é acionado diretamente pelo processador ou pelo sistema operacional. Exemplos: C, C++, Delphi. Esquema de execução de um programa em Java Quando um programa em Java é escrito, ele é gravado em um arquivo texto com extensão .java. O compilador lê esse arquivo e o transforma em um arquivo .class. Esse processo é chamado de compilação. A JVM (Java virtual machine) lê (interpreta) esse arquivo .class e executa o programa. Tal processo é chamado de execução. A imagem a seguir ilustra o processo de execução de um programa Java. Imagem 1.52 – Processo de execução de um programa Java Fonte: Elaborada pela autoria (2023). 79PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 Quando o programa .java é compilado, o resultado é um arquivo .class (bytecodes), que é a linguagem de máquina que a JVM consegue entender. Os bytecodes são então processados (interpretados) pela JVM, que executa o programa em seu computador. Caso o sistema operacional do seu computador seja o Windows, você vai precisar de uma JVM para o Windows. Caso você esteja trabalhando com um computador cujo sistema operacional seja o MacOS, precisará de uma JVM para esse SO, e assim por diante. A plataforma Java É o nome dado ao ambiente computacional que permite desenvolver aplicativos utilizando a linguagem Java. A grande vantagem dessa plataforma é que ela não está presa a um único sistema operacional ou a um único hardware. Atualmente, existem três plataformas Java principais: • Java SE (Java Standard Edition): permite desenvolver e implantar aplicações em desktops e servidores; • Java EE (Java Enterprise Edition): permite desenvolver aplicações corporativas e para a internet; • Java ME (Java Micro Edition): permite desenvolver aplicações para dispositivos móveis. A seguir, entenderemos o passo a passo de como montar um ambiente de desenvolvimento Java para as aplicações que serão desenvolvidas em nossos estudos. 80 PROGRAMAÇÃO CODING (MOBILE) U ni da de 1 Entendendo, instalando e configurando o ambiente Java Antes de começar a programar em linguagem Java, é necessário preparar o ambiente de desenvolvimento, que é composto basicamente por: JDK9 e IDE10. O quadro a seguir esclarece e relembra alguns conceitos necessários