Sei sulla pagina 1di 20

A Quantitative Assessment of Performance

in Mobile App Development Tools

Magalhes Apolonio, Marcus Botelho


Objetivo do Artigo
Apresentar os resultados de uma anlise de performance quantitativa de
um aplicativo desenvolvido com ferramentas de desenvolvimento nativas
e multiplataformas (CPT)
Para os testes, vrios parmetros de performance foram estabelecidos e
medidos para duas verses nativas (iOS e Android) e duas CPTs tidas
como de alta relevncia (Ionic/PhoneGap e Xamarin)
Definies Iniciais
Classificao das CPTs, segundo o autor:

Web Apps
Web-To-Native Wrappers
Runtime
Source Code Translators
App Factories
Definies Iniciais
Escolha das CPTs para teste:

Ionic/PhoneGap
PhoneGap de longe a mais conhecida Web-To-Native Wrapper
O cdigo Ionic interage com as funcionalidades nativas da plataforma ao ser executado
em um webview PhoneGap

Xamarin
Source Code Translator promissor
A traduo se faz diferente para iOS e Android (AOT e JIT, respectivamente)
Possui um look and feel mais prximo do nativo
Tem como maior desvantagem a quantidade de cdigo especfico da plataforma que
deve ser escrito sem reaproveitamento em outras plataformas
Handhelds Escolhidos
Escolhidos aparelhos low-end e
high-end para cada SO
Realizao de factory reset nos
aparelhos
No foi realizado root nem
jailbreak em nenhum deles
O Aplicativo em teste
PropertyCross uma iniciativa gerenciada pela comunidade
Tem como objetivo principal avaliar o quanto de cdigo especfico da
plataforma necessrio ser escrito ao desenvolver um aplicativo em um
CPT
Programadores podem contribuir adicionando sua implementao da
aplicao em um CPT que ainda no foi utilizado
Tem como funo buscar propriedades que esto venda ou aluguel. A
localizao pode ser inserida manualmente ou obtida por GPS. O
histrico de busca e favoritos so mantidos localmente.
O Aplicativo em teste
Parmetros avaliados
Tempo de iniciao
Uso de memria RAM (Foreground e
Background)
Uso de CPU
Espao em disco (App instalado e
tamanho da apk/ipa)
Resultados

Contraste entre high/low-end Diferena desprezvel


para PhoneGap
Contraste entre Android e iOS
para Xamarin
Resultados

Uma vez que o runtime do Contraste entre high/low-end


Xamarin inicia, tanto ele como a
Contraste entre nativo e
app nativa rodam cdigo binrio
multiplataforma
PhoneGap possui melhor resposta
in-app no Android do que iOS
Resultados
Contraste entre iOS e Android
Semelhana entre nativo e
Xamarin
Contraste absoluto/relativo
do PhoneGap no iOS e
Android
Contraste Launch/Usage
Resultados

Contraste para Xamarin entre iOS Excesso do Xamarin: Runtime


e Android
Excesso do PhoneGap:
Biblioteca
Concluses
CPTs sempre geram uma menor performance quando comparados com
implementaes nativas
No geral, CPTs no diminuem tanto a UX, especialmente para os
aparelhos high-end
A queda de performance no linear com a complexidade do aplicativo
A performance do aplicativo no depende apenas das caractersticas da
CPT mas tambm do suporte do SO para ela
Concluses
CPTs podem aumentar a mantenabilidade de aplicaes
Apesar das aplicaes nativas poderem acessar sensores de forma mais
eficaz, o impacto disso na diferena do consumo de bateria pequeno
Entre os dois tipos de CPT apresentados, Source Code Translators devem
ser mais usados para aplicaes de uso intensivo de CPU, enquanto
Web-To-Native Wrappers devem ser escolhidos se um design de UI mais
elaborado for necessrio
Escolha de plataforma de desenvolvimento para os
clientes
1 cliente - Delivery de Comidinhas
Abordagem escolhida: Web-To-Native Wrapper

Motivo:
No necessita de muito cdigo especfico de plataforma para a UI
Atualizaes server-side podem ser frequentes, evitando atualizaes
desnecessrias do aplicativo
Por ser algo para um pblico mais seleto, provvel aparelho de melhor
performance, diminuindo queda de desempenho
Conexo com Internet necessria, de toda forma
2 cliente - Rede Social de Fotos Restrita
Abordagem escolhida: Web-To-Native Wrapper

Motivo:

Menor custo para a empresa com o desenvolvimento


Desnecessrio um desempenho timo da aplicao
Conexo com Internet necessria, de toda forma
3 cliente - Jogo com AR para Pscoa
Abordagem escolhida: Web-To-Native Wrapper

Motivo:
Dependendo do tamanho e da experincia da equipe, no haver tempo
hbil para desenvolvimento nativo para cada SO
Grau de complexidade da aplicao no diretamente proporcional
queda de desempenho de CPT
Atualizaes multiplataforma so mais rpidas para a equipe de
desenvolvimento
Plugin para PhoneGap: Wikitude
Todos os desenvolvimentos foram
definidos para Web-to-Native Wrapper a
fim de se manter a consistncia da
equipe alm de possveis permutas entre
funcionrios que venham desfalcar.
Perguntas?

Potrebbero piacerti anche