SlideShare une entreprise Scribd logo
1  sur  25
Rodrigo Corral – ALM Team Lead & Software Architect
rcorral@plainconcepts.com - @r_corral
Introducción a PhoneGap/Apache Cordova
– Una serie de recetas de ‘scadfolding’ para crear la estructura de
proyectos
– Una manera de empaquetar HTML, JavaScript y CSS en una aplicación
‘nativa’
– Un conjunto de plugins para acceder a características nativas de los
dispositivos
– Y un sistema para construir plugins de acceso a características nativas
¿Qué es PhoneGap?
Plaformas soportadas
– Node.js
– SDK
– Otras dependencias, p.e.: Ant y JDK en el caso de Android
– Variables de entorno
– ANDROID_HOME = C:Developmentadt-bundlesdk
– ANT_HOME Value: C:Developmentapache-ant-X.Y.Z
– JAVA_HOME = C:Program FilesJavajdkX.Y.Z_XY
– Variable PATH
– JAVA_HOME%bin;%ANT_HOME%bin;%ANDROID_HOME%platform-
tools;%ANDROID_HOME%tools;
¿Cómo monto el entorno?
¿Cómo obtener PhoneGap?
npm view phonegap versions
npm –g install phonegap@3.3.0-0.19.6
– Permite realizar el ‘scadfolding’ inicial del proyecto
– Permite compilar
– Permite añadir plugins
Línea de comandos de PhoneGap
Línea de comandos de PhoneGap
Crear un proyecto
Compilar para una plaforma
– http://plugins.cordova.io/#/
Usar plugins
– Usa tu editor favorito
– Puedes usar toda la artillería habitual en proyectos Web
– HTML/CCS
– JQuery
– JQuery Mobile
– Angular
– Knockout
– Moment.js
– Shenza
– Etc..
Creando la aplicación
– “Todas las abstracciones fugan” –
Joel Spolsky
– Fugas habituales
– Menor rendimiento
– Fragmentación de plataformas
– Fragmentación de navegadores en una
misma plataforma
Pero…
onclick: function () {
var $list = $("#DeviceInfo");
$list.empty();
$list.append('<li>' + 'Loading...' + '</li>');
setInterval(function () {
$list.empty();
if (window.device) {
for (var prop in device) {
if (device.hasOwnProperty(prop)) {
$list.append('<li>' + prop + ':' + device[prop] + '</li>');
}
}
}
else {
$list.append('<li>' + 'No disponible' + '</li>');
}
}, 3000);
}
Un poquito de JavaScript
Añadamos un poquito de color…
ul#DeviceInfo li{
color: red;
}
Uno poquito de CSS
– Emulator manager:
– android avd
– Listar disponsitivos:
– adb devices
– Desplegar y ejecutar
– phonegap run <platform>
– Elegir dispositivo:
– phonegap run android --device=<device_id>
– phonegap run android --emulator
Desplegar
Desplegar
– El navegador es tu amigo
– 80% de la depuración se hace en el navegador
– 20% en el dispositivo
Depuración
– Herramientas de depuración remota en el navegador
– IOS
– Android, a partir de 4.4
– Documentación de depuración
– https://github.com/phonegap/phonegap/wiki/Debugging-in-PhoneGap
Depuración remota en dispositivo
1) En public void onCreate(Bundle savedInstanceState)
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
WebView.setWebContentsDebuggingEnabled(true);
}
2) chrome://inspect/#devices
Depuración remota en Android >= 4.4
Adobe PhoneGapBuild
Construir en PhoneGap Build desde la línea de comando
Aplicaciones de verdad
Aplicaciones de verdad
Gracias!
rcorral@plainconcepts.com
@r_corral
http://geeks.ms/blogs/rcorral
Introducción a phone gap

Contenu connexe

En vedette

Webinar: Formación Online
Webinar: Formación OnlineWebinar: Formación Online
Webinar: Formación Onlinesergei
 
Proyecto el Diario como Objeto de Conocimiento en la Historia Antigua
Proyecto el Diario como Objeto de Conocimiento en la Historia AntiguaProyecto el Diario como Objeto de Conocimiento en la Historia Antigua
Proyecto el Diario como Objeto de Conocimiento en la Historia AntiguaEl Arcón de Clio
 
12.decadencia. renaixement i barroc
12.decadencia. renaixement i barroc12.decadencia. renaixement i barroc
12.decadencia. renaixement i barrocNombre Apellidos
 
Contenido3
Contenido3Contenido3
Contenido3victoria
 
[64]avatar -el_cambio_es_personal
[64]avatar  -el_cambio_es_personal[64]avatar  -el_cambio_es_personal
[64]avatar -el_cambio_es_personalCalidad de vida
 
Programas de gobierno ime
Programas de gobierno imeProgramas de gobierno ime
Programas de gobierno imeFreelance
 
Estadisticas
EstadisticasEstadisticas
Estadisticasjhon
 
Presentación final de pedagogía especial2
Presentación final de pedagogía especial2Presentación final de pedagogía especial2
Presentación final de pedagogía especial2Ingrid Bond
 
Ley 527 colombia
Ley 527 colombiaLey 527 colombia
Ley 527 colombiaSamPinilla
 
Como Aumentar Ventas en Navidad con Google
Como Aumentar Ventas en Navidad con GoogleComo Aumentar Ventas en Navidad con Google
Como Aumentar Ventas en Navidad con GoogleSHAKE-IT MARKETING
 
Actividad en coordinación
Actividad en coordinaciónActividad en coordinación
Actividad en coordinaciónmalaclau
 
Bilis, gaitan 150 años
Bilis, gaitan 150 añosBilis, gaitan 150 años
Bilis, gaitan 150 añosmmilitello
 
Presentación mª del castillo garcia romero 2º bto
Presentación mª del castillo garcia romero 2º btoPresentación mª del castillo garcia romero 2º bto
Presentación mª del castillo garcia romero 2º btodoloresvidalreligion
 

En vedette (20)

Webinar: Formación Online
Webinar: Formación OnlineWebinar: Formación Online
Webinar: Formación Online
 
Proyecto el Diario como Objeto de Conocimiento en la Historia Antigua
Proyecto el Diario como Objeto de Conocimiento en la Historia AntiguaProyecto el Diario como Objeto de Conocimiento en la Historia Antigua
Proyecto el Diario como Objeto de Conocimiento en la Historia Antigua
 
12.decadencia. renaixement i barroc
12.decadencia. renaixement i barroc12.decadencia. renaixement i barroc
12.decadencia. renaixement i barroc
 
Servicios Web 2.0
Servicios Web 2.0Servicios Web 2.0
Servicios Web 2.0
 
Contenido3
Contenido3Contenido3
Contenido3
 
Apuntes condicion física 2º eso
Apuntes condicion física 2º esoApuntes condicion física 2º eso
Apuntes condicion física 2º eso
 
[64]avatar -el_cambio_es_personal
[64]avatar  -el_cambio_es_personal[64]avatar  -el_cambio_es_personal
[64]avatar -el_cambio_es_personal
 
Programas de gobierno ime
Programas de gobierno imeProgramas de gobierno ime
Programas de gobierno ime
 
Estadisticas
EstadisticasEstadisticas
Estadisticas
 
1.1.1 tic
1.1.1 tic1.1.1 tic
1.1.1 tic
 
Personatges
PersonatgesPersonatges
Personatges
 
Estadisticas redes sociales Bibliosalud 2011
Estadisticas redes sociales Bibliosalud 2011Estadisticas redes sociales Bibliosalud 2011
Estadisticas redes sociales Bibliosalud 2011
 
Presentación final de pedagogía especial2
Presentación final de pedagogía especial2Presentación final de pedagogía especial2
Presentación final de pedagogía especial2
 
La victoria
La victoriaLa victoria
La victoria
 
Ley 527 colombia
Ley 527 colombiaLey 527 colombia
Ley 527 colombia
 
Marejada de cosas kawaii
Marejada de cosas kawaiiMarejada de cosas kawaii
Marejada de cosas kawaii
 
Como Aumentar Ventas en Navidad con Google
Como Aumentar Ventas en Navidad con GoogleComo Aumentar Ventas en Navidad con Google
Como Aumentar Ventas en Navidad con Google
 
Actividad en coordinación
Actividad en coordinaciónActividad en coordinación
Actividad en coordinación
 
Bilis, gaitan 150 años
Bilis, gaitan 150 añosBilis, gaitan 150 años
Bilis, gaitan 150 años
 
Presentación mª del castillo garcia romero 2º bto
Presentación mª del castillo garcia romero 2º btoPresentación mª del castillo garcia romero 2º bto
Presentación mª del castillo garcia romero 2º bto
 

Similaire à Introducción a phone gap

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
 
Jose Selvi - Adaptando exploits para evitar la frustración [RootedSatellite V...
Jose Selvi - Adaptando exploits para evitar la frustración [RootedSatellite V...Jose Selvi - Adaptando exploits para evitar la frustración [RootedSatellite V...
Jose Selvi - Adaptando exploits para evitar la frustración [RootedSatellite V...RootedCON
 
Codemotion 2017 - Taller de JHipster
Codemotion 2017 - Taller de JHipsterCodemotion 2017 - Taller de JHipster
Codemotion 2017 - Taller de JHipsterAdolfo Sanz De Diego
 
Node js Alt.net Hispano
Node js Alt.net HispanoNode js Alt.net Hispano
Node js Alt.net Hispanohdgarcia
 
Silex, desarrollo web ágil y profesional con PHP
Silex, desarrollo web ágil y profesional con PHPSilex, desarrollo web ágil y profesional con PHP
Silex, desarrollo web ágil y profesional con PHPJavier Eguiluz
 
Optimización de Aplicaciones Android para X86
Optimización de Aplicaciones Android para X86Optimización de Aplicaciones Android para X86
Optimización de Aplicaciones Android para X86Software Guru
 
Intel Android @ HackMTY
Intel Android @ HackMTYIntel Android @ HackMTY
Intel Android @ HackMTYSoftware Guru
 
Taller desarrollo de apis
Taller desarrollo de apisTaller desarrollo de apis
Taller desarrollo de apisCloudAppi
 
Desarrollo android - 3 - entorno de desarrollo
Desarrollo android  - 3 - entorno de desarrolloDesarrollo android  - 3 - entorno de desarrollo
Desarrollo android - 3 - entorno de desarrolloEmilio Aviles Avila
 
Javascript en proyectos reales: jQuery
Javascript en proyectos reales: jQueryJavascript en proyectos reales: jQuery
Javascript en proyectos reales: jQueryDavid Arango
 
Presentacion Demo Open Solaris
Presentacion Demo Open SolarisPresentacion Demo Open Solaris
Presentacion Demo Open Solarisguest926912
 
Introducción a NodeJS
Introducción a NodeJSIntroducción a NodeJS
Introducción a NodeJSBEEVA_es
 
Introducción al microframework PHP Silex - Sergio Gómez - Betabeers Córdoba 0...
Introducción al microframework PHP Silex - Sergio Gómez - Betabeers Córdoba 0...Introducción al microframework PHP Silex - Sergio Gómez - Betabeers Córdoba 0...
Introducción al microframework PHP Silex - Sergio Gómez - Betabeers Córdoba 0...betabeers
 
JSDays Desarrolla tu primera API
JSDays Desarrolla tu primera APIJSDays Desarrolla tu primera API
JSDays Desarrolla tu primera APICloudAppi
 
PHPAJAX
PHPAJAXPHPAJAX
PHPAJAXrodasc
 

Similaire à Introducción a phone gap (20)

Desarrollo de aplicaciones multiplataforma 1/2
Desarrollo de aplicaciones multiplataforma 1/2Desarrollo de aplicaciones multiplataforma 1/2
Desarrollo de aplicaciones multiplataforma 1/2
 
Jose Selvi - Adaptando exploits para evitar la frustración [RootedSatellite V...
Jose Selvi - Adaptando exploits para evitar la frustración [RootedSatellite V...Jose Selvi - Adaptando exploits para evitar la frustración [RootedSatellite V...
Jose Selvi - Adaptando exploits para evitar la frustración [RootedSatellite V...
 
Codemotion 2017 - Taller de JHipster
Codemotion 2017 - Taller de JHipsterCodemotion 2017 - Taller de JHipster
Codemotion 2017 - Taller de JHipster
 
Node js Alt.net Hispano
Node js Alt.net HispanoNode js Alt.net Hispano
Node js Alt.net Hispano
 
Silex, desarrollo web ágil y profesional con PHP
Silex, desarrollo web ágil y profesional con PHPSilex, desarrollo web ágil y profesional con PHP
Silex, desarrollo web ágil y profesional con PHP
 
Optimización de Aplicaciones Android para X86
Optimización de Aplicaciones Android para X86Optimización de Aplicaciones Android para X86
Optimización de Aplicaciones Android para X86
 
JAVASCRIPT.pptx
JAVASCRIPT.pptxJAVASCRIPT.pptx
JAVASCRIPT.pptx
 
Intel Android @ HackMTY
Intel Android @ HackMTYIntel Android @ HackMTY
Intel Android @ HackMTY
 
Servicios web
Servicios webServicios web
Servicios web
 
Taller desarrollo de apis
Taller desarrollo de apisTaller desarrollo de apis
Taller desarrollo de apis
 
Desarrollo android - 3 - entorno de desarrollo
Desarrollo android  - 3 - entorno de desarrolloDesarrollo android  - 3 - entorno de desarrollo
Desarrollo android - 3 - entorno de desarrollo
 
Javascript en proyectos reales: jQuery
Javascript en proyectos reales: jQueryJavascript en proyectos reales: jQuery
Javascript en proyectos reales: jQuery
 
Presentacion Demo Open Solaris
Presentacion Demo Open SolarisPresentacion Demo Open Solaris
Presentacion Demo Open Solaris
 
Introducción a NodeJS
Introducción a NodeJSIntroducción a NodeJS
Introducción a NodeJS
 
Servicios web
Servicios webServicios web
Servicios web
 
Introducción al microframework PHP Silex - Sergio Gómez - Betabeers Córdoba 0...
Introducción al microframework PHP Silex - Sergio Gómez - Betabeers Córdoba 0...Introducción al microframework PHP Silex - Sergio Gómez - Betabeers Córdoba 0...
Introducción al microframework PHP Silex - Sergio Gómez - Betabeers Córdoba 0...
 
Servicios web
Servicios webServicios web
Servicios web
 
Introducción a Flask
Introducción a FlaskIntroducción a Flask
Introducción a Flask
 
JSDays Desarrolla tu primera API
JSDays Desarrolla tu primera APIJSDays Desarrolla tu primera API
JSDays Desarrolla tu primera API
 
PHPAJAX
PHPAJAXPHPAJAX
PHPAJAX
 

Plus de Rodrigo Corral

El lenguaje de pogramación C++
El lenguaje de pogramación C++El lenguaje de pogramación C++
El lenguaje de pogramación C++Rodrigo Corral
 
Industria 4.0 2017 - Almacenamiento y procesamiento de datos en la nube
Industria 4.0 2017 - Almacenamiento y procesamiento de datos en la nubeIndustria 4.0 2017 - Almacenamiento y procesamiento de datos en la nube
Industria 4.0 2017 - Almacenamiento y procesamiento de datos en la nubeRodrigo Corral
 
Seguridad en SQL Server
Seguridad en SQL ServerSeguridad en SQL Server
Seguridad en SQL ServerRodrigo Corral
 
CAS 2016 Scrum internals - Por qué scrum funciona
CAS 2016   Scrum internals - Por qué scrum funcionaCAS 2016   Scrum internals - Por qué scrum funciona
CAS 2016 Scrum internals - Por qué scrum funcionaRodrigo Corral
 
DotNet Spain 2016 - Añadiendo visibilidad a tus aplicaciones.pptx
DotNet Spain 2016 - Añadiendo visibilidad a tus aplicaciones.pptxDotNet Spain 2016 - Añadiendo visibilidad a tus aplicaciones.pptx
DotNet Spain 2016 - Añadiendo visibilidad a tus aplicaciones.pptxRodrigo Corral
 
Alm como factor diferenciador
Alm como factor diferenciadorAlm como factor diferenciador
Alm como factor diferenciadorRodrigo Corral
 
Llevando scrum a grandes organizaciones
Llevando scrum a grandes organizacionesLlevando scrum a grandes organizaciones
Llevando scrum a grandes organizacionesRodrigo Corral
 
Caminando hacia la agilidad con Visual Studio 2010
Caminando hacia la agilidad con Visual Studio 2010Caminando hacia la agilidad con Visual Studio 2010
Caminando hacia la agilidad con Visual Studio 2010Rodrigo Corral
 
Ingeniería del software y metodologías ágiles
Ingeniería del software y metodologías ágilesIngeniería del software y metodologías ágiles
Ingeniería del software y metodologías ágilesRodrigo Corral
 
ALM09 - Scrum, Visual Studio y Buenas Prácticas
ALM09 - Scrum, Visual Studio y Buenas PrácticasALM09 - Scrum, Visual Studio y Buenas Prácticas
ALM09 - Scrum, Visual Studio y Buenas PrácticasRodrigo Corral
 
Scrum, Team System y el mundo real
Scrum, Team System y el mundo realScrum, Team System y el mundo real
Scrum, Team System y el mundo realRodrigo Corral
 
Control de proyectos con Metodologías ágiles y Team System
Control de proyectos con Metodologías ágiles y Team SystemControl de proyectos con Metodologías ágiles y Team System
Control de proyectos con Metodologías ágiles y Team SystemRodrigo Corral
 
Windows Azure: ¿Quieres estar en las nubes?
Windows Azure: ¿Quieres estar en las nubes?Windows Azure: ¿Quieres estar en las nubes?
Windows Azure: ¿Quieres estar en las nubes?Rodrigo Corral
 
Novedades en la gestión de proyectos en VS2010
Novedades en la gestión de proyectos en VS2010Novedades en la gestión de proyectos en VS2010
Novedades en la gestión de proyectos en VS2010Rodrigo Corral
 

Plus de Rodrigo Corral (15)

El lenguaje de pogramación C++
El lenguaje de pogramación C++El lenguaje de pogramación C++
El lenguaje de pogramación C++
 
Industria 4.0 2017 - Almacenamiento y procesamiento de datos en la nube
Industria 4.0 2017 - Almacenamiento y procesamiento de datos en la nubeIndustria 4.0 2017 - Almacenamiento y procesamiento de datos en la nube
Industria 4.0 2017 - Almacenamiento y procesamiento de datos en la nube
 
Seguridad en SQL Server
Seguridad en SQL ServerSeguridad en SQL Server
Seguridad en SQL Server
 
CAS 2016 Scrum internals - Por qué scrum funciona
CAS 2016   Scrum internals - Por qué scrum funcionaCAS 2016   Scrum internals - Por qué scrum funciona
CAS 2016 Scrum internals - Por qué scrum funciona
 
DotNet Spain 2016 - Añadiendo visibilidad a tus aplicaciones.pptx
DotNet Spain 2016 - Añadiendo visibilidad a tus aplicaciones.pptxDotNet Spain 2016 - Añadiendo visibilidad a tus aplicaciones.pptx
DotNet Spain 2016 - Añadiendo visibilidad a tus aplicaciones.pptx
 
Alm como factor diferenciador
Alm como factor diferenciadorAlm como factor diferenciador
Alm como factor diferenciador
 
Llevando scrum a grandes organizaciones
Llevando scrum a grandes organizacionesLlevando scrum a grandes organizaciones
Llevando scrum a grandes organizaciones
 
Deuda técnica
Deuda técnicaDeuda técnica
Deuda técnica
 
Caminando hacia la agilidad con Visual Studio 2010
Caminando hacia la agilidad con Visual Studio 2010Caminando hacia la agilidad con Visual Studio 2010
Caminando hacia la agilidad con Visual Studio 2010
 
Ingeniería del software y metodologías ágiles
Ingeniería del software y metodologías ágilesIngeniería del software y metodologías ágiles
Ingeniería del software y metodologías ágiles
 
ALM09 - Scrum, Visual Studio y Buenas Prácticas
ALM09 - Scrum, Visual Studio y Buenas PrácticasALM09 - Scrum, Visual Studio y Buenas Prácticas
ALM09 - Scrum, Visual Studio y Buenas Prácticas
 
Scrum, Team System y el mundo real
Scrum, Team System y el mundo realScrum, Team System y el mundo real
Scrum, Team System y el mundo real
 
Control de proyectos con Metodologías ágiles y Team System
Control de proyectos con Metodologías ágiles y Team SystemControl de proyectos con Metodologías ágiles y Team System
Control de proyectos con Metodologías ágiles y Team System
 
Windows Azure: ¿Quieres estar en las nubes?
Windows Azure: ¿Quieres estar en las nubes?Windows Azure: ¿Quieres estar en las nubes?
Windows Azure: ¿Quieres estar en las nubes?
 
Novedades en la gestión de proyectos en VS2010
Novedades en la gestión de proyectos en VS2010Novedades en la gestión de proyectos en VS2010
Novedades en la gestión de proyectos en VS2010
 

Introducción a phone gap

  • 1. Rodrigo Corral – ALM Team Lead & Software Architect rcorral@plainconcepts.com - @r_corral Introducción a PhoneGap/Apache Cordova
  • 2. – Una serie de recetas de ‘scadfolding’ para crear la estructura de proyectos – Una manera de empaquetar HTML, JavaScript y CSS en una aplicación ‘nativa’ – Un conjunto de plugins para acceder a características nativas de los dispositivos – Y un sistema para construir plugins de acceso a características nativas ¿Qué es PhoneGap?
  • 4. – Node.js – SDK – Otras dependencias, p.e.: Ant y JDK en el caso de Android – Variables de entorno – ANDROID_HOME = C:Developmentadt-bundlesdk – ANT_HOME Value: C:Developmentapache-ant-X.Y.Z – JAVA_HOME = C:Program FilesJavajdkX.Y.Z_XY – Variable PATH – JAVA_HOME%bin;%ANT_HOME%bin;%ANDROID_HOME%platform- tools;%ANDROID_HOME%tools; ¿Cómo monto el entorno?
  • 5. ¿Cómo obtener PhoneGap? npm view phonegap versions npm –g install phonegap@3.3.0-0.19.6
  • 6. – Permite realizar el ‘scadfolding’ inicial del proyecto – Permite compilar – Permite añadir plugins Línea de comandos de PhoneGap
  • 7. Línea de comandos de PhoneGap
  • 9. Compilar para una plaforma
  • 11. – Usa tu editor favorito – Puedes usar toda la artillería habitual en proyectos Web – HTML/CCS – JQuery – JQuery Mobile – Angular – Knockout – Moment.js – Shenza – Etc.. Creando la aplicación
  • 12. – “Todas las abstracciones fugan” – Joel Spolsky – Fugas habituales – Menor rendimiento – Fragmentación de plataformas – Fragmentación de navegadores en una misma plataforma Pero…
  • 13. onclick: function () { var $list = $("#DeviceInfo"); $list.empty(); $list.append('<li>' + 'Loading...' + '</li>'); setInterval(function () { $list.empty(); if (window.device) { for (var prop in device) { if (device.hasOwnProperty(prop)) { $list.append('<li>' + prop + ':' + device[prop] + '</li>'); } } } else { $list.append('<li>' + 'No disponible' + '</li>'); } }, 3000); } Un poquito de JavaScript
  • 14. Añadamos un poquito de color… ul#DeviceInfo li{ color: red; } Uno poquito de CSS
  • 15. – Emulator manager: – android avd – Listar disponsitivos: – adb devices – Desplegar y ejecutar – phonegap run <platform> – Elegir dispositivo: – phonegap run android --device=<device_id> – phonegap run android --emulator Desplegar
  • 17. – El navegador es tu amigo – 80% de la depuración se hace en el navegador – 20% en el dispositivo Depuración
  • 18. – Herramientas de depuración remota en el navegador – IOS – Android, a partir de 4.4 – Documentación de depuración – https://github.com/phonegap/phonegap/wiki/Debugging-in-PhoneGap Depuración remota en dispositivo
  • 19. 1) En public void onCreate(Bundle savedInstanceState) if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { WebView.setWebContentsDebuggingEnabled(true); } 2) chrome://inspect/#devices Depuración remota en Android >= 4.4
  • 21. Construir en PhoneGap Build desde la línea de comando