SlideShare uma empresa Scribd logo
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
BeagaJS 2013: Sencha Touch + PhoneGap
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
BeagaJS 2013: Sencha Touch + PhoneGap
Testes Locais
BeagaJS 2013: Sencha Touch + PhoneGap
Testes
Automatizados
http://bryntum.com
Hora de Integrar!
BeagaJS 2013: Sencha Touch + PhoneGap
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
BeagaJS 2013: Sencha Touch + PhoneGap
Emuladores
R
I
P
P
L
E
Ferramentas de
    Debug
iWebInspector
Weinre
Build
XCode
       Eclipse
build.phonegap.com
Melhores
Práticas
BeagaJS 2013: Sencha Touch + PhoneGap
sencha app build
4



    Storage
BeagaJS 2013: Sencha Touch + PhoneGap
REST
JSON-P
CORS
http://enable-cors.org/
Local Storage
Web SQL (SQLite)
5



Multiplataforma
BeagaJS 2013: Sencha Touch + PhoneGap
BeagaJS 2013: Sencha Touch + PhoneGap
"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
BeagaJS 2013: Sencha Touch + PhoneGap
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?
BeagaJS 2013: Sencha Touch + PhoneGap
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.”
BeagaJS 2013: Sencha Touch + PhoneGap
BeagaJS 2013: Sencha Touch + PhoneGap
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
BeagaJS 2013: Sencha Touch + PhoneGap
Exemplos
 de Apps
Obrigada!
 http://loiane.com
      @loiane

Mais conteúdo relacionado

PDF
MobileConf 2013: PhoneGap
PDF
Iniciando com desenvolvimento híbrido de aplicações mobile com HTML5
PPTX
Curso: Desenvolvimento de aplicativos híbridos (dia 2)
PPTX
Curso: Desenvolvimento de aplicativos híbridos (dia 1)
PPTX
Levando o c# para o mundo mobile ios, android e windows phone - com xamarin
PPTX
Aplicativos Corporativos Cross Plataform com Xamarin & Azure Mobile Apps
PDF
Desenvolvedor mobile precisa aprender Web
PPTX
Conheça a Plataforma Xamarin
MobileConf 2013: PhoneGap
Iniciando com desenvolvimento híbrido de aplicações mobile com HTML5
Curso: Desenvolvimento de aplicativos híbridos (dia 2)
Curso: Desenvolvimento de aplicativos híbridos (dia 1)
Levando o c# para o mundo mobile ios, android e windows phone - com xamarin
Aplicativos Corporativos Cross Plataform com Xamarin & Azure Mobile Apps
Desenvolvedor mobile precisa aprender Web
Conheça a Plataforma Xamarin

Mais procurados (8)

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

Destaque (11)

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

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

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

Último (20)

PDF
COBITxITIL-Entenda as diferença em uso governança TI
PDF
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
PPTX
Aula sobre desenvolvimento de aplicativos
PPTX
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
PPTX
Curso de Java 12 - (JDBC, Transation, Commit e Rollback).pptx
PPTX
Curso de Java 10 - (IO Manipulação de Arquivos).pptx
PPTX
Aula 18 - Manipulacao De Arquivos python
PDF
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
PPTX
Curso de Java 16 - (JEE (Utilizando o Padrão MVC)).pptx
PDF
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
PDF
Processos na gestão de transportes, TM100 Col18
PDF
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
PDF
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
PPTX
Curso de Java 11 - (Serializable (Serialização de Objetos)).pptx
PPTX
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
PPTX
Curso de Java 9 - (Threads) Multitarefas.pptx
PPTX
Curso de Java 15 - (Uso de Servlets (Entendendo a Estrutura)).pptx
PDF
Custos e liquidação no SAP Transportation Management, TM130 Col18
PDF
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
PPTX
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss
COBITxITIL-Entenda as diferença em uso governança TI
Gestão de transportes básica no SAP S/4HANA, S4611 Col20
Aula sobre desenvolvimento de aplicativos
Programação - Linguagem C - Variáveis, Palavras Reservadas, tipos de dados, c...
Curso de Java 12 - (JDBC, Transation, Commit e Rollback).pptx
Curso de Java 10 - (IO Manipulação de Arquivos).pptx
Aula 18 - Manipulacao De Arquivos python
Fullfilment AI - Forum ecommerce 2025 // Distrito e Total Express
Curso de Java 16 - (JEE (Utilizando o Padrão MVC)).pptx
Custos e faturamento no SAP S/4HANA Transportation Management, S4TM3 Col26
Processos na gestão de transportes, TM100 Col18
Otimizador de planejamento e execução no SAP Transportation Management, TM120...
Fundamentos de gerenciamento de ordens e planejamento no SAP TransportationMa...
Curso de Java 11 - (Serializable (Serialização de Objetos)).pptx
BANCO DE DADOS - AULAS INICIAIS-sgbd.pptx
Curso de Java 9 - (Threads) Multitarefas.pptx
Curso de Java 15 - (Uso de Servlets (Entendendo a Estrutura)).pptx
Custos e liquidação no SAP Transportation Management, TM130 Col18
Mergulho profundo técnico para gestão de transportes no SAP S/4HANA, S4TM6 Col14
Aula16ManipulaçãoDadosssssssssssssssssssssssssssss

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
  • 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
  • 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
  • 32. Ferramentas de Debug
  • 35. Build
  • 36. XCode Eclipse build.phonegap.com
  • 40. 4 Storage
  • 42. REST
  • 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" } ]
  • 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
  • 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.”
  • 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