·
Sistemas de Informação ·
Outros
Send your question to AI and receive an answer instantly
Preview text
eBook 3 Ariel da Silva Dias PROGRAMAÇÃO DE APLICATIVOS PARA DISPOSITIVOS MÓVEIS Sumário INTRODUÇÃO De acordo com uma pesquisa realizada pela Fundação Getúlio Vargas FGV o Brasil possui mais de 440 milhões de dispositivos digitais computador notebook tablet e smartphone aproximadamente 2 dispositivos por habitante Ainda de acordo com esta pesquisa o país possui mais de 242 milhões de dispositivos móveis como smartphones FGV2021 Mediante a este crescimento tornase necessário conhecermos as principais ferramentas e tecnologias para desenvolvimento de aplicações mobile para atender a todo este público Desta modo vamos abordar as principais ferramentas e tecnologias envolvidas no desenvolvimento de aplicativos móveis sejam eles aplicativos web ou aplicativos multiplataforma para Android e iOS TECNOLOGIAS PARA DESENVOLVIMENTO DE APLICATIVOS WEB E MULTIPLATFORMA Existe um equívoco muito comum entre desenvolvedores de que aplicativos móveis nativos e aplicativos web são a mesma coisa entretanto estes dois tipos de aplicativos são muito diferentes PROCESSAMENTO NO LADO DO CLIENTE Quando acessamos um aplicativo web ou quando instalamos um aplicativo mobile em nosso smartphone ele está em execução localmente ou seja ele é um aplicativo cliente Este aplicativo pode ser executado online ou offline ou seja com ou sem conexão com um servidor central respectivamente Considero por exemplo o aplicativo de calculadora ou o alarme de um smartphone Este aplicativo está em execução localmente e toda sua base de dados e processamento ocorre diretamente no dispositivo sem necessidade de se comunicar constantemente com um servidor Por outro lado considere um aplicativo de banco Ele está localmente instalado no smartphone Contudo o usuário requer acesso à conta bancária para consultar o saldo é necessário que este aplicativo se conecte a um servidor central para validar o login e trazer informações da conta Ainda é possível haver um aplicativo híbrido o qual é executado online e offline Por exemplo quando o usuário está conectado à internet o aplicativo do Facebook traz o conteúdo mais recente da rede social e lhe permite interagir realizando postagens curtindo e comentando em publicações Se o smartphone do usuário estiver sem internet o aplicativo do Facebook continua oferecendo algumas funcionalidades como percorrer a linha do tempo e ler o conteúdo publicado por terceiros Veja então que o aplicativo Facebook pode ser executado online ou offline sem muitos prejuízos ao usuário e com algumas limitações porém sem permitir que o usuário consuma seu conteúdo Desta forma vamos conhecer primeiramente as tecnologias envolvidas no desenvolvimento de aplicações web Estas aplicações dependem exclusivamente de conexão com internet e a principal linguagem e tecnologia utilizada no desenvolvimento é o JavaScript JavaScript Sintaxe JavaScript é uma linguagem de script usada para criar e controlar o conteúdo dinâmico de um site ou seja qualquer coisa que se mova atualize ou mude de outra forma em sua tela sem exigir que você recarregue manualmente uma página da web Recursos como gráficos animados apresentações de slides de fotos sugestões de preenchimento automático de texto formulários interativos Uma maneira ainda melhor de entender o que o JavaScript faz é pensar sobre certos recursos da web que você usa todos os dias e provavelmente dá como certo como quando sua timeline do Facebook é atualizada automaticamente na tela ou o Google sugere termos de pesquisa com base em algumas letras que você iniciou digitando Em ambos os casos é o JavaScript em ação Ao criarmos nossos scripts é necessário que os valores permaneçam em memória de modo que estes dados possam ser reaproveitados no código Este é o conceito de variável Em JavaScript assim como em outras linguagens de programação uma variável representa um local da memória que é usado para armazenar um valor o qual pode ser do tipo numérico caractere ou lógico O valor da variável na memória pode ser alterado durante a execução do nosso programa Os principais tipos de dados são String representação textual de um dado Number um número inteiro ou ponto flutuante Boolean um par de valores verdadeiro ou falso Object pares de chavevalor de uma coleção de dados Variáveis são usadas em quase todos os programas de computador e com o JavaScript não é diferente Porém uma variável por si só apenas armazena valores O mais interessante e empolgante de JavaScript assim como de qualquer outra linguagem de programação é relacionar e correlacionar estas variáveis realizando operações aritméticas bem como comparações lógicas Em muitos momentos será necessário realizar alguma operação aritmética desde as mais simples como soma de algum valor até mesmo a resolução de equações complexas Para todos estes casos utilizaremos os operadores aritméticos que são nativos da linguagem Os operadores aritméticos do JavaScript são usados para executar operações aritméticas como adicionar subtrair dividir ou multiplicar números Os principais operadores aritméticos são o de adição subtração multiplicação divisão módulo decremento e incremento Além dos operadores aritméticos podemos também utilizar os operadores de comparação os quais comparam dois valores e retornam um valor booleano true ou false São exemplos de operadores de comparação a igualdade a diferença a igualdade estrita que é quando os operandos forem iguais e do mesmo tipo além dos operadores maior menor maior ou igual e menor ou igual Podemos criar expressões relacionando os operadores de atribuição por meio de operadores lógicos Os principais operadores lógicos são e lógico retorna true se ambos os operandos forem true senão retorna false ou lógico retorna true se um dos operandos forem true senão retorna false NOT negação retorna true se o operando for false e retorna false se o operando for true Todos estes operadores que foram listados aqui operador aritmético de comparação e lógico são a força motriz de qualquer linguagem de operação uma vez que relacionamos valores manipulamos variáveis e tiramos conclusões a partir de nossos dados O código a seguir ilustra alguns exemplos de código em JavaScript Cálculo A2 B3 soma A B alertO resultado é somao resultado será 5 A5 B1 o resultado será false A5 B1 o resultado será true No início de nosso código é realizada a soma dos valores presentes nas variáveis A e B A operação de soma é armazenada na variável soma e em seguida apresentada em um alerta Outra operação realizada neste código é comparar se o conteúdo da variável A é maior que 5 e se o conteúdo da variável B é maior que 1 Observe que a primeira comparação é falsa porém a segunda comparação é verdadeira O resultado aqui será falso false pois para que uma expressão lógica com e seja verdadeira ambas as comparações devem ser verdadeiras A segunda expressão lógica terá como resultado o valor verdadeiro true pois quando estamos trabalhando com ou basta que uma das duas comparações seja verdadeira para que toda a expressão seja também verdadeira JavaScript Controle de Fluxo Assim como em outras linguagens o JavaScript possibilita o uso de controle de fluxo Estes controles dividem a lógica de nossa aplicação em diversos caminhos dando muitas possibilidades de execução além de permitir que seja criado um programa que pode tomar decisões Dentro os controles de fluxos existentes temos o if ifelse e ifelse ifelse O exemplo de código pode ser visto a seguir if numero 2 ifnumero0 alertNúmero positivo ifelse senha 666666 ifsenha123456 alertAcesso permitido else alertAcesso negado ifelse ifelse valor 10 ifvalor0 alertO valor é positivo else ifvalor0 alertO valor é negativo else alertO valor é igual a zero A instrução if é responsável por avaliar uma instrução entre parênteses Se a condição for verdadeira true o código dentro do corpo do if é executado se a condição for falsa false o código dentro do corpo do if será ignorado JavaScript Estrutura de repetição O JavaScript também possui as estruturas de repetições que permite que trechos do algoritmo possam ser repetidos em um determinado número de vezes Dentro as principais estruturas de repetição temos o while e o for O código a seguir ilustra o uso de ambas as estruturas de repetição while x0 inicialização da variável whilex5 condição de parada alertContando x mensagem x incrmento A sintaxe da estrutura condicional while é marcada por uma variável de controle No início do while a estrutura realiza uma comparação lêse enquanto a variável x for menor do que 5 faça Logo enquanto esta comparação for verdadeira haverá a execução de todo o conteúdo dentro do while Esta é conhecida como condição de parada pois assim que o valor for falso a execução do while será interrompida Internamente o while possui o incremento Sem o incremento o código ficará executando infinitamente Logo é importante que você não esqueça de colocálo a não ser que seu aplicativo tenha que ficar em um loop infinito Também temos a mensagem que neste caso será apresentada 5 vezes na tela A outra estrutura o for possui a mesma característica entretanto a declaração da variável de inicialização e o incremento é realizado diretamente na declaração do for O código a seguir ilustra um exemplo fori0 i5 i alertContando i Observe que o comportamento deste código e do anterior é semelhante resultando em uma saída igual a quando utilizamos a estrutura while DOM Document Object Model Agora que você pode compreender e familiarizarse com a linguagem Java Script a qual é muito semelhante a outras linguagens vamos conhecer o DOM uma API que auxilia no desenvolvimento de aplicações dinâmicas De acordo com Redhat 2021 uma API interface de programação de aplicações é um conjunto de definições e protocolos usados no desenvolvimento e na integração de aplicações de software Ainda continuando Redhat diz que Uma API permite que sua solução se comunique com outros produtos e serviços sem precisar saber como eles foram implementados Com isso nós temos um processo simplificado de desenvolvimento de aplicações O DOM é uma especificação formal mantida pela W3C World Wide Web Consortium a qual é responsável por definir um modo padrão dos scripts em JavaScript lerem e também manipularem o documento web que está na memória do navegador A estrutura DOM é representada em formato de uma árvore a qual é composta por elementos de nós Observe o código a seguir A partir deste código podemos gerar o seguinte DOM desta página que é visto na Figura 1 Figura 1 Árvore DOM gerada a partir de um código HTML Fonte Elaboração própria Na maioria dos casos a manipulação do DOM acontecerá sobre documentbody afinal é a única parte do documento que será renderizada na tela Cada caixa de nó da figura 1 representa um elemento ou tag de marcação de HTML Por outro lado os nós de texto contêm aquilo que será apresentado graficamente na tela Para acessar um elemento no DOM começamos pelo comando document que é o objeto global Então podemos utilizar a ferramenta querySelector para pesquisar elementos Veja exemplo no código a seguir O primeiro comando recupera o primeiro parágrafo por outro lado o segundo comando recupera todos os parágrafos elementos marcados com a tag p Embora o DOM seja criado a partir do documento HTML de origem nem sempre é exatamente o mesmo Além de ser uma interface para visualização do conteúdo de um documento HTML o DOM também pode ser modificado tornandose um recurso vivo Observe o código a seguir Este código atualizará o DOM você inclusive verá o conteúdo novo escrito na tela entretanto o nosso documento HTML não será afetado SAIBA MAIS O DOM é uma API muito utilizada no desenvolvimento de aplicativos móveis Desta forma é fortemente recomendado que você conheça esta poderosa API Para isso acesse o site de desenvolvedores do Mozilla em httpsdevelopermozillaorgptBRdocsWebAPI DocumentObjectModel Acesso em 21 jul 2021 PROCESSAMENTO NO LADO DO SERVIDOR As aplicações web possuem uma característica que as difere de outros tipos de aplicações elas sempre estão hospedadas em um servidor Desta modo uma aplicação web usa a arquitetura clienteservidor No cliente como vimos no tópico anterior utilizamos o JavaScript para lidar com a lógica permitindo a interação e o dinamismo da aplicação O servidor é utilizado tanto por aplicações web quanto por aplicativos nativos Consider por exemplo um aplicativo bancário Todas as contas de todos os clientes ficam armazenados em um servidor central Logo quando o usuário deseja acessar a sua conta o aplicativo local cliente envia os dados para o servidor Lá no servidor há uma aplicação que cuida da lógica de negócio e é responsável por processar a requisição do cliente Muitas aplicações necessitam desta comunicação com um servidor Quando o usuário solicita um transporte em um aplicativo como Uber por exemplo os dados dos motoristas estão em um servidor Sendo assim o aplicativo Uber local envia uma requisição para o servidor Nesta requisição além das informações do usuário também são enviados os dados de localização Então o servidor recebe a localização do usuário e mediante a um processamento rápido obtém a informação de quais motoristas que estão próximos a ele O servidor é responsável por contatar todos os motoristas informando que alguém nas proximidades deseja realizar uma viagem Logo o aplicativo local dos motoristas recebe esta informação Quando o motorista aceita uma determinada viagem a informação primeiramente é enviada ao servidor e por fim o servidor retorna ao usuário as informações sobre o motorista Observe então que tanto o usuário quanto o motorista estão conectados no servidor São dois aplicativos diferentes porém que compartilham o mesmo banco de dados e o mesmo servidor Do lado do servidor temos muitas possibilidades de linguagens de programação e tecnologias como o PHP Python NodeJS entre outras Vamos conhecer um pouco de algumas destas linguagens de programação Servidor Web Denominamos Servidores Web ou servidores da web os softwares ou hardwares que usam o protocolo HTTP Hypertext Transfer Protocol e outros para responder às requisições de clientes feitas pela World Wide Web WWW O software de servidor Web controla como um usuário acessa os arquivos hospedados Este software é acessado através dos nomes de domínio dos sites e garante a entrega do conteúdo do site ao usuário solicitante Como hardware um servidor Web é um computador que mantém e gerencia o software de servidor Web e outros arquivos relacionados a um site como documentos HTML CSS imagens e arquivos JavaScript O hardware do servidor da Web está conectado à Internet e permite a troca de dados com outros dispositivos conectados à mesma rede ou na internet De modo geral podemos dizer que o processo envolvido no servidor Web é um exemplo do modelo de clienteservidor Todos os computadores que hospedam sites devem ter um software de servidor da Web Os principais servidores da Web incluem Apache e Internet Information Server IIS da Microsoft A Figura 2 apresenta a arquitetura padrão de um servidor web Figura 2 Arquitetura de um servidor web Fonte Elaboração própria Observe na Figura 2 que o cliente o qual pode ser um computador smartphone ou uma aplicação web realiza uma requisição a um programa no servidor web Este programa por sua vez realiza uma consulta no banco de dados Em exemplo prático imagine você realizando uma reserva de passagem aérea Após marcar o dia horário e destino e pressionar o botão pesquisar o sistema web cliente enviará uma requisição ao servidor web para que o mesmo verifique a disponibilidade de voos de acordo com as informações que você inseriu Após a consulta o programa no servidor web retorna uma página HTML resposta em HTTP com as informações desejadas Dentro os servidores web temos Apache O Apache Server é um servidor Web gratuito e de código aberto o qual fornece conteúdo da Web pela Internet É comumente referido como Apache e após o desenvolvimento tornouse rapidamente o cliente HTTP mais popular da Web Alguns dos módulos mais populares que podem ser adicionados são SSL Secure Sockets Layer Server Side Programming Support PHP e configurações de balanceamento de carga para lidar com grandes quantidades de tráfego O Apache também pode ser implantado no Linux MacOS e Windows As únicas diferenças seriam os caminhos de diretório e processos de instalação Apache Tomcat Também é um servidor web entretanto ele executa aplicações em Java ao invés de apenas sites estáticos em HTML Jetty Tratase de um servidor web desenvolvido pela Eclipse Foundation que pode ser facilmente integrado em dispositivos frameworks e servidores de aplicativos Internet Information Services IIS O IIS é um software de servidor Web desenvolvido pela Microsoft para o Windows Server É usado para hospedar aplicativos web e muitos outros conteúdos voltados para a web O IIS oferece muitos recursos sendo uma ferramenta popular para todos os tipos de aplicações comerciais e não comerciais O Microsoft IIS fornece interface gráfica com o usuário de modo a facilitar a manutenção e gerenciamento da ferramenta Sua sintaxe é muito parecida com o do JavaScript e de outras linguagens com a diferença de que as variáveis se iniciam com o sinal de cifrão As estruturas condicionais e de repetição são as mesmas presentes no JavaScript e que foi vista em tópicos anteriores SAIBA MAIS A linguagem PHP é muito utilizada por diversas empresas em todo mundo devido a sua facilidade de aprendizagem e versatilidade Desta forma é muito importante que você conheça mais sobre ela Para isso acesse a documentação oficial em httpswwwphpnetdocsphp Acesso em 21 jul 2021 Nodejs O Nodejs é um ambiente de tempo de execução de aplicativo que permite escrever aplicativos do lado do servidor em JavaScript o que abre novos caminhos para o desenvolvimento de aplicativos web que necessitam de manipular grandes volumes de dados tudo graças aos seus eventos assíncronos NODEJS 2021 O primeiro passo para trabalhar com Nodejs é instalar o node no servidor no computador que receberá as requisições do cliente e onde ficará o aplicativo web conforme orientação de NODEJS 2021 Outros servidores da Web incluem o servidor NetWare da Novell o Google Web Server GWS o NGINX e a família de servidores Domino da IBM Apresentando os principais servidores web agora serão listados a seguir as principais linguagens de programação que são executadas no lado do servidor backend ou serverside PHP Conforme descrito no site oficial o PHP é uma linguagem de script open source de uso geral muito utilizada e especialmente adequada para o desenvolvimento web e que pode ser embutida dentro do HTMLPHP2021A diferença entre PHP e JavaScript está no fato de ser executado do lado do servidor Apesar desta característica o PHP pode ser utilizado em três áreas scripts do lado do servidor scripts de linha de comando e aplicações desktop No desenvolvimento de aplicativos mobile seja aplicativo web nativo ou multiplataforma o PHP é utilizado para receber as requisições do cliente ou seja do seu aplicativo e realizar a lógica de negócio processar a requisição consultar o banco de dados retornar algum dado ou resultado de uma operação entre outras Após realizada a instalação você pode realizar um primeiro teste abrindo um editor de texto como o bloco de notas ou gedit e colocando o seguinte código Este código cria um objeto servidor o qual aguarda requisições do cliente na porta 8080 Para testar salve o código acima em um arquivo chamado serverjs Em seguida abra o terminal do linux ou prompt de comandos do windows e execute o comando node serverjs isso iniciará o nosso servidor Após seguir estas etapas abra seu navegador web e digite a URL httplocalhost8080 Desde modo você acessará a sua aplicação e verá em seu navegador a mensagem Olá Mundo Como experimento descubra qual o IP Internet Protocol do computador onde está sendo executada a sua aplicação Em seguida se conecte com o celular na mesma rede em que está o seu computador Abra o navegador web em seu celular e acesse a mesma URL anterior porém agora substitua a palavra localhost pelo IP do computador onde está sendo executada a aplicação Você verá em seu celular a saudação Olá Mundo Este é um exemplo bem simples porém a partir dele você pode construir aplicações diversas que recebem uma entrada e apresentam uma saída Veja este segundo código a seguir Escreva este código em um editor de texto como foi feito com o código anterior e salve como servidorjs Em seguida vamos executálo com o comando node servidorjs conforme feito anteriormente Para consumir esta aplicação faremos um processo diferente Acesse a seguinte URL httplocalhost8080nomeAnaidade26 onde localhost pode ser substituído pelo IP do seu servidor onde está Ana você pode colocar o seu nome e onde está 26 você pode colocar sua idade Na tela será apresentada a saudação Olá Ana você tem 26 anos Se este servidor estiver em execução você pode criar uma aplicação web HTML JavaScript que quando o usuário preencher um formulário com nome e a idade dele estes dados são enviados para o servidor e quem fará o tratamento de mostrar a mensagem é o Nodejs Construído no JavaScript V8 Engine do Google Chrome é usado por grandes empresas como Netflix Paypal e Walmart NODEJS2021 SAIBA MAIS O NodeJS não é uma linguagem de programação mas sim um ambiente que permite executar a linguagem de programação JavaScript no lado do servidor Tratase de uma das tecnologias mais utilizadas devido a facilidade e o poder computacional Para aprender mais sobre o NodeJS acesse a documentação oficial em httpsnodejsorgendocs Acesso em 21 jul 2021 MANIPULAÇÃO DE BANCO DE DADOS SQL E NOSQL Um Sistema de Gerenciamento de Banco de Dados a partir de agora o chamaremos de SGBD é um software de sistema para criar e gerenciar os dados de uma organização ou dados pessoais Um SGBD possibilita aos usuários finais criar ler atualizar e excluir dados em um banco de dados O SGBD serve essencialmente como uma interface entre os bancos de dados e usuários finais ou programas de aplicativos garantindo que os dados sejam organizados de forma consistente e permaneçam facilmente acessíveis O SGBD gerencia três coisas importantes os dados o mecanismo de banco de dados que permite que os dados sejam acessados bloqueados e modificados e o esquema do banco de dados que define a estrutura lógica do banco de dados Esses três elementos fundamentais ajudam a fornecer simultaneidade segurança integridade de dados e procedimentos uniformes de administração destes dados ELMASRI 2011 As tarefas típicas de administração de banco de dados suportadas pelo SGBDs incluem gerenciamento de mudanças monitoramento e ajuste de desempenho segurança e backup e recuperação Muitos SGBDs também são responsáveis por reversões e reinicializações automatizadas bem como pelo registro e auditoria de atividades em bancos de dados os chamados logs Os sistemas de gerenciamento de banco de dados podem ser classificados em relacional SGBDR ou banco de dados não relacional NoSQL Sistema de gerenciamento de banco de dados relacional SGBDR adaptável à maioria dos casos de uso mas os produtos SGBDR podem ser bastante caros Como exemplo é possível citar o MySQL e o PostgreSQL Este último é muito utilizado em aplicações web assim como o MySQL SGBD NoSQL bem adequado para estruturas de dados vagamente definidas que podem evoluir com o tempo São conhecidos também como banco de dados não relacional SGBDNR Como exemplo citase o MongoDB um SGBD NoSQL que possui grande popularidade e aceitação na comunidade de desenvolvimento mobile Assim como o MySQL ele também é opensource Banco de dados relacional O sistema de gerenciamento de banco de dados relacional é um tipo de banco que é adaptável à maioria dos casos de uso Seus principais elementos são as relações As relação são o que os usuários e os SGBD modernos reconhecem como tabelas Uma relação é um conjunto de tuplas ou linhas em uma tabela com cada tupla compartilhando um conjunto de atributos ou colunas O atributo ou coluna é a menor estrutura organizacional de um banco de dados relacional e representa as várias características que definem os registros na tabela Por outro lado a tupla é uma instância única de qualquer tipo de pessoa objeto evento ou associação que a tabela contém Essas ocorrências podem ser alunos de uma faculdade funcionários de uma empresa vendas de um negócio online ou resultados de testes de laboratório Por exemplo em uma tabela que contém os registros de funcionários de uma empresa as tuplas pode ter atributos como nome telefone data de contratação e assim por diante Ao criar colunas você especifica um tipo de dados que determina quais tipos de entradas são permitidas nessa coluna Os SGBDs geralmente implementam seus próprios tipos de dados exclusivos que podem não ser diretamente intercambiáveis com tipos de dados semelhantes em outros sistemas Alguns tipos de dados comuns incluem datas strings números inteiros e booleanos Como exemplo é possível citar o SQLite e o MySQL MySQL Começamos a lista com o MySQL por ser o mais popular entre os bancos de dados seja para desenvolvimento mobile ou web O MySQL é um sistema de gerenciamento de banco de dados relacional de código aberto multithread e que pode ser facilmente implementado e gerenciado em nuvem por meio de um provedor de hospedagem Criado em 1994 o MySQL é um dos SGBDs mais bem estabelecidos tendo evoluído significativamente desde então em recursos Diversos sites web e aplicativos usam o MySQL incluindo serviços como Youtube Twitter Wikipedia e Facebook SQLite O SQLite é um banco de dados relacional sendo uma versão mais leve do SQL e projetado para dispositivos móveis O seu uso comum é fornecer recursos de armazenamento local de dados em dispositivos móveis Tratase de uma biblioteca em processo que implementa um mecanismo de banco de dados SQL transacional independente sem servidor e com configuração zero O SQLite oferece suporte a todos os recursos de bancos de dados relacionais e é uma biblioteca compacta de código aberto que está por padrão presente em dois sistemas operacionais móveis principais ou seja Android e iOS e é compatível com blackberry e Windows Phone O SQLite pode ser armazenado tanto no disco quanto na memória e cada arquivo de banco de dados é um único arquivo em disco e pode ser usado em várias plataformas Se comparado aos seus concorrentes ele precisa de menos memória para funcionar Deste modo o SQLite é uma escolha popular como banco de dados embutido para armazenamento local em programas ou aplicativos finais ao contrário de outros SGBD em que o mecanismo de banco de dados é configurado no modelo clienteservidor Logo se o aplicativo for offline sem conexão com a internet a melhor opção é a escolha pelo SQLite SAIBA MAIS O SGBD SQLite é muito utilizado em aplicativos online e offline Tratase de um banco que fica embarcado no próprio dispositivo permitindo maior velocidade na recuperação de dados quando comparado com bancos que ficam em um servidor Para conhecer mais sobre o SQLite bem como poder instalálo acesse a documentação em httpswwwsqliteorgdocshtml Acesso em 21 jul 2021 Banco de dados não relacional NoSQL Quando falamos de banco de dados NoSQL não há a mesma limitação estrutural do SQL afinal o NoSQL é dinâmico podendo armazenar os dados de diferentes maneiras e isso é o que o torna interessante No NoSQL os bancos de dados são baseados em documentos pares de chavevalor bancos de dados orientados a grafos ou banco de dados colunares FOWLER 2013 Por outro lado um banco de dados relacional possui apenas uma única estrutura que são as tabelas HEUSER 2017 A heterogeneidade de bancos de dados NoSQL garante diversos tipos de banco de dados FERRAMENTAS PARA DESENVOLVIMENTO MULTIPLATAFORMA XAMARIN E FLUTTER Até agora você viu que o desenvolvimento de aplicativos mobile web pode ser feito utilizando as tecnologias web como JavaScript HTML CSS Além disso você pode ter um servidor web que recebe as requisições as trata e retorna as informações ao cliente Agora veremos duas ferramentas para o desenvolvimento de aplicativos multiplataforma que são o Xamarin e o Flutter Conhecendo o Flutter O Flutter é um SDK Software Development Kit ou simplesmente um kit de ferramentas de desenvolvimento de aplicativos multiplataformas iOS e Android além de aplicativos web e desktop tudo utilizando apenas um código fonte escrito em linguagem de programação Dart FLUTTER 2021 O Flutter oferece aos desenvolvedores um modo prático de construir os aplicativos utilizando os widgets Além da facilidade no desenvolvimento também temos a facilidade de implantação a qual pode ser executada em um navegador web em tempo real FLITTER 2021A primeira coisa que os desenvolvedores olham ou deveriam olhar ao aprender uma nova tecnologia é a sua documentação portanto ela desempenha um grande papel na produtividade do desenvolvedor Até mesmo os usuários mais experientes precisam usar a documentação quando estiverem trabalhando com uma nova API SAIBA MAIS Para conhecer a documentação do Flutter bem como o processo de instalação configuração e seus componentes acesse httpsflutterdevdocs Acesso em 21 jul 2021 Quando se trata de documentação a do Flutter é muito fácil de usar todos os conceitos e recursos importantes que você precisa saber estão visíveis em sua barra lateral Se você quiser se aprofundar eles também têm a documentação da API Por exemplo todas as classes disponíveis para a construção de widgets com a biblioteca de materiais estão bem documentadas Inclui informações sobre o que o construtor espera quais propriedades você pode transmitir O melhor de tudo a pesquisa deles tem sugestão automática o que é muito útil se você não tiver certeza do que está procurando A documentação não serve apenas para descrever as diferentes APIs funcionalidades componentes e outros recursos disponíveis no framework Também estão disponíveis para tornar mais fácil o aprendizado de iniciantes e o entendimento de algumas novas classes por parte dos usuários mais avançados O Flutter usa a linguagem de programação Dart uma tecnologia que não é tão popular como outras linguagens como Java ou C Desta forma a curva de aprendizado a taxa na qual os desenvolvedores podem aprender uma nova tecnologia é baixa Como já vimos anteriormente o JavaScript certamente você não terá muita dificuldade em aprender esta linguagem uma vez que o Dart possui uma sintaxe muito semelhante Outra característica que diferencia o Flutter de outras ferramentas de desenvolvimento é que ele usa o conceito de widgets que são componentes da interface do usuário os quais descrevem como será a aparência de sua aplicação Tratase de elementos de layout préconstruídos para que os desenvolvedores não necessitem de perder horas pensando em qual base de código utilizar para desenvolver um componente de interface Dentro os tipos básicos de widgets temos Row Column e Grade que são widgets de layout e nós não os vemos na tela porém ajudam a organizar outros que são visíveis como o Text Checkbox Radio entre outros que você pode encontrar na documentação FLUTTER 2021 Conhecendo o Xamarin Dentro as ferramentas de aplicativos multiplataforma uma das mais populares é o Xamarin Com o Xamarin você pode criar aplicativos multiplataformabaseados em NET lêse dot net e C Desta modo não é necessário desenvolver uma aplicação para Android utilizando o Java e desenvolver uma outra aplicação para iOS utilizando ObjectiveC ou Swift Tudo o que você pode fazer com essas linguagens e plataformas pode ser feito com o Xamarin em C Todo os recursos e métodos que o Xamarin oferece a você são baseadas em bibliotecas de ligação que projetam as APIs nativas em seus equivalentes NET O desenvolvimento de aplicativos Xamarin pode ser feito usando Visual Studio para Windows Xamarin Studio ou Visual Studio para MacOS para projetar desenvolver e depurar aplicativos móveis nativos usando suas ferramentas e código C existentes SAIBA MAIS Para conhecer a documentação do Xamarin bem como o processo de instalação configuração e seus componentes acesse httpsdotnetmicrosoftcomappsxamarin Acesso em 21 jul 2021 CONSIDERAÇÕES FINAIS Neste material você conheceu as principais tecnologias envolvidas no desenvolvimento de aplicativos mobile Você começou compreendendo as principais características da linguagem JavaScript uma poderosa linguagem de programação que é fundamental no desenvolvimento de aplicativos móveis Em seguida você conheceu as características relacionadas ao backend de uma aplicação Na comunicação com o servidor o aplicativo pode requisitar dados e realizar processamentos que exigem maior poder computacional algo que um smartphone pode não oferecer Por fim abordamos a diferença entre bancos de dados SQL e NoSQL bem como as ferramentas para desenvolvimento de aplicativos multiplataforma como o Xamarin e o Flutter BITTENCOURT Diego et al Desenvolvimento para dispositivos móveis volume 1 Porto Alegre SAGAH 2019 Minha Biblioteca CAVALCANTI Rodrigo P et al Comunicação Móvel Celular 1 ed Rio de Janeiro Elsevier 2018 Minha Biblioteca DEITEL P Android como programar 2 ed Porto Alegre Bookman 2015 Minha Biblioteca ELMASRI Ramez NAVATHE Shamkant B Sistemas de Banco de Dados 1 ed Pearson 2019 FGV Brasil tem dois dispositivos digitais por habitante revela pesquisa da FGV Disponível em httpsportalfgvbrnoticiasbrasiltemdoisdispositivosdigitaishabitanterevelapesquisafgvutmsourceportalfgvutmmediumfgvnoticiasutmcampaignfgvnoticias20210525 Acesso em 05 jul 2021 FLUTTER Documentação do Flutter Development Disponível em httpsFlutteriodocsdevelopment Acesso em 07 jul 2021 FOWLER M NoSQL essencial um guia conciso para o mundo São Paulo Novatec 2013 HEUSER Carlos Alberto Banco de Dados Relacional Conceitos SQL e Administração 1 ed Clube De Autores 2019 INFODESIGN Revista Brasileira de Design da Informação Disponível em httpinfodesignorgbrinfodesign Acesso em 04 de outubro de 2020 LEDUR Cleverson Lopes Programação back end II Porto Alegre SAGAH 2019 Minha Biblioteca NODEJS About Documentation Disponível em httpsnodejsorgendocs Acesso em 05 jul 2021 NORMAN D NIELSEN J The Definition of User Experience UX Disponível em httpswwwnngroupcomarticlesdefinitionuserexperience Acesso em 02 de dezembro de 2020 OLIVEIRA Cláudio Luís Vieira JavaScript descomplicado programação para a Web IOT e dispositivos móveis São Paulo Érica 2020 Minha Biblioteca PHP O que é o PHP Disponível em httpswwwphpnetmanualptBRintrowhatisphp Acesso em 05 jul 2021 RAMARKRISHNAN R Sistemas de gerenciamento de banco de dados Porto Alegre AMGH 2011 Minha Biblioteca REDHAT O que é API Disponível em httpswwwredhatcomptbrtopicsapiwhatareapplicationprogramminginterfaces Acesso em 01 jul 2021 SIMAS Victor et al Desenvolvimento para dispositivos móveis volume 2 Porto Alegre SAGAH 2019 Minha Biblioteca UXDESIGN Usabilidade User Experience Design de Interação e Tecnologia Disponível em httpsbrasiluxdesigncc Acesso em 04 de out de 2020 XAMARIN Documentação do Xamarin Disponível em httpsdocsmicrosoftcomptbrxamarin Acesso em 06 jun 2021 ZABOT Diego Aplicativos com Bootstrap e Angular como desenvolver apps responsivos São Paulo Érica 2020 Minha Biblioteca FAM ONLINE
Send your question to AI and receive an answer instantly
Preview text
eBook 3 Ariel da Silva Dias PROGRAMAÇÃO DE APLICATIVOS PARA DISPOSITIVOS MÓVEIS Sumário INTRODUÇÃO De acordo com uma pesquisa realizada pela Fundação Getúlio Vargas FGV o Brasil possui mais de 440 milhões de dispositivos digitais computador notebook tablet e smartphone aproximadamente 2 dispositivos por habitante Ainda de acordo com esta pesquisa o país possui mais de 242 milhões de dispositivos móveis como smartphones FGV2021 Mediante a este crescimento tornase necessário conhecermos as principais ferramentas e tecnologias para desenvolvimento de aplicações mobile para atender a todo este público Desta modo vamos abordar as principais ferramentas e tecnologias envolvidas no desenvolvimento de aplicativos móveis sejam eles aplicativos web ou aplicativos multiplataforma para Android e iOS TECNOLOGIAS PARA DESENVOLVIMENTO DE APLICATIVOS WEB E MULTIPLATFORMA Existe um equívoco muito comum entre desenvolvedores de que aplicativos móveis nativos e aplicativos web são a mesma coisa entretanto estes dois tipos de aplicativos são muito diferentes PROCESSAMENTO NO LADO DO CLIENTE Quando acessamos um aplicativo web ou quando instalamos um aplicativo mobile em nosso smartphone ele está em execução localmente ou seja ele é um aplicativo cliente Este aplicativo pode ser executado online ou offline ou seja com ou sem conexão com um servidor central respectivamente Considero por exemplo o aplicativo de calculadora ou o alarme de um smartphone Este aplicativo está em execução localmente e toda sua base de dados e processamento ocorre diretamente no dispositivo sem necessidade de se comunicar constantemente com um servidor Por outro lado considere um aplicativo de banco Ele está localmente instalado no smartphone Contudo o usuário requer acesso à conta bancária para consultar o saldo é necessário que este aplicativo se conecte a um servidor central para validar o login e trazer informações da conta Ainda é possível haver um aplicativo híbrido o qual é executado online e offline Por exemplo quando o usuário está conectado à internet o aplicativo do Facebook traz o conteúdo mais recente da rede social e lhe permite interagir realizando postagens curtindo e comentando em publicações Se o smartphone do usuário estiver sem internet o aplicativo do Facebook continua oferecendo algumas funcionalidades como percorrer a linha do tempo e ler o conteúdo publicado por terceiros Veja então que o aplicativo Facebook pode ser executado online ou offline sem muitos prejuízos ao usuário e com algumas limitações porém sem permitir que o usuário consuma seu conteúdo Desta forma vamos conhecer primeiramente as tecnologias envolvidas no desenvolvimento de aplicações web Estas aplicações dependem exclusivamente de conexão com internet e a principal linguagem e tecnologia utilizada no desenvolvimento é o JavaScript JavaScript Sintaxe JavaScript é uma linguagem de script usada para criar e controlar o conteúdo dinâmico de um site ou seja qualquer coisa que se mova atualize ou mude de outra forma em sua tela sem exigir que você recarregue manualmente uma página da web Recursos como gráficos animados apresentações de slides de fotos sugestões de preenchimento automático de texto formulários interativos Uma maneira ainda melhor de entender o que o JavaScript faz é pensar sobre certos recursos da web que você usa todos os dias e provavelmente dá como certo como quando sua timeline do Facebook é atualizada automaticamente na tela ou o Google sugere termos de pesquisa com base em algumas letras que você iniciou digitando Em ambos os casos é o JavaScript em ação Ao criarmos nossos scripts é necessário que os valores permaneçam em memória de modo que estes dados possam ser reaproveitados no código Este é o conceito de variável Em JavaScript assim como em outras linguagens de programação uma variável representa um local da memória que é usado para armazenar um valor o qual pode ser do tipo numérico caractere ou lógico O valor da variável na memória pode ser alterado durante a execução do nosso programa Os principais tipos de dados são String representação textual de um dado Number um número inteiro ou ponto flutuante Boolean um par de valores verdadeiro ou falso Object pares de chavevalor de uma coleção de dados Variáveis são usadas em quase todos os programas de computador e com o JavaScript não é diferente Porém uma variável por si só apenas armazena valores O mais interessante e empolgante de JavaScript assim como de qualquer outra linguagem de programação é relacionar e correlacionar estas variáveis realizando operações aritméticas bem como comparações lógicas Em muitos momentos será necessário realizar alguma operação aritmética desde as mais simples como soma de algum valor até mesmo a resolução de equações complexas Para todos estes casos utilizaremos os operadores aritméticos que são nativos da linguagem Os operadores aritméticos do JavaScript são usados para executar operações aritméticas como adicionar subtrair dividir ou multiplicar números Os principais operadores aritméticos são o de adição subtração multiplicação divisão módulo decremento e incremento Além dos operadores aritméticos podemos também utilizar os operadores de comparação os quais comparam dois valores e retornam um valor booleano true ou false São exemplos de operadores de comparação a igualdade a diferença a igualdade estrita que é quando os operandos forem iguais e do mesmo tipo além dos operadores maior menor maior ou igual e menor ou igual Podemos criar expressões relacionando os operadores de atribuição por meio de operadores lógicos Os principais operadores lógicos são e lógico retorna true se ambos os operandos forem true senão retorna false ou lógico retorna true se um dos operandos forem true senão retorna false NOT negação retorna true se o operando for false e retorna false se o operando for true Todos estes operadores que foram listados aqui operador aritmético de comparação e lógico são a força motriz de qualquer linguagem de operação uma vez que relacionamos valores manipulamos variáveis e tiramos conclusões a partir de nossos dados O código a seguir ilustra alguns exemplos de código em JavaScript Cálculo A2 B3 soma A B alertO resultado é somao resultado será 5 A5 B1 o resultado será false A5 B1 o resultado será true No início de nosso código é realizada a soma dos valores presentes nas variáveis A e B A operação de soma é armazenada na variável soma e em seguida apresentada em um alerta Outra operação realizada neste código é comparar se o conteúdo da variável A é maior que 5 e se o conteúdo da variável B é maior que 1 Observe que a primeira comparação é falsa porém a segunda comparação é verdadeira O resultado aqui será falso false pois para que uma expressão lógica com e seja verdadeira ambas as comparações devem ser verdadeiras A segunda expressão lógica terá como resultado o valor verdadeiro true pois quando estamos trabalhando com ou basta que uma das duas comparações seja verdadeira para que toda a expressão seja também verdadeira JavaScript Controle de Fluxo Assim como em outras linguagens o JavaScript possibilita o uso de controle de fluxo Estes controles dividem a lógica de nossa aplicação em diversos caminhos dando muitas possibilidades de execução além de permitir que seja criado um programa que pode tomar decisões Dentro os controles de fluxos existentes temos o if ifelse e ifelse ifelse O exemplo de código pode ser visto a seguir if numero 2 ifnumero0 alertNúmero positivo ifelse senha 666666 ifsenha123456 alertAcesso permitido else alertAcesso negado ifelse ifelse valor 10 ifvalor0 alertO valor é positivo else ifvalor0 alertO valor é negativo else alertO valor é igual a zero A instrução if é responsável por avaliar uma instrução entre parênteses Se a condição for verdadeira true o código dentro do corpo do if é executado se a condição for falsa false o código dentro do corpo do if será ignorado JavaScript Estrutura de repetição O JavaScript também possui as estruturas de repetições que permite que trechos do algoritmo possam ser repetidos em um determinado número de vezes Dentro as principais estruturas de repetição temos o while e o for O código a seguir ilustra o uso de ambas as estruturas de repetição while x0 inicialização da variável whilex5 condição de parada alertContando x mensagem x incrmento A sintaxe da estrutura condicional while é marcada por uma variável de controle No início do while a estrutura realiza uma comparação lêse enquanto a variável x for menor do que 5 faça Logo enquanto esta comparação for verdadeira haverá a execução de todo o conteúdo dentro do while Esta é conhecida como condição de parada pois assim que o valor for falso a execução do while será interrompida Internamente o while possui o incremento Sem o incremento o código ficará executando infinitamente Logo é importante que você não esqueça de colocálo a não ser que seu aplicativo tenha que ficar em um loop infinito Também temos a mensagem que neste caso será apresentada 5 vezes na tela A outra estrutura o for possui a mesma característica entretanto a declaração da variável de inicialização e o incremento é realizado diretamente na declaração do for O código a seguir ilustra um exemplo fori0 i5 i alertContando i Observe que o comportamento deste código e do anterior é semelhante resultando em uma saída igual a quando utilizamos a estrutura while DOM Document Object Model Agora que você pode compreender e familiarizarse com a linguagem Java Script a qual é muito semelhante a outras linguagens vamos conhecer o DOM uma API que auxilia no desenvolvimento de aplicações dinâmicas De acordo com Redhat 2021 uma API interface de programação de aplicações é um conjunto de definições e protocolos usados no desenvolvimento e na integração de aplicações de software Ainda continuando Redhat diz que Uma API permite que sua solução se comunique com outros produtos e serviços sem precisar saber como eles foram implementados Com isso nós temos um processo simplificado de desenvolvimento de aplicações O DOM é uma especificação formal mantida pela W3C World Wide Web Consortium a qual é responsável por definir um modo padrão dos scripts em JavaScript lerem e também manipularem o documento web que está na memória do navegador A estrutura DOM é representada em formato de uma árvore a qual é composta por elementos de nós Observe o código a seguir A partir deste código podemos gerar o seguinte DOM desta página que é visto na Figura 1 Figura 1 Árvore DOM gerada a partir de um código HTML Fonte Elaboração própria Na maioria dos casos a manipulação do DOM acontecerá sobre documentbody afinal é a única parte do documento que será renderizada na tela Cada caixa de nó da figura 1 representa um elemento ou tag de marcação de HTML Por outro lado os nós de texto contêm aquilo que será apresentado graficamente na tela Para acessar um elemento no DOM começamos pelo comando document que é o objeto global Então podemos utilizar a ferramenta querySelector para pesquisar elementos Veja exemplo no código a seguir O primeiro comando recupera o primeiro parágrafo por outro lado o segundo comando recupera todos os parágrafos elementos marcados com a tag p Embora o DOM seja criado a partir do documento HTML de origem nem sempre é exatamente o mesmo Além de ser uma interface para visualização do conteúdo de um documento HTML o DOM também pode ser modificado tornandose um recurso vivo Observe o código a seguir Este código atualizará o DOM você inclusive verá o conteúdo novo escrito na tela entretanto o nosso documento HTML não será afetado SAIBA MAIS O DOM é uma API muito utilizada no desenvolvimento de aplicativos móveis Desta forma é fortemente recomendado que você conheça esta poderosa API Para isso acesse o site de desenvolvedores do Mozilla em httpsdevelopermozillaorgptBRdocsWebAPI DocumentObjectModel Acesso em 21 jul 2021 PROCESSAMENTO NO LADO DO SERVIDOR As aplicações web possuem uma característica que as difere de outros tipos de aplicações elas sempre estão hospedadas em um servidor Desta modo uma aplicação web usa a arquitetura clienteservidor No cliente como vimos no tópico anterior utilizamos o JavaScript para lidar com a lógica permitindo a interação e o dinamismo da aplicação O servidor é utilizado tanto por aplicações web quanto por aplicativos nativos Consider por exemplo um aplicativo bancário Todas as contas de todos os clientes ficam armazenados em um servidor central Logo quando o usuário deseja acessar a sua conta o aplicativo local cliente envia os dados para o servidor Lá no servidor há uma aplicação que cuida da lógica de negócio e é responsável por processar a requisição do cliente Muitas aplicações necessitam desta comunicação com um servidor Quando o usuário solicita um transporte em um aplicativo como Uber por exemplo os dados dos motoristas estão em um servidor Sendo assim o aplicativo Uber local envia uma requisição para o servidor Nesta requisição além das informações do usuário também são enviados os dados de localização Então o servidor recebe a localização do usuário e mediante a um processamento rápido obtém a informação de quais motoristas que estão próximos a ele O servidor é responsável por contatar todos os motoristas informando que alguém nas proximidades deseja realizar uma viagem Logo o aplicativo local dos motoristas recebe esta informação Quando o motorista aceita uma determinada viagem a informação primeiramente é enviada ao servidor e por fim o servidor retorna ao usuário as informações sobre o motorista Observe então que tanto o usuário quanto o motorista estão conectados no servidor São dois aplicativos diferentes porém que compartilham o mesmo banco de dados e o mesmo servidor Do lado do servidor temos muitas possibilidades de linguagens de programação e tecnologias como o PHP Python NodeJS entre outras Vamos conhecer um pouco de algumas destas linguagens de programação Servidor Web Denominamos Servidores Web ou servidores da web os softwares ou hardwares que usam o protocolo HTTP Hypertext Transfer Protocol e outros para responder às requisições de clientes feitas pela World Wide Web WWW O software de servidor Web controla como um usuário acessa os arquivos hospedados Este software é acessado através dos nomes de domínio dos sites e garante a entrega do conteúdo do site ao usuário solicitante Como hardware um servidor Web é um computador que mantém e gerencia o software de servidor Web e outros arquivos relacionados a um site como documentos HTML CSS imagens e arquivos JavaScript O hardware do servidor da Web está conectado à Internet e permite a troca de dados com outros dispositivos conectados à mesma rede ou na internet De modo geral podemos dizer que o processo envolvido no servidor Web é um exemplo do modelo de clienteservidor Todos os computadores que hospedam sites devem ter um software de servidor da Web Os principais servidores da Web incluem Apache e Internet Information Server IIS da Microsoft A Figura 2 apresenta a arquitetura padrão de um servidor web Figura 2 Arquitetura de um servidor web Fonte Elaboração própria Observe na Figura 2 que o cliente o qual pode ser um computador smartphone ou uma aplicação web realiza uma requisição a um programa no servidor web Este programa por sua vez realiza uma consulta no banco de dados Em exemplo prático imagine você realizando uma reserva de passagem aérea Após marcar o dia horário e destino e pressionar o botão pesquisar o sistema web cliente enviará uma requisição ao servidor web para que o mesmo verifique a disponibilidade de voos de acordo com as informações que você inseriu Após a consulta o programa no servidor web retorna uma página HTML resposta em HTTP com as informações desejadas Dentro os servidores web temos Apache O Apache Server é um servidor Web gratuito e de código aberto o qual fornece conteúdo da Web pela Internet É comumente referido como Apache e após o desenvolvimento tornouse rapidamente o cliente HTTP mais popular da Web Alguns dos módulos mais populares que podem ser adicionados são SSL Secure Sockets Layer Server Side Programming Support PHP e configurações de balanceamento de carga para lidar com grandes quantidades de tráfego O Apache também pode ser implantado no Linux MacOS e Windows As únicas diferenças seriam os caminhos de diretório e processos de instalação Apache Tomcat Também é um servidor web entretanto ele executa aplicações em Java ao invés de apenas sites estáticos em HTML Jetty Tratase de um servidor web desenvolvido pela Eclipse Foundation que pode ser facilmente integrado em dispositivos frameworks e servidores de aplicativos Internet Information Services IIS O IIS é um software de servidor Web desenvolvido pela Microsoft para o Windows Server É usado para hospedar aplicativos web e muitos outros conteúdos voltados para a web O IIS oferece muitos recursos sendo uma ferramenta popular para todos os tipos de aplicações comerciais e não comerciais O Microsoft IIS fornece interface gráfica com o usuário de modo a facilitar a manutenção e gerenciamento da ferramenta Sua sintaxe é muito parecida com o do JavaScript e de outras linguagens com a diferença de que as variáveis se iniciam com o sinal de cifrão As estruturas condicionais e de repetição são as mesmas presentes no JavaScript e que foi vista em tópicos anteriores SAIBA MAIS A linguagem PHP é muito utilizada por diversas empresas em todo mundo devido a sua facilidade de aprendizagem e versatilidade Desta forma é muito importante que você conheça mais sobre ela Para isso acesse a documentação oficial em httpswwwphpnetdocsphp Acesso em 21 jul 2021 Nodejs O Nodejs é um ambiente de tempo de execução de aplicativo que permite escrever aplicativos do lado do servidor em JavaScript o que abre novos caminhos para o desenvolvimento de aplicativos web que necessitam de manipular grandes volumes de dados tudo graças aos seus eventos assíncronos NODEJS 2021 O primeiro passo para trabalhar com Nodejs é instalar o node no servidor no computador que receberá as requisições do cliente e onde ficará o aplicativo web conforme orientação de NODEJS 2021 Outros servidores da Web incluem o servidor NetWare da Novell o Google Web Server GWS o NGINX e a família de servidores Domino da IBM Apresentando os principais servidores web agora serão listados a seguir as principais linguagens de programação que são executadas no lado do servidor backend ou serverside PHP Conforme descrito no site oficial o PHP é uma linguagem de script open source de uso geral muito utilizada e especialmente adequada para o desenvolvimento web e que pode ser embutida dentro do HTMLPHP2021A diferença entre PHP e JavaScript está no fato de ser executado do lado do servidor Apesar desta característica o PHP pode ser utilizado em três áreas scripts do lado do servidor scripts de linha de comando e aplicações desktop No desenvolvimento de aplicativos mobile seja aplicativo web nativo ou multiplataforma o PHP é utilizado para receber as requisições do cliente ou seja do seu aplicativo e realizar a lógica de negócio processar a requisição consultar o banco de dados retornar algum dado ou resultado de uma operação entre outras Após realizada a instalação você pode realizar um primeiro teste abrindo um editor de texto como o bloco de notas ou gedit e colocando o seguinte código Este código cria um objeto servidor o qual aguarda requisições do cliente na porta 8080 Para testar salve o código acima em um arquivo chamado serverjs Em seguida abra o terminal do linux ou prompt de comandos do windows e execute o comando node serverjs isso iniciará o nosso servidor Após seguir estas etapas abra seu navegador web e digite a URL httplocalhost8080 Desde modo você acessará a sua aplicação e verá em seu navegador a mensagem Olá Mundo Como experimento descubra qual o IP Internet Protocol do computador onde está sendo executada a sua aplicação Em seguida se conecte com o celular na mesma rede em que está o seu computador Abra o navegador web em seu celular e acesse a mesma URL anterior porém agora substitua a palavra localhost pelo IP do computador onde está sendo executada a aplicação Você verá em seu celular a saudação Olá Mundo Este é um exemplo bem simples porém a partir dele você pode construir aplicações diversas que recebem uma entrada e apresentam uma saída Veja este segundo código a seguir Escreva este código em um editor de texto como foi feito com o código anterior e salve como servidorjs Em seguida vamos executálo com o comando node servidorjs conforme feito anteriormente Para consumir esta aplicação faremos um processo diferente Acesse a seguinte URL httplocalhost8080nomeAnaidade26 onde localhost pode ser substituído pelo IP do seu servidor onde está Ana você pode colocar o seu nome e onde está 26 você pode colocar sua idade Na tela será apresentada a saudação Olá Ana você tem 26 anos Se este servidor estiver em execução você pode criar uma aplicação web HTML JavaScript que quando o usuário preencher um formulário com nome e a idade dele estes dados são enviados para o servidor e quem fará o tratamento de mostrar a mensagem é o Nodejs Construído no JavaScript V8 Engine do Google Chrome é usado por grandes empresas como Netflix Paypal e Walmart NODEJS2021 SAIBA MAIS O NodeJS não é uma linguagem de programação mas sim um ambiente que permite executar a linguagem de programação JavaScript no lado do servidor Tratase de uma das tecnologias mais utilizadas devido a facilidade e o poder computacional Para aprender mais sobre o NodeJS acesse a documentação oficial em httpsnodejsorgendocs Acesso em 21 jul 2021 MANIPULAÇÃO DE BANCO DE DADOS SQL E NOSQL Um Sistema de Gerenciamento de Banco de Dados a partir de agora o chamaremos de SGBD é um software de sistema para criar e gerenciar os dados de uma organização ou dados pessoais Um SGBD possibilita aos usuários finais criar ler atualizar e excluir dados em um banco de dados O SGBD serve essencialmente como uma interface entre os bancos de dados e usuários finais ou programas de aplicativos garantindo que os dados sejam organizados de forma consistente e permaneçam facilmente acessíveis O SGBD gerencia três coisas importantes os dados o mecanismo de banco de dados que permite que os dados sejam acessados bloqueados e modificados e o esquema do banco de dados que define a estrutura lógica do banco de dados Esses três elementos fundamentais ajudam a fornecer simultaneidade segurança integridade de dados e procedimentos uniformes de administração destes dados ELMASRI 2011 As tarefas típicas de administração de banco de dados suportadas pelo SGBDs incluem gerenciamento de mudanças monitoramento e ajuste de desempenho segurança e backup e recuperação Muitos SGBDs também são responsáveis por reversões e reinicializações automatizadas bem como pelo registro e auditoria de atividades em bancos de dados os chamados logs Os sistemas de gerenciamento de banco de dados podem ser classificados em relacional SGBDR ou banco de dados não relacional NoSQL Sistema de gerenciamento de banco de dados relacional SGBDR adaptável à maioria dos casos de uso mas os produtos SGBDR podem ser bastante caros Como exemplo é possível citar o MySQL e o PostgreSQL Este último é muito utilizado em aplicações web assim como o MySQL SGBD NoSQL bem adequado para estruturas de dados vagamente definidas que podem evoluir com o tempo São conhecidos também como banco de dados não relacional SGBDNR Como exemplo citase o MongoDB um SGBD NoSQL que possui grande popularidade e aceitação na comunidade de desenvolvimento mobile Assim como o MySQL ele também é opensource Banco de dados relacional O sistema de gerenciamento de banco de dados relacional é um tipo de banco que é adaptável à maioria dos casos de uso Seus principais elementos são as relações As relação são o que os usuários e os SGBD modernos reconhecem como tabelas Uma relação é um conjunto de tuplas ou linhas em uma tabela com cada tupla compartilhando um conjunto de atributos ou colunas O atributo ou coluna é a menor estrutura organizacional de um banco de dados relacional e representa as várias características que definem os registros na tabela Por outro lado a tupla é uma instância única de qualquer tipo de pessoa objeto evento ou associação que a tabela contém Essas ocorrências podem ser alunos de uma faculdade funcionários de uma empresa vendas de um negócio online ou resultados de testes de laboratório Por exemplo em uma tabela que contém os registros de funcionários de uma empresa as tuplas pode ter atributos como nome telefone data de contratação e assim por diante Ao criar colunas você especifica um tipo de dados que determina quais tipos de entradas são permitidas nessa coluna Os SGBDs geralmente implementam seus próprios tipos de dados exclusivos que podem não ser diretamente intercambiáveis com tipos de dados semelhantes em outros sistemas Alguns tipos de dados comuns incluem datas strings números inteiros e booleanos Como exemplo é possível citar o SQLite e o MySQL MySQL Começamos a lista com o MySQL por ser o mais popular entre os bancos de dados seja para desenvolvimento mobile ou web O MySQL é um sistema de gerenciamento de banco de dados relacional de código aberto multithread e que pode ser facilmente implementado e gerenciado em nuvem por meio de um provedor de hospedagem Criado em 1994 o MySQL é um dos SGBDs mais bem estabelecidos tendo evoluído significativamente desde então em recursos Diversos sites web e aplicativos usam o MySQL incluindo serviços como Youtube Twitter Wikipedia e Facebook SQLite O SQLite é um banco de dados relacional sendo uma versão mais leve do SQL e projetado para dispositivos móveis O seu uso comum é fornecer recursos de armazenamento local de dados em dispositivos móveis Tratase de uma biblioteca em processo que implementa um mecanismo de banco de dados SQL transacional independente sem servidor e com configuração zero O SQLite oferece suporte a todos os recursos de bancos de dados relacionais e é uma biblioteca compacta de código aberto que está por padrão presente em dois sistemas operacionais móveis principais ou seja Android e iOS e é compatível com blackberry e Windows Phone O SQLite pode ser armazenado tanto no disco quanto na memória e cada arquivo de banco de dados é um único arquivo em disco e pode ser usado em várias plataformas Se comparado aos seus concorrentes ele precisa de menos memória para funcionar Deste modo o SQLite é uma escolha popular como banco de dados embutido para armazenamento local em programas ou aplicativos finais ao contrário de outros SGBD em que o mecanismo de banco de dados é configurado no modelo clienteservidor Logo se o aplicativo for offline sem conexão com a internet a melhor opção é a escolha pelo SQLite SAIBA MAIS O SGBD SQLite é muito utilizado em aplicativos online e offline Tratase de um banco que fica embarcado no próprio dispositivo permitindo maior velocidade na recuperação de dados quando comparado com bancos que ficam em um servidor Para conhecer mais sobre o SQLite bem como poder instalálo acesse a documentação em httpswwwsqliteorgdocshtml Acesso em 21 jul 2021 Banco de dados não relacional NoSQL Quando falamos de banco de dados NoSQL não há a mesma limitação estrutural do SQL afinal o NoSQL é dinâmico podendo armazenar os dados de diferentes maneiras e isso é o que o torna interessante No NoSQL os bancos de dados são baseados em documentos pares de chavevalor bancos de dados orientados a grafos ou banco de dados colunares FOWLER 2013 Por outro lado um banco de dados relacional possui apenas uma única estrutura que são as tabelas HEUSER 2017 A heterogeneidade de bancos de dados NoSQL garante diversos tipos de banco de dados FERRAMENTAS PARA DESENVOLVIMENTO MULTIPLATAFORMA XAMARIN E FLUTTER Até agora você viu que o desenvolvimento de aplicativos mobile web pode ser feito utilizando as tecnologias web como JavaScript HTML CSS Além disso você pode ter um servidor web que recebe as requisições as trata e retorna as informações ao cliente Agora veremos duas ferramentas para o desenvolvimento de aplicativos multiplataforma que são o Xamarin e o Flutter Conhecendo o Flutter O Flutter é um SDK Software Development Kit ou simplesmente um kit de ferramentas de desenvolvimento de aplicativos multiplataformas iOS e Android além de aplicativos web e desktop tudo utilizando apenas um código fonte escrito em linguagem de programação Dart FLUTTER 2021 O Flutter oferece aos desenvolvedores um modo prático de construir os aplicativos utilizando os widgets Além da facilidade no desenvolvimento também temos a facilidade de implantação a qual pode ser executada em um navegador web em tempo real FLITTER 2021A primeira coisa que os desenvolvedores olham ou deveriam olhar ao aprender uma nova tecnologia é a sua documentação portanto ela desempenha um grande papel na produtividade do desenvolvedor Até mesmo os usuários mais experientes precisam usar a documentação quando estiverem trabalhando com uma nova API SAIBA MAIS Para conhecer a documentação do Flutter bem como o processo de instalação configuração e seus componentes acesse httpsflutterdevdocs Acesso em 21 jul 2021 Quando se trata de documentação a do Flutter é muito fácil de usar todos os conceitos e recursos importantes que você precisa saber estão visíveis em sua barra lateral Se você quiser se aprofundar eles também têm a documentação da API Por exemplo todas as classes disponíveis para a construção de widgets com a biblioteca de materiais estão bem documentadas Inclui informações sobre o que o construtor espera quais propriedades você pode transmitir O melhor de tudo a pesquisa deles tem sugestão automática o que é muito útil se você não tiver certeza do que está procurando A documentação não serve apenas para descrever as diferentes APIs funcionalidades componentes e outros recursos disponíveis no framework Também estão disponíveis para tornar mais fácil o aprendizado de iniciantes e o entendimento de algumas novas classes por parte dos usuários mais avançados O Flutter usa a linguagem de programação Dart uma tecnologia que não é tão popular como outras linguagens como Java ou C Desta forma a curva de aprendizado a taxa na qual os desenvolvedores podem aprender uma nova tecnologia é baixa Como já vimos anteriormente o JavaScript certamente você não terá muita dificuldade em aprender esta linguagem uma vez que o Dart possui uma sintaxe muito semelhante Outra característica que diferencia o Flutter de outras ferramentas de desenvolvimento é que ele usa o conceito de widgets que são componentes da interface do usuário os quais descrevem como será a aparência de sua aplicação Tratase de elementos de layout préconstruídos para que os desenvolvedores não necessitem de perder horas pensando em qual base de código utilizar para desenvolver um componente de interface Dentro os tipos básicos de widgets temos Row Column e Grade que são widgets de layout e nós não os vemos na tela porém ajudam a organizar outros que são visíveis como o Text Checkbox Radio entre outros que você pode encontrar na documentação FLUTTER 2021 Conhecendo o Xamarin Dentro as ferramentas de aplicativos multiplataforma uma das mais populares é o Xamarin Com o Xamarin você pode criar aplicativos multiplataformabaseados em NET lêse dot net e C Desta modo não é necessário desenvolver uma aplicação para Android utilizando o Java e desenvolver uma outra aplicação para iOS utilizando ObjectiveC ou Swift Tudo o que você pode fazer com essas linguagens e plataformas pode ser feito com o Xamarin em C Todo os recursos e métodos que o Xamarin oferece a você são baseadas em bibliotecas de ligação que projetam as APIs nativas em seus equivalentes NET O desenvolvimento de aplicativos Xamarin pode ser feito usando Visual Studio para Windows Xamarin Studio ou Visual Studio para MacOS para projetar desenvolver e depurar aplicativos móveis nativos usando suas ferramentas e código C existentes SAIBA MAIS Para conhecer a documentação do Xamarin bem como o processo de instalação configuração e seus componentes acesse httpsdotnetmicrosoftcomappsxamarin Acesso em 21 jul 2021 CONSIDERAÇÕES FINAIS Neste material você conheceu as principais tecnologias envolvidas no desenvolvimento de aplicativos mobile Você começou compreendendo as principais características da linguagem JavaScript uma poderosa linguagem de programação que é fundamental no desenvolvimento de aplicativos móveis Em seguida você conheceu as características relacionadas ao backend de uma aplicação Na comunicação com o servidor o aplicativo pode requisitar dados e realizar processamentos que exigem maior poder computacional algo que um smartphone pode não oferecer Por fim abordamos a diferença entre bancos de dados SQL e NoSQL bem como as ferramentas para desenvolvimento de aplicativos multiplataforma como o Xamarin e o Flutter BITTENCOURT Diego et al Desenvolvimento para dispositivos móveis volume 1 Porto Alegre SAGAH 2019 Minha Biblioteca CAVALCANTI Rodrigo P et al Comunicação Móvel Celular 1 ed Rio de Janeiro Elsevier 2018 Minha Biblioteca DEITEL P Android como programar 2 ed Porto Alegre Bookman 2015 Minha Biblioteca ELMASRI Ramez NAVATHE Shamkant B Sistemas de Banco de Dados 1 ed Pearson 2019 FGV Brasil tem dois dispositivos digitais por habitante revela pesquisa da FGV Disponível em httpsportalfgvbrnoticiasbrasiltemdoisdispositivosdigitaishabitanterevelapesquisafgvutmsourceportalfgvutmmediumfgvnoticiasutmcampaignfgvnoticias20210525 Acesso em 05 jul 2021 FLUTTER Documentação do Flutter Development Disponível em httpsFlutteriodocsdevelopment Acesso em 07 jul 2021 FOWLER M NoSQL essencial um guia conciso para o mundo São Paulo Novatec 2013 HEUSER Carlos Alberto Banco de Dados Relacional Conceitos SQL e Administração 1 ed Clube De Autores 2019 INFODESIGN Revista Brasileira de Design da Informação Disponível em httpinfodesignorgbrinfodesign Acesso em 04 de outubro de 2020 LEDUR Cleverson Lopes Programação back end II Porto Alegre SAGAH 2019 Minha Biblioteca NODEJS About Documentation Disponível em httpsnodejsorgendocs Acesso em 05 jul 2021 NORMAN D NIELSEN J The Definition of User Experience UX Disponível em httpswwwnngroupcomarticlesdefinitionuserexperience Acesso em 02 de dezembro de 2020 OLIVEIRA Cláudio Luís Vieira JavaScript descomplicado programação para a Web IOT e dispositivos móveis São Paulo Érica 2020 Minha Biblioteca PHP O que é o PHP Disponível em httpswwwphpnetmanualptBRintrowhatisphp Acesso em 05 jul 2021 RAMARKRISHNAN R Sistemas de gerenciamento de banco de dados Porto Alegre AMGH 2011 Minha Biblioteca REDHAT O que é API Disponível em httpswwwredhatcomptbrtopicsapiwhatareapplicationprogramminginterfaces Acesso em 01 jul 2021 SIMAS Victor et al Desenvolvimento para dispositivos móveis volume 2 Porto Alegre SAGAH 2019 Minha Biblioteca UXDESIGN Usabilidade User Experience Design de Interação e Tecnologia Disponível em httpsbrasiluxdesigncc Acesso em 04 de out de 2020 XAMARIN Documentação do Xamarin Disponível em httpsdocsmicrosoftcomptbrxamarin Acesso em 06 jun 2021 ZABOT Diego Aplicativos com Bootstrap e Angular como desenvolver apps responsivos São Paulo Érica 2020 Minha Biblioteca FAM ONLINE