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

Taller casa de software
Taller casa de softwareTaller casa de software
Taller casa de software
Luis Arellano
 
Cuadro comparativo de los modelos de proceso del software (1)
Cuadro comparativo  de los modelos de proceso del software (1)Cuadro comparativo  de los modelos de proceso del software (1)
Cuadro comparativo de los modelos de proceso del software (1)
Erik Emanuel Amador Saldaña
 

La actualidad más candente (20)

Metodologia crystal
Metodologia crystalMetodologia crystal
Metodologia crystal
 
Uwe uml
Uwe   umlUwe   uml
Uwe uml
 
Rup disciplinas
Rup disciplinasRup disciplinas
Rup disciplinas
 
Modelos de processos de software
Modelos de processos de softwareModelos de processos de software
Modelos de processos de software
 
Taller casa de software
Taller casa de softwareTaller casa de software
Taller casa de software
 
Introducción CMMI
Introducción CMMIIntroducción CMMI
Introducción CMMI
 
Aula 6 - Qualidade de Software
Aula 6 - Qualidade de SoftwareAula 6 - Qualidade de Software
Aula 6 - Qualidade de Software
 
Ingenieria de software - Unidad 3 arquitecturas de software
Ingenieria de software - Unidad 3 arquitecturas de softwareIngenieria de software - Unidad 3 arquitecturas de software
Ingenieria de software - Unidad 3 arquitecturas de software
 
Requerimientos en Ingenieria de Software
Requerimientos en Ingenieria de SoftwareRequerimientos en Ingenieria de Software
Requerimientos en Ingenieria de Software
 
Metodologia xp cortesserranoeliud
Metodologia xp cortesserranoeliudMetodologia xp cortesserranoeliud
Metodologia xp cortesserranoeliud
 
Procesos del Software
Procesos del SoftwareProcesos del Software
Procesos del Software
 
MODELADO RUP UML
MODELADO RUP UMLMODELADO RUP UML
MODELADO RUP UML
 
Modelos de Banco de dados e SGBDS
Modelos de Banco de dados e SGBDSModelos de Banco de dados e SGBDS
Modelos de Banco de dados e SGBDS
 
Teste de Software Introdução à Qualidade
Teste de Software Introdução à Qualidade Teste de Software Introdução à Qualidade
Teste de Software Introdução à Qualidade
 
Metodologias xp
Metodologias xpMetodologias xp
Metodologias xp
 
Ingenieria de software
Ingenieria de softwareIngenieria de software
Ingenieria de software
 
Ciclo de vida de software
Ciclo de vida de softwareCiclo de vida de software
Ciclo de vida de software
 
Unidad 1 Ingenieria de software
Unidad 1 Ingenieria de softwareUnidad 1 Ingenieria de software
Unidad 1 Ingenieria de software
 
Cuadro comparativo de los modelos de proceso del software (1)
Cuadro comparativo  de los modelos de proceso del software (1)Cuadro comparativo  de los modelos de proceso del software (1)
Cuadro comparativo de los modelos de proceso del software (1)
 
Ingeniería de software modelo incremental
Ingeniería de software  modelo incrementalIngeniería de software  modelo incremental
Ingeniería de software modelo incremental
 

Destacado

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
sergioimr
 
Voicenet Solutions Applications
Voicenet Solutions ApplicationsVoicenet Solutions Applications
Voicenet Solutions Applications
john_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 futuro
acaneda
 

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

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
GDG Lima
 
Mi primera App con GAE
Mi primera App con GAEMi primera App con GAE
Mi primera App con GAE
GDG Lima
 
Desarrollo de aplicaciones android con Python
Desarrollo de aplicaciones android con PythonDesarrollo de aplicaciones android con Python
Desarrollo de aplicaciones android con Python
Manuel 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

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

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 

Último (12)

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...
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
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
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
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.
 
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
 
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
 
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
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
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
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
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
 

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.