Você está na página 1de 10

ISSN 2316-2872

T.I.S. São Carlos, v. 4, n. 1, p. 78-87, jan-abr 2015


©Tecnologias, Infraestrutura e Software

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.

87 T.I.S. 2015; 4 (1): 78-87

Você também pode gostar