Nativo vs. Cross-Platform Caminhos e Alternativas
@SuelenGC
Obrigada!
@SuelenGC | www.suelengc.com.br
Arquiteta de Software no MapLink
Instrutora na Caelum
Suelen Goularte Carvalho
Quando pensamos em
desenvolvimento mobile,
temos que considerar pelo
menos 2 plataformas.
IDC: Android, Windows Phone see robust growth, iOS plateaus, BlackBerry and others flailing
IDC - Top Smartphones Operating Systems,
Shipments and Market Share
Device APIs
010110101010100
101010100010001
001001001111010
101110100011110
101010110101000
10001000101...
Aplicação Nativa
Nativo
Browser Mobile
<html>
<body>
…
</body>
</html>
Código Web
Device APIs
Híbrido
Container Nativo
<html>
<body>
…
</body>
</html>
Código Web
Web
Cross-Plataform
Basicamente, temos 3 formas de
desenvolver app’s mobile
The obvious route is to build a native
app for each device.
Martin Fowler, QConSP 2012
Nativo Aplicativos nativos são desenvolvidos para uma plataforma específica.
O desenvolvimento é feito utilizando linguagem, SDK e IDE de cada
plataforma.
xCode
+
ObjectiveC
Eclipse
+
Java
Visual Studio
+
C#
Padrões de UI e UX
Instalação pelas App Store’s
Acesso a recursos avançados
Ferramentas de testes
SDK facilita no desenvolvimento
Vantagens
Melhor usabilidade!
Tempo e esforço para lançar em todas as
plataformas
Conhecimento específico
Muitos projetos para manter
Atualização depende das App Store’s e do
usuário
Custo!
Desvantagens
Cross-Plataform Aplicativo cross-plataform podem ser instalados em mais de uma
plataforma com pouco ou nenhum esforço. Basicamente são divididos
em híbridos e webapp’s.
Existem muitas ferramentas para o desenvolvimento e podem ser
usadas diversas linguagens, sendo muito comuns as web.
Por atender várias plataformas mobiles diferentes
Fácil disponibilizar novas funcionalidades
Não é necessário passar por Apple/Play Store ou ter que
esperar o usuário baixar uma versão nova
Não precisa se submeter a nenhuma regra específica das
app store’s
Vantagens
A UX do aplicativo não terá o tom característico do
dispositivo.
Testar aplicativos cross-platform pode ser considerado
mais complicado, uma vez que diferentes
Pode ser mais difícil ou até mesmo impossível trabalhar
offline
Plataformas possuem diferentes comportamentos e bugs
Desvantagens
Funcionalidade Nativo Híbrido Web
Linguagem de desenvolvimento Apenas nativo Nativo e web ou
apenas web Web apenas
Portabilidade - Alto Alto
Acesso a recursos específicos do
device (acelerômetro, GPS, câmera) Alto Médio Baixo
Conhecimento prévio Baixo Alto Alto
Gráficos avançados Alto Médio Médio
Flexibilidade de deploy Baixo (depende
da app store)
Baixo
(normalmente
pela appstore)
Alto
Experiências de instalação Alto (pela
appstore)
Alto (pela
appstore)
Baixo (acesso
pelo browser)
Em resumo...
Conclusão:
Hoje temos diversas opções e
ferramentas, para todos os
bolsos e objetivos.
Pense sobre eles e
escolha o seu!
Dúvidas?
@SuelenGC | www.suelengc.com.br
Referências:
Aplicações Mobile: Web ou Nativa?
http://blog.caelum.com.br/aplicacoes-mobile-web-ou-nativa/
Facebook for iOS goes native, waves goodbye to HTML 5
http://www.theverge.com/2012/8/23/3262782/facebook-for-ios-native-app
The FT web app
http://labs.ft.com/articles/the-ft-web-app/
Wikipidia - Cross-Pataform
http://en.wikipedia.org/wiki/Cross-platform#Challenges_to_cross-platform_development
Mobile applications: native v Web apps – what are the pros and cons?
http://mobithinking.com/native-or-web-app
Which Cross Platform Mobile Development Platform Should You Choose? (+)
http://simpleprogrammer.com/2013/07/01/cross-platform-mobile-development/
Benefits and Disadvantages of Developing Cross-Platform Mobile Apps (+)
http://socialmediatoday.com/node/1613271
Wikipidia - Mobile application development
http://en.wikipedia.org/wiki/Mobile_application_development#Mobile_application_testing
IDC: Android, Windows Phone see robust growth, iOS plateaus, BlackBerry and others flailing
http://www.phonearena.com/news/IDC-Android-Windows-Phone-see-robust-growth-iOS-plateaus-
BlackBerry-and-others-flailing_id46161