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

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 seriede 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?
  • 3.
  • 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? npmview phonegap versions npm –g install phonegap@3.3.0-0.19.6
  • 6.
    – Permite realizarel ‘scadfolding’ inicial del proyecto – Permite compilar – Permite añadir plugins Línea de comandos de PhoneGap
  • 7.
    Línea de comandosde PhoneGap
  • 8.
  • 9.
  • 10.
  • 11.
    – Usa tueditor 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 lasabstracciones 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 poquitode 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
  • 16.
  • 17.
    – El navegadores tu amigo – 80% de la depuración se hace en el navegador – 20% en el dispositivo Depuración
  • 18.
    – Herramientas dedepuració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 publicvoid 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
  • 20.
  • 21.
    Construir en PhoneGapBuild desde la línea de comando
  • 22.
  • 23.
  • 24.