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)
  • LinkedIn
  • 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
  • Google
  • 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