SlideShare una empresa de Scribd logo
1 de 20
www.sgcampus.com.mx @sgcampus
www.sgcampus.com.mx
@sgcampu
s
Aplicaciones móviles con Apache Cordova
www.sgcampus.com.mx @sgcampus
Agenda
● Tecnologías móviles y su alcance.
● El espectro de aplicaciones móviles.
● ¿Por qué Apache Cordova?
● Conceptos básicos.
● Instalación.
● Uso de la línea de comandos.
● Herramientas.
● Mejores prácticas.
● Tips & trucos.
● Contactos y documentación.
● ¿List@ para contribuir?
www.sgcampus.com.mx @sgcampus
Tecnologías móviles y su alcance
● “Para el 2018, más del 50% de los usuarios usarán dispositivos móviles para todas sus actividades en
línea” - Gartner: http://www.gartner.com/newsroom/id/2939217
● Se estima que para el 2020 habrá un promedio de 4.3 dispositvos móviles per cápita – Mobile World
live http://www.mobileworldlive.com/connected-devices-to-hit-4-3-per-person-by-2020-report
● Políticas BYOD (Bring your own device) son cada vez más atractivas para las compañías.
● Las aplicaciones móviles permiten la evolución y uso del Internet de las Cosas (Internet of Things)
www.sgcampus.com.mx @sgcampus
Espectro de aplicaciones móviles
Mobile
web
site
(acceso
por
browser)
Native
shell
Contiene
un sitio
m.miorg
externo
Pre-
packag
ed
Recursos
HTML5
HTML5
+
native
UI
Mostly
native
Algunas
pantallas
HTML5
Pure
native
Web-native continuum
HíbridoWeb puro Nativo
puro
www.sgcampus.com.mx @sgcampus
¿Por qué Apache Cordova?
● Conjunto de APIs para la construcción de aplicaciones móviles híbridas que proveen mecanismos para
accesar funcionalidades nativas de los dispositivos.
● Soporta una gran variedad de plataformas.
● Auspiciado por la organización Apache con ayuda de muchas otras compañías (Adobe, Google, IBM,
Microsoft, Mozilla, Intel y muchas más)... Y de individuos como tu!
● Sigue los lineamientos de la ASF.
● Dirigido por la comunidad y no por los objetivos de una sola compañía.
● http://cordova.apache.org/
www.sgcampus.com.mx @sgcampus
Conceptos básicos
● Aplicación Cordova: Aplicación creada usando la línea de comandos de Cordova.
● Plataforma: Ambiente que es soportado en la aplicación. Por ejemplo: Android, iOS, Windows phone,
etc.
● Plugin: Código inyectado que permite la comunicación entre el webview (Javascript) y la parte nativa
de la plataforma (Java, Swift, .NET, etc).
● Config.xml: Archivo central que contiene las especificaciones de la aplicación y que son compartidas
entre las plataformas.
www.sgcampus.com.mx @sgcampus
Instalación
● La línea de comandos Cordova funciona en una Terminal o Windows Prompt solamente.
● Instalar Node.js - https://nodejs.org/
● Asegurarse que los ejecutables de Node.js y NPM están en el PATH
– Windows: echo %PATH%
– Linux & Mac: echo $PATH
● Instalar Cordova usando NPM
– npm install cordova
– En Linux y Mac es probable que se requiera el uso de sudo.
* Conexión a internet es necesaria durante el proceso de instalación.
www.sgcampus.com.mx @sgcampus
La línea de comandos de Cordova
● cordova -help: Lista los posibles comandos que se pueden usar.
www.sgcampus.com.mx @sgcampus
La línea de comandos de Cordova
● cordova create <aplicación> <identificador> <nombre a desplegar>
● Estructura del proyecto en el sistema de archivos.
● Crea una aplicación con un simple HelloWorld con un HTML y Javascript que espera hasta que el
dispositivo se encuentra listo para usar las funciones nativas
– Para esto, hay que utilizar un EventListener que espere por el evento “deviceready”. Esto
usualmente se logra con el siguiente código:
document.addEventListener(“deviceready”, <callback>, true|false);
* Conexión a internet es necesaria durante el proceso de creación para descargar los archivos del
proyecto.
www.sgcampus.com.mx @sgcampus
Línea de comados
● Archivo config.xml
<?xml version='1.0' encoding='utf­8'?>
<widget id="org.victor.sample" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" 
xmlns:cdv="http://cordova.apache.org/ns/1.0">
    <name>HelloWorld</name>
    <description>
        A sample Apache Cordova application that responds to the deviceready event.
    </description>
    <author email="dev@cordova.apache.org" href="http://cordova.io">
        Apache Cordova Team
    </author>
    <content src="index.html" />
    <access origin="*" />
</widget>
www.sgcampus.com.mx @sgcampus
La línea de comandos de Cordova
● cordova plugin add <plugin>
● Cordova Plugin Registry (http://plugins.cordova.io). Próximamente será movido al repositorio NPMJS!
● Plugin en el sistema de archivos local (útil para el desarrollo de plugins de Cordova)
● Plugin alojado en un repositorio Git (requiere Git en el PATH)
● cordova plugin rm <plugin>
* Conexión a internet es necesaria durante el proceso de instalación del plugin.
www.sgcampus.com.mx @sgcampus
La línea de comandos de Cordova
● cordova platform add <plataforma>
● cordova platform rm <plataforma>
* Conexión a internet es necesaria durante el proceso de instalación de la plataforma.
** El SDK de la plataforma debe de ser localizable en el PATH. Consulte las guías de las plataformas
para más detalles para cada una.
www.sgcampus.com.mx @sgcampus
La línea de comandos de Cordova
● cordova run <plataforma>
– Corre la aplicación en un dispositivo físico. Si no está conectado el dispositivo a la computadora o
no lo detecta, entonces arranca el respectivo emulador para la plataforma.
● cordova emulate <plataforma>
– Corre la aplicación en un emulador.
www.sgcampus.com.mx @sgcampus
La línea de comandos de Cordova
www.sgcampus.com.mx @sgcampus
La línea de comandos de Cordova
● cordova build <plataforma>
● Soporta dos banderas:
– debug: Usado para compartir el proyecto compilado para propósitos de testing solamente. Las
app stores no permiten agregar estos archivos por que no están firmadas apropiadamente.
– release: Cuando una aplicación es construida con esta bandera, el archivo no puede ser
instalado dado que le falta la firma. El siguiente paso es firmar el archivo. Este firmado es
dependiente a la plataforma. Ver las guías de las plataformas en la documentación.
www.sgcampus.com.mx @sgcampus
Herramientas
● IDE's populares que soportan Cordova
– Eclipse, usando el proyecto THyM - https://www.eclipse.org/thym/
– IBM MobileFirst - http://www.ibm.com/mobilefirst/us/en/
– IBM Rational Application Developer - http://www.ibm.com/developerworks/downloads/r/rad/
– NetBeans - https://netbeans.org/
– MyEclipse - https://www.genuitec.com/products/myeclipse/
– Visual Studio - https://www.visualstudio.com/en-us/cordova-vs.aspx
– AppBuilder - http://www.telerik.com/appbuilder
● Herramientas de integración
– Ionic - http://ionicframework.com/
– Supersonic - http://www.appgyver.com/
www.sgcampus.com.mx @sgcampus
Mejores prácticas
● Single-Page Application (SPA).
● Manejo de eventos “click” y “tap”.
● Favorecer animaciones con CSS en lugar de eventos en el DOM.
● Manejo del estado de la red: online y offline.
● Modificar el whitelisting para minimizar los dominios que pueden accesar a la aplicación e incrementar
seguridad.
● Usar InAppBrowser para abrir links que redireccionan a otro sitio.
www.sgcampus.com.mx @sgcampus
Tips y trucos
● No incluir las plataformas ni los plugins en sistemas SCM como Git o CVS.
● Usar la bandera –save cuando se agregan plugins y plataformas por primera vez. Esto guardará la
información del plugin o plataforma en el archivo config.xml.
● Usar la bandera –browserify cuando se agrega un plugin para generar código Javascript que puede ser
usado en un web browser. Esto permite probar la aplicación rápidamente.
● Usar LiveReload y el plugin GapReload.
● Cuando se genere una nueva página HTML, no olvides incluir el script cordova.js usando la tag
<script>
www.sgcampus.com.mx @sgcampus
Contactos y documentación
● Documentación oficial - http://cordova.apache.org/docs/en/edge/
● Noticias - http://cordova.apache.org/#news
● StackOverflow - http://stackoverflow.com/questions/tagged/cordova
● Grupo en Google - https://groups.google.com/forum/#!forum/phonegap
● Mailing lists - http://cordova.apache.org/#mailing-list
● Blog de Raymond Camden - http://www.raymondcamden.com/category/Mobile
www.sgcampus.com.mx @sgcampus
¿List@ para contribuir?
● Lee nuestros lineamientos - http://cordova.apache.org/#contribute
● Suscríbete a nuestra lista de distribución para desarrolladores de Cordova -
dev-subscribe@cordova.apache.org
● No olvides firmar y enviar tu iCLA!!
● Envíanos tus pull requests y no olvides recordarnos sobre ellos.

Más contenido relacionado

La actualidad más candente

UML para dispositivos móviles - Milena Cabrera
UML para dispositivos móviles - Milena CabreraUML para dispositivos móviles - Milena Cabrera
UML para dispositivos móviles - Milena Cabrera2008PA2Info3
 
Modelo componentes
Modelo componentesModelo componentes
Modelo componentesmartin
 
Tarea1 programacion-distribuida
Tarea1 programacion-distribuidaTarea1 programacion-distribuida
Tarea1 programacion-distribuidaRJ Manayay Chavez
 
A1 modelado de los requerimientos de un sistema de informacion
A1   modelado de los requerimientos de un sistema de informacionA1   modelado de los requerimientos de un sistema de informacion
A1 modelado de los requerimientos de un sistema de informacionmariopino129
 
M17_情シス必見、Azure Arc によるマルチプラットフォーム管理の今 [Microsoft Japan Digital Days]
M17_情シス必見、Azure Arc によるマルチプラットフォーム管理の今 [Microsoft Japan Digital Days]M17_情シス必見、Azure Arc によるマルチプラットフォーム管理の今 [Microsoft Japan Digital Days]
M17_情シス必見、Azure Arc によるマルチプラットフォーム管理の今 [Microsoft Japan Digital Days]日本マイクロソフト株式会社
 
Tema 2 - T3: Casos de prueba
Tema 2 - T3:  Casos de pruebaTema 2 - T3:  Casos de prueba
Tema 2 - T3: Casos de pruebaMagemyl Egana
 
Active Directory
Active DirectoryActive Directory
Active Directoryjessica
 
IEEE 830 1998: Software Requirements Specification (Especificación de requisi...
IEEE 830 1998: Software Requirements Specification (Especificación de requisi...IEEE 830 1998: Software Requirements Specification (Especificación de requisi...
IEEE 830 1998: Software Requirements Specification (Especificación de requisi...Jesús Navarro
 
IEEE 1016 1998: Software design description
IEEE 1016 1998: Software design descriptionIEEE 1016 1998: Software design description
IEEE 1016 1998: Software design descriptionJesús Navarro
 
Tema N° 6 Técnicas para el Levantamiento y Recolección de Requisitos
Tema N° 6 Técnicas para el Levantamiento y Recolección de RequisitosTema N° 6 Técnicas para el Levantamiento y Recolección de Requisitos
Tema N° 6 Técnicas para el Levantamiento y Recolección de RequisitosSaraEAlcntaraR
 
Introdução a DevOps e Continuous delivery agileday
Introdução a DevOps e Continuous delivery   agiledayIntrodução a DevOps e Continuous delivery   agileday
Introdução a DevOps e Continuous delivery agiledayCarlos Felippe Cardoso
 
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...Edureka!
 
aseguramiento de la calidad de software acs
aseguramiento de la calidad de software acsaseguramiento de la calidad de software acs
aseguramiento de la calidad de software acsMARCO POLO SILVA SEGOVIA
 
Aula 3 - Sistemas operacionais - Linux
Aula 3 - Sistemas operacionais - LinuxAula 3 - Sistemas operacionais - Linux
Aula 3 - Sistemas operacionais - LinuxLucasMansueto
 
#MSDEVMTL Introduction à #SonarQube
#MSDEVMTL Introduction à #SonarQube#MSDEVMTL Introduction à #SonarQube
#MSDEVMTL Introduction à #SonarQubeVincent Biret
 
Análisis de Requerimientos
Análisis de RequerimientosAnálisis de Requerimientos
Análisis de RequerimientosUTPL UTPL
 

La actualidad más candente (20)

UML para dispositivos móviles - Milena Cabrera
UML para dispositivos móviles - Milena CabreraUML para dispositivos móviles - Milena Cabrera
UML para dispositivos móviles - Milena Cabrera
 
Modelo componentes
Modelo componentesModelo componentes
Modelo componentes
 
RAID
RAIDRAID
RAID
 
Tarea1 programacion-distribuida
Tarea1 programacion-distribuidaTarea1 programacion-distribuida
Tarea1 programacion-distribuida
 
Seguridad y proteccion
Seguridad y proteccionSeguridad y proteccion
Seguridad y proteccion
 
A1 modelado de los requerimientos de un sistema de informacion
A1   modelado de los requerimientos de un sistema de informacionA1   modelado de los requerimientos de un sistema de informacion
A1 modelado de los requerimientos de un sistema de informacion
 
M17_情シス必見、Azure Arc によるマルチプラットフォーム管理の今 [Microsoft Japan Digital Days]
M17_情シス必見、Azure Arc によるマルチプラットフォーム管理の今 [Microsoft Japan Digital Days]M17_情シス必見、Azure Arc によるマルチプラットフォーム管理の今 [Microsoft Japan Digital Days]
M17_情シス必見、Azure Arc によるマルチプラットフォーム管理の今 [Microsoft Japan Digital Days]
 
Tema 2 - T3: Casos de prueba
Tema 2 - T3:  Casos de pruebaTema 2 - T3:  Casos de prueba
Tema 2 - T3: Casos de prueba
 
Active Directory
Active DirectoryActive Directory
Active Directory
 
IEEE 830 1998: Software Requirements Specification (Especificación de requisi...
IEEE 830 1998: Software Requirements Specification (Especificación de requisi...IEEE 830 1998: Software Requirements Specification (Especificación de requisi...
IEEE 830 1998: Software Requirements Specification (Especificación de requisi...
 
IEEE 1016 1998: Software design description
IEEE 1016 1998: Software design descriptionIEEE 1016 1998: Software design description
IEEE 1016 1998: Software design description
 
Tema N° 6 Técnicas para el Levantamiento y Recolección de Requisitos
Tema N° 6 Técnicas para el Levantamiento y Recolección de RequisitosTema N° 6 Técnicas para el Levantamiento y Recolección de Requisitos
Tema N° 6 Técnicas para el Levantamiento y Recolección de Requisitos
 
Rup (iteraciones)
Rup (iteraciones)Rup (iteraciones)
Rup (iteraciones)
 
Introdução a DevOps e Continuous delivery agileday
Introdução a DevOps e Continuous delivery   agiledayIntrodução a DevOps e Continuous delivery   agileday
Introdução a DevOps e Continuous delivery agileday
 
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
Chef vs Puppet vs Ansible vs SaltStack | Configuration Management Tools Compa...
 
aseguramiento de la calidad de software acs
aseguramiento de la calidad de software acsaseguramiento de la calidad de software acs
aseguramiento de la calidad de software acs
 
Aula 3 - Sistemas operacionais - Linux
Aula 3 - Sistemas operacionais - LinuxAula 3 - Sistemas operacionais - Linux
Aula 3 - Sistemas operacionais - Linux
 
#MSDEVMTL Introduction à #SonarQube
#MSDEVMTL Introduction à #SonarQube#MSDEVMTL Introduction à #SonarQube
#MSDEVMTL Introduction à #SonarQube
 
Modelo cascada
Modelo cascadaModelo cascada
Modelo cascada
 
Análisis de Requerimientos
Análisis de RequerimientosAnálisis de Requerimientos
Análisis de Requerimientos
 

Destacado

Instalacion Apache Cordova Tecnologías Moviles
Instalacion Apache Cordova Tecnologías MovilesInstalacion Apache Cordova Tecnologías Moviles
Instalacion Apache Cordova Tecnologías MovilesBruno Gutierrez
 
Ionic, Adaptación de desarrollos web a dispositivos móviles
Ionic, Adaptación de desarrollos web a dispositivos móvilesIonic, Adaptación de desarrollos web a dispositivos móviles
Ionic, Adaptación de desarrollos web a dispositivos móvilesAlvaro Yuste Torregrosa
 
Desarrollo de aplicaciones móviles con Ionic y Apache Cordova
Desarrollo de aplicaciones móviles con Ionic y Apache CordovaDesarrollo de aplicaciones móviles con Ionic y Apache Cordova
Desarrollo de aplicaciones móviles con Ionic y Apache CordovaAlián Rigñack Quevedo
 
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
 
Desarrollo de aplicaciones moviles
Desarrollo de aplicaciones movilesDesarrollo de aplicaciones moviles
Desarrollo de aplicaciones movilesRoberto Perales
 
Desarrollo de aplicaciones multiplataforma 2/2
Desarrollo de aplicaciones multiplataforma 2/2Desarrollo de aplicaciones multiplataforma 2/2
Desarrollo de aplicaciones multiplataforma 2/2Ignacio Muñoz Vicente
 
Aplicaciones Mobile con AngularJS y Ionic framework
Aplicaciones Mobile con AngularJS y Ionic framework Aplicaciones Mobile con AngularJS y Ionic framework
Aplicaciones Mobile con AngularJS y Ionic framework Marcos Reynoso
 
Equipos deportivos màs importantes en chile
Equipos deportivos màs importantes en chileEquipos deportivos màs importantes en chile
Equipos deportivos màs importantes en chilesergioimr
 
Voicenet Solutions Applications
Voicenet Solutions ApplicationsVoicenet Solutions Applications
Voicenet Solutions Applicationsjohn_barker
 
Ciudadanía europea debates para el futuro
Ciudadanía europea   debates para el futuroCiudadanía europea   debates para el futuro
Ciudadanía europea debates para el futuroacaneda
 
Content Is Your Kingdom...And More
Content Is Your Kingdom...And MoreContent Is Your Kingdom...And More
Content Is Your Kingdom...And MoreMark Masters
 
Comparison of Biological Significance of Biclusters of SIMBIC and SIMBIC+ Bic...
Comparison of Biological Significance of Biclusters of SIMBIC and SIMBIC+ Bic...Comparison of Biological Significance of Biclusters of SIMBIC and SIMBIC+ Bic...
Comparison of Biological Significance of Biclusters of SIMBIC and SIMBIC+ Bic...IDES Editor
 

Destacado (20)

Instalacion Apache Cordova Tecnologías Moviles
Instalacion Apache Cordova Tecnologías MovilesInstalacion Apache Cordova Tecnologías Moviles
Instalacion Apache Cordova Tecnologías Moviles
 
Android Superstar - Buenas Prácticas
Android Superstar - Buenas PrácticasAndroid Superstar - Buenas Prácticas
Android Superstar - Buenas Prácticas
 
Rest
RestRest
Rest
 
Ionic, Adaptación de desarrollos web a dispositivos móviles
Ionic, Adaptación de desarrollos web a dispositivos móvilesIonic, Adaptación de desarrollos web a dispositivos móviles
Ionic, Adaptación de desarrollos web a dispositivos móviles
 
Desarrollo de aplicaciones móviles con Ionic y Apache Cordova
Desarrollo de aplicaciones móviles con Ionic y Apache CordovaDesarrollo de aplicaciones móviles con Ionic y Apache Cordova
Desarrollo de aplicaciones móviles con Ionic y Apache Cordova
 
Desarrollo de aplicaciones multiplataforma 1/2
Desarrollo de aplicaciones multiplataforma 1/2Desarrollo de aplicaciones multiplataforma 1/2
Desarrollo de aplicaciones multiplataforma 1/2
 
Desarrollo de aplicaciones moviles
Desarrollo de aplicaciones movilesDesarrollo de aplicaciones moviles
Desarrollo de aplicaciones moviles
 
Desarrollo de aplicaciones multiplataforma 2/2
Desarrollo de aplicaciones multiplataforma 2/2Desarrollo de aplicaciones multiplataforma 2/2
Desarrollo de aplicaciones multiplataforma 2/2
 
Aplicaciones Mobile con AngularJS y Ionic framework
Aplicaciones Mobile con AngularJS y Ionic framework Aplicaciones Mobile con AngularJS y Ionic framework
Aplicaciones Mobile con AngularJS y Ionic framework
 
Equipos deportivos màs importantes en chile
Equipos deportivos màs importantes en chileEquipos deportivos màs importantes en chile
Equipos deportivos màs importantes en chile
 
Erro cópia do pedido
Erro cópia do pedidoErro cópia do pedido
Erro cópia do pedido
 
Protocolo final
Protocolo finalProtocolo final
Protocolo final
 
contactos
contactoscontactos
contactos
 
Voicenet Solutions Applications
Voicenet Solutions ApplicationsVoicenet Solutions Applications
Voicenet Solutions Applications
 
Hahnemann cast
Hahnemann castHahnemann cast
Hahnemann cast
 
Pacaro
PacaroPacaro
Pacaro
 
La boira
La boiraLa boira
La boira
 
Ciudadanía europea debates para el futuro
Ciudadanía europea   debates para el futuroCiudadanía europea   debates para el futuro
Ciudadanía europea debates para el futuro
 
Content Is Your Kingdom...And More
Content Is Your Kingdom...And MoreContent Is Your Kingdom...And More
Content Is Your Kingdom...And More
 
Comparison of Biological Significance of Biclusters of SIMBIC and SIMBIC+ Bic...
Comparison of Biological Significance of Biclusters of SIMBIC and SIMBIC+ Bic...Comparison of Biological Significance of Biclusters of SIMBIC and SIMBIC+ Bic...
Comparison of Biological Significance of Biclusters of SIMBIC and SIMBIC+ Bic...
 

Similar a Desarrollo de apps móviles con Apache Cordova

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
 
Desarrollando de aplicaciones web modernas para Linux, Windows y Mac con ASP....
Desarrollando de aplicaciones web modernas para Linux, Windows y Mac con ASP....Desarrollando de aplicaciones web modernas para Linux, Windows y Mac con ASP....
Desarrollando de aplicaciones web modernas para Linux, Windows y Mac con ASP....Software Guru
 
Herramientas para desarrollar rápidamente
Herramientas para desarrollar rápidamenteHerramientas para desarrollar rápidamente
Herramientas para desarrollar rápidamenteCarlos Toxtli
 
Mi primera app con GAE y GWT
Mi primera app con GAE y GWTMi primera app con GAE y GWT
Mi primera app con GAE y GWTGDG Lima
 
PhoneGap !Qué bueno que viniste¡
PhoneGap !Qué bueno que viniste¡PhoneGap !Qué bueno que viniste¡
PhoneGap !Qué bueno que viniste¡Rubén Aguilera
 
Mi primera App con GAE
Mi primera App con GAEMi primera App con GAE
Mi primera App con GAEGDG Lima
 
2.1 android cep jaen 2014 estructura de aplicación
2.1 android cep jaen 2014   estructura de aplicación2.1 android cep jaen 2014   estructura de aplicación
2.1 android cep jaen 2014 estructura de aplicaciónJose Antonio Vacas
 
Programando Windows Phone con Phonegap
Programando Windows Phone con PhonegapProgramando Windows Phone con Phonegap
Programando Windows Phone con PhonegapMauro Parra-Miranda
 
Android reversing 101.pdf
Android reversing 101.pdfAndroid reversing 101.pdf
Android reversing 101.pdfJosé Moreno
 
Desarrollo de aplicaciones android con Python
Desarrollo de aplicaciones android con PythonDesarrollo de aplicaciones android con Python
Desarrollo de aplicaciones android con PythonManuel Pérez
 

Similar a Desarrollo de apps móviles con Apache Cordova (20)

Charla GDG Madrid: Cordova + AngularJS + Ionic
Charla GDG Madrid: Cordova + AngularJS + IonicCharla GDG Madrid: Cordova + AngularJS + Ionic
Charla GDG Madrid: Cordova + AngularJS + Ionic
 
Desarrollando de aplicaciones web modernas para Linux, Windows y Mac con ASP....
Desarrollando de aplicaciones web modernas para Linux, Windows y Mac con ASP....Desarrollando de aplicaciones web modernas para Linux, Windows y Mac con ASP....
Desarrollando de aplicaciones web modernas para Linux, Windows y Mac con ASP....
 
Herramientas para desarrollar rápidamente
Herramientas para desarrollar rápidamenteHerramientas para desarrollar rápidamente
Herramientas para desarrollar rápidamente
 
Mi primera app con GAE y GWT
Mi primera app con GAE y GWTMi primera app con GAE y GWT
Mi primera app con GAE y GWT
 
Adtg como realice el app en android - usmp
Adtg   como realice el app en android - usmpAdtg   como realice el app en android - usmp
Adtg como realice el app en android - usmp
 
PhoneGap !Qué bueno que viniste¡
PhoneGap !Qué bueno que viniste¡PhoneGap !Qué bueno que viniste¡
PhoneGap !Qué bueno que viniste¡
 
Taller de desarrollo de aplicaciones móviles con la tecnología del SIG Corpor...
Taller de desarrollo de aplicaciones móviles con la tecnología del SIG Corpor...Taller de desarrollo de aplicaciones móviles con la tecnología del SIG Corpor...
Taller de desarrollo de aplicaciones móviles con la tecnología del SIG Corpor...
 
Mi primera App con GAE
Mi primera App con GAEMi primera App con GAE
Mi primera App con GAE
 
PresentacionPFC_ppt
PresentacionPFC_pptPresentacionPFC_ppt
PresentacionPFC_ppt
 
2.GeneXus introducción-al_curso
2.GeneXus introducción-al_curso2.GeneXus introducción-al_curso
2.GeneXus introducción-al_curso
 
2.1 android cep jaen 2014 estructura de aplicación
2.1 android cep jaen 2014   estructura de aplicación2.1 android cep jaen 2014   estructura de aplicación
2.1 android cep jaen 2014 estructura de aplicación
 
Html5
Html5Html5
Html5
 
Apache Cordova
Apache CordovaApache Cordova
Apache Cordova
 
Programando Windows Phone con Phonegap
Programando Windows Phone con PhonegapProgramando Windows Phone con Phonegap
Programando Windows Phone con Phonegap
 
Turbogears
TurbogearsTurbogears
Turbogears
 
introducción a flutter
introducción a flutterintroducción a flutter
introducción a flutter
 
Android reversing 101.pdf
Android reversing 101.pdfAndroid reversing 101.pdf
Android reversing 101.pdf
 
Integrando AngularJS y drupal
Integrando AngularJS y drupalIntegrando AngularJS y drupal
Integrando AngularJS y drupal
 
Desarrollo de aplicaciones android con Python
Desarrollo de aplicaciones android con PythonDesarrollo de aplicaciones android con Python
Desarrollo de aplicaciones android con Python
 
Informe tecnología
Informe tecnologíaInforme tecnología
Informe tecnología
 

Más de Software Guru

Hola Mundo del Internet de las Cosas
Hola Mundo del Internet de las CosasHola Mundo del Internet de las Cosas
Hola Mundo del Internet de las CosasSoftware Guru
 
Estructuras de datos avanzadas: Casos de uso reales
Estructuras de datos avanzadas: Casos de uso realesEstructuras de datos avanzadas: Casos de uso reales
Estructuras de datos avanzadas: Casos de uso realesSoftware Guru
 
Building bias-aware environments
Building bias-aware environmentsBuilding bias-aware environments
Building bias-aware environmentsSoftware Guru
 
El secreto para ser un desarrollador Senior
El secreto para ser un desarrollador SeniorEl secreto para ser un desarrollador Senior
El secreto para ser un desarrollador SeniorSoftware Guru
 
Cómo encontrar el trabajo remoto ideal
Cómo encontrar el trabajo remoto idealCómo encontrar el trabajo remoto ideal
Cómo encontrar el trabajo remoto idealSoftware Guru
 
Automatizando ideas con Apache Airflow
Automatizando ideas con Apache AirflowAutomatizando ideas con Apache Airflow
Automatizando ideas con Apache AirflowSoftware Guru
 
How thick data can improve big data analysis for business:
How thick data can improve big data analysis for business:How thick data can improve big data analysis for business:
How thick data can improve big data analysis for business:Software Guru
 
Introducción al machine learning
Introducción al machine learningIntroducción al machine learning
Introducción al machine learningSoftware Guru
 
Democratizando el uso de CoDi
Democratizando el uso de CoDiDemocratizando el uso de CoDi
Democratizando el uso de CoDiSoftware Guru
 
Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0Software Guru
 
Taller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJSTaller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJSSoftware Guru
 
El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...Software Guru
 
¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?Software Guru
 
Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.Software Guru
 
Pruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOpsPruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOpsSoftware Guru
 
Elixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivosElixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivosSoftware Guru
 
Así publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stressAsí publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stressSoftware Guru
 
Achieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goalsAchieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goalsSoftware Guru
 
Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19Software Guru
 
De lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseñoDe lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseñoSoftware Guru
 

Más de Software Guru (20)

Hola Mundo del Internet de las Cosas
Hola Mundo del Internet de las CosasHola Mundo del Internet de las Cosas
Hola Mundo del Internet de las Cosas
 
Estructuras de datos avanzadas: Casos de uso reales
Estructuras de datos avanzadas: Casos de uso realesEstructuras de datos avanzadas: Casos de uso reales
Estructuras de datos avanzadas: Casos de uso reales
 
Building bias-aware environments
Building bias-aware environmentsBuilding bias-aware environments
Building bias-aware environments
 
El secreto para ser un desarrollador Senior
El secreto para ser un desarrollador SeniorEl secreto para ser un desarrollador Senior
El secreto para ser un desarrollador Senior
 
Cómo encontrar el trabajo remoto ideal
Cómo encontrar el trabajo remoto idealCómo encontrar el trabajo remoto ideal
Cómo encontrar el trabajo remoto ideal
 
Automatizando ideas con Apache Airflow
Automatizando ideas con Apache AirflowAutomatizando ideas con Apache Airflow
Automatizando ideas con Apache Airflow
 
How thick data can improve big data analysis for business:
How thick data can improve big data analysis for business:How thick data can improve big data analysis for business:
How thick data can improve big data analysis for business:
 
Introducción al machine learning
Introducción al machine learningIntroducción al machine learning
Introducción al machine learning
 
Democratizando el uso de CoDi
Democratizando el uso de CoDiDemocratizando el uso de CoDi
Democratizando el uso de CoDi
 
Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0Gestionando la felicidad de los equipos con Management 3.0
Gestionando la felicidad de los equipos con Management 3.0
 
Taller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJSTaller: Creación de Componentes Web re-usables con StencilJS
Taller: Creación de Componentes Web re-usables con StencilJS
 
El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...El camino del full stack developer (o como hacemos en SERTI para que no solo ...
El camino del full stack developer (o como hacemos en SERTI para que no solo ...
 
¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?¿Qué significa ser un programador en Bitso?
¿Qué significa ser un programador en Bitso?
 
Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Colaboración efectiva entre desarrolladores del cliente y tu equipo.
 
Pruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOpsPruebas de integración con Docker en Azure DevOps
Pruebas de integración con Docker en Azure DevOps
 
Elixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivosElixir + Elm: Usando lenguajes funcionales en servicios productivos
Elixir + Elm: Usando lenguajes funcionales en servicios productivos
 
Así publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stressAsí publicamos las apps de Spotify sin stress
Así publicamos las apps de Spotify sin stress
 
Achieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goalsAchieving Your Goals: 5 Tips to successfully achieve your goals
Achieving Your Goals: 5 Tips to successfully achieve your goals
 
Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19Acciones de comunidades tech en tiempos del Covid19
Acciones de comunidades tech en tiempos del Covid19
 
De lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseñoDe lo operativo a lo estratégico: un modelo de management de diseño
De lo operativo a lo estratégico: un modelo de management de diseño
 

Último

ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 

Último (19)

ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 

Desarrollo de apps móviles con Apache Cordova

  • 2. www.sgcampus.com.mx @sgcampus Agenda ● Tecnologías móviles y su alcance. ● El espectro de aplicaciones móviles. ● ¿Por qué Apache Cordova? ● Conceptos básicos. ● Instalación. ● Uso de la línea de comandos. ● Herramientas. ● Mejores prácticas. ● Tips & trucos. ● Contactos y documentación. ● ¿List@ para contribuir?
  • 3. www.sgcampus.com.mx @sgcampus Tecnologías móviles y su alcance ● “Para el 2018, más del 50% de los usuarios usarán dispositivos móviles para todas sus actividades en línea” - Gartner: http://www.gartner.com/newsroom/id/2939217 ● Se estima que para el 2020 habrá un promedio de 4.3 dispositvos móviles per cápita – Mobile World live http://www.mobileworldlive.com/connected-devices-to-hit-4-3-per-person-by-2020-report ● Políticas BYOD (Bring your own device) son cada vez más atractivas para las compañías. ● Las aplicaciones móviles permiten la evolución y uso del Internet de las Cosas (Internet of Things)
  • 4. www.sgcampus.com.mx @sgcampus Espectro de aplicaciones móviles Mobile web site (acceso por browser) Native shell Contiene un sitio m.miorg externo Pre- packag ed Recursos HTML5 HTML5 + native UI Mostly native Algunas pantallas HTML5 Pure native Web-native continuum HíbridoWeb puro Nativo puro
  • 5. www.sgcampus.com.mx @sgcampus ¿Por qué Apache Cordova? ● Conjunto de APIs para la construcción de aplicaciones móviles híbridas que proveen mecanismos para accesar funcionalidades nativas de los dispositivos. ● Soporta una gran variedad de plataformas. ● Auspiciado por la organización Apache con ayuda de muchas otras compañías (Adobe, Google, IBM, Microsoft, Mozilla, Intel y muchas más)... Y de individuos como tu! ● Sigue los lineamientos de la ASF. ● Dirigido por la comunidad y no por los objetivos de una sola compañía. ● http://cordova.apache.org/
  • 6. www.sgcampus.com.mx @sgcampus Conceptos básicos ● Aplicación Cordova: Aplicación creada usando la línea de comandos de Cordova. ● Plataforma: Ambiente que es soportado en la aplicación. Por ejemplo: Android, iOS, Windows phone, etc. ● Plugin: Código inyectado que permite la comunicación entre el webview (Javascript) y la parte nativa de la plataforma (Java, Swift, .NET, etc). ● Config.xml: Archivo central que contiene las especificaciones de la aplicación y que son compartidas entre las plataformas.
  • 7. www.sgcampus.com.mx @sgcampus Instalación ● La línea de comandos Cordova funciona en una Terminal o Windows Prompt solamente. ● Instalar Node.js - https://nodejs.org/ ● Asegurarse que los ejecutables de Node.js y NPM están en el PATH – Windows: echo %PATH% – Linux & Mac: echo $PATH ● Instalar Cordova usando NPM – npm install cordova – En Linux y Mac es probable que se requiera el uso de sudo. * Conexión a internet es necesaria durante el proceso de instalación.
  • 8. www.sgcampus.com.mx @sgcampus La línea de comandos de Cordova ● cordova -help: Lista los posibles comandos que se pueden usar.
  • 9. www.sgcampus.com.mx @sgcampus La línea de comandos de Cordova ● cordova create <aplicación> <identificador> <nombre a desplegar> ● Estructura del proyecto en el sistema de archivos. ● Crea una aplicación con un simple HelloWorld con un HTML y Javascript que espera hasta que el dispositivo se encuentra listo para usar las funciones nativas – Para esto, hay que utilizar un EventListener que espere por el evento “deviceready”. Esto usualmente se logra con el siguiente código: document.addEventListener(“deviceready”, <callback>, true|false); * Conexión a internet es necesaria durante el proceso de creación para descargar los archivos del proyecto.
  • 10. www.sgcampus.com.mx @sgcampus Línea de comados ● Archivo config.xml <?xml version='1.0' encoding='utf­8'?> <widget id="org.victor.sample" version="0.0.1" xmlns="http://www.w3.org/ns/widgets"  xmlns:cdv="http://cordova.apache.org/ns/1.0">     <name>HelloWorld</name>     <description>         A sample Apache Cordova application that responds to the deviceready event.     </description>     <author email="dev@cordova.apache.org" href="http://cordova.io">         Apache Cordova Team     </author>     <content src="index.html" />     <access origin="*" /> </widget>
  • 11. www.sgcampus.com.mx @sgcampus La línea de comandos de Cordova ● cordova plugin add <plugin> ● Cordova Plugin Registry (http://plugins.cordova.io). Próximamente será movido al repositorio NPMJS! ● Plugin en el sistema de archivos local (útil para el desarrollo de plugins de Cordova) ● Plugin alojado en un repositorio Git (requiere Git en el PATH) ● cordova plugin rm <plugin> * Conexión a internet es necesaria durante el proceso de instalación del plugin.
  • 12. www.sgcampus.com.mx @sgcampus La línea de comandos de Cordova ● cordova platform add <plataforma> ● cordova platform rm <plataforma> * Conexión a internet es necesaria durante el proceso de instalación de la plataforma. ** El SDK de la plataforma debe de ser localizable en el PATH. Consulte las guías de las plataformas para más detalles para cada una.
  • 13. www.sgcampus.com.mx @sgcampus La línea de comandos de Cordova ● cordova run <plataforma> – Corre la aplicación en un dispositivo físico. Si no está conectado el dispositivo a la computadora o no lo detecta, entonces arranca el respectivo emulador para la plataforma. ● cordova emulate <plataforma> – Corre la aplicación en un emulador.
  • 14. www.sgcampus.com.mx @sgcampus La línea de comandos de Cordova
  • 15. www.sgcampus.com.mx @sgcampus La línea de comandos de Cordova ● cordova build <plataforma> ● Soporta dos banderas: – debug: Usado para compartir el proyecto compilado para propósitos de testing solamente. Las app stores no permiten agregar estos archivos por que no están firmadas apropiadamente. – release: Cuando una aplicación es construida con esta bandera, el archivo no puede ser instalado dado que le falta la firma. El siguiente paso es firmar el archivo. Este firmado es dependiente a la plataforma. Ver las guías de las plataformas en la documentación.
  • 16. www.sgcampus.com.mx @sgcampus Herramientas ● IDE's populares que soportan Cordova – Eclipse, usando el proyecto THyM - https://www.eclipse.org/thym/ – IBM MobileFirst - http://www.ibm.com/mobilefirst/us/en/ – IBM Rational Application Developer - http://www.ibm.com/developerworks/downloads/r/rad/ – NetBeans - https://netbeans.org/ – MyEclipse - https://www.genuitec.com/products/myeclipse/ – Visual Studio - https://www.visualstudio.com/en-us/cordova-vs.aspx – AppBuilder - http://www.telerik.com/appbuilder ● Herramientas de integración – Ionic - http://ionicframework.com/ – Supersonic - http://www.appgyver.com/
  • 17. www.sgcampus.com.mx @sgcampus Mejores prácticas ● Single-Page Application (SPA). ● Manejo de eventos “click” y “tap”. ● Favorecer animaciones con CSS en lugar de eventos en el DOM. ● Manejo del estado de la red: online y offline. ● Modificar el whitelisting para minimizar los dominios que pueden accesar a la aplicación e incrementar seguridad. ● Usar InAppBrowser para abrir links que redireccionan a otro sitio.
  • 18. www.sgcampus.com.mx @sgcampus Tips y trucos ● No incluir las plataformas ni los plugins en sistemas SCM como Git o CVS. ● Usar la bandera –save cuando se agregan plugins y plataformas por primera vez. Esto guardará la información del plugin o plataforma en el archivo config.xml. ● Usar la bandera –browserify cuando se agrega un plugin para generar código Javascript que puede ser usado en un web browser. Esto permite probar la aplicación rápidamente. ● Usar LiveReload y el plugin GapReload. ● Cuando se genere una nueva página HTML, no olvides incluir el script cordova.js usando la tag <script>
  • 19. www.sgcampus.com.mx @sgcampus Contactos y documentación ● Documentación oficial - http://cordova.apache.org/docs/en/edge/ ● Noticias - http://cordova.apache.org/#news ● StackOverflow - http://stackoverflow.com/questions/tagged/cordova ● Grupo en Google - https://groups.google.com/forum/#!forum/phonegap ● Mailing lists - http://cordova.apache.org/#mailing-list ● Blog de Raymond Camden - http://www.raymondcamden.com/category/Mobile
  • 20. www.sgcampus.com.mx @sgcampus ¿List@ para contribuir? ● Lee nuestros lineamientos - http://cordova.apache.org/#contribute ● Suscríbete a nuestra lista de distribución para desarrolladores de Cordova - dev-subscribe@cordova.apache.org ● No olvides firmar y enviar tu iCLA!! ● Envíanos tus pull requests y no olvides recordarnos sobre ellos.