SlideShare uma empresa Scribd logo
1 de 42
Baixar para ler offline
DESARROLLO
MULTIPLATAFORMA DE APPS
 CON GWT Y PHONEGAP
       Betabeers Córdoba
           27/9/2012




                           GWT
MI TIMELINE
1996   2001   2002   2005   2006   2007   2010   2012
EL MOMENTO QUE LO CAMBIÓ TODO




Julio 07           Noviembre 07
LA TECNOLOGÍA MÁS PENETRANTE DE LA HISTORIA
TODAVÍA NO SE CONOCEN LAS IMPLICACIONES



                                               We#do#not#currently#directly#generate#any#
                                               meaningful# revenue# from# the# use# of#
                                               F a c e b o o k# m o b i l e# p r o d u c t s ," [ … ] ."
                                               Accordingly," if" users# continue# to#
                                               increasingly# access# Facebook# mobile#
                                               products# as# a# substitute# for# access#
                                               through# personal# computers," […]" our"
                                               revenue" and" financial" results" may" be"
                                               negatively"affected.<


   The" decrease" in" the" average" cost?
   per?click" paid" by" our" advertisers"
   was" driven" by" various" factors..
   [ i n c l u d i n g ]" t h e# c h a n g e s# i n#
   platform#mix#due#to#traffic#growth#
   in# mobile# devices," where" the"
   average" cost?per?click" is" typically"
   l o we r" c o m p a r e d" t o" d e s k t o p"
   computers"and"tablets.<
SÓLO MÓVIL




       “Lo que menos me importa
       es la página web, lo más
       importante para mí es el
       entorno móvil”
PERO EL DESARROLLO PARA MÓVILES ES COMPLICADO
APPS NATIVAS VS. MOBILE WEB VS. HÍBRIDAS
FRAMEWORKS HÍBRIDOS



                      Mono Touch
PHONEGAP




                    Phonegap (Core APIs
HTML5 + CSS3 + JS                         Target platforms
                         + Plugins)
CÓMO ES EN IOS?
CÓMO ES EN ANDROID?
PHONEGAP CORE API
EJEMPLO
PHONEGAP PLUGINS




            46
57
EJEMPLO
DEBUGGING?




iOS: iWebInspector
DEBUGGING?




Android, iOS: Weinre
debug.phonegap.com
QUÉ UTILIZAR PARA LA UI?

• HTML5     + CSS3 + JS

• AJAX    100%

• No   olvidarse del servidor

• Ni   de la “performance” y limitaciones en el móvil

• Simular   el Look & Feel de la plataforma

• Open    Source con amplia comunidad

• Otrascaracterísticas: facilitar la depuración, el testeo,
 incrementar la productividad, etc.
ALGUNAS ALTERNATIVAS
EL PROBLEMA CON JAVASCRIPT...
WTFJS.COM
GWT

• Introducido   por Google en 2006

• Compila   Java a Javascript

• Soporta   todos los principales navegadores*

 • También    los móviles (Webkit)

• Usado   en producción por Google en numerosos proyectos

 • Google Adwords, Android      Play, Google Groups...

• Rencientemente    Google ha liberado la dirección del
 proyecto*
GWT EN MODO DE DESARROLLO
EJEMPLO
WIDGETS
Y SI HAY DISEÑADORES? UIBINDER
“DEFERRED BINDING”
GWT.XML
INTERNACIONALIZACIÓN (I18N)




•   Construido sobre “Deferred
    binding”

    •   Se genera una permutación
        adicional por idioma

    •   Muy potente: plurales,
        mensajes por defecto, RTL...

•   Incrementa el tamaño de la
    compilación
CSS COMPILADO
Constantes:




Condiciones (perfecto para emular L&F según la plataforma):




 Recursos:




  Sprites:
SERVIDOR: GWT-RPC
PROBLEMAS CON GWT-RPC




• GWT-RPC “marca” los
 objetos serializables con un
 hash MD5

• Siel servidor detecta una
 discrepancia al deserializar
 lanza una excepción

  • Consecuencia: No      soporta
       clientes con versiones
       antiguas
JSNI (JAVASCRIPT NATIVE INTERFACE)
M-GWT
GWT-PHONEGAP
LO QUE IMPORTA: LA COMPILACIÓN

• Al
  final, tenemos que compilar la versión de producción y
 GWT es perfecto:

  • Elimina    código muerto y css no utilizado

  • Optimiza, ofusca    y comprime el JS

  • Optimiza     el css (image inlining)

  • Consolida    los ficheros (JS/CSS/HTML)

  • Mecanismo      de caché

  • Análisis   del resultado de la compilación (SOYC)
COSAS QUE ME HE DEJADO
•   Google plugin for Eclipse

    •   GWT Designer

•   Integración GWT - Google app engine

•   Speed tracer

•   Mayor integración Javascript - JSON: Javascript Overlay Types

•   Seguridad: Anti XSS

•   Request factory

    •   Libreria de comunicaciones basada en JSON con versión Android

•   Librerías específicas JUnit

•   Code splitting

•   MVP Framework

•   GWT superavanzado

    •   GWT super dev mode

    •   Elemental - “to the metal” HTML5 bindings
PROBLEMAS CON GWT

•   Curva de aprendizaje compleja

•   No soporta todo el JRE

•   Algunas características pueden ser contraproducentes en desarrollo móvil

    •   Deferred binding + I18N

    •   GWT-RPC

•   Desde que salió, se duda del soporte que Google le presta

    •   Roadmap oscuro

    •   Peor desde que se anunció Dart

    •   Quizás el problema es que Java ha dejado de ser “cool”

•   Mantenimiento del modo de desarrollo

•   Mantenimiento de las apis de Google, HTML5
GWT + PHONEGAP


                                          Java




                    Phonegap (Core APIs
HTML5 + CSS3 + JS                           Target platforms
                         + Plugins)
DUDAS / PREGUNTAS?
GRACIAS!
       luis@serendipio.com
http://es.linkedin.com/in/lumunoz
             @munozluis

Mais conteúdo relacionado

Mais procurados

Construye un bot para Microsoft Teams sin saber programar
Construye un bot para Microsoft Teams sin saber programarConstruye un bot para Microsoft Teams sin saber programar
Construye un bot para Microsoft Teams sin saber programarLuis Beltran
 
Desarrollando para nuevos dispositivos
Desarrollando para nuevos dispositivosDesarrollando para nuevos dispositivos
Desarrollando para nuevos dispositivosSergio David Acosta
 
Consideraciones al escoger apps híbridas vs nativas
Consideraciones al escoger apps híbridas vs nativasConsideraciones al escoger apps híbridas vs nativas
Consideraciones al escoger apps híbridas vs nativasSoftware Guru
 
Desarrollo de apps móviles con Apache Cordova
Desarrollo de apps móviles con Apache CordovaDesarrollo de apps móviles con Apache Cordova
Desarrollo de apps móviles con Apache CordovaSoftware Guru
 
Desarrollo para android con Flex / AIR
Desarrollo para android con Flex / AIRDesarrollo para android con Flex / AIR
Desarrollo para android con Flex / AIRSergio Brito
 
Charla GDG Madrid: Cordova + AngularJS + Ionic
Charla GDG Madrid: Cordova + AngularJS + IonicCharla GDG Madrid: Cordova + AngularJS + Ionic
Charla GDG Madrid: Cordova + AngularJS + IonicRubén Aguilera
 
Code Blast 2012 - Node.js
Code Blast 2012 - Node.jsCode Blast 2012 - Node.js
Code Blast 2012 - Node.jsINSIGNIA4U
 
Construyendo y publicando nuestra primera app multi plataforma (II)
Construyendo y publicando nuestra primera app multi plataforma (II)Construyendo y publicando nuestra primera app multi plataforma (II)
Construyendo y publicando nuestra primera app multi plataforma (II)Carlos Alonso Pérez
 
Desarrollo de aplicaciones multiplataforma 1/2
Desarrollo de aplicaciones multiplataforma 1/2Desarrollo de aplicaciones multiplataforma 1/2
Desarrollo de aplicaciones multiplataforma 1/2Ignacio Muñoz Vicente
 

Mais procurados (13)

Construye un bot para Microsoft Teams sin saber programar
Construye un bot para Microsoft Teams sin saber programarConstruye un bot para Microsoft Teams sin saber programar
Construye un bot para Microsoft Teams sin saber programar
 
Desarrollando para nuevos dispositivos
Desarrollando para nuevos dispositivosDesarrollando para nuevos dispositivos
Desarrollando para nuevos dispositivos
 
Consideraciones al escoger apps híbridas vs nativas
Consideraciones al escoger apps híbridas vs nativasConsideraciones al escoger apps híbridas vs nativas
Consideraciones al escoger apps híbridas vs nativas
 
Desarrollo de apps móviles con Apache Cordova
Desarrollo de apps móviles con Apache CordovaDesarrollo de apps móviles con Apache Cordova
Desarrollo de apps móviles con Apache Cordova
 
Desarrollo para android con Flex / AIR
Desarrollo para android con Flex / AIRDesarrollo para android con Flex / AIR
Desarrollo para android con Flex / AIR
 
Phonegap
PhonegapPhonegap
Phonegap
 
Introducción a Windows 10
Introducción a Windows 10Introducción a Windows 10
Introducción a Windows 10
 
Apps web vs apps nativas
Apps web vs apps nativasApps web vs apps nativas
Apps web vs apps nativas
 
Charla GDG Madrid: Cordova + AngularJS + Ionic
Charla GDG Madrid: Cordova + AngularJS + IonicCharla GDG Madrid: Cordova + AngularJS + Ionic
Charla GDG Madrid: Cordova + AngularJS + Ionic
 
Code Blast 2012 - Node.js
Code Blast 2012 - Node.jsCode Blast 2012 - Node.js
Code Blast 2012 - Node.js
 
Introducción a Blazor
Introducción a BlazorIntroducción a Blazor
Introducción a Blazor
 
Construyendo y publicando nuestra primera app multi plataforma (II)
Construyendo y publicando nuestra primera app multi plataforma (II)Construyendo y publicando nuestra primera app multi plataforma (II)
Construyendo y publicando nuestra primera app multi plataforma (II)
 
Desarrollo de aplicaciones multiplataforma 1/2
Desarrollo de aplicaciones multiplataforma 1/2Desarrollo de aplicaciones multiplataforma 1/2
Desarrollo de aplicaciones multiplataforma 1/2
 

Semelhante a Desarrollo multiplataforma de apps con GWT y PhoneGap

HTML5, CSS3 y móviles
HTML5, CSS3 y móvilesHTML5, CSS3 y móviles
HTML5, CSS3 y móvilesPideCurso
 
Kendo UI - Potencia tu Web
Kendo UI - Potencia tu WebKendo UI - Potencia tu Web
Kendo UI - Potencia tu WebDavid Gonzalo
 
Facilitando el desarrollo web móvil, frameworks
Facilitando el desarrollo web móvil, frameworksFacilitando el desarrollo web móvil, frameworks
Facilitando el desarrollo web móvil, frameworksPideCurso
 
Facilitando el desarrollo web móvil, frameworks nr sevilla
Facilitando el desarrollo web móvil, frameworks   nr sevillaFacilitando el desarrollo web móvil, frameworks   nr sevilla
Facilitando el desarrollo web móvil, frameworks nr sevillaRaúl Jiménez Ortega
 
Construyendo y publicando nuestra primera APP
Construyendo y publicando nuestra primera APPConstruyendo y publicando nuestra primera APP
Construyendo y publicando nuestra primera APPInterlat
 
Programando Windows Phone con Phonegap
Programando Windows Phone con PhonegapProgramando Windows Phone con Phonegap
Programando Windows Phone con PhonegapMauro Parra-Miranda
 
Xamarin Dev Days - Introducción a Xamarin
Xamarin Dev Days - Introducción a XamarinXamarin Dev Days - Introducción a Xamarin
Xamarin Dev Days - Introducción a XamarinJavier Suárez Ruiz
 
Seminario &quot;Desarrollo para entornos móviles. Comparativas y tendencias&q...
Seminario &quot;Desarrollo para entornos móviles. Comparativas y tendencias&q...Seminario &quot;Desarrollo para entornos móviles. Comparativas y tendencias&q...
Seminario &quot;Desarrollo para entornos móviles. Comparativas y tendencias&q...CLEFormación
 
Desarrollo de Mobile Web Apps
Desarrollo de Mobile Web AppsDesarrollo de Mobile Web Apps
Desarrollo de Mobile Web AppsAsier Marqués
 
U1 p5 entornos_desarrollo_moviles
U1 p5 entornos_desarrollo_movilesU1 p5 entornos_desarrollo_moviles
U1 p5 entornos_desarrollo_movilesAkirepaho
 
6 Lenguajes para dispositivos móviles
6 Lenguajes para dispositivos móviles 6 Lenguajes para dispositivos móviles
6 Lenguajes para dispositivos móviles RAUL Velez
 
Share point y los dispositivos moviles
Share point y los dispositivos movilesShare point y los dispositivos moviles
Share point y los dispositivos movilesAdrian Diaz Cervera
 
Software en la actualidad
Software en la actualidadSoftware en la actualidad
Software en la actualidadRaelyx Cordero
 

Semelhante a Desarrollo multiplataforma de apps con GWT y PhoneGap (20)

HTML5, CSS3 y móviles
HTML5, CSS3 y móvilesHTML5, CSS3 y móviles
HTML5, CSS3 y móviles
 
Meetup app-moviles
Meetup app-movilesMeetup app-moviles
Meetup app-moviles
 
Kendo UI - Potencia tu Web
Kendo UI - Potencia tu WebKendo UI - Potencia tu Web
Kendo UI - Potencia tu Web
 
Facilitando el desarrollo web móvil, frameworks
Facilitando el desarrollo web móvil, frameworksFacilitando el desarrollo web móvil, frameworks
Facilitando el desarrollo web móvil, frameworks
 
Facilitando el desarrollo web móvil, frameworks nr sevilla
Facilitando el desarrollo web móvil, frameworks   nr sevillaFacilitando el desarrollo web móvil, frameworks   nr sevilla
Facilitando el desarrollo web móvil, frameworks nr sevilla
 
Construyendo y publicando nuestra primera APP
Construyendo y publicando nuestra primera APPConstruyendo y publicando nuestra primera APP
Construyendo y publicando nuestra primera APP
 
Programando Windows Phone con Phonegap
Programando Windows Phone con PhonegapProgramando Windows Phone con Phonegap
Programando Windows Phone con Phonegap
 
Día del software libre
Día del software libreDía del software libre
Día del software libre
 
Barcamp Mobile Web
Barcamp Mobile WebBarcamp Mobile Web
Barcamp Mobile Web
 
Xamarin Dev Days - Introducción a Xamarin
Xamarin Dev Days - Introducción a XamarinXamarin Dev Days - Introducción a Xamarin
Xamarin Dev Days - Introducción a Xamarin
 
Seminario &quot;Desarrollo para entornos móviles. Comparativas y tendencias&q...
Seminario &quot;Desarrollo para entornos móviles. Comparativas y tendencias&q...Seminario &quot;Desarrollo para entornos móviles. Comparativas y tendencias&q...
Seminario &quot;Desarrollo para entornos móviles. Comparativas y tendencias&q...
 
Presentacion cw2012
Presentacion cw2012Presentacion cw2012
Presentacion cw2012
 
Desarrollo de Mobile Web Apps
Desarrollo de Mobile Web AppsDesarrollo de Mobile Web Apps
Desarrollo de Mobile Web Apps
 
PhoneGap Basics v1.0
PhoneGap Basics v1.0PhoneGap Basics v1.0
PhoneGap Basics v1.0
 
Desarrollo de aplicaciones web móviles
Desarrollo de aplicaciones web móvilesDesarrollo de aplicaciones web móviles
Desarrollo de aplicaciones web móviles
 
Introduccion html5
Introduccion html5Introduccion html5
Introduccion html5
 
U1 p5 entornos_desarrollo_moviles
U1 p5 entornos_desarrollo_movilesU1 p5 entornos_desarrollo_moviles
U1 p5 entornos_desarrollo_moviles
 
6 Lenguajes para dispositivos móviles
6 Lenguajes para dispositivos móviles 6 Lenguajes para dispositivos móviles
6 Lenguajes para dispositivos móviles
 
Share point y los dispositivos moviles
Share point y los dispositivos movilesShare point y los dispositivos moviles
Share point y los dispositivos moviles
 
Software en la actualidad
Software en la actualidadSoftware en la actualidad
Software en la actualidad
 

Mais de betabeers

IONIC, el framework para crear aplicaciones híbridas multiplataforma
IONIC, el framework para crear aplicaciones híbridas multiplataformaIONIC, el framework para crear aplicaciones híbridas multiplataforma
IONIC, el framework para crear aplicaciones híbridas multiplataformabetabeers
 
Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)
Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)
Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)betabeers
 
Blockchain: la revolución industrial de internet - Oscar Lage
Blockchain: la revolución industrial de internet - Oscar LageBlockchain: la revolución industrial de internet - Oscar Lage
Blockchain: la revolución industrial de internet - Oscar Lagebetabeers
 
Cloud Learning: la formación del siglo XXI - Mónica Mediavilla
Cloud Learning: la formación del siglo XXI - Mónica MediavillaCloud Learning: la formación del siglo XXI - Mónica Mediavilla
Cloud Learning: la formación del siglo XXI - Mónica Mediavillabetabeers
 
Desarrollo web en Nodejs con Pillars por Chelo Quilón
Desarrollo web en Nodejs con Pillars por Chelo QuilónDesarrollo web en Nodejs con Pillars por Chelo Quilón
Desarrollo web en Nodejs con Pillars por Chelo Quilónbetabeers
 
La línea recta hacia el éxito - Jon Torrado - Betabeers Bilbao
La línea recta hacia el éxito -  Jon Torrado - Betabeers BilbaoLa línea recta hacia el éxito -  Jon Torrado - Betabeers Bilbao
La línea recta hacia el éxito - Jon Torrado - Betabeers Bilbaobetabeers
 
6 errores a evitar si eres una startup móvil y quieres evolucionar tu app
6 errores a evitar si eres una startup móvil y quieres evolucionar tu app6 errores a evitar si eres una startup móvil y quieres evolucionar tu app
6 errores a evitar si eres una startup móvil y quieres evolucionar tu appbetabeers
 
Dev ops.continuous delivery - Ibon Landa (Plain Concepts)
Dev ops.continuous delivery - Ibon Landa (Plain Concepts)Dev ops.continuous delivery - Ibon Landa (Plain Concepts)
Dev ops.continuous delivery - Ibon Landa (Plain Concepts)betabeers
 
Introducción a scrum - Rodrigo Corral (Plain Concepts)
Introducción a scrum - Rodrigo Corral (Plain Concepts)Introducción a scrum - Rodrigo Corral (Plain Concepts)
Introducción a scrum - Rodrigo Corral (Plain Concepts)betabeers
 
Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)
Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)
Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)betabeers
 
Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)
Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)
Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)betabeers
 
Elemental, querido Watson - Caso de Uso
Elemental, querido Watson - Caso de UsoElemental, querido Watson - Caso de Uso
Elemental, querido Watson - Caso de Usobetabeers
 
Seguridad en tu startup
Seguridad en tu startupSeguridad en tu startup
Seguridad en tu startupbetabeers
 
Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.
Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.
Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.betabeers
 
Buenas prácticas para la optimización web
Buenas prácticas para la optimización webBuenas prácticas para la optimización web
Buenas prácticas para la optimización webbetabeers
 
La magia de Scrum
La magia de ScrumLa magia de Scrum
La magia de Scrumbetabeers
 
Programador++ por @wottam
Programador++ por @wottamProgramador++ por @wottam
Programador++ por @wottambetabeers
 
RaspberryPi: Tu dispositivo para IoT
RaspberryPi: Tu dispositivo para IoTRaspberryPi: Tu dispositivo para IoT
RaspberryPi: Tu dispositivo para IoTbetabeers
 
Introducción al Big Data - Xabier Tranche - VIII Betabeers Bilbao 27/02/2015
 Introducción al Big Data - Xabier Tranche  - VIII Betabeers Bilbao 27/02/2015 Introducción al Big Data - Xabier Tranche  - VIII Betabeers Bilbao 27/02/2015
Introducción al Big Data - Xabier Tranche - VIII Betabeers Bilbao 27/02/2015betabeers
 
PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015
PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015
PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015betabeers
 

Mais de betabeers (20)

IONIC, el framework para crear aplicaciones híbridas multiplataforma
IONIC, el framework para crear aplicaciones híbridas multiplataformaIONIC, el framework para crear aplicaciones híbridas multiplataforma
IONIC, el framework para crear aplicaciones híbridas multiplataforma
 
Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)
Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)
Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)
 
Blockchain: la revolución industrial de internet - Oscar Lage
Blockchain: la revolución industrial de internet - Oscar LageBlockchain: la revolución industrial de internet - Oscar Lage
Blockchain: la revolución industrial de internet - Oscar Lage
 
Cloud Learning: la formación del siglo XXI - Mónica Mediavilla
Cloud Learning: la formación del siglo XXI - Mónica MediavillaCloud Learning: la formación del siglo XXI - Mónica Mediavilla
Cloud Learning: la formación del siglo XXI - Mónica Mediavilla
 
Desarrollo web en Nodejs con Pillars por Chelo Quilón
Desarrollo web en Nodejs con Pillars por Chelo QuilónDesarrollo web en Nodejs con Pillars por Chelo Quilón
Desarrollo web en Nodejs con Pillars por Chelo Quilón
 
La línea recta hacia el éxito - Jon Torrado - Betabeers Bilbao
La línea recta hacia el éxito -  Jon Torrado - Betabeers BilbaoLa línea recta hacia el éxito -  Jon Torrado - Betabeers Bilbao
La línea recta hacia el éxito - Jon Torrado - Betabeers Bilbao
 
6 errores a evitar si eres una startup móvil y quieres evolucionar tu app
6 errores a evitar si eres una startup móvil y quieres evolucionar tu app6 errores a evitar si eres una startup móvil y quieres evolucionar tu app
6 errores a evitar si eres una startup móvil y quieres evolucionar tu app
 
Dev ops.continuous delivery - Ibon Landa (Plain Concepts)
Dev ops.continuous delivery - Ibon Landa (Plain Concepts)Dev ops.continuous delivery - Ibon Landa (Plain Concepts)
Dev ops.continuous delivery - Ibon Landa (Plain Concepts)
 
Introducción a scrum - Rodrigo Corral (Plain Concepts)
Introducción a scrum - Rodrigo Corral (Plain Concepts)Introducción a scrum - Rodrigo Corral (Plain Concepts)
Introducción a scrum - Rodrigo Corral (Plain Concepts)
 
Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)
Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)
Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)
 
Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)
Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)
Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)
 
Elemental, querido Watson - Caso de Uso
Elemental, querido Watson - Caso de UsoElemental, querido Watson - Caso de Uso
Elemental, querido Watson - Caso de Uso
 
Seguridad en tu startup
Seguridad en tu startupSeguridad en tu startup
Seguridad en tu startup
 
Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.
Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.
Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.
 
Buenas prácticas para la optimización web
Buenas prácticas para la optimización webBuenas prácticas para la optimización web
Buenas prácticas para la optimización web
 
La magia de Scrum
La magia de ScrumLa magia de Scrum
La magia de Scrum
 
Programador++ por @wottam
Programador++ por @wottamProgramador++ por @wottam
Programador++ por @wottam
 
RaspberryPi: Tu dispositivo para IoT
RaspberryPi: Tu dispositivo para IoTRaspberryPi: Tu dispositivo para IoT
RaspberryPi: Tu dispositivo para IoT
 
Introducción al Big Data - Xabier Tranche - VIII Betabeers Bilbao 27/02/2015
 Introducción al Big Data - Xabier Tranche  - VIII Betabeers Bilbao 27/02/2015 Introducción al Big Data - Xabier Tranche  - VIII Betabeers Bilbao 27/02/2015
Introducción al Big Data - Xabier Tranche - VIII Betabeers Bilbao 27/02/2015
 
PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015
PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015
PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015
 

Desarrollo multiplataforma de apps con GWT y PhoneGap

  • 1. DESARROLLO MULTIPLATAFORMA DE APPS CON GWT Y PHONEGAP Betabeers Córdoba 27/9/2012 GWT
  • 2. MI TIMELINE 1996 2001 2002 2005 2006 2007 2010 2012
  • 3. EL MOMENTO QUE LO CAMBIÓ TODO Julio 07 Noviembre 07
  • 4. LA TECNOLOGÍA MÁS PENETRANTE DE LA HISTORIA
  • 5. TODAVÍA NO SE CONOCEN LAS IMPLICACIONES We#do#not#currently#directly#generate#any# meaningful# revenue# from# the# use# of# F a c e b o o k# m o b i l e# p r o d u c t s ," [ … ] ." Accordingly," if" users# continue# to# increasingly# access# Facebook# mobile# products# as# a# substitute# for# access# through# personal# computers," […]" our" revenue" and" financial" results" may" be" negatively"affected.< The" decrease" in" the" average" cost? per?click" paid" by" our" advertisers" was" driven" by" various" factors.. [ i n c l u d i n g ]" t h e# c h a n g e s# i n# platform#mix#due#to#traffic#growth# in# mobile# devices," where" the" average" cost?per?click" is" typically" l o we r" c o m p a r e d" t o" d e s k t o p" computers"and"tablets.<
  • 6. SÓLO MÓVIL “Lo que menos me importa es la página web, lo más importante para mí es el entorno móvil”
  • 7. PERO EL DESARROLLO PARA MÓVILES ES COMPLICADO
  • 8. APPS NATIVAS VS. MOBILE WEB VS. HÍBRIDAS
  • 9. FRAMEWORKS HÍBRIDOS Mono Touch
  • 10. PHONEGAP Phonegap (Core APIs HTML5 + CSS3 + JS Target platforms + Plugins)
  • 11. CÓMO ES EN IOS?
  • 12. CÓMO ES EN ANDROID?
  • 19. QUÉ UTILIZAR PARA LA UI? • HTML5 + CSS3 + JS • AJAX 100% • No olvidarse del servidor • Ni de la “performance” y limitaciones en el móvil • Simular el Look & Feel de la plataforma • Open Source con amplia comunidad • Otrascaracterísticas: facilitar la depuración, el testeo, incrementar la productividad, etc.
  • 21. EL PROBLEMA CON JAVASCRIPT...
  • 23. GWT • Introducido por Google en 2006 • Compila Java a Javascript • Soporta todos los principales navegadores* • También los móviles (Webkit) • Usado en producción por Google en numerosos proyectos • Google Adwords, Android Play, Google Groups... • Rencientemente Google ha liberado la dirección del proyecto*
  • 24. GWT EN MODO DE DESARROLLO
  • 27. Y SI HAY DISEÑADORES? UIBINDER
  • 30. INTERNACIONALIZACIÓN (I18N) • Construido sobre “Deferred binding” • Se genera una permutación adicional por idioma • Muy potente: plurales, mensajes por defecto, RTL... • Incrementa el tamaño de la compilación
  • 31. CSS COMPILADO Constantes: Condiciones (perfecto para emular L&F según la plataforma): Recursos: Sprites:
  • 33. PROBLEMAS CON GWT-RPC • GWT-RPC “marca” los objetos serializables con un hash MD5 • Siel servidor detecta una discrepancia al deserializar lanza una excepción • Consecuencia: No soporta clientes con versiones antiguas
  • 35. M-GWT
  • 37. LO QUE IMPORTA: LA COMPILACIÓN • Al final, tenemos que compilar la versión de producción y GWT es perfecto: • Elimina código muerto y css no utilizado • Optimiza, ofusca y comprime el JS • Optimiza el css (image inlining) • Consolida los ficheros (JS/CSS/HTML) • Mecanismo de caché • Análisis del resultado de la compilación (SOYC)
  • 38. COSAS QUE ME HE DEJADO • Google plugin for Eclipse • GWT Designer • Integración GWT - Google app engine • Speed tracer • Mayor integración Javascript - JSON: Javascript Overlay Types • Seguridad: Anti XSS • Request factory • Libreria de comunicaciones basada en JSON con versión Android • Librerías específicas JUnit • Code splitting • MVP Framework • GWT superavanzado • GWT super dev mode • Elemental - “to the metal” HTML5 bindings
  • 39. PROBLEMAS CON GWT • Curva de aprendizaje compleja • No soporta todo el JRE • Algunas características pueden ser contraproducentes en desarrollo móvil • Deferred binding + I18N • GWT-RPC • Desde que salió, se duda del soporte que Google le presta • Roadmap oscuro • Peor desde que se anunció Dart • Quizás el problema es que Java ha dejado de ser “cool” • Mantenimiento del modo de desarrollo • Mantenimiento de las apis de Google, HTML5
  • 40. GWT + PHONEGAP Java Phonegap (Core APIs HTML5 + CSS3 + JS Target platforms + Plugins)
  • 42. GRACIAS! luis@serendipio.com http://es.linkedin.com/in/lumunoz @munozluis