Baixe o app para aproveitar ainda mais
Prévia do material em texto
DESENVOLVIMENTO PARA DISPOSITIVOS MÓVEIS Olimar Teixeira Borges Funcionalidades nativas Objetivos de aprendizagem Ao final deste texto, você deve apresentar os seguintes aprendizados: � Analisar as funcionalidades nativas do dispositivo móvel. � Descrever o uso das funcionalidades nativas do dispositivo móvel. � Utilizar as funcionalidades nativas do dispositivo móvel. Introdução Com a atual e constante evolução tecnológica, a cada lançamento de um dispositivo móvel, são apresentados novos tipos de sensores e fun- cionalidades, iniciando os desafios em desenvolver aplicações que usem essas tecnologias. Algumas funcionalidades se mantêm há algum tempo e possuem um suporte maior no seu uso, por exemplo, o Global Positioning System (GPS), sensor de movimento, câmera, microfone, acelerômetro e giroscópio. Já as atuais ainda não têm tanto suporte, como o leitor biométrico. Independentemente disso, os dispositivos móveis se desta- cam, intuitivamente, pela sua característica de mobilidade, composta de portabilidade, usabilidade, conectividade e funcionalidade. Neste capítulo, você estudará as funcionalidades nativas de um dis- positivo móvel, as diferenças entre as aplicações genéricas, nativas e híbridas, bem como o uso dessas funcionalidades em cada ambiente de desenvolvimento. Funcionalidades nativas Em relação às funcionalidades, pode-se afirmar que elas são as tarefas que um dispositivo realiza por meio das aplicações móveis que executa. No entanto, de acordo com Lee, Schneider e Schell (2005), esse tipo de aplicação tem uma com- plexidade um pouco maior, devido às suas características, observe-as a seguir. � Necessidade de execução em tempo real. � Memória limitada do dispositivo. � Canais de entrada e saída limitados. � Forte relação de dependência de hardware e diferentes processadores. Inicialmente, estas aplicações eram desenvolvidas de forma específica para sua plataforma, usando todo o ambiente de desenvolvimento. Por exemplo, a fim de desenvolver uma aplicação para iPhone Operating System (iOS), utiliza-se a linguagem de programação Objective-C ou Swift com a integrated development environment (IDE) Xcode e o software development kit (SDK) do iOS (HEITKÖTTER; HANSCHKE; MAJCHRZAK, 2012). Se for para Android, emprega-se a linguagem Java específica para ele, com a IDE Android Studio e o SDK do Java. Segundo Prezotto e Boniati (2014), o desenvolvimento específico para cada plataforma se chama desenvolvimento nativo, no qual a aplicação é projetada e construída especificamente para determinada plataforma. Nessa abordagem, toda funcionalidade dessa plataforma fica à disposição, sem restrições, e implementa padrões de interface gráfica e de experiência com o usuário, que o auxiliam a entender como o aplicativo funciona, pois os demais aplicativos da plataforma seguem os mesmos padrões (CORRAL; JANES; REMENCIUS, 2012). A maioria das funcionalidades nativas dos dispositivos é incorporada em sensores e outros hardwares do próprio aparelho. Cada fabricante de dispositivo móvel pode criar uma funcionalidade por meio de um sensor, sendo o leitor biométrico um dos mais atuais. Alguns fabricantes utilizam a própria tela como leitor, já outros possuem um leitor biométrico específico, geralmente na traseira do dispositivo. Para que seja possível manipular os sensores dos dispositivos, cada pla- taforma (como Android ou iOS) disponibiliza um conjunto de bibliotecas especialistas para o uso deles, que têm acesso nativo ao hardware e a todos os recursos desse dispositivo (acelerômetro, giroscópio, GPS, câmera, etc.). Além do desenvolvimento nativo, há o desenvolvimento híbrido, que pode ser descrito como uma mistura do desenvolvimento nativo, utilizando os recursos mais complexos de hardware, com o desenvolvimento Web, usando Hypertext Markup Language versão 5 (HTML5), Cascading Style Sheets (CSS) e JavaScript. A aplicação híbrida é desenvolvida para funcionar em múltiplas plataformas, precisa utilizar apenas uma linguagem de programação (como Java ou uma combinação de HTML5 e JavaScript) e, após a aplicação, pode ser compilada para ser executada em cada plataforma (p. ex., iOS e Android). Devido ao não Funcionalidades nativas2 acesso direto às funcionalidades nativas do dispositivo, algumas das interações mais específicas serão, por padrão, controladas pelo auxílio de plugins e/ou ferramentas desenvolvidas para determinado sistema operacional. Não existe somente uma forma correta de desenvolver uma aplicação móvel, cada abordagem pode servir para um propósito e uma necessidade. Os aplicativos mais complexos, que precisam utilizar vários recursos de hardware do dispositivo, são mais indicados para serem desenvolvidos de maneira nativa, pois proporcionam uma melhor experiência ao usuário. Porém, caso seja uma aplicação mais simples, sem uma demanda de uso do hardware excessiva, o desenvolvimento híbrido já será suficiente. Sensores dos dispositivos móveis Na abordagem de desenvolvimento nativa, existe a possibilidade de utilizar, de forma menos complexa, os vários tipos de sensores disponíveis nos dispositivos móveis. No entanto, ao criar uma aplicação móvel, é necessário entender que há diversos desafios, como saber lidar com recursos físicos limitados, por exemplo, memória, uso de Graphics Processing Unit (GPU), bateria, tela, entre outros. Em relação ao uso das funcionalidades nativas dos dispositivos móveis, pode-se descrever seus principais sensores, como o acelerômetro, o giroscópio, o magnetômetro, o GPS e a câmera. Acelerômetro O acelerômetro é responsável por indicar a aceleração, sendo composto de muitos outros sensores, entre os quais, constituem estruturas microscópicas de cristal que se estressam devido às forças da aceleração. Por isso, o sensor de acelerômetro interpreta a tensão dos cristais e consegue descobrir quão rápido o dispositivo está se movimentando e para qual direção está apontando. Na Figura 1, você pode ver que o acelerômetro é responsável por controlar a detecção de movimento de acordo com os eixos X, Y, Z, muito utilizados em aplicações de monitoramento físico ( fitness) e, por meio deles, registra-se os 3Funcionalidades nativas passos dados, mesmo sem o uso do wearable. Ele também é bastante impor- tante para aplicativos de realidade aumentada, por informar para qual direção o dispositivo está apontando; faz a troca dos modos paisagem e retrato; bem como exibe a velocidade atual em um aplicativo que utilize mapas. Figura 1. Acelerômetro utiliza os eixos X, Y, Z do dispositivo. Fonte: Teske (2015, documento on-line). Giroscópio O giroscópio auxilia o sensor de acelerômetro a entender de que forma o celular está orientado e a melhorar sua precisão. Por exemplo, em um jogo de corrida, quando a tela do dispositivo sofre alguma inclinação, é o giroscópio que detecta esse movimento, e não o acelerômetro, pois o aparelho não está se movendo. O uso do giroscópio não é limitado somente aos dispositivos móveis, como também às aeronaves para determinar a altitude e a posição ou às câmeras para manter a estabilização enquanto estão em movimento. Diferentemente da utilização de rodas e suspensões nos dispositivos mecânicos tradicionais Funcionalidades nativas4 encontrados em um avião antigo, por exemplo, os giroscópios usados em dispositivos móveis são chamados de Sistemas Micro-Electro-Mecânicos (MEMS) e embutidos em uma placa eletrônica para que caibam nesses apa- relhos, conforme você pode observar na Figura 2. Figura 2. Ilustração do giroscópio mecânico, em que foram baseados os Micro-Electro-Mecânicos. Fonte: Fouad A. Saad/Shutterstock.com. Magnetômetro O magnetômetro auxilia o acelerômetro a identificar a localização do disposi- tivo móvel no espaço físico e é responsável por medir os campos magnéticos, identificando para qual lado está o norte, ao diferenciar sua tensão de saída para o aparelho. Ele ainda permite que os aplicativos de bússola funcionem,conforme você pode ver na ilustração da Figura 3. 5Funcionalidades nativas Além de dispositivos móveis, o magnetômetro pode ser encontrado em detectores de metal, devido à sua capacidade de detecção de metais mag- néticos, bem como em algumas aplicações móveis com esse intuito. Seu principal propósito é no uso de aplicações móveis que utilizem mapas, mas ele não funciona de forma tão eficiente como deveria, sendo necessário operar juntamente às informações geradas pelo acelerômetro e GPS, possibilitando, por exemplo, criar as rotas de navegação detalhadas — somente assim ele consegue identificar onde o dispositivo se localiza no mundo e para qual direção está apontando. Figura 3. Ilustração do magnetômetro em utilização por um dispositivo móvel. Fonte: pumkinpie/Alamy Stock Photo. Funcionalidades nativas6 Global Positioning System As unidades de GPS localizadas dentro dos dispositivos móveis são respon- sáveis por descobrir sua posição no planeta, por meio do sinal recebido dos satélites situados no espaço. Elas não precisam da utilização de dados móveis, podendo identificar essa posição sem a conexão de dados. Sua conexão ocorre com múltiplos satélites para fazer o cálculo do local onde o aparelho está, baseado nos ângulos das intersecções. Contudo, elas podem não funcionar em locais subterrâneos ou quando o tempo estiver muito nublado, além disso, manter sua funcionalidade ativada no dispositivo drena bastante a bateria. Na Figura 4, você pode ver como os aplicativos geralmente apresentam um mapa com o uso do GPS. A distância entre as torres de celulares em relação ao dispositivo móvel também pode identificar a posição do aparelho no planeta, não tão efetiva- mente quanto o GPS, mas de forma aproximada. Muitas aplicações utilizam essas duas tecnologias juntas (GPS e distância das torres de celulares) para conseguirem informar leituras de localização mais precisas. Figura 4. Ilustração de uma visualização por aplicativo que utiliza o GPS do dispositivo. Fonte: Vadim Georgiev/Shutterstock.com. 7Funcionalidades nativas Câmera A câmera do dispositivo móvel foi uma das primeiras funcionalidades inseridas em um smartphone, sendo que, inicialmente, ela era um mero acessório extra, com qualidade muito inferior às câmeras digitais. Porém, ela se tornou um item obrigatório e avançado, que rapidamente agradou à população. Com o decorrer do tempo, os fabricantes de dispositivos móveis come- çaram a lançar softwares de apoio às câmeras, que possibilitavam tirar fotos panorâmicas e habilitavam outros modos, como o Photo Sphere do Google. Atualmente, a câmera no dispositivo móvel é um recurso indispensável, que possibilita o uso de diversos softwares de apoio, bem como tira fotografias e filma em uma resolução incrível. Em geral, os dispositivos contêm duas câmeras, uma frontal e outra traseira. Elas são componentes muito pequenos (Figura 5), fazem a leitura de Quick Response (QR) Code ou código de barras e dão zoom nas fotografias e filmagens. Alguns fabricantes já trabalham com inteligência artificial nas câmeras, que se ajustam de acordo com o ambiente, a quantidade de pessoas na foto, o filtro automático, a luminosidade, entre outras características. Figura 5. Exemplo de um componente de câmera traseira em um dispositivo móvel. Fonte: Câmera... ([201-?], documento on-line). Funcionalidades nativas8 Outros sensores Ainda existem diversos outros sensores possíveis de serem utilizados por aplicações móveis nativas. Alguns dispositivos, por exemplo, possuem barô- metro, que mede a pressão do ar e possibilita identificar alterações no clima e na altitude. Há, também, o sensor de proximidade, que, em geral, se localiza perto do alto-falante superior e permite desligar a tela quando o dispositivo é colocado perto da orelha, por exemplo. Já o sensor de luz do ambiente consegue iden- tificar a luminosidade do local e mudar o brilho da tela de acordo com cada lugar, ajudando consideravelmente na economia da bateria. Funcionalidades nativas em ambientes híbridos Quando se trata de tecnologias, ferramentas e/ou plugins necessários para o desenvolvimento de aplicações híbridas, inicialmente, você precisa conhecer e definir o ambiente de desenvolvimento. Como os ambientes híbridos não têm acesso direto às funcionalidades nativas do dispositivo, algumas ferramentas, frameworks e/ou plugins são necessários para que seja possível utilizá-las. Acesso às funcionalidades nativas Existem ferramentas que permitem o acesso nativo às funcionalidades do dispositivo móvel, como Cordova e Titanium. Criado em 2008 pela empresa AppCelerator, o Titanium é um SDK de código aberto e, logo no início de sua criação, era voltado ao desenvolvimento das aplicações desktop mul- tiplataformas, utilizando HTML5, CSS e linguagem JavaScript. Depois, a empresa lançou o Titanium Mobile para aumentar as suas possibilidades de desenvolvimento. Para auxiliar no uso do SDK, ela criou uma IDE chamada de Titanium Studio, que possuía dois tipos de planos, um gratuito e de uso individual e outro pago e empresarial. Porém, em 2015, a empresa apresentou uma mudança, e o plano gratuito foi eliminado, mantendo apenas a versão paga (TITANIUM..., 2017). Já o Apache Cordova é outra opção para acessar as funcionalidades nati- vas de um dispositivo e que será mais bem explorada neste capítulo por ser gratuita. Trata-se do framework de desenvolvimento móvel de código aberto, que possibilita o uso de tecnologias Web padrão, como HTML5, CSS3 e JavaScript, para o desenvolvimento multiplataforma. Suas aplicações são 9Funcionalidades nativas executadas como se fossem pacotes direcionados a cada plataforma e, por meio de plugins, torna-se possível acessar os recursos disponíveis nos dispositivos, como o GPS, a câmera, o sistema de arquivos, etc. A grande vantagem em utilizar o Cordova é o pacote de plugins que ele fornece, pois, além dos oferecidos pelo próprio framework, há outros de ter- ceiros que são compatíveis com a plataforma e a possibilidade de criar plugins específicos e próprios para integrar à aplicação (OVERVIEW, 2019). Na Figura 6, você pode observar um diagrama da visão geral de alto nível da arquitetura de um aplicativo Cordova. Figura 6. Diagrama da visão geral de alto nível da arquitetura do aplicativo Cordova. Fonte: Overview (2019, documento on-line). Segundo Overview (2019), existem vários componentes em um aplicativo Cordova: Funcionalidades nativas10 � O Web App seria o local em que fica a aplicação e o código. Ele funciona como uma página Web, geralmente armazenado em um arquivo chamado index.html, no qual ficam as referências ao CSS, ao código JavaScript, aos arquivos de mídia, às imagens e aos outros recursos necessários para a execução da aplicação. Nesse quadrante, também está o arquivo config.xml, responsável por fornecer infor- mações sobre a aplicação, com alguns parâmetros de como ela deve funcionar, como o comportamento diante das ações de mudança de orientação. � O WebView é responsável por fornecer à aplicação toda a interface do usuário. � O Cordova Plugins fornece uma interface para que o Cordova e os demais componentes nativos consigam se comunicar entre si e per- mite a vinculação com as Application Programming Interface (API) do dispositivo. Existe um conjunto de plugins padrões básicos, cha- mado de Core Plugins, que oferece ao aplicativo a possibilidade de acessar os recursos do aparelho, como o acelerômetro, o GPS, a bateria, a câmera, os contatos, etc. Há, também, a utilização de plugins customizados, criados por terceiros, que fornecem funções adicionais aos recursos, mas que podem não estar disponíveis para todas as plataformas. Ao criar o projeto Cordova, lembre-se que ele não contém plugins ins- talados por padrão, e até mesmo os principais devem ser explicitamente adicionados. É possível desenvolver plugins próprios para a aplicação utilizando o Cordova. Para isso, acesse o guia de desenvolvimento deplugins, disponível no link a seguir. https://qrgo.page.link/eJosc 11Funcionalidades nativas CÂMERA Traseira Moto G4 Play XT1600. Zapcell, Belo Horizonte, [201-?]. Disponível em: https://zapcell.com.br/index.php?route=product/product&product_id=163. Acesso em: 5 jul. 2019. CORRAL, L.; JANES, A.; REMENCIUS, T. Potential advantages and disadvantages of mul- tiplatform development frameworks — A vision on mobile environments. Procedia Computer Science, [S. l.], v. 10, p. 1202-1207, 2012. HEITKÖTTER, H.; HANSCHKE, S.; MAJCHRZAK, T. A. Evaluating cross-platform develop- ment approaches for mobile applications. In: INTERNATIONAL CONFERENCE ON WEB INFORMATION SYSTEMS AND TECHNOLOGIES, 8., 2012, Porto. Proceedings [...]. Porto: Webist, 2012. p. 120–138. Disponível em: https://www3.nd.edu/~cpoellab/teaching/ cse40814/crossplatform.pdf. Acesso em: 5 jul. 2019. LEE, V.; SCHNEIDER, H.; SCHELL, R. Aplicações móveis: arquitetura, projeto e desenvolvi- mento. São Paulo: Pearson; Makron Books, 2005. 328 p. OVERVIEW. Apache Software Foundation, Wakefield, 2019. Disponível em: https://cor- dova.apache.org/docs/en/latest/guide/overview/index.html. Acesso em: 5 jul. 2019. PREZOTTO, E. D.; BONIATI, B. B. Estudo de frameworks multiplataforma para desen- volvimento de aplicações mobile híbridas. Anais do EATI, Frederico Westphalen, v. 4, n. 1, p. 72–79, nov. 2014. Disponível em: http://www.eati.info/eati/2014/assets/anais/ artigo8.pdf. Acesso em: 5 jul. 2019. TESKE, L. Drones no Mundo Open Source. In: CONFERENCIA LATINO-AMERICANA DE SOFTWARE LIVRE, 12., 2015, Foz do Iguaçu. Anais [...]. Foz do Iguaçu: Parque Tecnológico Itaipu, 2015. Disponível em: https://www.teske.net.br/lucas/palestras/latinoware2015/#/ step-9. Acesso em: 5 jul. 2019. TITANIUM Mobile Development Environment. Appcelerator, Santa Clara, 2017. Disponível em: https://www.appcelerator.com/Titanium/. Acesso em: 5 jul. 2019. Leituras recomendadas APACHE Cordova. Mobile apps with HTML, CSS & JS — Target multiple platforms with one code base — Free and open source. Apache Software Foundation, Wakefield, 2019. Disponível em: https://cordova.apache.org/. Acesso em: 5 jul. 2019. #APLICAÇÃO Cordova/Ionic - Conceitos Envolvidos. [S. l.: S. n.], 2016. 1 vídeo (9 min 4 s). Publicado pelo canal Pet Sistemas UFMS. Disponível em: https://www.youtube. com/watch?v=2R9oXqPYszA. Acesso em: 5 jul. 2019. CAPACITOR: Universal Web Applications. Ionic Framework — Drifty Co., Madison, 2019. Disponível em: https://capacitor.ionicframework.com/. Acesso em: 5 jul. 2019. IONIC Native Community Edition: a collection of open source Cordova plugins that make it easy to add native functionality to any Ionic app. Ionic Framework — Drifty Co., Madison, 2019. Disponível em: https://ionicframework.com/docs/native/overview. Acesso em: 5 jul. 2019. Funcionalidades nativas12
Compartilhar