Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap

42
Creative Commons License Biolab by Adobe / Yohei Shimomae is licensed under a Creative Commons Attribution-NonCommercial 3.0 Unported License. Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap. Thiago Colares Chaves @thicolares www.agilize.com.br 03/12/2014

description

Visão geral sobre HTML5, AngularJS e PhoneGap. E como combinar essas e outras ferramentas para criar aplicativos híbridos e multiplataformas. Aplicativos móveis híbridos são aplicativos nativos que empacotam aplicações web e oferecem a elas APIs dos dispositivos. Palestra apresentada no I WSORT, workshop do GSORT, no IFBA (Instituto Federal da Bahia).

Transcript of Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap

Page 1: Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap

Creative Commons LicenseBiolab by Adobe / Yohei Shimomae is licensed under a Creative Commons Attribution-NonCommercial 3.0 Unported License.

Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap.

Thiago Colares Chaves @thicolareswww.agilize.com.br

03/12/2014

Page 2: Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap

Agenda

● Motivação● O que é AngularJS?● O que é PhoneGap?● Criando um app com PhoneGap: visão geral● Considerações

Page 3: Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap

Motivação

Page 4: Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap

“Desenvolver aplicativomóvel: nativo ou não?“

Quem nunca?

Page 5: Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap

Depende, óbvio.

Page 6: Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap

Aplicação Nativa

Prós● Acesso completo às

funcionalidades do dispositivo;

● Ótima Performance;● Elementos de interface;● Pacote pra Loja de apps.

Contras● Desenvolvimento caro;● Não é multi-plataforma.

Page 7: Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap

Aplicação Web

Prós● Desenvolvimento barato;● Multi-plataforma;● Peformance mediana.

Contras● Acesso reduzido à

funcionalidades do dispositivo;

● Não empacota pra loja.

Page 8: Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap

Aplicação Híbrida

Prós● Bom acesso às

funcionalidades do dispositivo

● Boa performance;● Desenvolvimento barato;● Multi-plataforma;● Empacota pra loja.

Contras● Sem UI nativa

http://martinfowler.com/articles/multiMobile/#web-platform

Page 9: Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap

Facebook versus Sencha

http://www.sencha.com/blog/the-making-of-fastbook-an-html5-love-story

Page 10: Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap

O que é AngularJS?

Page 11: Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap

AngularJS é umHTML aprimorado para

aplicativos web!

Page 12: Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap

Framework JavaScript client-side que extende o HTML.

<ul class="messages">    <li ng­repeat="entry in log">{{ entry.msg }}</li></ul>

Page 13: Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap

Criado em 2009 por Miško Hevery e Adam Abrons

(funcionários do Google)

Page 14: Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap

Código livre, mantido pelo Google e por uma comunidade

vibrante.

Page 15: Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap

AngularJS no Open HUB (antigo Ohloh): https://www.openhub.net/p/angularjs. Acessado em 29/11/2014

Page 16: Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap

AngularJS no Open HUB (antigo Ohloh): https://www.openhub.net/p/angularjs. Acessado em 29/11/2014

Page 17: Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap

Facilita a criação de Single Page Applications

Page 18: Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap

Programação Declarativa

$http( '/myEndpoint.json' ).then( function (response) {    $scope.log.push( { msg: 'Data Received!' } );});

<ul class="messages">    <li ng­repeat="entry in log">{{ entry.msg }}</li></ul>

● Imperativa nas regras de negócio

● Declarativa e muito expressiva na view

Page 19: Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap

Flexibiliza e separa bem Apresentação (view e controller)

do Domínio (model)

Page 20: Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap

Principais recursos:

Page 21: Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap

Routes

Page 22: Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap

Data binding

Page 23: Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap

Data binding<div>  <label>Name:</label>  <input type="text" ng­model="yourName" 

placeholder="Enter a name here">  <hr>  <h1>Hello {{yourName}}!</h1></div>

Page 24: Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap

Data binding<div>  <label>Name:</label>  <input type="text" ng­model="yourName" 

placeholder="Enter a name here">  <hr>  <h1>Hello {{yourName}}!</h1></div>

Page 25: Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap

Models

Page 26: Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap

Templates / Views<div>  <label>Name:</label>  <input type="text" ng­model="yourName" 

placeholder="Enter a name here">  <hr>  <h1>Hello {{yourName}}!</h1></div>

Page 27: Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap

Data access

Page 28: Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap

O que é PhoneGap?

Page 29: Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap

PhoneGap é um framework que lhe permite criar mobile apps

usando HTML, CSS e JS.

Page 30: Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap

Contextualizando

● 2008: PhoneGap nasceu na Niboti Software ● 2011: Niboti já colaborava com a ASF (Apache)● 2011: Adobe adquire a Niboti● Adobe / Niboti doam o código do PhoneGap para a ASF● Lá vira Apache Callback, então Apache Cordova

Page 31: Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap

PhoneGap x Apache Cordova

● PhoneGap é uma distribuição do Apache Cordova● Ou: Apache Cordova é a engine do PhoneGap● Apache Cordova e PhoneGap são FLOSS● PhoneGap incorpora funcionalidades da Adobe● Ex.: PhoneGap Build, Adobe Shadow

FLOSS: Free/Libre and Open Source Software

Page 32: Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap

O que o PhoneGap oferece

● Empacota seu HTML, CSS e JS em uma app nativa● Cria uma ponte pra seu JS acessar funções nativas● Alguns plugins: acelerômetro, câmera, contatos, sistema

de arquivos, tocador de mídia e gravação, rede, geolocalização, notificação e outros*.

● Você pode criar ou instalar novos plugins.

*http://phonegap.com/about/feature/

Page 33: Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap

PhoneGap não provê assistência para criar a interface com o usuário

propriamente dita.

Page 34: Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap

Auxílio na criação da interface com usuário

● jQuery Mobile● Ionic● Mobile AngularJS UI● Sencha Touch● Kendo UI Complete● AppGyver’s Steroids● Enyo● TopCoat

*http://phonegap.com/about/feature/

Page 35: Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap

Criando uma app com PhoneGap: uma visão geral.

D.I.Y.: http://mobileangularui.com/blog/your-first-phonegap-app-with-mobile-angular-ui/

Page 36: Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap

Dependências (e alguns auxílios)

Page 37: Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap

Passos para o “Hello World”

$ phonegap create meuAplicativo

$ cd meuAplicativo

$ yo mobileangularui

$ gulp build

# você terá que instalar a Android SDK

$ cordova platform add android

$ phonegap run android # ou ios, blackberry etc.

Page 38: Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap

Considerações finais

Page 39: Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap

Creative Commons LicenseBiolab by Adobe / Yohei Shimomae is licensed under a Creative Commons Attribution-NonCommercial 3.0 Unported License.

PhoneGap Build

Page 40: Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap

Cuidados com a experiência do usuário

● Imitar look-n-feel nativo pode ser uma cilada, Bino!– O look é mais fácil, já o feel...

● Se seu aplicativo depende de uma UI baseada em elementos nativos, PhoneGap pode não ser a sua;

Page 41: Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap

Finalmente

● As capacidades do HTML5 ainda podem diferenciar entre uma SDK e outra.– Alguns frameworks levam isto em consideração (e.g.:

Sencha). – Na dúvida: http://mobilehtml5.org/ ou http://caniuse.com/

● HTML5 recebeu o rótulo de “Recomendação” da W3C em Outubro de 2014. Experimente!

W3C: http://www.w3.org/blog/news/archives/4167WhatWG: https://html.spec.whatwg.org/multipage/

Page 42: Aplicações Híbridas para Dispositivos Móveis com AngularJS e PhoneGap

Obrigado!Thiago Colares Chaves @thicolareswww.agilize.com.br