Cordova: HTML no mundo mobile
Goiânia, 28 de março de 2015
Frederico Galvão
CTO/Co-fundador da Tippz
- Formando em Engenharia de Computação UFG (só falta o projeto final, eu juro)
- 6 anos desenvolvendo com tecnologias web
- 2.5 anos desenvolvendo aplicativos mobile com tecnologias web
- Escravo de javascript (assim como a maioria de vocês será)
Tippz Mobile
- Criado utilizando o Cordova*
- 2 desenvolvedores + 1 web designer
- Primeira versão estava disponível para Android em menos de 2 meses
- Versão para iOS foi criada em menos de 1 mês após isso
- Versão de teste para WP8 criada em menos de duas semanas (mas foi postergada, "Internet Explorer do mundo mobile")
- Nada de código nativo criado manualmente
Cordova
Por que ele existe?
Quer fazer uma aplicação para iOS? Aprenda tudo sobre Objective-C + xCode + iOS + MacOS + developer.apple.com + ...
Quer fazer uma aplicação para Android? Aprenda tudo sobre Java + Eclipse + Android Studio + @2.3 + @5.0 + developer.android.com + ...
Quer fazer uma aplicação para Windows Phone? Aprenda tudo sobre C# + Visual Studio + Windows + @WP7 + msdn.com
...
...
...
Cordova
Por que ele existe?
Mas e os programadores que eu já tenho?
Vou ter que contratar muita gente de áreas diferentes!
Vou ter que criar várias versões diferentes do mesmo aplicativo!
Vou ter que MANTER várias versões diferentes do mesmo aplicativo!
Cordova
Por que ele existe?
Phonegap
Por que ele existe?
- Todas elas ainda assim exigiam o domínio de uma nova plataforma de desenvolvimento:
- Novos SDKs
- Novos elementos de UI
- Nova sintaxe ou nova linguagem de programação

Phonegap
Por que ele existe?
Por que não usar uma plataforma e tecnologias que já existem e já são universais?
Que loucura! Você tá doido Frederico? Não existe tal coisa.

Bem vindo à web
Cordova
Por que ele existe?
- Criado em 2009, adquirido pela Adobe em 2011 (Phonegap*)
- Não é um framework, é uma plataforma (ou uma ferramenta)
- Foi criado com o objetivo de habilitar a plataforma web que já existe, no mundo mobile, de forma transparente e de acordo com os padrões da W3C
- Nenhuma linguagem nova
- Nenhum SDK diferente
- Novas APIs foram criadas, mas farão parte da especificação HTML mais cedo ou mais tarde
- Nenhum elemento de UI forçado
Cordova
Por que ele é suicida?
O objetivo final do Cordova é deixar de existir.
- Praticamente todas as plataformas atuais estão se movendo em direção à web:
- iOS8: Nova webview alinhada ao Safari
- iOS8: Nitro javascript habilitado na nova webview(!)
- Android 4.4: Nova webview alinhada ao Chrome 30(!)
- Android 5.0: Webview é um apk independente!
- Algumas já nasceram entendendo a web como membro da família:
- FirefoxOS + Tizen + SailfishOS + Windows Phone 8: HTML+JS+CSS são tecnologias nativas
Cordova
Por que ele é suicida?
Em um futuro ideal, todas as plataformas entenderão a web nativamente, logo não será mais necessária uma casca ou nenhum tipo de emulação explícita (webviews).
Quando esse dia chegar, o Cordova terá cumprido sua missão e deixará de existir.
FirefoxOS e W8/WP8 já são assim.
Cordova
Problems?
http://lmgtfy.com/?q=(cordova+OR+phonegap)+slow
Aproximadamente 517.000 resultados
http://lmgtfy.com/?q=(cordova+OR+phonegap)+bad+UI
Aproximadamente 351.000 resultados
Cordova
De quem é a culpa?
Como foi dito, o Cordova não é um framework.
- Ele não implementará elementos de UI pra você.
- Ele não implementará o banco de dados pra você.
- Ele não implementará transições de tela pra você.
- Ele não irá buscar os dados no servidor pra você.
Cordova
De quem é a culpa?
O Cordova diminui o número de tecnologias e conhecimento que você precisa ter pra desenvolver um aplicativo mobile.
Mas isso não significa que você não precisa ter conhecimento algum sobre desenvolvimento. E tem gente que acha isso.
Cordova
De quem é a culpa?
A culpa de aplicações mal feitas, com design pobre, péssima performance, usabilidade não planejada,
é nossa.
Cordova
De quem é a culpa?
Jogar o jQuery Mobile, Twitter Bootstrap e 256 plugins do jQuery em uma panela não fará uma sopa de qualidade por si só.
É um celular que está executando seu código, não um notebook com 8 núcleos, 8GB de memória, SSD, ligado na tomada. Pela primeira vez você realmente tem que se preocupar com performance ao desenvolver com tecnologias web.
Cordova
Casos de sucesso
Eles fizeram certo!
- Wikipedia (10.000.000 - 50.000.000 só no Android)
- HealthTap (1.000.000 - 5.000.000 só no Android)
- Untappd (500.000 - 1.000.000 só no Android)
- TripCase (500.000 - 1.000.000 só no Android)
- Rormix (10.000 - 50.000 só no Android)
- Salesforce
- Zynga (Mafia Wars)
- Logitech (Logitech SqueezeBox Controller)
- BBC Olympics
Cordova
Se ele não é um framework, ó meu deus, como eu faço uma aplicação bem feita?
Fazendo tudo à mão.
Cordova
Bom, não necessariamente (ou não mais).
Frameworks e bibliotecas começaram a surgir com foco especial em desenvolvimento mobile, e alguns antigos foram remodelados para este fim.
- Ionic Framework
- Twitter Bootstrap 3.x
- OnsenUI Framework
- SenchaUI
- KendoUI
Cordova
Então tem jeito?
Tem. Só não vá achando que o sobrinho da sua amiga que faz sites em troca de lanche irá te surpreender.
Uma aplicação mobile, por mais simples que seja, requer planejamento, estudo de UX, engenharia de software, e conhecimentos gerais.
Cordova
E esse tal de Phonegap?
É dele que estamos falando. Ou não?
Você sabe a diferença entre Linux e Ubuntu?
Pois é. O Ubuntu é uma distribuição do Linux. O código do Linux está todo alí, porém algumas coisas foram customizadas, alguns serviços agregados, uns aplicativos adicionados, e um pacote maior é entregue no final.
É exatamente a mesma coisa com o Cordova -> Phonegap.
Cordova
E esse tal de Phonegap?
O Phonegap foi adquirido pela Adobe em 2011, e sua alma foi doada para a Apache Software Foundation pra continuar vivendo como um projeto Open Source.
O desenvolvimeto do núcleo é feito no Cordova.
Várias empresas e organizações participam do desenvolvimento
- Adobe
- Blackberry
- IBM
- Intel
- Microsoft
- Mozilla
Cordova
E esse tal de Phonegap?
O Phonegap é uma distribuição do Cordova.
Serviços específicos da Adobe são agregados ao Phonegap, mas em geral existe compatibilidade total entre os dois.
Alguma dúvida?
Isso é tudo, pessoal.
Obrigado!
Cordova - PontoGet Coworking
By Frederico Galvão
Cordova - PontoGet Coworking
Apresentação sobre Cordova: HTML no mundo mobile
- 160