SlideShare uma empresa Scribd logo
1 de 79
Baixar para ler offline
Dev Mobile
   Multiplataforma e
    Open Source com
Sencha Touch e PhoneGap

      Loiane Groner
Loiane Groner
Java JUG Leader
Sencha Community Leader

                          7+ XP Java
                          4+ XP Sencha
Software Developer
Manager @ Citibank
                     http://loiane.com
                          @loiane
Autora Técnica
Internacional
1



    Sencha
    Touch
Primeiro framework Javascript para
desenvolvimento de apps mobile ricas
        usando padrões web
Tem Acesso
  Nativo?
Acesso Nativo

App in Purchases
Câmera
Contatos (read only)*
Connection (online/offline)
Device Info (nome, plataforma, uuid)
GeoLocation
Notifications (vibrar)
                            Sencha Packager*
Orientation
                                    PhoneGap
Push Notifications
                                     Emulator
Sencha Touch não tem

Acelerômetro
  Compass
     File
2




    Phone Gap
3



Sencha Touch
 + PhoneGap
UIWebView
          WebView



HTML 5
 CSS 3               Stores
  JS


          APIs JS
Workflow de
Desenvolvimento
Mock Up                    Store




                           Dispositivo
Desenvolvimento




             Testes   Simulação
M
O
C
K
U
P
Resultado
Mãos à Obra!
sencha generate app
      Contatos
../beagajs/Contatos
Testes Locais
Testes
Automatizados
http://bryntum.com
Hora de Integrar!
app.json
"js": [
     {
          "path": "touch/sencha-touch.js"
       },
       {
         "path": "cordova-2.5.0.js"
       },
       {
          "path": "app.js",
          "bundle": true,
          "update": "delta"
       }
  ],
navigator.contacts.find(                                                        MyContacts.proxy.ContactsProxy
!           fields,
!           function(deviceContacts) {
!               //loop over deviceContacts and create Contact model instances
!               var contacts = [];
!               for (var i = 0; i < deviceContacts.length; i++) {
!                   var deviceContact = deviceContacts[ i ];

!   !     !        !   !    console.log(deviceContact);

!   !     !        !   !    var phone = deviceContact.phoneNumbers[0];
!   !     !        !   !    if (phone){
!   !     !        !   !    !    phone = phone.value;
!   !     !        !   !    } else{
!   !     !        !   !    !    phone = "";
!   !     !        !   !    }

!   !     !        !   !    console.log("phone " + phone);

!                      var contact = Ext.create('MyContacts.model.Contact',{
!                          id: deviceContact.id,
!                          givenName: deviceContact.name.givenName,
!                          familyName: deviceContact.name.familyName,
!                          phoneNumber: phone,
!                          birthday: new Date(deviceContact.birthday),
!                          notes: deviceContact.note
!                      });
!                      contact.deviceContact = deviceContact;
!                      contacts.push(contact);
!                  }
!                  //return model instances in a result set
                   operation.setResultSet(
                   !   Ext.create('Ext.data.ResultSet', {
                          ! records: contacts,
                          ! total : contacts.length
                       })
                   );
!                  //announce success
!                  operation.setSuccessful();
!                  operation.setCompleted();
                   console.log('operation complete');
!                  //finish with callback
!                  if (typeof callback == "function") {
!                      callback.call(scope || thisProxy, operation);
!                  }
!             },
./create
     ContatosIOS
com.loiane.beagajs
../../../ContatosIOS
Emuladores
R
I
P
P
L
E
Ferramentas de
    Debug
iWebInspector
Weinre
Build
XCode
       Eclipse
build.phonegap.com
Melhores
Práticas
sencha app build
4



    Storage
REST
JSON-P
CORS
http://enable-cors.org/
Local Storage
Web SQL (SQLite)
5



Multiplataforma
"css": [
  {
     "path": "../../resources/css/base.css",
     "update": "delta"
  },
  {
     "path": "resources/css/sencha-touch.css",
     "platform": ['chrome', 'safari', 'ios'],
     "update": "delta"
  },
  {
     "path": "resources/css/android.css",
     "platform": ['android'],
     "update": "delta"
  },
  {
     "path": "resources/css/bb.css",
     "platform": ['blackberry'],
     "update": "delta"
  },
  {
     "path": "resources/css/wp.css",
     "platform": ['ie10'],
     "update": "delta"
  }
]
6



Nativo x Web
Acesso
         Device

Nativo    Sim

Web      Parcial
Acesso
                   Velocidade
         Device

Nativo    Sim        Sim

Web      Parcial       ?
Acesso                     Tempo
                   Velocidade
         Device                 Desenvolvimento




Nativo    Sim        Sim          Caro

Web      Parcial       ?          Sussa
Acesso                     Tempo          App
                   Velocidade
         Device                 Desenvolvimento
                                                  Store

Nativo    Sim        Sim          Caro            Sim

Web      Parcial       ?          Sussa           Não
Acesso                     Tempo          App     Cross
                   Velocidade
         Device                 Desenvolvimento
                                                  Store   Platform

Nativo    Sim        Sim          Caro            Sim      Não

Web      Parcial       ?          Sussa           Não       Sim
Acesso                     Tempo          App     Cross
                        Velocidade
              Device                 Desenvolvimento
                                                       Store   Platform

Nativo         Sim        Sim          Caro            Sim      Não

 Web          Parcial       ?          Sussa           Não       Sim

Híbrido        Sim          ?         Sussa*           Sim       Sim

          ?      Já vamos discutir

     Sussa*      Já vamos discutir
Acesso                     Tempo          App     Cross
                    Velocidade
          Device                 Desenvolvimento
                                                   Store   Platform

Nativo     Sim        Sim          Caro            Sim      Não

 Web      Parcial       ?          Sussa           Não       Sim

Híbrido    Sim          ?         Sussa*           Sim       Sim
App
Híbrida?
Desenvolva   Desenvolva
Desenvolva   Desenvolva



  Teste        Teste
Desenvolva   Desenvolva



  Teste        Teste



  Build        Build
{
Desenvolva   Desenvolva                 Desenvolva
                          Híbrido
  Teste        Teste                        Teste


  Build        Build                Build           Build
?
Our biggest mistake
was betting too much
     on HTML5
In your face!
“So, when Mark Zuckerberg said
HTML5 wasn't ready, we took a little
offense to the comment.”
Sussa*
Plugins
SQLite nativo
BarCode Scanner
      etc
7



    Produção
Issues
App Store
Parece uma
             diferente      App                  Aprenda a
                 web                            desenvolver
     Parece                                     para mobile,
    app iOS                                       não web
                                      App
              Buttons,                única               Hyperlink
         iOS Human Interface
          Design Guidelines                   Eventos Touch,
                                                 não Web

Agregador de
    links
                                                       Pinch,
                                                       Zoom
                                                        #fail
   App Intuitiva
Exemplos
 de Apps
Obrigada!
 http://loiane.com
      @loiane

Mais conteúdo relacionado

Mais procurados

Mobile apps com Xamarin e Azure Mobile Services - The Developers Conference P...
Mobile apps com Xamarin e Azure Mobile Services - The Developers Conference P...Mobile apps com Xamarin e Azure Mobile Services - The Developers Conference P...
Mobile apps com Xamarin e Azure Mobile Services - The Developers Conference P...William S. Rodriguez
 
Mobile Apps Cross-Platform
Mobile Apps Cross-PlatformMobile Apps Cross-Platform
Mobile Apps Cross-PlatformAdriel Café
 
Palestra sobre desenvolvimento de aplicativos híbridos (SEMAC 2016)
Palestra sobre desenvolvimento de aplicativos híbridos (SEMAC 2016)Palestra sobre desenvolvimento de aplicativos híbridos (SEMAC 2016)
Palestra sobre desenvolvimento de aplicativos híbridos (SEMAC 2016)Henrique Dezani
 
Desenvolvimento Mobile Web e PHP no Sinform2010
Desenvolvimento Mobile Web e PHP no Sinform2010Desenvolvimento Mobile Web e PHP no Sinform2010
Desenvolvimento Mobile Web e PHP no Sinform2010Bruno Fernandes "PorKaria"
 
MobileConf 2014 - Xamarin - Desenvolvimento multiplataforma feito da maneira ...
MobileConf 2014 - Xamarin - Desenvolvimento multiplataforma feito da maneira ...MobileConf 2014 - Xamarin - Desenvolvimento multiplataforma feito da maneira ...
MobileConf 2014 - Xamarin - Desenvolvimento multiplataforma feito da maneira ...Vinicius Jarina
 
[Curso Phonegap / Cordova] Aula 01: Introdução ao Phonegap
[Curso Phonegap / Cordova] Aula 01: Introdução ao Phonegap[Curso Phonegap / Cordova] Aula 01: Introdução ao Phonegap
[Curso Phonegap / Cordova] Aula 01: Introdução ao PhonegapLoiane Groner
 

Mais procurados (8)

Introdução ao Azure Mobile Apps
Introdução ao Azure Mobile AppsIntrodução ao Azure Mobile Apps
Introdução ao Azure Mobile Apps
 
Aplicações Mobile
Aplicações MobileAplicações Mobile
Aplicações Mobile
 
Mobile apps com Xamarin e Azure Mobile Services - The Developers Conference P...
Mobile apps com Xamarin e Azure Mobile Services - The Developers Conference P...Mobile apps com Xamarin e Azure Mobile Services - The Developers Conference P...
Mobile apps com Xamarin e Azure Mobile Services - The Developers Conference P...
 
Mobile Apps Cross-Platform
Mobile Apps Cross-PlatformMobile Apps Cross-Platform
Mobile Apps Cross-Platform
 
Palestra sobre desenvolvimento de aplicativos híbridos (SEMAC 2016)
Palestra sobre desenvolvimento de aplicativos híbridos (SEMAC 2016)Palestra sobre desenvolvimento de aplicativos híbridos (SEMAC 2016)
Palestra sobre desenvolvimento de aplicativos híbridos (SEMAC 2016)
 
Desenvolvimento Mobile Web e PHP no Sinform2010
Desenvolvimento Mobile Web e PHP no Sinform2010Desenvolvimento Mobile Web e PHP no Sinform2010
Desenvolvimento Mobile Web e PHP no Sinform2010
 
MobileConf 2014 - Xamarin - Desenvolvimento multiplataforma feito da maneira ...
MobileConf 2014 - Xamarin - Desenvolvimento multiplataforma feito da maneira ...MobileConf 2014 - Xamarin - Desenvolvimento multiplataforma feito da maneira ...
MobileConf 2014 - Xamarin - Desenvolvimento multiplataforma feito da maneira ...
 
[Curso Phonegap / Cordova] Aula 01: Introdução ao Phonegap
[Curso Phonegap / Cordova] Aula 01: Introdução ao Phonegap[Curso Phonegap / Cordova] Aula 01: Introdução ao Phonegap
[Curso Phonegap / Cordova] Aula 01: Introdução ao Phonegap
 

Destaque

[Curso CSS3 com Sass e Compass] Aula 07: Importando outros arquivos Sass
[Curso CSS3 com Sass e Compass] Aula 07: Importando outros arquivos Sass[Curso CSS3 com Sass e Compass] Aula 07: Importando outros arquivos Sass
[Curso CSS3 com Sass e Compass] Aula 07: Importando outros arquivos SassLoiane Groner
 
Loiane - Jornal A Tribuna - Maio 2008
Loiane - Jornal A Tribuna - Maio 2008Loiane - Jornal A Tribuna - Maio 2008
Loiane - Jornal A Tribuna - Maio 2008Loiane Groner
 
Exercicios Pilhas (Stacks) - Estruturas de dados e algoritmos com Java
Exercicios Pilhas (Stacks) - Estruturas de dados e algoritmos com JavaExercicios Pilhas (Stacks) - Estruturas de dados e algoritmos com Java
Exercicios Pilhas (Stacks) - Estruturas de dados e algoritmos com JavaLoiane Groner
 
[Curso Java Basico] Exercicios Aulas 16 17
[Curso Java Basico] Exercicios Aulas 16 17[Curso Java Basico] Exercicios Aulas 16 17
[Curso Java Basico] Exercicios Aulas 16 17Loiane Groner
 
[Curso Java Basico] Exercicios Aulas 14 15
[Curso Java Basico] Exercicios Aulas 14 15[Curso Java Basico] Exercicios Aulas 14 15
[Curso Java Basico] Exercicios Aulas 14 15Loiane Groner
 
[Curso Java Básico] Exercícios Aulas 11 12 13
[Curso Java Básico] Exercícios Aulas 11 12 13[Curso Java Básico] Exercícios Aulas 11 12 13
[Curso Java Básico] Exercícios Aulas 11 12 13Loiane Groner
 
[Curso Java Basico] Exercicios Aula 19
[Curso Java Basico] Exercicios Aula 19[Curso Java Basico] Exercicios Aula 19
[Curso Java Basico] Exercicios Aula 19Loiane Groner
 
[Curso Java Básico] Aula 02: Instalando o Java no Windows (Windows XP, Window...
[Curso Java Básico] Aula 02: Instalando o Java no Windows (Windows XP, Window...[Curso Java Básico] Aula 02: Instalando o Java no Windows (Windows XP, Window...
[Curso Java Básico] Aula 02: Instalando o Java no Windows (Windows XP, Window...Loiane Groner
 
Angular 2 overview in 60 minutes
Angular 2 overview in 60 minutesAngular 2 overview in 60 minutes
Angular 2 overview in 60 minutesLoiane Groner
 

Destaque (11)

[Curso CSS3 com Sass e Compass] Aula 07: Importando outros arquivos Sass
[Curso CSS3 com Sass e Compass] Aula 07: Importando outros arquivos Sass[Curso CSS3 com Sass e Compass] Aula 07: Importando outros arquivos Sass
[Curso CSS3 com Sass e Compass] Aula 07: Importando outros arquivos Sass
 
Vi Cheat Sheet
Vi Cheat SheetVi Cheat Sheet
Vi Cheat Sheet
 
Loiane - Jornal A Tribuna - Maio 2008
Loiane - Jornal A Tribuna - Maio 2008Loiane - Jornal A Tribuna - Maio 2008
Loiane - Jornal A Tribuna - Maio 2008
 
vi cheat sheet
vi cheat sheetvi cheat sheet
vi cheat sheet
 
Exercicios Pilhas (Stacks) - Estruturas de dados e algoritmos com Java
Exercicios Pilhas (Stacks) - Estruturas de dados e algoritmos com JavaExercicios Pilhas (Stacks) - Estruturas de dados e algoritmos com Java
Exercicios Pilhas (Stacks) - Estruturas de dados e algoritmos com Java
 
[Curso Java Basico] Exercicios Aulas 16 17
[Curso Java Basico] Exercicios Aulas 16 17[Curso Java Basico] Exercicios Aulas 16 17
[Curso Java Basico] Exercicios Aulas 16 17
 
[Curso Java Basico] Exercicios Aulas 14 15
[Curso Java Basico] Exercicios Aulas 14 15[Curso Java Basico] Exercicios Aulas 14 15
[Curso Java Basico] Exercicios Aulas 14 15
 
[Curso Java Básico] Exercícios Aulas 11 12 13
[Curso Java Básico] Exercícios Aulas 11 12 13[Curso Java Básico] Exercícios Aulas 11 12 13
[Curso Java Básico] Exercícios Aulas 11 12 13
 
[Curso Java Basico] Exercicios Aula 19
[Curso Java Basico] Exercicios Aula 19[Curso Java Basico] Exercicios Aula 19
[Curso Java Basico] Exercicios Aula 19
 
[Curso Java Básico] Aula 02: Instalando o Java no Windows (Windows XP, Window...
[Curso Java Básico] Aula 02: Instalando o Java no Windows (Windows XP, Window...[Curso Java Básico] Aula 02: Instalando o Java no Windows (Windows XP, Window...
[Curso Java Básico] Aula 02: Instalando o Java no Windows (Windows XP, Window...
 
Angular 2 overview in 60 minutes
Angular 2 overview in 60 minutesAngular 2 overview in 60 minutes
Angular 2 overview in 60 minutes
 

Semelhante a BeagaJS 2013: Sencha Touch + PhoneGap

Sencha Touch, RhoMobile, AppMobi e jQuery Mobile um comparativo entre platafo...
Sencha Touch, RhoMobile, AppMobi e jQuery Mobile um comparativo entre platafo...Sencha Touch, RhoMobile, AppMobi e jQuery Mobile um comparativo entre platafo...
Sencha Touch, RhoMobile, AppMobi e jQuery Mobile um comparativo entre platafo...Leonardo Melo Santos
 
QConSP 2012: Sencha Touch 2: Mobile Multiplataforma
QConSP 2012: Sencha Touch 2: Mobile MultiplataformaQConSP 2012: Sencha Touch 2: Mobile Multiplataforma
QConSP 2012: Sencha Touch 2: Mobile MultiplataformaLoiane Groner
 
Desenvolvimento de Aplicativos Móveis Multiplataforma
Desenvolvimento de Aplicativos Móveis MultiplataformaDesenvolvimento de Aplicativos Móveis Multiplataforma
Desenvolvimento de Aplicativos Móveis MultiplataformaJose Augusto Cintra
 
GDG Tech Talk - Quer desenvolver aplicações nativas e cross-plataforma usando...
GDG Tech Talk - Quer desenvolver aplicações nativas e cross-plataforma usando...GDG Tech Talk - Quer desenvolver aplicações nativas e cross-plataforma usando...
GDG Tech Talk - Quer desenvolver aplicações nativas e cross-plataforma usando...Paulo Cesar Ortins Brito
 
Desenvolvendo aplicações para WP7 em HTML5 com o PhoneGap
Desenvolvendo aplicações para WP7 em HTML5 com o PhoneGapDesenvolvendo aplicações para WP7 em HTML5 com o PhoneGap
Desenvolvendo aplicações para WP7 em HTML5 com o PhoneGapGesmar de Paula Santos Júnior
 
Desenvolvendo Aplicativos Sociais
Desenvolvendo Aplicativos SociaisDesenvolvendo Aplicativos Sociais
Desenvolvendo Aplicativos SociaisJorge Moisés Assis
 
Introdução ao PhoneGap e Sencha Touch
Introdução ao PhoneGap e Sencha TouchIntrodução ao PhoneGap e Sencha Touch
Introdução ao PhoneGap e Sencha TouchRafael Neri
 
PhoneGap - Criando aplicações Android e iOS com HTML5
PhoneGap - Criando aplicações Android e iOS com HTML5PhoneGap - Criando aplicações Android e iOS com HTML5
PhoneGap - Criando aplicações Android e iOS com HTML5Rodrigo Cascarrolho
 
PhoneGap - criando aplicações Android e iOS com HTML5
PhoneGap - criando aplicações Android e iOS com HTML5PhoneGap - criando aplicações Android e iOS com HTML5
PhoneGap - criando aplicações Android e iOS com HTML5Rafael Sakurai
 
Apresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo SitesApresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo Sitesthiagolima
 
JustJava 2013: Aplicações Desktop HTML5, CSS3, Javascript com Servlets 3
JustJava 2013: Aplicações Desktop HTML5, CSS3, Javascript com Servlets 3JustJava 2013: Aplicações Desktop HTML5, CSS3, Javascript com Servlets 3
JustJava 2013: Aplicações Desktop HTML5, CSS3, Javascript com Servlets 3Loiane Groner
 
Eureka! E agora: Nativo ou Híbrido
Eureka! E agora: Nativo ou HíbridoEureka! E agora: Nativo ou Híbrido
Eureka! E agora: Nativo ou Híbridodrbatiston
 
Desenvolvimento de Aplicativos para a Plataforma Android
Desenvolvimento de Aplicativos para a Plataforma AndroidDesenvolvimento de Aplicativos para a Plataforma Android
Desenvolvimento de Aplicativos para a Plataforma AndroidJosé Alexandre Macedo
 
Adobe Phonegap
Adobe PhonegapAdobe Phonegap
Adobe Phonegapwlsilva
 
8ºConnecting Knowledge Web ou App
8ºConnecting Knowledge Web ou App8ºConnecting Knowledge Web ou App
8ºConnecting Knowledge Web ou AppHeider Lopes
 
Apresentação JAVOU 5
Apresentação JAVOU 5Apresentação JAVOU 5
Apresentação JAVOU 5Bruno Muniz
 

Semelhante a BeagaJS 2013: Sencha Touch + PhoneGap (20)

Sencha Touch, RhoMobile, AppMobi e jQuery Mobile um comparativo entre platafo...
Sencha Touch, RhoMobile, AppMobi e jQuery Mobile um comparativo entre platafo...Sencha Touch, RhoMobile, AppMobi e jQuery Mobile um comparativo entre platafo...
Sencha Touch, RhoMobile, AppMobi e jQuery Mobile um comparativo entre platafo...
 
QConSP 2012: Sencha Touch 2: Mobile Multiplataforma
QConSP 2012: Sencha Touch 2: Mobile MultiplataformaQConSP 2012: Sencha Touch 2: Mobile Multiplataforma
QConSP 2012: Sencha Touch 2: Mobile Multiplataforma
 
Desenvolvimento de Aplicativos Móveis Multiplataforma
Desenvolvimento de Aplicativos Móveis MultiplataformaDesenvolvimento de Aplicativos Móveis Multiplataforma
Desenvolvimento de Aplicativos Móveis Multiplataforma
 
GDG Tech Talk - Quer desenvolver aplicações nativas e cross-plataforma usando...
GDG Tech Talk - Quer desenvolver aplicações nativas e cross-plataforma usando...GDG Tech Talk - Quer desenvolver aplicações nativas e cross-plataforma usando...
GDG Tech Talk - Quer desenvolver aplicações nativas e cross-plataforma usando...
 
Webapp já posso invistir nisso ? FISL12
Webapp já posso invistir nisso ? FISL12Webapp já posso invistir nisso ? FISL12
Webapp já posso invistir nisso ? FISL12
 
JavaScript além do browser
JavaScript além do browserJavaScript além do browser
JavaScript além do browser
 
Desenvolvendo aplicações para WP7 em HTML5 com o PhoneGap
Desenvolvendo aplicações para WP7 em HTML5 com o PhoneGapDesenvolvendo aplicações para WP7 em HTML5 com o PhoneGap
Desenvolvendo aplicações para WP7 em HTML5 com o PhoneGap
 
Desenvolvendo Aplicativos Sociais
Desenvolvendo Aplicativos SociaisDesenvolvendo Aplicativos Sociais
Desenvolvendo Aplicativos Sociais
 
Introdução ao PhoneGap e Sencha Touch
Introdução ao PhoneGap e Sencha TouchIntrodução ao PhoneGap e Sencha Touch
Introdução ao PhoneGap e Sencha Touch
 
PhoneGap - Criando aplicações Android e iOS com HTML5
PhoneGap - Criando aplicações Android e iOS com HTML5PhoneGap - Criando aplicações Android e iOS com HTML5
PhoneGap - Criando aplicações Android e iOS com HTML5
 
PhoneGap - criando aplicações Android e iOS com HTML5
PhoneGap - criando aplicações Android e iOS com HTML5PhoneGap - criando aplicações Android e iOS com HTML5
PhoneGap - criando aplicações Android e iOS com HTML5
 
Apresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo SitesApresentação Minas - Desenvolvendo Sites
Apresentação Minas - Desenvolvendo Sites
 
JustJava 2013: Aplicações Desktop HTML5, CSS3, Javascript com Servlets 3
JustJava 2013: Aplicações Desktop HTML5, CSS3, Javascript com Servlets 3JustJava 2013: Aplicações Desktop HTML5, CSS3, Javascript com Servlets 3
JustJava 2013: Aplicações Desktop HTML5, CSS3, Javascript com Servlets 3
 
Mobile Dev - Aplicativos
Mobile Dev - AplicativosMobile Dev - Aplicativos
Mobile Dev - Aplicativos
 
Eureka! E agora: Nativo ou Híbrido
Eureka! E agora: Nativo ou HíbridoEureka! E agora: Nativo ou Híbrido
Eureka! E agora: Nativo ou Híbrido
 
Desenvolvimento de Aplicativos para a Plataforma Android
Desenvolvimento de Aplicativos para a Plataforma AndroidDesenvolvimento de Aplicativos para a Plataforma Android
Desenvolvimento de Aplicativos para a Plataforma Android
 
Adobe Phonegap
Adobe PhonegapAdobe Phonegap
Adobe Phonegap
 
8ºConnecting Knowledge Web ou App
8ºConnecting Knowledge Web ou App8ºConnecting Knowledge Web ou App
8ºConnecting Knowledge Web ou App
 
Web ou App?
Web ou App?Web ou App?
Web ou App?
 
Apresentação JAVOU 5
Apresentação JAVOU 5Apresentação JAVOU 5
Apresentação JAVOU 5
 

BeagaJS 2013: Sencha Touch + PhoneGap

  • 1. Dev Mobile Multiplataforma e Open Source com Sencha Touch e PhoneGap Loiane Groner
  • 2. Loiane Groner Java JUG Leader Sencha Community Leader 7+ XP Java 4+ XP Sencha Software Developer Manager @ Citibank http://loiane.com @loiane
  • 4. 1 Sencha Touch
  • 5. Primeiro framework Javascript para desenvolvimento de apps mobile ricas usando padrões web
  • 6. Tem Acesso Nativo?
  • 7. Acesso Nativo App in Purchases Câmera Contatos (read only)* Connection (online/offline) Device Info (nome, plataforma, uuid) GeoLocation Notifications (vibrar) Sencha Packager* Orientation PhoneGap Push Notifications Emulator
  • 8. Sencha Touch não tem Acelerômetro Compass File
  • 9. 2 Phone Gap
  • 10.
  • 11. 3 Sencha Touch + PhoneGap
  • 12. UIWebView WebView HTML 5 CSS 3 Stores JS APIs JS
  • 14. Mock Up Store Dispositivo Desenvolvimento Testes Simulação
  • 18. sencha generate app Contatos ../beagajs/Contatos
  • 19.
  • 21.
  • 25.
  • 26. app.json "js": [ { "path": "touch/sencha-touch.js" }, { "path": "cordova-2.5.0.js" }, { "path": "app.js", "bundle": true, "update": "delta" } ],
  • 27. navigator.contacts.find( MyContacts.proxy.ContactsProxy ! fields, ! function(deviceContacts) { ! //loop over deviceContacts and create Contact model instances ! var contacts = []; ! for (var i = 0; i < deviceContacts.length; i++) { ! var deviceContact = deviceContacts[ i ]; ! ! ! ! ! console.log(deviceContact); ! ! ! ! ! var phone = deviceContact.phoneNumbers[0]; ! ! ! ! ! if (phone){ ! ! ! ! ! ! phone = phone.value; ! ! ! ! ! } else{ ! ! ! ! ! ! phone = ""; ! ! ! ! ! } ! ! ! ! ! console.log("phone " + phone); ! var contact = Ext.create('MyContacts.model.Contact',{ ! id: deviceContact.id, ! givenName: deviceContact.name.givenName, ! familyName: deviceContact.name.familyName, ! phoneNumber: phone, ! birthday: new Date(deviceContact.birthday), ! notes: deviceContact.note ! }); ! contact.deviceContact = deviceContact; ! contacts.push(contact); ! } ! //return model instances in a result set operation.setResultSet( ! Ext.create('Ext.data.ResultSet', { ! records: contacts, ! total : contacts.length }) ); ! //announce success ! operation.setSuccessful(); ! operation.setCompleted(); console.log('operation complete'); ! //finish with callback ! if (typeof callback == "function") { ! callback.call(scope || thisProxy, operation); ! } ! },
  • 28. ./create ContatosIOS com.loiane.beagajs ../../../ContatosIOS
  • 29.
  • 32. Ferramentas de Debug
  • 35. Build
  • 36. XCode Eclipse build.phonegap.com
  • 38.
  • 40. 4 Storage
  • 41.
  • 42. REST
  • 47.
  • 48.
  • 49. "css": [ { "path": "../../resources/css/base.css", "update": "delta" }, { "path": "resources/css/sencha-touch.css", "platform": ['chrome', 'safari', 'ios'], "update": "delta" }, { "path": "resources/css/android.css", "platform": ['android'], "update": "delta" }, { "path": "resources/css/bb.css", "platform": ['blackberry'], "update": "delta" }, { "path": "resources/css/wp.css", "platform": ['ie10'], "update": "delta" } ]
  • 51.
  • 52. Acesso Device Nativo Sim Web Parcial
  • 53. Acesso Velocidade Device Nativo Sim Sim Web Parcial ?
  • 54. Acesso Tempo Velocidade Device Desenvolvimento Nativo Sim Sim Caro Web Parcial ? Sussa
  • 55. Acesso Tempo App Velocidade Device Desenvolvimento Store Nativo Sim Sim Caro Sim Web Parcial ? Sussa Não
  • 56. Acesso Tempo App Cross Velocidade Device Desenvolvimento Store Platform Nativo Sim Sim Caro Sim Não Web Parcial ? Sussa Não Sim
  • 57. Acesso Tempo App Cross Velocidade Device Desenvolvimento Store Platform Nativo Sim Sim Caro Sim Não Web Parcial ? Sussa Não Sim Híbrido Sim ? Sussa* Sim Sim ? Já vamos discutir Sussa* Já vamos discutir
  • 58. Acesso Tempo App Cross Velocidade Device Desenvolvimento Store Platform Nativo Sim Sim Caro Sim Não Web Parcial ? Sussa Não Sim Híbrido Sim ? Sussa* Sim Sim
  • 60.
  • 61. Desenvolva Desenvolva
  • 62. Desenvolva Desenvolva Teste Teste
  • 63. Desenvolva Desenvolva Teste Teste Build Build
  • 64. { Desenvolva Desenvolva Desenvolva Híbrido Teste Teste Teste Build Build Build Build
  • 65. ?
  • 66. Our biggest mistake was betting too much on HTML5
  • 68. “So, when Mark Zuckerberg said HTML5 wasn't ready, we took a little offense to the comment.”
  • 69.
  • 70.
  • 74. 7 Produção
  • 76. Parece uma diferente App Aprenda a web desenvolver Parece para mobile, app iOS não web App Buttons, única Hyperlink iOS Human Interface Design Guidelines Eventos Touch, não Web Agregador de links Pinch, Zoom #fail App Intuitiva
  • 77.