Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
MARLIA
2014
MARLIA
2014
1.
2.
CDD: 005.2
3.
AGRADECIMENTOS
Julgue seu sucesso pelas coisas que voc teve que renunciar para conseguir.
Dalai Lama
BERGANTIN, Carlos Eduardo Martinelli. Anlise de boas prticas para o desenvolvimento de web
apps. 2014. 73 f. Trabalho de Curso (Bacharelado em Sistemas de Informao) Centro Universitrio
Eurpides de Marlia, Fundao de Ensino Eurpides Soares da Rocha, Marlia, 2014.
RESUMO
Com a evoluo constante das variedades de aplicativos mveis que demandam flexibilidade
no acesso e troca de informaes, aumenta a necessidade da qualidade e composio sobre sua
arquitetura. importante compreender quais as melhores prticas que se encaixam nas
aplicaes mveis a serem desenvolvidas. O presente trabalho visa estudar e analisar as boas
prticas do ponto de vista dos desenvolvedores e usurios, onde uma Web App foi
implementada, visando analisar os fatores que incluem interface com o usurio, facilidade de
desenvolvimento, desempenho, infraestrutura de comunicao e manuteno. Outro objetivo,
avaliar os impactos de boas prticas de otimizao de aplicaes web amplamente utilizadas,
uma vez que, em dispositivos mveis algumas prticas podem no ter os benefcios pretendidos,
ou, podem at mesmo prejudicar o desempenho.
Palavras-Chave: aplicao mvel, Web App, sistema web, interface do utilizador, usabilidade.
BERGANTIN, Carlos Eduardo Martinelli. Anlise de boas prticas para o desenvolvimento de web
apps. 2014. 73 f. Trabalho de Curso (Bacharelado em Sistemas de Informao) Centro Universitrio
Eurpides de Marlia, Fundao de Ensino Eurpides Soares da Rocha, Marlia, 2014.
ABSTRACT
With the constant evolution of varieties of mobile applications that require flexibility in it access
and swap of information, enhance the need for quality and composition of its architecture. It is
important to comprise what the best practices that fit in the mobile applications to be developed.
This work aims to study and to analyze good practices from the perspective of developers and
users, where a Web App was implemented in order to analyze the factors that include interface
with user, facility of development, performance, communication infrastructure and
maintenance. Another objective is to evaluate the impacts of good optimization practices of
web applications widely used, since in practice some mobile devices can not have the intended
benefits, or it may even degrade performance.
Key words: mobile application, Web App, Web system, User interface, usability.
LISTA DE ILUSTRAES
Figura 1 - Arquitetura do funcionamento de uma aplicao nativa ......................................... 22
Figura 2 - Arquitetura do funcionamento de uma aplicao hbrida ........................................ 23
Figura 3 - Arquitetura do funcionamento de uma aplicao web ............................................. 25
Figura 4 - Relacionamento entre os componentes da arquitetura MVC................................... 42
Figura 5 - Camadas fornecidas pelo framework Sencha Touch ............................................... 42
Figura 6 - Diagrama de Pacotes da aplicao ........................................................................... 45
Figura 7 - Diagrama de classes do pacote Controller .............................................................. 45
Figura 8 - Diagrama de classes do pacote Model ..................................................................... 46
Figura 9 - Diagrama de classes do pacote View ....................................................................... 47
Figura 10 - Diagrama de classes do pacote Store ..................................................................... 47
Figura 11 - Diagrama de classes do pacote Ext ........................................................................ 48
Figura 12 - Diagrama de classes do pacote Integraes ........................................................... 48
Figura 13 - Cdigo fonte do arquivo web.config para compreso. .......................................... 52
Figura 14 - Cdigo fonte do arquivo web.config para a utilizao do web cache. .................. 53
Figura 15 - Cdigo fonte do arquivo web.config para a utilizao do Keep Alive. .................. 54
Figura 16 - Grfico da utilizao do cache na rede GPRS ....................................................... 57
Figura 17 - Grfico da utilizao do cache na rede 3G ............................................................ 58
Figura 18 - Grfico da utilizao do cache na rede Wi-Fi........................................................ 59
Figura 19 - Grfico da utilizao do Gzip ................................................................................ 60
Figura 20 - Grfico da utilizando a reduo do JavaScript ...................................................... 61
Figura 21 - Grfico da utilizando a reduo do CSS ................................................................ 62
Figura 22 - Tela de login (A) resoluo de 480x800 e (B) 1280x800...................................... 63
Figura 23 - Tela do Twitter (A) resoluo de 480x800 e (B) 1280x800. ................................. 64
Figura 24 - Tela de Imagens (A) resoluo de 480x800 e (B) 1280x800. ............................... 64
Figura 25 - Tela de Contato (A) resoluo de 480x800 e (B) 1280x800. ................................ 65
Figura 26 - Tela de Relatrio (A) resoluo de 480x800 e (B) 1280x800. .............................. 65
Figura 27 - Resultado obtido pela ferramenta YSlow. ............................................................. 67
Figura 28 - Resultado obtido pela ferramenta PageSpeed. ....................................................... 68
Figura 29 - Grfico de algumas tcnicas .................................................................................. 69
Figura 30 - Comparao entre as otimizao na ferramenta PageSpeed, (A) No est otimizado
(B) Est otimizado. ................................................................................................................... 70
Figura 31 - Comparao entre as otimizao na ferramenta YSlow, (A) No est otimizado (B)
Est otimizado. ......................................................................................................................... 70
LISTA DE TABELAS
Tabela 1 - Comparao entre os tipos de aplicaes, Nativo, Hbrido e Web App ................. 26
Tabela 2 - Compatibilidade dos browsers com os principais mdulos do HTML 5. ............... 30
Tabela 3 - Comparao entre os frameworks escolhidos. ........................................................ 35
Tabela 4 - Comparao da utilizao do cache na aplicao utilizando a rede GPRS. ........... 56
Tabela 5 - Comparao da utilizao do cache na aplicao utilizando a rede 3G. ................. 57
Tabela 6 - Comparao da utilizao do cache na aplicao utilizando a rede Wi-Fi. ............ 58
Tabela 7 - Comparao entre a utilizao da tcnica Gzip....................................................... 60
Tabela 8 - Comparao entre os arquivos JavaScript minificados. .......................................... 61
Tabela 9 - Comparao entre os arquivos CSS minificados. ................................................... 62
3G
AES
API
CSS
DES
DOM
FT
Financial Times
FTP
GPRS
GPS
HMAC
HTML
HTTP
IDE
IIS
iOS
IP
Internet Protocol
JSON
LAN
MD5
Message-Digest algorithm 5
MVC
NCSA
PDA
REST
SDK
SHA1
SMS
SVG
URL
W3C
WHATWG
Wi-Fi
XHR
XMLHttpRequest
SUMRIO
INTRODUO .................................................................................................................................... 17
1
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
HTML ................................................................................................................................... 28
2.2
HTML 5 ................................................................................................................................ 29
2.2.1
2.2.2
2.3
2.4
2.4.1
2.4.2
AppMobi ....................................................................................................................... 34
2.4.3
2.4.4
2.5
2.5.1
2.6
3
MVC...................................................................................................................................... 41
3.1.1
3.2
3.3
3.3.1
3.3.2
3.3.3
3.3.4
3.3.5
3.3.6
3.4
3.4.1
3.4.2
3.4.3
3.4.4
4.2
4.3
4.4
4.5
4.5.1
YSLOW......................................................................................................................... 66
4.5.2
PAGESPEED ................................................................................................................ 67
4.6
5
CONCLUSO .............................................................................................................................. 71
5.1
Trabalhos Futuros.................................................................................................................. 72
REFERNCIAS .................................................................................................................................... 73
17
INTRODUO
Nos ltimos anos vem ocorrendo um aumento acelerado na utilizao dos dispositivos
mveis, tornando-se o principal mecanismo de conexo internet. Entre os vrios motivos que
esto levando isso, podemos destacar os dispositivos cada vez mais poderosos em relao a
capacidade de armazenamento, processamento, memria, etc.
A cada dia que passa os usurios esto buscando cada vez mais praticidade e agilidade
ao acessar as informaes na web, isso inclui tarefas simples do seu dia a dia. Um relatrio
apresentado pela Ericsson, prev que no final de 2019 teremos cerca de 9,2 bilhes de conexes
mveis no mundo. Sendo que 5,6 bilhes sero de smartphones [ERICSSON, 2014].
J a Google dispe de um relatrio que informa que em 2012 a frequncia do uso da
internet mvel era de 42% e nos aparelhos estavam instalados 14 aplicativos. Em 2013 esses
dados subiram para 62% e 17 aplicativos instalados. O relatrio tambm menciona que 86%
dos usurios acessam um meio comunicao, sendo rede sociais, e-mail, entre outros, e que
63% utilizam para leituras de notcias, via portais, jornais ou revistas. [GOOGLE SERVICE,
2014].
Visando esse potencial, as empresas esto investindo cada vez mais no
desenvolvimento, seja para criao como para adaptao de seus websites, ou at mesmo
sistemas web para dispositivos mveis. Entretanto, em alguns casos elas no esto tendo o
devido sucesso, seja pela falta de planejamento ou utilizao incorreta das prticas de
programao.
O desenvolvimento voltado para dispositivos mveis tem as suas particularidades, tais
como tamanhos, armazenamento, processamento, utilizao das redes mveis, entre outros.
Essas particularidades esto gerando novos desafios que requerem uma estratgia
completamente diferente da qual utilizada para computadores de mesa.
Atualmente, com a chegada de novas tecnologias como HTML5, CSS3, APIs, etc., os
desenvolvedores passaram a ter mais poder ao implementarem. Em contrapartida quando
utilizados muitos recursos a performance de carregamento do website diminui, podendo
ocasionar uma insatisfao do usurio pela espera.
Pensando nas diferenas entre os dispositivos mveis e os computadores de mesa,
alguns profissionais da rea de desenvolvimento para web, esto abordando com alta
frequncia, a otimizaes. Existem grupos como o W3C, que j disponibiliza um documento
com um conjunto de boas prticas para o desenvolvimento de aplicao web voltada para
18
dispositivos mveis.
Este trabalho abordar algumas otimizaes tanto no lado do cliente como no servidor,
por meio de tcnicas recomendadas pelo documento de boas prticas do W3C, visando
minimizar o tempo de carregamento, latncia da rede, nmeros de requisies HTTP, entre
outros.
Motivao e Justificativa
Tem-se como objetivo estudar e analisar algumas das melhores prticas para se
desenvolver uma aplicao web para dispositivos mveis, mais especficamente, os
smartphones. Para realizar o estudo e a anlise das melhores prticas para desenvolvimento
mobile, foi utilizado um framework e o documento criado pelo grupo W3C.
Contribuir com as empresas e os desenvolvedores, para que possam utilizar algumas
das melhores prticas, proporcionando aos usurios uma agradvel experincia na utilizao da
aplicao.
Objetivos
Tem-se como objetivo estudar e analisar algumas das melhores prticas, para se
desenvolver uma aplicao web para dispositivos mveis, mais especfico, os smartphones.
Para realizar o estudo e a anlise das melhores prticas, foi desenvolvido uma aplicao web
utilizado um framework e as tcnicas de boas prticas disponibilizada no documento criado
pelo grupo W3C, onde mostram as melhores prticas para desenvolvimento mobile.
De modo a contribuir com as empresas e os desenvolvedores, para que possam utilizar
algumas das melhores prticas, proporcionando aos usurios uma agradvel experincia na
utilizao da aplicao.
Organizao do Trabalho
A organizao do trabalho encontra-se organizado da seguinte forma:
19
20
21
1.1.1.1
Aprovao nas lojas online: Cada loja tem seus termos e particularidades no
processo de aprovao dos aplicativos, tornando a publicao de um aplicativo
mais complicado.
Arquitetura do aplicativo
22
23
1.1.2.1
Arquitetura do aplicativo
24
Suporta mltiplas plataformas: Por ser executado em qual quer browser com
acesso internet, funcionar independentemente da plataforma do dispositivo,
acessando um nmero maior de usurios.
25
1.1.3.1
Conexo: O tempo de resposta se torna mais lento pelo fato de utilizar conexo
com a internet, que acaba sendo o responsvel pelo funcionamento da
aplicao.
Localizar: A sua localizao pode se tornar um pouco mais difcil devido a sua
inexistncia em App stores.
Arquitetura do aplicativo
26
Multiplataforma
Performance
Implementao
Hbrido
Necessrio
Utiliza recursos do
dispositivo, como
cmera, GPS, etc.
Mescla a linguagem de
programao, Web com
a linguagem Nativa da
plataforma utilizada.
instalao do aplicativo.
Localizar
Processo de
requerem aprovao, antes de
aprovao publicar.
Alguns usurios podem optar
Necessita parcialmente.
Web App
Custo de
com mudanas de diferentes
desenvolvimento dispositivos/plataformas.
Onde temos um asterisco porque depende de como o projeto foi definido diante ao
desenvolvimento da aplicao hbrida.
27
Pblico alvo;
Custo de desenvolvimento;
28
WEB MOBILE
A World Wide Web teve seu incio em 1980 na Sua. O precursor da ideia foi o
2.1 HTML
A linguagem Hypertext Markup Language (Linguagem de marcao hypertext) ou
mais conhecida como HTML, teve seu incio em 1991, permitindo a ligao de uma pgina a
outra, pelas tags, que so comandos para inserir algum tipo de elemento ou caractersticas da
mesma. A sua popularidade cresceu atravs do navegador web Mosaic, que foi desenvolvido no
NCSA [VENKATESH, 2012].
Em 1994 surge a primeira melhoria da verso do HTML, o HTML 2.0 tendo apenas
correes e padronizaes das principais caractersticas da verso anterior [VENKATESH,
2012].
Aps dois anos o HTML apresenta um conjunto de tecnologias como o Cascading
Style Sheets, conhecido como CCS, que uma linguagem de estilos, onde podem ser definidas
as apresentaes do documento, que so escritas em linguagem de marcao. E tambm o
JavaScript, que uma linguagem de programao interpretada, para que pudessem ser
29
2.2 HTML 5
A criao do HTML 5 veio com a unio dos grupos W3C e Web Hypertext Application
Technology Working Group ou conhecido como WHATWG, onde antes a W3C estava apenas
focada em criar a segunda verso do XHTML, e o grupo WHATWG estava trabalhando um
uma nova verso do HTML que trazia mais flexibilidade a produo de websites e sistemas que
so baseados na web [W3C HTML 5, 2014].
O HTML 5 uma atualizao baseada nas verses anteriores, com melhorias
significantes, tornando algo a mais, do que simplesmente uma linguagem de marcao,
fornecendo ferramentas para o JavaScript e o CSS fazerem o melhor trabalho possvel em
conjunto com o HTML [W3C HTML 5, 2014].
Desde da sua criao o HTML 5 vem se tornando uma das principais tecnologias na
interao com a web, por dispor de novas funcionalidades, elementos, recursos, integraes e
diversas outras novidades, criando assim novas experincias aos usurios e desenvolvedores.
Esta linguagem de marcao oferece a possibilidade de criar aplicaes mais complexas com
os conjuntos de padres abertos que so oferecidos.
30
Chrome
Opera
Firefox
IE 8
IE 9
Local Storage
Sim
Sim
Sim
Sim
Sim
Sim
Histrico de Sesso
Sim
Sim
Sim
Sim
Sim
Sim
Aplicaes Offline
Sim
Sim
No
Sim
No
No
Sim
Sim
Sim
No
No
No
Form: Autofocus
Sim
Sim
Sim
No
No
No
Form: Autocomplete
No
No
Sim
No
No
No
Form: Required
Sim
Sim
Sim
No
No
No
Sim
Sim
Sim
Sim
No
Sim
31
Banco de dados: Por meio de uma API, as pginas web, podero permitir o
armazenamento de dados no agente do usurio, sem precisar definir a expirao
dos dados. A documentao sugere que o espao de armazenamento seja de
5MB para cada domnio.
Aplicaes web Offline: Permite que o usurio trabalhe na aplicao web, sem
estar com acesso internet, como se estivesse utilizando uma aplicao local.
Drag and Drop: Permite o usurio arrastar e soltar os objetos. Antes era
necessrio utilizar ferramentas de terceiros, para a criao da funcionalidade
de arrastar e soltar.
32
4xx: Client Error (Erro no cliente) informa que provavelmente houve um erro
na solicitao, impedindo o servidor que processe.
5xx: Server Error (Erro no servidor) indica que o servidor teve um erro interno,
esses erros so geralmente do servidor e no da solicitao.
Os cdigos de status mais comuns de encontrar ao acessar um site so o 200 (OK), 304
(Not Modified), 401 (Unathorized), 404 (Not Found), 500 (Internal Server Error), 502 (Bad
Gateway) e 503 (Service Unavailable) [HYPERTEXT TRANSFER PROTOCOL, 2014].
No cabealho possvel definir algumas tcnicas para otimizar o desempenho da
33
comunicao. O cache uma das tcnicas onde avisa o navegador que ele pode armazenar uma
cpia daquele recurso para evitar que o download e/ou requisies sejam feitas novamente.
Com o Cache-Control possvel definir o tempo que os recursos iro permanecer vlidos no
navegador [FADINO, 2014].
Outra maneira de otimizar habilitar o gzip no servidor para comprimir os dados das
respostas e reduzir a largura de banda. Porm, o uso da CPU ser maior para descompactar as
respostas [GOOGLE 2].
Segurana
Como relao segurana, as conexes provm autenticao (HMAC, MAC),
integridade (MD5, SHA1) e confidencialidade (DES, 3DES, AES) das requisies e dos dados
solicitados. So utilizadas quando os dados importantes so transmitidos, geralmente utilizada
pelos sites de Internet Banking e de comrcio eletrnico [CERT.BR, 2012].
O protocolo HTTP oferece esquema de autenticao de usurio para ter acesso aos
recursos sigilosos. O esquema utiliza de incluses de dados no cabealho (ou header) tanto
pelas requisies como pelas respostas realizadas pelo servidor.
Autenticao HTTP Basic envia para o servidor usando a codificao Base64 na forma
de texto. Porm o tipo de autenticao Basic considerado um dos mais inseguros, pelo fato
dos dados serem trafegados na rede como texto plano, sendo possvel a interceptao por
terceiros e tornando acessvel [ANDRADE, 2010].
Open Authorization (OAuth) um protocolo aberto que permite autorizao segura
utilizando padres de mtodos simples, garantindo acesso de um usurio de um site a um
aplicao externa. OAuth tornou-se mais segura e simplificada com as interaes dos dados
protegidos pelo cliente ou fornecedor [ANDRADE, 2010].
34
2.4.2 AppMobi
Com esse framework possvel desenvolver aplicaes com visual adequado para
dispositivos mveis por meio de arquivos HTML. O seu ambiente de desenvolvimento consiste
em uma extenso no navegador Chrome [APPMOBI, 2014].
O framework foi adquirido pela empresa Intel em 2012, onde muito defendida a
utilizao de linguagens como HTML 5, CSS e JavaScript [APPMOBI, 2014]. Se destacou pela
facilidade no processo de desenvolvimento, tanto para aplicao web como para aplicaes
hbridas [APPMOBI, 2014].
35
AppMobi
Sencha Touch
Web Mobile
SDK Gratuito
Sim
Sim
Sim
Possui IDE
Sim
Sim
Sim
IDE Gratuita
No
Sim
No
Permite PhoneGap
No
Sim
Sim
Sim
Sim
Sim
Suporte
Sim
Sim
Sim
Documentao
Sim
Sim
Sim
Mdio
Mdio
Fcil
Sim
Sim
Sim
Categoria
Linguagens utilizados
Nvel de aprendizado
Frum
36
37
2.5.1.2
38
2.5.1.3
Utilizar com moderao os cookies, pois cada pedido ser enviado para o
servidor, usando uma quantidade de dados excessiva podero afetar
negativamente o desempenho, principalmente em um rede mvel.
2.5.1.4
Os dispositivos mveis tem funes especificas, que podero ser utilizadas pelas
aplicaes web.
39
2.5.1.5
2.5.1.6
40
41
mvel, onde ser analisado algumas prticas, dicas e desafios que so encontrados no processo
de desenvolvimento, devido a sua dependncia com a internet. Sero utilizadas algumas dicas
e prticas presente no documento desenvolvido pelo grupo W3C, com as melhores prticas para
o desenvolvimento web mobile.
Com o intuito de facilitar e agilizar no processo de implementao do prottipo, sero
utilizados algumas ferramentas, mtodos e arquitetura, tais como o framework Sencha Touch,
API do Twitter, arquitetura MVC, entre outros.
Neste capitulo abordar o desenvolvimento do prottipo e descrever as principais
funcionalidades do mesmo e aplicar algumas tcnicas de otimizao tanto no lado do cliente
como no servidor.
3.1 MVC
MVC um padro de arquitetura de software, que trabalha em conjunto em uma
mesma estrutura, dividido em trs camadas, cada camada tem suas caractersticas e
responsabilidade especificas. Utilizando o padro possibilita utilizar diversas linguagens de
programao, permitindo que as equipes sejam distintas em suas atribuies. As camadas so
da arquitetura MVC so separadas da seguinte forma [PADRES DE PROJETO, 2009]:
View (viso): Consiste em apresentar os dados aos usurios de forma que seja
possvel a interpretao e interao das informaes.
42
Controller
View
Model
Fonte: PADRES DE PROJETO, 2009
Application
Controller
Profile
View
Store
Model
Fonte: SENCHA, 2014
43
Store: uma parte muito importante da arquitetura, por ter a funo de carregar
a maior parte dos dados ligado a aplicao. Os dados carregados iro alimentar
os componentes, como listas, DataViews, entre outros.
44
Ter um fluxo adequado dos textos, publicados pelos usurios. (Fluxo de texto
e focus)
Lista com textos e imagens carregadas apenas quando solicitado. (Pool - Ser
atualizado apenas quando efetuar a busca)
45
46
47
48
49
50
51
GZIP
52
citado acima. A configurao da compactao foi realizada pelo prprio cdigo fonte, em um
arquivo chamado web.config, este arquivo gerado automaticamente por ser desenvolvido em
.NET. Abaixo segue na Figura 133 do cdigo que foi inserido para compactar os arquivos do
projeto.
Figura 13 - Cdigo fonte do arquivo web.config para compreso.
3.4.4.2
Web Cache
Os websites esto ficando cada vez mais robustos, o que significa a utilizao de mais
css, scripts, imagens, entre outros. Com isso a pgina pode realizar diversas solicitaes HTTP
desnecessrias. Ao utilizar o cache, poder reduzir o nmero e o tamanho das solicitaes
HTTP, tornando com que as pginas carreguem mais rapidamente e com muito menos
requisies.
Um servidor web utiliza uma data de expirao no cabealho da resposta HTTP para
informar aos navegadores quanto tempo aquele componente poder ser armazenado em cache.
Evita assim com que o componente no seja solicitado novamente, considerando o prazo de
validade estipulado pela aplicao [YAHOO DEVELOPER NETWORK, 2014].
A aplicao desenvolvida utilizou a tcnica de web cache, para que os arquivos que j
53
esto em cache no sejam transmitidos. Como citado acima, esta tcnica utilizar o mesmo
painel de configurao do IIS. A configurao do cache foi implementada no cdigo fonte,
como cita acima em um arquivo chamado web.config.
Abaixo segue na Figura 144 do cdigo fonte que foi inserido para colocar os
componentes do projeto em cache.
Figura 14 - Cdigo fonte do arquivo web.config para a utilizao do web cache.
3.4.4.3
54
a 25% de seu tamanho original. Atualmente existem diversas formas de minificar o cdigo
fonte, sendo eles por softwares, sites, servios, entre outros. [YAHOO DEVELOPER
NETWORK, 2014].
Para minificar os cdigos JavaScript e CSS da aplicao, foram utilizadas duas
ferramentas criadas por uma organizao online. As ferramentas so disponibilizadas
gratuitamente e esto disponveis como servios ou no prprio websites, podendo ser acessadas
em dois endereos diferentes: para minificar os cdigos JavaScript acesse http://javascriptminifier.com e no caso do CSS acessar http://cssminifier.com. Ambas as ferramentas so muito
simples de se utilizar, basta copiar o cdigo fonte que deseja minificar no site e o mesmo
retornara-los minificados.
3.4.4.4
Cabealho Keep-Alive
55
mtodo httProtocol e definindo pelo allowKeepAlive, nela poder definir verdadeiro ou falso
para que utilize a configurao ou no. Este mtodo atualizar automaticamente as
configuraes do ISS, sem precisar configur-lo tambm.
56
RESULTADOS E ANLISES
Para mostrar as vantagens ou desvantagens da utilizao de tcnicas e boas prticas
para dispositivos mveis, testes foram realizados. Os testes foram realizados utilizando um
smartphone com acesso ao servidor e com ferramentas que analisam o desempenho da
aplicao web que foi proposta.
Neste captulo ser apresentada a anlise dos dados coletados e seus resultados.
Sem cache
Telas
Requisies
Login
30
Segundos
1.18,23
Com cache
KBytes Requisies
1.900
28
Segundos
45,13
KBytes
44,4
57
1900
44,4
1855,6
118,23
45,13
33,1
Segundos
30
28
2
Requisies
0
200
400
600
800
1000
1200
1400
1600
1800
Sem cache
Requisies
30
Segundos
118,23
KBytes
1900
Com cache
28
45,13
44,4
Reduo
33,1
1855,6
2000
Utilizando a rede GPRS podemos observar que o tempo foi extremamente alto por
conta da baixa capacidade de transferncia de informaes do dispositivo mvel. J quando
utilizamos a rede 3G que mais comum entre os dispositivos mveis, notamos uma diminuio
desse tempo significante, com uma reduo de 77,88%. Na Tabela 5 podemos observar essa
diferena na reduo do tempo entre a utilizao das redes GPRS e 3G.
Tabela 5 - Comparao da utilizao do cache na aplicao utilizando a rede 3G.
Sem cache
Telas
Requisies
Login
30
Segundos
17,30
Com cache
KBytes Requisies
1.900
28
Segundos
4,12
KBytes
44,4
58
44,4
Segundos
17,3
4,12
13,18
1900
1855,6
30
28
2
Requisies
0
200
400
600
800
1000
1200
1400
1600
1800
Sem cache
Requisies
30
Segundos
17,3
KBytes
1900
Com cache
28
4,12
44,4
Reduo
13,18
1855,6
2000
A rede Wi-Fi no poder ser comparada com as redes anteriores GPRS e 3G, pois
depende muito da conexo que disponibilizada na LAN. Na Tabela 6 foram realizados as
comparaes utilizando a conexo Wi-Fi.
Tabela 6 - Comparao da utilizao do cache na aplicao utilizando a rede Wi-Fi.
Sem cache
Telas
Requisies
Login
30
Segundos
2,60
Com cache
KBytes Requisies
1.900
28
Segundos
1,08
KBytes
44,4
59
1900
44,4
Segundos
2,6
1,08
1,52
Requisies
30
28
2
0
1855,6
200
400
600
800
1000
1200
1400
1600
1800
Sem cache
Requisies
30
Segundos
2,6
KBytes
1900
Com cache
28
1,08
44,4
Reduo
1,52
1855,6
2000
Como podemos observar a rede mvel tem uma grande influncia no carregamento
das aplicaes web. Na tela de Login por ser a primeira quando acessamos a aplicao, tornouse perceptvel a importncia da utilizao dessa tcnica. Ela teve uma reduo de 6,66% das
quantidades de requisies e 97,66% na reduo do tamanho dos arquivos transferidos,
tornando surpreendente a reduo de 1.855,6 KBytes do seu tamanho, utilizando apenas do Web
Cache. As demais telas no houveram requisies, por serem carregadas ao acessar a aplicao
web mvel.
Com esta reduo significante, podemos observar que muito importante a utilizao
desta tcnica, para evitar o uso desnecessrio dos arquivos transferidos, e diminuindo o custo
de utilizao da bateria e da rede mvel. Com isso torna-se a experincia de uso do usurio
mais agradvel e eficiente, pois aplicao web ser carregada mais rapidamente e com menos
custos.
60
Telas
Login
Sem Gzip
Com Gzip
KBytes
1.9
KBytes
1.399,92
Reduo
KBytes
500,08
Porcentagem
26,32 %
1399,92
500,08
200
400
600
800
1000
Sem Gzip
Kbytes
1900
Com Gzip
1399,92
Reduo
500,08
1200
1400
1600
1800
2000
61
Telas
Login
Tamanho
original
1.5 KBytes
Tamanho
reduzido
937,05 KBytes
Reduo
562, 95 KBytes
37,53 %
937,05
562,95
0
200
400
600
800
Tam. Original
Kbytes
1500
Tam. Reduzido
937,05
Reduo
562,95
1000
1200
1400
1600
Como j citado acima a tela de Login por ser a primeira quando acessamos o prottipo,
onde tem a maior carga e onde podemos observar que teve uma reduo significante no seu
tamanho. Aps aplicado a tcnica nos arquivos JavaScript, eles tiveram uma reduo de um
62
tero do seu tamanho representando 562,95 KBytes e 37,53% do seu tamanho original.
Na Tabela 9 veremos os resultados quando aplicamos a tcnica nos arquivos CSS, onde
os mesmo tambm tiveram uma reduo interessante.
Tabela 9 - Comparao entre os arquivos CSS minificados.
Telas
Login
Tamanho
original
397 KBytes
Tamanho
reduzido
249 KBytes
Reduo
148 KBytes
37,27 %
249
148
0
50
100
150
200
250
Tam. Original
Kbytes
397
Tam. Reduzido
249
Reduo
148
300
350
400
450
63
Na tela de login podemos observar que temos dois campos, um sendo de texto e outro
de senha, tambm tem uma opo de ficar autenticado no sistema e um boto para entrar. Todos
os componentes se adequaram perfeitamente ao tamanho da resoluo.
Na Figura 2323 ilustrado a tela de Twitter, onde aparece uma lista com o assunto
pesquisado no Twitter.
64
Como podemos observar essa tela bem parecida com a anterior. Temos alguns
componentes como campo para pesquisa, o boto para efetuar a busca e uma lista. Entretanto
na lista aparece apenas as imagens sem os textos e os hiperlinks. Todos os componentes se
enquadraram adequadamente a resoluo.
65
Na Figura 255 ilustrado um formulrio para contato, com diversos campos para
preenchimentos.
Figura 25 - Tela de Contato (A) resoluo de 480x800 e (B) 1280x800.
A tela de relatrio tem um grfico no formato de pizza, onde foram divididos em quatro
categorias, sendo elas: timo, bom, regular e ruim. Podemos observar que o grfico diminuiu o
66
4.5.1 YSLOW
A ferramenta YSlow tem como principal caracterstica, analisar o desempenho das
pginas web, examinado todos os componentes da pgina, incluindo os criados dinamicamente
usados pelo JavaScript. Alm de examinar ele oferece sugestes de como pode ser melhorada
a pgina [YSLOW, 2014].
A equipe de desenvolvimento da Yahoo! identificou 34 critrios que podem afetar
notavelmente o desempenho das pginas. Visando diminuir os problemas a equipe criou a
ferramenta YSlow, que se baseia em 23 dos 34 critrios. Esses critrios so listados em ordem
de importncia e eficcia [YSLOW, 2014].
O mtodo de anlise baseado em notas que vo da letra A ao F, e tambm em
pontuaes que vo do 0 ao 100, conforme a avaliao dos 23 critrios. Em uma pesquisas
realizada pela empresa Yahoo!, identificou que o tempo de resposta de uma pgina pode ser
melhorado entre 25% a 50%, seguindo os critrios [YSLOW, 2014].
YSlow pode ser instalado em alguns navegadores, como o Firefox, Chrome, Opera,
Safari, entre outros. Pode-se tambm realizar testes em dispositivos mveis, com a utilizao
do Bookmarklet integrando com o PhantomJS [YSLOW, 2014].
67
Resultados
Utilizamos o sistema YSlow no prottipo desenvolvido afim de analisarmos a nota
aps aplicados as tcnicas de otimizao de aplicaes web. Na Figura 277 mostrado a
pontuao obtida nos testes realizados pela ferramenta.
Figura 27 - Resultado obtido pela ferramenta YSlow.
A nota que a ferramenta apresentou sobre o prottipo, foi classe A que a maior nota
entre as letras, j na pontuao numrica obteve 91. As pontuaes no obtidas referem-se a
utilizao de arquivos do tipo javascript que esto separados por telas, divido a arquitetura
inicial do prottipo, a recomendao da ferramenta com que se reduza a quantidade de
arquivos para que o carregamento seja mais rpido.
4.5.2 PAGESPEED
O PageSpeed uma ferramenta desenvolvida pela Google, que segue a mesma linha
da ferramenta oferecida pela Yahoo!, avaliando o desempenho da pgina web. Porm o Google
foi mais alm em sua ferramenta, adicionando alguns critrios que ao analisarem a aplicao
68
ou site, serviro tanto para os computadores de mesa, como para os dispositivos mveis. E
utiliza apenas os critrios que so diretamente ligados as pgina, independentemente da
qualidade na conexo de rede [PAGESPEED, 2014].
A ferramenta tambm utiliza o mtodo de pontuao, para avaliar o desempenho das
pginas que podem variar entre 0 a 100. Pela ferramenta estar em constante atualizaes,
as pontuaes podero ser modificadas medida que so adicionados novos critrios ou
melhoria em suas anlises [PAGESPEED, 2014].
Inicialmente a PageSpeed foi desenvolvida como uma extenso para o navegador
Chrome, entretanto a Google percebeu uma necessidade de disponibilizar para outros
navegadores, abordando um maior nmero de pblico. Atualmente a PageSpeed fornece uma
anlise semelhante online, e com extenses a os navegadores Google Chrome e Firefox
[PAGESPEED, 2014].
Resultados
Utilizamos tambm a ferramenta PageSpeed para avaliarmos a aplicao
desenvolvida. Na Figura 288 mostrado o resultado obtido pela ferramenta desenvolvido pela
Google.
Figura 28 - Resultado obtido pela ferramenta PageSpeed.
69
1900
1855,6
1900
1900
1800
1600
1399,92
1400
1189,05
1200
1000
710,95
800
500,08
600
400
200
0
44,4
Cache
Gzip
Minificar
Sem aplicar
1900
1900
1900
Aplicando
44,4
1399,92
710,95
Resultados
1855,6
500,08
1189,05
70
71
CONCLUSO
medida que cresce o mercado de dispositivos mveis, aumenta tambm a variedade
dos aplicativos que so desenvolvidos. Empresas de desenvolvimento esto criando cada vez
mais aplicaes que necessitam de trocas de informaes pelas redes mveis. Entretanto, apesar
do avano tecnolgico na rea mvel, as transferncias de informaes via rede mvel se
tornaram um fator preocupante devido a suas limitaes.
No presente trabalho, foi iniciado um estudo sobre as tcnicas de otimizaes voltadas
para dispositivo mveis que tem como principal objetivo analisar o que o mercado, fruns e
instituies de pesquisas podem oferecer para ganharmos qualidade nos apps.
O prottipo implementado nesse trabalho teve como principal finalidade, aplicar
algumas das tcnicas recomentadas no documento do grupo W3C, esse documento busca criar
um padro internacional, garantindo um bom desenvolvimento na evoluo das aplicaes
voltadas para dispositivos mveis.
Ainda na fase de desenvolvimento, tambm foi utilizado o framework Sencha Touch,
onde busca aproximar a aplicao web com a nativa. Aps o termino da implementao do
prottipo, foram realizados testes de performance com as ferramentas PageSpeed e YSlow,
onde pontua a performance da aplicao.
Com base nos resultados dos testes e no documento da melhores prticas, verificou-se
a importncia de aplicar algumas otimizaes na aplicao. Como podemos observar nos
resultados obtidos pelas ferramentas, o prottipo teve uma avaliao com a pontuao alta
podendo chegar a pontuao mxima, apenas aplicando algumas tcnicas de otimizao.
Lembrando que no processo de implementao algumas medidas tero de ser bem
analisadas antes da criao de uma aplicao, pois as necessidades influenciam diretamente na
escolha da arquitetura, tecnologias, ferramentas, banco de dados, entre outros.
A principal concluso do projeto que podemos ressaltar, mensurar o quando que as
tcnicas que foram aplicadas puderam oferecer de ganho na eficincia e na performance da
aplicao web.
72
73
REFERNCIAS
ERICSSON.
Ericsson
Mobility
Report.
Disponvel
<http://hugin.info/1061/r/1790097/615436.pdf>. Acessado em junho de 2014.
em:
GOOGLE SERVICE. Nosso Planeta Mobile Brasil: Como entender o usurio de celular.
Disponvel em <http://services.google.com/fh/files/misc/omp-2013-br-local.pdf>. Acessado
em novembro de 2014.
APPLE. App Store Downloads Top 100 Million Worldwide. Disponvel em:
<http://www.apple.com/pr/library/2008/09/09App-Store-Downloads-Top-100-MillionWorldwide.html>. Acessado em maio de 2014.
GOOGLE.
Introducing
Google
Play
All
Your.
Disponvel
<http://googleblog.blogspot.com.br/2012/03/introducing-google-play-all-your.html>.
Acessado em maio de 2014.
em:
Disponvel
em:
OEHLMAN, Damon; BLANC, Sbastien. Pro Android Web Apps. Develope for Android
using HTML5, CSS3, & Java script, Apress, 2011.
NOKIA. Arquitetura de aplicaes multiplataforma para dispositivos mveis. Disponvel
em:
<
http://developer.nokia.com/community/wiki/Arquitetura_de_aplicaes_multiplataforma_par
a_dispositivos_mveis>. Acessado em maio de 2014.
74
SENCHA. HTML5 App Development for Desktop and Mobile. JavaScript Frameworks
and Dev Tools from Sencha. Disponvel em: <http://www.sencha.com>. Acessado em abril
de 2014.
JQUERY. jQuery Mobile. Disponvel em: <http://jquerymobile.com>. Acessado em abril de
2014.
DOJO. Unbeatable JavaScript Tools - The
<http://dojotoolkit.org>. Acessado em abril de 2014.
Dojo
Toolkit.
Disponvel
em:
75
76
YAHOO DEVELOPER NETWORK, Best Practices for Speeding Up Your Web Site,
Disponvel em: <https://developer.yahoo.com/performance/rules.html>. Acessado em outubro
de 2014.
YSLOW, YSlow Official Open Source
<http://yslow.org>. Acessado em outubro de 2014.
Project
Website.
Disponvel
PAGESPEED,
Make
the
Web
Faster.
Disponvel
<https://developers.google.com/speed>. Acessado em outubro de 2014.
em:
em:
WARGO, J. M. (2012), Phonegap Essentials: Building Cross-Platform Mobile Apps, AddisonWesley Professional.
MUNRO, J. (2012), 20 Recipes For Programming Phonegap:
Development For Android And Iphone, O'reilly Media.
Cross-Platform Mobile
CASTLEDINE, Earle, Max Wheeler, and Myles Eftos. Build mobile websites and apps for
smart devices. Sitepoint, 2011.
SRGIO, Lopes. A Web Mobile: Programe para um mundo de muitos dispositivos. Caso do
Cdigo, 2013.
77