Aplicativos Android: desenvolvimento nativo x uso de
ferramentas baseadas em padrões web Marcos Roberto da Fonseca, Delano Medeiros Beder Resumo: Este artigo tem o propósito de orientar o leitor que possui interesse em criar uma aplicação Android a se decidir entre desenvolver nativamente ou optar pelo desenvolvimento utilizando tecnologia já conhecidas do desenvolvimento web. O presente artigo aponta quais os benefícios e os malefícios ao escolher uma das formas, levando o leitor a uma conclusão baseada em análises sobre qual forma de desenvolvimento utilizar.
Palavras-Chave: aplicação Android, ferramenta para aplicações Android, desenvolvimento nativo
Android Application: native development x tools based in web patterns Abstract: This article intends to guide the reader that is interested in creating an Android application to decide whether to develop natively or to develop using the web development technologies already known. This article points out the benefits and harms of choosing one of these development approaches, leading the reader to a conclusion based on analysis on which approaches to use.
Keywords: Android application, tools for Android applications, native development
1. INTRODUÇÃO um lado a maior popularização significa maior mercado para
Vivemos em tempos que graças aos smartphones, é cada atuar. Por outro lado, maior é a fragmentação de dispositivos vez maior o número de pessoas que possuem acesso aos que leva o desenvolvimento a se tornar mais complexo, inúmeros recursos da internet. Torna-se cada dia mais comum encarecendo-o e em muitas vezes tornando o projeto inviável, o uso desses dispositivos em tarefas corriqueiras como a fazendo com que o mesmo possa nem sair do papel. Seguindo somatória de calorias ingeridas, controle de consumo de esta mesma visão, o desenvolvedor deve considerar o número combustível nos veículos, pagamento de um boleto bancário, de pessoas que deseja atingir com o aplicativo a ser ligações, envio de mensagens instantâneas, capturas de desenvolvido, pois há também diversas plataformas de imagens, vídeos e até a previsão do tempo. Os smartphones mobilidade. Além do Android, que detém a maior população ganharam mais poder computacional. É provável que esta de usuários (STARK; JEPSON, 2012), há também, entre seja a maior conquista desta geração (STARK; JEPSON, outras o IOS e Windows Phone. Isso poderá fazer com que o 2012). desenvolvedor tenha que manter o mesmo aplicativo escrito Para quem desenvolve aplicativos, existe a liberdade para em linguagens de programação diferentes, o que dificulta em criar de maneira independente aplicativos diversos que certos casos a manutenção desse aplicativo. Porém para se podem ser comercializados ou não aos proprietários de atingir plataforma diferente, o desenvolvedor em alguns dispositivos móveis. Há exemplos de aplicativos cujo número casos, deverá fazer investimento financeiro para aquisição de de usuários é na casa de milhões, podendo gerar alto equipamentos para testes reais, além de computadores, montante financeiro ao desenvolvedor. Para quem usa os contribuindo para que o aplicativo custe mais tempo de aplicativos, beneficia-se na quantidade, qualidade e desenvolvimento além de consumir maior quantidade de diversidade de aplicativos criados para inúmeras finalidades recursos financeiros (STARK; JEPSON, 2012). imagináveis. Trata-se de um mercado cada vez mais Foi pensando nessa situação que frameworks como o competitivo e lucrativo onde desenvolvedor e usuários saem PhoneGap aparecem no mercado de desenvolvimento, ganhando. auxiliando na resolução de situações onde os desenvolvedores E é neste aquecido mercado que o sistema Android tem precisam encarar um enorme desafio: de criar uma versão da espaço bastante notável e vários fabricantes acompanharam aplicação de maneira tecnicamente e economicamente viável esse número de usuários elevado, criando dispositivos que e de tal maneira que atinja o maior número de usuários surgem com diferentes tamanhos e diferentes formatos. Aos (STARK; JEPSON, 2012). olhos dos desenvolvedores isso é um grande problema. De Tecnologias como o HTML5 proporcionam um ambiente
Departamento de Computação - Universidade Federal de São Carlos (UFSCar)
Caixa Postal 676 – 13.565-905 – São Carlos – SP – Brasil Autor para correspondência: marcosfonceka@gmail.com, delano@dc.ufscar.br Aplicativos Android: desenvolvimento nativo x uso de ferramentas baseadas em padrões web de criação de aplicativos usando tecnologias web onde vários operacional Android saber qual aplicação tem esta desenvolvedores podem criar aplicativos em escala global. responsabilidade e faz com que sua aplicação envie e-mails. Porém não é todo aplicativo que pode ser escrito usando Nas seções que seguem, serão apresentados os quatro tipos tecnologias web, mas seu uso oferece maior flexibilidade e básicos de componentes definidos na arquitetura Android. alcance com menor custo. E é esta a proposta do presente artigo. Demonstrar de forma didática a estrutura de um A) Atividades aplicativo nativo Android e demais particularidades, e como É um componente da aplicação android, que basicamente criar um usando tecnologias e padrões web (HTML, CSS e fornece uma tela para interação com o usuário, composta por JavaScript), tornando este segundo, nativo, dando um norte linhas de código executável que podem ser instanciadas por inicial ao desenvolvedor. meio de uma ação na aplicação ou pelo próprio sistema operacional Android (ROGERS; LOMBARDO; MEDNIEKS; II. APLICATIVOS NATIVOS ANDROID MEIKE, 2009). As atividades quando não ativas podem ser Segundo (STARK; JEPSON, 2012), são considerados eliminadas pelo sistema operacional, por motivos de aplicativos nativos aqueles que devem ser instalados no otimização de uso de recursos. As atividades são associadas às dispositivo para que sejam enfim utilizados. Devem ser telas de uma aplicação. Segundo (LECHETA, 2010) cada tela obtidos por meio de URL (Uniform Resource Locator) da aplicação haverá uma classe filha de Activity. A mesma fornecida pelos criadores ou por meio da loja de aplicativos também pode ser comparada com classes JFrame do Swing oficial dos dispositivos. Aplicativos nativos têm acesso ao em Java. Ainda segundo (LECHETA, 2010) uma tela em hardware do dispositivo que o executa, como som, câmera e Android é composta por vários elementos visuais diversos sensores que o equipam. representados por meio de uma classe chamada View. Para se ter uma noção, no ano de 2009, segundo Elementos visuais são criados por meio de arquivos XML que (ROGERS; LOMBARDO; MEDNIEKS; MEIKE, 2009) o os definem dentro de uma tela. A atividade define a existência Android poderia ser uma oportunidade aos criadores de de uma tela e a controla. Todas as atividades de uma aplicação aplicativos e ainda que este também teria potencial para móvel Android são protegidas por meio de um ciclo quebrar barreiras na criação de software para dispositivos controlado de vida, que segundo (LECHETA, 2010) a móveis. acompanha desde sua criação até o término de sua execução. Dois anos antes, em 2007, havia mais de 70 milhões de Seguem os passos do ciclo de vida de uma atividade: smartphones vendidos, segundo (ROGERS; LOMBARDO; • onCreate – Normalmente são criadas as MEDNIEKS; MEIKE, 2009) cada um deles com sua marca e visões (telas) da aplicação, momento bom para a ambiente de execução diferente. E isso dificultava muito o abertura de conexão com banco de dados; desenvolvimento, até então nativo, que deveria ser criado uma • onStart – Chamado antes da atividade ficar versão do mesmo aplicativo para diferentes plataformas se o visível na tela; aplicativo em questão fosse criado com o objetivo de atingir • onResume – Momento em que a atividade amplo número de usuários, o que certamente encarecia-o está em plena execução recebendo e reagindo a ações muito no sentido custo e tempo. do usuário com a aplicação; Com isso surgiu o Android que segundo (ROGERS; • onPause – Momento em que a atividade LOMBARDO; MEDNIEKS; MEIKE, 2009) ofereceu aos deixa de ter acesso à tela, é a hora de interromper tudo desenvolvedores um ambiente de programação estável onde que consome CPU e claro, bateria. É a chance que a era possível criar aplicações criativas e distribuí-las as estrutura da atividade oferece para que a aplicação centenas de milhares de usuários que já existiam por meio de armazene qualquer informação importante que pode um catálogo aberto de aplicações onde se permitia – mediante vir a ser necessário caso a atividade volte a ser um cadastro simples e prévio – baixar aplicações pela internet executada em primeiro plano; ou até mesmo distribuí-las por meio de conexão USB. • onStop – Chamado quando a atividade está Todo bom desenvolvedor de aplicativos móveis Android prestes a ser eliminada; sabe que ele é poderoso em recursos e recheado de • onDestroy – Última chance de fazer qualquer componentes que visam agilizar e dinamizar a produção processamento antes da destruição total da atividade; nativa de um aplicativo. Segundo (ROGERS; LOMBARDO; Pela lista anterior, pode-se claramente observar que as MEDNIEKS; MEIKE, 2009) atualmente em uma página web atividades exercem um papel fundamental no você pode facilmente integrar um mapa com algumas linhas desenvolvimento nativo Android. Ela tem um ciclo de vida de código JavaScript, além de muitas outras funções. Esta muito útil e bem definido (como também exibido na Figura 1, integração entre aplicações, além de facilitar, enriquece o que exibe o ciclo de vida das Atividades). Desenvolvedores mundo de desenvolvimento web. O Android incorporou este devem saber lidar com as chamadas durante o ciclo de vida de mesmo conceito. Nele, desenvolvedores podem incorporar uma tela para que a aplicação além de funcionar de forma funcionalidades de outras aplicações. Para efeito de exemplo, correta, não apresente problemas durante sua execução e o você pode usar um mecanismo no Android que lhe permita a principal, utilize ao mínimo os recursos do dispositivo partir de sua aplicação enviar e-mail por meio de qualquer poupando sua bateria. aplicação especifica para esta finalidade. É dever do sistema
79 T.I.S. 2015; 4 (1): 78-87
Marcos Roberto da Fonseca, Delano Medeiros Beder aplicação deverá responder a esta solicitação é inteiramente do sistema operacional Android. Basta o desenvolvedor solicitar o recurso que julgar necessário. Uma aplicação escrita nativamente em Android não precisa necessariamente fazer uso de todos os componentes oferecidos. A presente sessão mostra a estrutura oferecida pela plataforma Android para que o leitor possa ter noção da sua riqueza de controles disponíveis para uso. III. ESTRUTURA DE UM PROJETO NATIVO ANDROID Aplicações Android são desenvolvidas por meio de ferramentas de desenvolvimento em um computador cujos recursos computacionais são abundantes. Segundo (ROGERS; LOMBARDO; MEDNIEKS; MEIKE, 2009), após o desenvolvimento de toda ou parte da lógica da aplicação, o desenvolvedor pode baixá-la em um dispositivo de destino para testes e uso. Mas fica a disposição do desenvolvedor depurar e/ou testar suas aplicações no emulador que o ambiente de desenvolvimento oferece. Este emulador é completo permitindo o teste de suas aplicações. Ou testá-las em um dispositivo real. O processo de instalação do ambiente Android é facilmente encontrado documentado em páginas da internet e não faz parte do escopo deste artigo. Para a criação de um novo projeto, vários são os Figura 1. Ciclo de vida de uma atividade em Android componentes utilizados. A IDE, em conjunto com o plugin do (ROGERS; LOMBARDO; MEDNIEKS; MEIKE, 2009) Android automatizam muitas tarefas necessárias para criação e B) Serviços posteriormente, manter o funcionamento desses componentes. Com a criação de um novo projeto o kit de desenvolvimento Segundo (ROGERS; LOMBARDO; MEDNIEKS; executa, segundo (ROGERS; LOMBARDO; MEDNIEKS; MEIKE, 2009), serviços são estruturas computacionais que se MEIKE, 2009) uma série de tarefas que auxiliam o assemelham aos serviços ou daemons de sistemas desenvolvedor já deixando criada uma primeira atividade que operacionais desktop e assim como as atividades também são nada mais é que a primeira interface com o usuário e também trechos de código com a diferença que é executada em cria uma série outros arquivos e diretórios que são segundo plano a partir do momento que são criadas até o demonstrados segundo (LECHETA, 2010) na tabela abaixo. desligamento da mesma seja por conta da sua rotina de execução ou pelo desligamento do aparelho e normalmente Tabela 1. Estrutura de um projeto Android (LECHETA, não tem interface com o usuário. Um bom exemplo é um 2010) serviço que tem como objetivo a execução de uma lista de músicas onde mesmo quando o usuário troque de aplicativo, a música deve continuar executando. C) Receptores de Broadcast e Intenção Segundo (ROGERS; LOMBARDO; MEDNIEKS; MEIKE, 2009), receptores de broadcast respondem por “chamados” de outras aplicações ou do próprio sistema operacional Android, como por exemplo, o nível da bateria em estado crítico. São, portanto também pequenos trechos de código que são executados quando precisam responder a estas solicitações oriundas de outras atividades. D) Provedores de conteúdo Como mencionado anteriormente durante a criação de um Tem por objetivo, segundo (ROGERS; LOMBARDO; novo projeto Android, alguns arquivos são criados MEDNIEKS; MEIKE, 2009), compartilhar dados com outros automaticamente. Dentre esses arquivos o Main.xml é o que aplicativos. Por exemplo, a lista de contatos de um define a interface gráfica da tela. Por meio de tags o dispositivo, que pode ser utilizada no seu aplicativo por meio desenvolvedor é capaz de compor sua tela com elementos de um URI de acesso. A responsabilidade de saber que visuais que possibilitarão a interação com o usuário.
T.I.S. 2015; 4 (1): 78-87 80
Aplicativos Android: desenvolvimento nativo x uso de ferramentas baseadas em padrões web
Outro arquivo que chama a atenção é o Strings.xml que valores apropriados.
fica no diretório res e no subdomínio values, ele configura toda a parte textual da aplicação de maneira centralizada, o C) JavaScript que não deixa de ser uma excelente prática de programação. Segundo (STARK; JEPSON, 2012), é uma linguagem que A idéia é que de forma prática, rápida, organizada e elegante a quando acoplada ao HTML adiciona a este interatividade. aplicação possa ser traduzida. Encontramos na internet, vários exemplos de documentos Já a misteriosa classe R.java é repleta de constantes que HTML que “ganham vida”, usando JavaScript, como por tem por objetivo facilitar o uso de recursos do próprio exemplo as validações dos dados digitados em um formulário. projeto. Quando um novo recurso é adicionado no projeto, Porém JavaScript tem comportamentos diferentes em como por exemplo uma imagem ou um botão essa classe é navegadores diferentes, por questões de suporte a tecnologia. alterada automaticamente de modo que ao término da Neste contexto, a biblioteca chamada JQuery, que é alteração a classe ganha uma nova constante que representa fundamental, pois resumidamente faz com que o mesmo este novo recurso criado. Portando nunca se deve alterar nada código (script JavaScripo) criado tenha o mesmo desta classe. comportamento em navegadores diferentes. Mas toda plataforma de desenvolvimento tem um arquivo principal que centraliza todas as configurações da aplicação, V. GANHANDO FORMA DE APLICATIVO por exemplo, as atividades presentes na mesma, suas permissões e etc. Este arquivo se chama Com a intenção de melhorar o entendimento do presente AndroidManifest.xml que é considerado o coração da artigo, a sessão que aqui se inicia apresenta ao leitor aplicação. Várias configurações são realizadas neste arquivo fragmentos de um exemplo simples, usados na criação de um que fazem com que a aplicação use recursos como internet, aplicativo institucional para o Departamento de Computação envio de mensagens de texto além de outros mais detalhes da Universidade Federal de São Carlos. O presente protótipo é que devem ser explorados pelo leitor juntamente com a diferente do proposto inicialmente, que seria baseado na documentação oficial do Android. aplicação web criada como parte obrigatória no Curso de Pós- Até aqui ficou claro que uma aplicação Android Graduação Lato Senso do Departamento pelo fato de o estruturalmente falando é muito bem definida. O uso correto protótipo inicial consumir serviços web e o autor não dessa estrutura define além das habilidades do desenvolvedor conseguiu realizar com sucesso o consumo dos mesmos. Por a qualidade da aplicação. Portanto, conhecer bem a maneira isso a opção de apresentar fragmentos da criação do aplicativo correta e eficiente de se criar um aplicativo é bem importante. institucional. Esta seção admite que o leitor tenha conhecimento das IV. CONTEXTUALIZANDO A TECNOLOGIA DE CRIAÇÃO DE tecnologias aqui apresentadas. A explicação detalhada de APLICATIVOS MÓVEIS USANDO TECNOLOGIAS WEB código-fonte não faz parte do escopo desse artigo. Portando considera-se prévio conhecimento do leitor. Segundo (STARK; JEPSON, 2012), são utilizadas A primeira ação a ser executada é a criação de um arquivo basicamente três tecnologias para criação de aplicativos web: CSS, onde nele deverá conter a configuração de estilo geral HTML, CSS e JavaScript, de modo que no final da para nossa aplicação, conforme a Figura 2. codificação usando essa mistura possa resultar em um aplicativo web puro que pode ser convertido em nativo, por meio de frameworks como: PhoneGap, Rhmobile, Titanium etc. Esta é uma abordagem no uso de tecnologias web e frameworks que agem como drivers conversores, convertendo linguagem web em linguagem nativa da plataforma. (STARK; JEPSON, 2012) Figura 2. Estilo geral da aplicação (STARK; JEPSON, 2012) A) HTML Como observado na Figura 2, foi definido para toda a Segundo (STARK; JEPSON, 2012), quando estamos aplicação uma cor de fundo e de fonte, um tipo de letra (que navegando na internet, visualizamos em nossos navegadores só terá efeito em dispositivos que não são baseados no documentos de texto, cujo texto é encapsulado em tags Android, pelo fato de o mesmo ter um conjunto de letras HTML que define a estrutura do documento, orientando o criadas especialmente para dispositivos móveis Android), navegador a exibir da melhor maneira as informações de tamanho da letra e as margens internas e externas do forma que faça sentido. aplicativo. A partir do estilo padrão da aplicação o próximo passo é a B) CSS estilização do cabeçalho, que nada mais é que uma barra de títulos que pode ser clicada. Seu código HTML é simples, É uma linguagem que, segundo (STARK; JEPSON, 2012), como demonstra a Figura 3, porém acoplada a estilização, é usada para definir o visual de um documento HTML. exemplificada na Figura 4, resulta num efeito visual Constitui basicamente em um documento de texto com agradável. propriedades definidas em uma especificação que recebem
81 T.I.S. 2015; 4 (1): 78-87
Marcos Roberto da Fonseca, Delano Medeiros Beder
Figura 3. Código HTML do cabeçalho da aplicação
(STARK; JEPSON, 2012)
Figura 4. Estilo que desenha o cabeçalho da aplicação (STARK; JEPSON, 2012)
Os próximos componentes que irão receber a estilização que estiliza uma lista não ordenada, simples como da Figura são os menus de navegação, usando o código CSS da Figura 5 6.
Figura 5. Código que estiliza uma lista não ordenada (STARK; JEPSON, 2012)
Figura 6. Código HTML de lista não ordenada (STARK; JEPSON, 2012)
Até a versão atual da aplicação consegue-se um bom visual na Figura 7 adiciona uma fina sombra branca no texto do com quantidade reduzida de código. cabeçalho. Com técnicas um tanto quanto avançadas de CSS é possível dar um ar de sofisticação ao aplicativo. O exemplo impresso
Figura 7. Cabeçalho com sombra (STARK; JEPSON, 2012)
T.I.S. 2015; 4 (1): 78-87 82
Aplicativos Android: desenvolvimento nativo x uso de ferramentas baseadas em padrões web Chegando ao final da estilização básica da aplicação, é a Neste ponto da exemplificação da aplicação institucional, hora de deixar os menus com mais similaridade a uma será abordado um pouco sobre o comportamento da aplicação. aplicação móvel arredondando seus cantos. Como No primeiro momento serão escondidos os menus de exemplificado na Figura 8, que são segundo (STARK; navegação de forma que eles não apareçam quando a página é JEPSON, 2012) pseudoclasses. Consegue-se estilizar alguns carregada. E o pequeno trecho de código exibido na Figura 9 elementos que estejam de acordo com alguns critérios, como faz exatamente isso. por exemplo, se o elemento em questão está com o foco do cursor, se o mesmo foi clicado entre outros. Por fim, no primeiro momento, a aplicação de exemplo ficou como demonstrada na Figura 8, com gradientes, cantos Figura 9. Ocultação do menu quando a página é carregada arredondados, sombra no texto do cabeçalho, juntamente com (STARK; JEPSON, 2012) informações institucionais. Por último e não menos importante entra no foco deste exemplo o botão menu ele é estilizado pelo código da Figura 10, onde é configurado, respectivamente sua posição, altura, estilo de texto, a posição do texto e a parte de uma única imagem que é um importante recurso, pois reduz a quantidade de imagens e também a quantidade de banda além de menor tempo de carregamento.
Figura 10. Estilização do botão de menu (STARK;
JEPSON, 2012) Neste ponto é hora de utilização de código JavaScript onde sua tarefa principal é mostrar e esconder os menus da aplicação. Como exemplificado abaixo, o algoritmo considera o tamanho do dispositivo para ser usado, em seguida ele esconde os elementos mencionados dentro da cláusula, é também inserido uma função que adiciona ou remove as Figura 8. Resultado visual da primeira versão da aplicação classes indicadas no objeto em questão. O código JQuery é de exemplo exemplificado na Figura 11.
Figura 11. Código JavaScript/JQuery do botão de menu (STARK; JEPSON, 2012)
Por detalhe visual há um trecho CSS responsável por tornar Figura 12. o botão menu com aparência de clicado, exemplificado na
Figura 12. Código CSS que quando pressionado o botão menu ele ganha aparência diferenciada (STARK; JEPSON, 2012)
83 T.I.S. 2015; 4 (1): 78-87
Marcos Roberto da Fonseca, Delano Medeiros Beder Até este ponto, foi exemplificada uma forma de como sistema gera para o desenvolvedor a aplicação nativa nas converter uma página web em algo semelhante a um diversas plataformas de forma a aumentar a produtividade, aplicativo móvel. reduzindo o tempo de produção das versões em diversas plataformas e também reduzindo custos com aquisição de VI. VIRANDO NATIVO equipamentos específicos para testes e compilação em outras Segundo (STARK; JEPSON, 2012) o mercado móvel plataformas. Outro pronto vantajoso do uso dessa ferramenta é mundial está repleto de variedades entre tipos de sistemas que não requer nenhuma instalação ou configuração inicial operacionais e dispositivos. É a mesma coisa que acontece além do custo ser baixo se ultrapassar a cota gratuita. Mas o com quem desenvolve aplicativos e páginas web: uma uso da ferramenta prolonga o ciclo de desenvolvimento, no infinidade de versões e navegadores que se comportam de caso de uma possível mudança no projeto, torna mais lento se maneiras distintas em sistemas operacionais diferentes. Não chegar à fase de testes em dispositivos não-emulados, requer há uma forma rápida, barata e eficiente de se testar a mesma prévio processo de compilação e instalação que deve ser feito aplicação web em todas as plataformas e navegadores. O manualmente. mesmo acontece com o mundo mobile. Porém a conversão de um aplicativo escrito usando Pensando em tratar essa diversidade, frameworks como tecnologias web em código nativo também pode ser feita PhoneGap, Rhmobile, Titanium etc foram criados para usando recursos próprios. Alguns detalhes de configuração converter linguagem web em linguagem nativa (STARK; não serão abordados no presente artigo, mas pode ser JEPSON, 2012). encontrado documentado nas páginas da internet, como por Entre as diversidades de frameworks o PhoneGap foi o exemplo, o download, instalação e configuração do Eclipse, eleito para ser o foco deste artigo. que é segundo (STARK; JEPSON, 2012) uma interface de O PhoneGap, segundo (STARK; JEPSON, 2012) tem como desenvolvimento de código aberto usada pelos objetivo unir código e lógica web com as diversas APIs de desenvolvedores para a escrita, compilação, execução e dispositivos móveis. Basicamente ele tem como base um depuração de todo tipo de projeto. A configuração de toda projeto nativo para cada uma das plataformas que ele suporta. base Android, o kit de desenvolvimento e outros programas Cada projeto é composto de um navegador web com várias usados também não faz parte do escopo deste artigo. permissões de uso de forma que este navegador possa usar os Com tudo devidamente instalado e funcionando, deve-se auto-falantes, microfone, acelerômetro e câmera invocadas criar um novo projeto e nomeá-lo de acordo com as suas por chamadas JavaScript. O resultado desta combinação é o necessidades. Deixe o Eclipse criar uma atividade. O código HTML, CSS e JavaScript mais a API do PhoneGap desenvolvedor pode colocar um nome a ela, de sua que encapsula o conteúdo web formando um aplicativo nativo preferência. que pode ser distribuído ou publicado nas lojas de aplicativos Dando continuidade, o desenvolvedor deve criar uma pasta da devida plataforma. dentro da já existente pasta assets. É necessária esta criação, A principal e notória vantagem é que o PhoneGap abstrai para mantermos todo o código criado usando tecnologias web os principais recursos das principais plataformas e o padronizadas, dentro da estrutura do projeto Android. Como já desenvolvedor utiliza o mesmo código HTML, CSS e mencionado anteriormente, a pasta assets é reservada para JavaScript para todas as plataformas, ao contrário de quando recursos externos a aplicação. se trabalha de forma nativa, pois cada plataforma tem seu O próximo passo requer atenção. Deverá ser copiado todo o jeito específico de se consumir seus recursos. conteúdo HTML, CSS e JavaScript feito, bem como todas as Mas, pode ser que desenvolvedores inexperientes não dependências deste projeto, como imagens e fontes e colar estejam acostumados a utilizar uma rica e complexa interface dentro da pasta criada anteriormente no projeto. de desenvolvimento para compilar seu código HTML, CSS e Agora é necessário obter uma versão do PhoneGap em sua JavaScript, para torná-lo nativo. Pensando nesta possibilidade página oficial: http://phonegap.com/install. e na tentativa de tornar o PhoneGap popular no mercado de Com a ultima versão em mãos, descompacte-a e nas desenvolvimento, a empresa que o mantém criou uma solução propriedades do projeto (botão direito do mouse no projeto na na internet que dispensa o uso de uma interface de opção propriedades), escolha a opção das bibliotecas externas desenvolvimento. Neste construtor o funcionamento é incluídas para o funcionamento do projeto (Java Build Path), descomplicado e eficiente. Com prévio cadastro na página na aba libraries adicione o arquivo com extensão .jar chamado web do projeto, http://build.phonegap.com, o usuário faz o “cordova” na sua versão correspondente, conforme indicado upload do código HTML, CSS e JavaScript e o próprio na Figura 13.
Figura 13. Inclusão da biblioteca do PhoneGap no projeto
T.I.S. 2015; 4 (1): 78-87 84
Aplicativos Android: desenvolvimento nativo x uso de ferramentas baseadas em padrões web Em seguida, adicione na pasta assets o arquivo cordova.js Vários são os pesquisadores que utilizam como base o que é uma biblioteca JavaScript com todos os métodos PhoneGap na resolução de inúmeros problemas, sejam eles necessários para o funcionamento de todas as ações que a específicos de uma organização ou rotineiros. A presente aplicação fará. Vale salientar que a adição dos arquivos sessão aponta outras pesquisas que utilizam somente o mencionados são exclusivos para o sistema Android. PhoneGap como base de conversão de linguagem web em O ultimo passo, consiste em alterar a atividade criada linguagem nativa para justamente mostrar a força que esse durante a configuração da concepção do projeto. O código framework tem, seja no âmbito corporativo ou mesmo dela deverá ficar como mostrado na Figura 14. acadêmico. O trabalho de pesquisa segundo (REICHERT; TEODORO; BERLIN, 2013) propõe a criação de um aplicativo que tem como objetivo auxiliar no aprendizado de crianças com deficiência auditiva, na esperança de que fosse possível contribuir com o ensino da língua portuguesa para crianças especiais baseado em métodos já existentes. Os autores deste trabalho mostraram tecnologias, formas e métodos para a criação da aplicação, que utilizaria HTML5, com telas que se adaptem a diversos aparelhos. Acoplado ao HTML5, propõe também recursos adicionais como CSS, Figura 14. Alteração da atividade principal JavaScript e JQuery, além do PhoneGap que transformaria o jogo escrito nos padrões web em aplicativo nativo. Tendo em Isso faz com que a atividade passe a herdar todas as vista que o trabalho desses autores é uma proposta de criação funcionalidades da classe DroidGap e aponte para o código os autores acreditam que a criação do proposto aplicativo criado usando HTML, CSS e JavaScript. Assim, segundo pode contribuir de forma significativa. (STARK; JEPSON, 2012) o PhoneGap aciona um navegador O PhoneGap também pode ser usado como base para web com permissões para usufruto de recursos do dispositivo criação de aplicativos que utilizam recursos de geolocalização. que interpreta o código gerado. Ao executar a aplicação Segundo (JÚNIOR; OLIVEIRA; CARDOSO, JÚNIOR, s.d) utilizando, por exemplo, o emulador temos o seguinte propõem com a criação de um aplicativo que auxilia na resultado, como mostrado na figura 15. localização dentro do campus da Universidade Federal de Uberlândia, em Minas Gerais. O aplicativo é uma prova de conceitos do uso do PhoneGap onde ele acrescenta no mundo real, informações computadorizadas sobre o caminho a ser seguido, levando o usuário até seu destino. O desfecho desta pesquisa foi promissor, segundo seus autores. Eles também garantem que a plataforma de desenvolvimento usando tecnologias web padronizadas é simples e eficiente para o desenvolvimento de aplicações e que futuramente pretendem realizar integração com a câmera e fazer análise da utilização do aplicativo a fim de contemplar mais pontos de interesse. Existem diversas aplicações criadas com o PhoneGap no âmbito corporativo. Segundo (SILVA; TIBOLA; FERNANDES; DALBOSCO; RIEDER; PAVAN, s.d) que construíram uma aplicação de cunho corporativo, sendo uma primeira versão de um aplicativo de caderno de campo para agricultores usando o PhoneGap. Segundo os autores há uma tendência entre desenvolvedores a migração de sistemas desktop para dispositivos móveis. O objetivo partia da demanda por um aplicativo com diferentes plataformas móveis que poderiam ser usadas em qualquer lugar. A primeira versão contemplou autenticação de usuários, a escolha do caderno de campo, uma tela principal, uma listagem e a inserção de diferentes registros como monitoramento de pragas, doenças e plantas daninhas. O aplicativo consome WebServices de servidores remotos usando padrão REST e JSON para troca de dados. Concluíram Figura 15. Resultado da aplicação nativa utilizando que a criação do aplicativo híbrido é uma boa opção e que o PhoneGap uso de tecnologias web é bastante fundamental para criar aplicações flexíveis e padronizadas além da redução de custos VII. TRABALHOS RELACIONADOS de desenvolvimento e o PhoneGap atende a integração entre
85 T.I.S. 2015; 4 (1): 78-87
Marcos Roberto da Fonseca, Delano Medeiros Beder HTML, CSS e JavaScript, com recursos nativos dos mais moldes da web, tornando-a nativa posteriormente. Cabe ao diversos dispositivos móveis. Alguns pesquisadores tentam desenvolvedor agora opinar já que agora conhece e sabe as elencar ótimas comparações entre as maneiras existentes de principais vantagens e desvantagens de usar uma ou outra. desenvolvimento de aplicativos. O trabalho de pesquisa O mais importante é ser tomada a decisão correta na hora segundo (SILVA; SANTOS, 2014) defende a idéia de que a da definição da tecnologia usada, um erro neste momento evolução dos celulares permitiu a criação de sistemas pode até vir a comprometer a aplicação, pois depois de operacionais mais avançados que por sua vez também lançada nas lojas de aplicativos, uma possível reescrita em permitiu a criação de aplicativos melhores. Segundo a código nativo, por exemplo, se tornaria bem caro, na questão pesquisa, o desenvolvimento de aplicativo que atenda a várias tempo e custo. E o inverso é verdadeiro também. Uma plataformas reduz sua complexidade, porque deixa o código aplicação lançada com tecnologias web e depois virando mais enxuto, além de diminuir o tempo e o custo de nativa com o PhoneGap é inviável reescrevê-la para desenvolvimento e posterior manutenção. Garantem ainda que linguagem nativa também pelo mesmo motivo: se tornaria o desenvolvimento de aplicativos web, usando tecnologias caro, na questão tempo e custo. padronizadas como HTML, CSS e JavaScript tem A equipe de desenvolvimento tem que ter maturidade o comportamento bastante semelhante aos aplicativos nativos, bastante para se chegar num acordo entre uma ou outra ao passo que a maioria dos dispositivos modernos possuem tecnologia. Acredita-se que com o presente artigo, o leitor robustos navegadores, proporcional o desenvolvimento desse possa ter ganhado conhecimento sobre as tecnologias. O tipo de aplicativo dando melhor experiência de uso aos PhoneGap veio para auxiliar os desenvolvedores. Ela não é usuários. Os autores defendem o uso de tecnologias híbridas uma tecnologia que consegue abranger todos os bons pontos onde o PhoneGap pode ser usado para transformar código que o código nativo consegue. Mas, por outro lado, ela CSS, HTML e JavaScript em aplicativos nativos e conclui elimina a complexidade de desenvolvimento, tornando o seu afirmando que as ferramentas utilizadas no desenvolvimento ciclo mais rápido e barato. E é assim mesmo: com tecnologias permite que sejam reduzidos fatores como tempo, custo e já conhecidas, segundo (STARK; JEPSON, 2012) como complexidade porém com certas limitações, de acordo com a HTML, CSS e JavaScript você já pode desenvolver ferramenta utilizada. Ainda segundo a pesquisa os aplicativos aplicativos Android. que podem atender a várias plataformas poderiam oferecer Como futuros trabalhos, destaca-se a necessidade de se vantagens até para os fabricantes das plataformas, aprofundar os conhecimentos em criação de aplicações usando estimulando assim a criação de novos aplicativos escritos em padrões web e tornado-a nativa usando o PhoneGap. Pretende- única vez e comercializados em várias lojas de aplicativos. O se continuar o desenvolvimento da aplicação institucional trabalho em questão concluiu ainda que não existe um modelo apresentada no presente artigo de novo que esta possa de desenvolvimento de aplicativos móveis que atenda a todas consumir serviços providos por um servidor remoto, por meio as necessidades. É necessário conhecer todas as de WebServices fazendo uso do padrão REST e JSON para particularidades do aplicativo para só assim decidir a melhor troca de dados, fazendo com que a aplicação se torne mais forma de criá-lo. dinâmica. VIII. CONCLUSÃO E TRABALHOS FUTUROS IX REFERÊNCIAS . O mercado móvel já é uma realidade. Com isso, gerou-se BERLIM, Thiago Luis; REICHERT, Jennifer Ribas; um novo e bem atraente mercado para desenvolvedores e TEODORO, Fabricia. O Uso da Tecnologia Móvel para o usuários. Auxilio ao Aprendizado de Crianças com Deficiência Pensando neste mesmo raciocínio também se fez necessário Auditiva. Faculdade Avantis. Balneário Camboriú/SC, s.d. a criação de tecnologias capazes de prover a concepção de JÚNIOR, Gesmar de Paula Santos; OLIVEIRA, Alexandre aplicativos de forma relativamente rápida e de fácil Cardoso; JÙNIOR, Edgard Afonso Lamounier. Aplicação aprendizado. O uso do PhoneGap, bem como outros Multiplataforma da Realidade Aumentada Móvel para frameworks se tornaram uma boa opção, porque seu ciclo de Geolocalização utilizando o PhoneGap. Programa de Pós- desenvolvimento é reduzido e bem atraente. Também, por Graduação em Engenharia Elétrica. Universidade Federal outro lado, a criação de aplicativos nativos, principalmente na de Uberlância. Uberlândia/MG, s.d. plataforma Android, tem inúmeras vantagens, pois se tem o LECHETA, Ricardo R. Google Android: aprenda a criar domínio da execução da aplicação em todos os sentidos. aplicações para dispositivos móveis com o Android SDK. Mas a questão não é a aplicação em si, mas a maneira de 2ª Edição revista e ampliada. São Paulo: Novatec Editora, como o desenvolvedor irá se preparar pra criá-la. Isso pode 2010. variar e muito de acordo com o contexto dela. Por isso deve ROGERS, Rick; LOMBARDO, John; MEDNIEKS, Zigurd, ter muito conhecimento do que esta aplicação irá fazer MEIKE; Blake. Desenvolvimento de aplicações Android: realmente. Suas funcionalidades devem sempre estar muito programação com o SDK do Google. Tradução Lia bem definidas para que seja escolhido de forma certeira o Gabriele Regius. São Paulo: Novatec Editora, 2009. método que se irá utilizar no desenvolvimento. E é este o SILVA, Maicon Anderson Mattos da; TIBOLA, Casiane paralelo que se formou no presente artigo. O motivo pelo qual Salete; FERNANDES, Jose Mauricio Cunha; criamos uma aplicação, e qual tecnologia usar: nativa ou nos DALBOSCO, Jaqson; RIEDER, Rafael; PAVAN,
T.I.S. 2015; 4 (1): 78-87 86
Aplicativos Android: desenvolvimento nativo x uso de ferramentas baseadas em padrões web Willingthon. Desenvolvimento de um Caderno de Campo Aparelhos Celulares. São Carlos/SP: T.I.S. p. 162-170. para Plataformas Móveis utilizando PhoneGap. Maio – Agosto 2014. Universidade de Passo Fundo. Passo Fundo/RS, s.d. STARK, Jonathan; JEPSON, Brian. Construindo aplicativos SILVA, Marcelo Moro; SANTOS, Marilde Terezinha Prado. Android com HTML, CSS e JavaScript. – São Paulo: Os Paradigmas de Desenvolvimento de Aplicativos para Novatec Editora, 2012.