SlideShare ist ein Scribd-Unternehmen logo
1 von 42
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

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
 

Was ist angesagt? (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
 

Andere mochten auch

Activate your Club 2.0 Area in 5 steps_French Version
Activate your Club 2.0 Area in 5 steps_French VersionActivate your Club 2.0 Area in 5 steps_French Version
Activate your Club 2.0 Area in 5 steps_French VersionTechnogym
 
Der edle Charakter des Propheten Muhammad
Der edle Charakter des Propheten MuhammadDer edle Charakter des Propheten Muhammad
Der edle Charakter des Propheten MuhammadIslamic Invitation
 
Marlon guia del reciclaje[1]
Marlon guia del reciclaje[1]Marlon guia del reciclaje[1]
Marlon guia del reciclaje[1]alexandra pino
 
Balade au dessus de paris1
Balade au dessus de paris1Balade au dessus de paris1
Balade au dessus de paris1Saúl Hernández
 
Taller de Presentacion Efectivas I
Taller de Presentacion Efectivas ITaller de Presentacion Efectivas I
Taller de Presentacion Efectivas IVictor Gutiérrez
 
OAP BANNER FINAL
OAP BANNER FINALOAP BANNER FINAL
OAP BANNER FINALKari Paine
 
Cours histoire russie
Cours histoire russieCours histoire russie
Cours histoire russieguest24ecab
 
Derechos de autor respecto a la producción de material de software
Derechos de autor respecto a la producción de material de softwareDerechos de autor respecto a la producción de material de software
Derechos de autor respecto a la producción de material de softwareupc
 
ELABORACION DE REACTIVOS
ELABORACION DE REACTIVOS ELABORACION DE REACTIVOS
ELABORACION DE REACTIVOS Javier Sanchez
 
Raúl n. l'enfance de mon père
Raúl n. l'enfance de mon pèreRaúl n. l'enfance de mon père
Raúl n. l'enfance de mon pèreSchool
 
Lis. mon enfance
Lis. mon enfanceLis. mon enfance
Lis. mon enfanceSchool
 
Abschlusspräsentation v5
Abschlusspräsentation v5Abschlusspräsentation v5
Abschlusspräsentation v5Simon Hummel
 
FLL Comics
FLL ComicsFLL Comics
FLL Comicsesimeon
 
FLL Comic Book (French)
FLL Comic Book (French)FLL Comic Book (French)
FLL Comic Book (French)esimeon
 
Groupe Launch brochure_Francais
Groupe Launch brochure_FrancaisGroupe Launch brochure_Francais
Groupe Launch brochure_FrancaisRobertOstiguy
 
L%e2%80%99environnement
L%e2%80%99environnementL%e2%80%99environnement
L%e2%80%99environnementMarlène Fert
 

Andere mochten auch (20)

Clinique
CliniqueClinique
Clinique
 
Activate your Club 2.0 Area in 5 steps_French Version
Activate your Club 2.0 Area in 5 steps_French VersionActivate your Club 2.0 Area in 5 steps_French Version
Activate your Club 2.0 Area in 5 steps_French Version
 
Der edle Charakter des Propheten Muhammad
Der edle Charakter des Propheten MuhammadDer edle Charakter des Propheten Muhammad
Der edle Charakter des Propheten Muhammad
 
Marlon guia del reciclaje[1]
Marlon guia del reciclaje[1]Marlon guia del reciclaje[1]
Marlon guia del reciclaje[1]
 
Balade au dessus de paris1
Balade au dessus de paris1Balade au dessus de paris1
Balade au dessus de paris1
 
Taller de Presentacion Efectivas I
Taller de Presentacion Efectivas ITaller de Presentacion Efectivas I
Taller de Presentacion Efectivas I
 
Bildkonzeption Oma Heim
Bildkonzeption Oma HeimBildkonzeption Oma Heim
Bildkonzeption Oma Heim
 
OAP BANNER FINAL
OAP BANNER FINALOAP BANNER FINAL
OAP BANNER FINAL
 
Cours histoire russie
Cours histoire russieCours histoire russie
Cours histoire russie
 
Derechos de autor respecto a la producción de material de software
Derechos de autor respecto a la producción de material de softwareDerechos de autor respecto a la producción de material de software
Derechos de autor respecto a la producción de material de software
 
ELABORACION DE REACTIVOS
ELABORACION DE REACTIVOS ELABORACION DE REACTIVOS
ELABORACION DE REACTIVOS
 
Raúl n. l'enfance de mon père
Raúl n. l'enfance de mon pèreRaúl n. l'enfance de mon père
Raúl n. l'enfance de mon père
 
Lis. mon enfance
Lis. mon enfanceLis. mon enfance
Lis. mon enfance
 
Abschlusspräsentation v5
Abschlusspräsentation v5Abschlusspräsentation v5
Abschlusspräsentation v5
 
FLL Comics
FLL ComicsFLL Comics
FLL Comics
 
FLL Comic Book (French)
FLL Comic Book (French)FLL Comic Book (French)
FLL Comic Book (French)
 
Au premier etage
Au premier etageAu premier etage
Au premier etage
 
Groupe Launch brochure_Francais
Groupe Launch brochure_FrancaisGroupe Launch brochure_Francais
Groupe Launch brochure_Francais
 
L%e2%80%99environnement
L%e2%80%99environnementL%e2%80%99environnement
L%e2%80%99environnement
 
Barlando
BarlandoBarlando
Barlando
 

Ähnlich wie Charla 1er betabeers Córdoba

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
 

Ähnlich wie Charla 1er betabeers Córdoba (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
 

Kürzlich hochgeladen

Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfAnnimoUno1
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfvladimiroflores1
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 

Kürzlich hochgeladen (11)

Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 

Charla 1er betabeers Córdoba

  • 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