SlideShare a Scribd company logo
1 of 30
Download to read offline
¿App Híbrida o
Nativa?
Pedro Galván (@pedrogk)

Mar-19-2015
#MobileDay #IntelAndroid
Definiciones
App nativa
• Diseñada para un sistema operativo o incluso dispositivo
específico.
• Utiliza librerías y componentes UI nativos al sistema
operativo.
• Programada en el lenguaje correspondiente de la
plataforma.
• iOS -> Objective-C o Swift.
• Android -> Java.
• Windows Phone -> C#, VB
Web app
• Aplicación web que funciona directamente en el
navegador del dispositivo móvil.
• Para accederla, simplemente cargas el url
correspondiente (no se instala desde un app store).
• Se programa utilizando los mismos lenguajes y
tecnologías del web (HTML5, CSS, Javascript)
Cross-platform
• Programadas en un lenguaje común.
• Framework se encarga de generar código para
distintas plataformas.
• Appcelerator: Javascript -> UI web (WebKit).
• Xamarin: C# -> UI nativo.
• RubyMotion: Ruby -> UI nativo.
App híbrida
• Aplicación web embebida en un contenedor nativo.
• Tiene acceso a librerías y componentes nativos.
• Se puede distribuir por medio de App Store.
• Ejemplos:
• Cordova (PhoneGap)
• Sencha Touch
• Appgyver
Antecedentes
Sep. 2012.
Mientras tanto en el
Enterprise
Estrategias
Apps híbridas: 

La promesa
Apps Nativas
✓ Interacción avanzada
✓ Mejor desempeño
✓ Distribución via App Store
Una sola
plataforma
Menos
capacidades
Varias

Platformas
Más
capacidades
Web Apps
✓ Tecnologías web
✓ Actualización instantánea
✓ Distribución sin restricciones
Hybrid HTML5 Apps
✓ Tecnologías web
✓ Acceso a capacidades nativas
✓ Distribución via App Store
Apps híbridas: 

La letra pequeña
• No utilizan UI nativo, utilizan el DOM (browser).
• Consecuencias
• Menor desempeño.
• Comportamiento distinto entre dispositivos.
A pesar de todo …
• Sí tiene sentido desarrollar apps híbridas.
• El trade-off de desempeño <-> costo es aceptable
para la mayoría de los contextos empresariales.
Razones para elegir
Nativa Híbrida
La app es tu negocio.
Cuentas con desarrolladores 

con skills web.
Quieres “presumir” tu empresa o
studio por medio de la app.
Requieres soportar distintas
plataformas al mismo tiempo y
brindar una experiencia similar.
Dispones de desarrolladores para
distintas plataformas nativas.
Corto tiempo de vida.
Apps híbridas:

Mitigación
• Utilizar frameworks de presentación (ej. Ionic,
Angular).
• Incluir el motor de ejecución (Crosswalk).
• Utilizar tecnologías que no usan el DOM (o al
menos, no el DOM estándar).
• ej: React Native
Caja de herramientas
Cordova/Phonegap
• Expone APIs que permiten interactuar con
capacidades nativas del dispositivo.
• Es software libre.
• Cuenta con gran variedad de plugins.
http://cordova.apache.org
Angular JS
• Web app framework diseñado para optimizar
“single page applications”.
• Resuelve la sincronización automática de modelos
y vistas. Las vistas se actualizan automáticamente
cuando los datos cambian (two-way data binding).
http://angularjs.org
Ionic
• Front-end SDK para enriquecer el UI de apps
híbridas.
• Complementa a otros frameworks (ej. Cordova).
http://ionicframework.com
Intel XDK
• IDE para desarrollo de apps híbridas.
• Ventajas:
• Gratuito y disponible para Win, Mac, Linux.
• Juega bien con Cordova y otros frameworks.
• Depuración y testing.
• Capacidades de building/deployment de apps.
https://software.intel.com/en-us/html5/tools
Crosswalk
• Motor de ejecución de apps híbridas basado en
Chromium y Blink.
• El motor se empaqueta como parte de tu app.
• Ya no dependes de qué sistema operativo o versión
tenga el dispositivo donde se ejecuta la app.
• Es software libre.
https://crosswalk-project.org
Backend as a Service
(BaaS)
• Proveen servicios comunes que utilizas en tus apps:
• Gestión y operación de API.
• Almacenamiento de datos.
• Push notifications.
• Gestión de usuarios.
• Principales opciones
• Parse
• FeedHenry
• Kinvey
• Appery
• Azure Mobile Services
• Haz tu propio BaaS
React Native
• Tecnología para hybrid web apps
• Basado en React JS
• No utiliza el DOM, usa componentes nativos de UI.
• Async threads -> Rápido.
Gaming
• 3D
• Unity
• Project Anarchy
• Unreal
• 2D
• Corona
• Cocos2d
• Construct 2
El siguiente nivel: 

Apps verdaderamente
nativas
Apps verdaderamente nativas 

(native^2)
• Código nativo (C, C++, ASM) compilado como
librerías binarias que invocas desde tu app.
Android NDK: 

Panorama
C/C++
Code
Makefile ndk-build Mix with Java* GDB debug
Java
SDK APIs
Native Libs
Android* Application
NDK APIs
C/C++
Using JNI
JNI
Android NDK: 

Arquitectura
Android* NDK Application
Dalvik* Application
Java Class
Java Source
Compile with
Javac
Java Class
Java Source
Compile with
Javac
Create C header
with javah -jni
Header file
C/C++ Source
Code
Compile and Link C
Code (ndk-build)
Dynamic
Library (.so)
*.mk
Makefiles
Android NDK:
Consideraciones
• Existen distintas arquitecturas de procesador
(ARM, ARM v7, x86, x86 64, MIPS).
• Debes generar binarios para cada una.
• Puedes optimizar en tiempo de compilación.
• Usar instruction sets específicos (ej. SSSE4).
• Compilar para binario optimizado para desempeño.
• Conoce más en http://software.intel.com/es-es/
android
¡Gracias!
Conoce más en http://software.intel.com/es-es

More Related Content

What's hot

Lenguajes de Descripción de Arquitecturas
Lenguajes de Descripción de Arquitecturas Lenguajes de Descripción de Arquitecturas
Lenguajes de Descripción de Arquitecturas Shelisse De la Cruz
 
Cuadro comparativo de apache y iis
Cuadro comparativo de apache y iisCuadro comparativo de apache y iis
Cuadro comparativo de apache y iisAngel Cisneros
 
Cuadro Comparativo sobre Sistemas Operativos.
Cuadro Comparativo sobre Sistemas Operativos. Cuadro Comparativo sobre Sistemas Operativos.
Cuadro Comparativo sobre Sistemas Operativos. Juan Barrientos
 
Ios vs-android
Ios vs-androidIos vs-android
Ios vs-androidorlandogz
 
Automation testing IBM RFT - Rational Functional Tester
Automation testing IBM RFT - Rational Functional TesterAutomation testing IBM RFT - Rational Functional Tester
Automation testing IBM RFT - Rational Functional TesterVijayChowthri Nagaprakasham
 
Tópicos avanzados de programación eventos
Tópicos  avanzados  de programación   eventosTópicos  avanzados  de programación   eventos
Tópicos avanzados de programación eventosKanddy Mobylml
 
모바일 게임 테스트 자동화 (Appium 확장)
모바일 게임 테스트 자동화 (Appium 확장)모바일 게임 테스트 자동화 (Appium 확장)
모바일 게임 테스트 자동화 (Appium 확장)Jongwon Kim
 
Arquitectura software.taxonomias.modularidad.001
Arquitectura software.taxonomias.modularidad.001Arquitectura software.taxonomias.modularidad.001
Arquitectura software.taxonomias.modularidad.001Jose Emilio Labra Gayo
 
Modelos de desarrollo del software
Modelos de desarrollo del softwareModelos de desarrollo del software
Modelos de desarrollo del softwareRenny Batista
 
Glosario informatico ingles español
Glosario informatico ingles españolGlosario informatico ingles español
Glosario informatico ingles españolLaura Lyons
 
tipos de requisitos
  tipos de requisitos   tipos de requisitos
tipos de requisitos Juan Henao
 

What's hot (20)

Mobile Application Testing
Mobile Application TestingMobile Application Testing
Mobile Application Testing
 
Lenguajes de Descripción de Arquitecturas
Lenguajes de Descripción de Arquitecturas Lenguajes de Descripción de Arquitecturas
Lenguajes de Descripción de Arquitecturas
 
3.5 Nessus
3.5 Nessus3.5 Nessus
3.5 Nessus
 
Cuadro comparativo de apache y iis
Cuadro comparativo de apache y iisCuadro comparativo de apache y iis
Cuadro comparativo de apache y iis
 
Cuadro Comparativo sobre Sistemas Operativos.
Cuadro Comparativo sobre Sistemas Operativos. Cuadro Comparativo sobre Sistemas Operativos.
Cuadro Comparativo sobre Sistemas Operativos.
 
Ios vs-android
Ios vs-androidIos vs-android
Ios vs-android
 
Automation testing IBM RFT - Rational Functional Tester
Automation testing IBM RFT - Rational Functional TesterAutomation testing IBM RFT - Rational Functional Tester
Automation testing IBM RFT - Rational Functional Tester
 
Tópicos avanzados de programación eventos
Tópicos  avanzados  de programación   eventosTópicos  avanzados  de programación   eventos
Tópicos avanzados de programación eventos
 
Tarea de programacion
Tarea de programacionTarea de programacion
Tarea de programacion
 
모바일 게임 테스트 자동화 (Appium 확장)
모바일 게임 테스트 자동화 (Appium 확장)모바일 게임 테스트 자동화 (Appium 확장)
모바일 게임 테스트 자동화 (Appium 확장)
 
Java swing
Java swingJava swing
Java swing
 
Tabla comparativa requisitos windows
Tabla comparativa requisitos windowsTabla comparativa requisitos windows
Tabla comparativa requisitos windows
 
Cuestionario aplicaciones moviles
Cuestionario aplicaciones movilesCuestionario aplicaciones moviles
Cuestionario aplicaciones moviles
 
Pruebas Unitarias
Pruebas Unitarias Pruebas Unitarias
Pruebas Unitarias
 
Arquitectura software.taxonomias.modularidad.001
Arquitectura software.taxonomias.modularidad.001Arquitectura software.taxonomias.modularidad.001
Arquitectura software.taxonomias.modularidad.001
 
Iso 25000
Iso 25000Iso 25000
Iso 25000
 
Modelos de desarrollo del software
Modelos de desarrollo del softwareModelos de desarrollo del software
Modelos de desarrollo del software
 
Glosario informatico ingles español
Glosario informatico ingles españolGlosario informatico ingles español
Glosario informatico ingles español
 
tipos de requisitos
  tipos de requisitos   tipos de requisitos
tipos de requisitos
 
Sistemas Operativos Moviles
Sistemas Operativos MovilesSistemas Operativos Moviles
Sistemas Operativos Moviles
 

Viewers also liked

Introducción al desarrollo de aplicaciones para dispositivos móviles
Introducción al desarrollo de aplicaciones para dispositivos móvilesIntroducción al desarrollo de aplicaciones para dispositivos móviles
Introducción al desarrollo de aplicaciones para dispositivos móvilesFrancesc Perez
 
Desarrollo de aplicaciones realmente nativas con NDK
Desarrollo de aplicaciones realmente nativas con NDKDesarrollo de aplicaciones realmente nativas con NDK
Desarrollo de aplicaciones realmente nativas con NDKSoftware Guru
 
Desarrollo móvil híbrido bien entendido
Desarrollo móvil híbrido bien entendidoDesarrollo móvil híbrido bien entendido
Desarrollo móvil híbrido bien entendidoJosé Manuel López
 
Bluefly - marketing digital para laboratorios farmaceuticos
Bluefly - marketing digital para laboratorios farmaceuticosBluefly - marketing digital para laboratorios farmaceuticos
Bluefly - marketing digital para laboratorios farmaceuticosErnesto Valle Escalante
 
Ux en dispositivos móviles (Universidad Tecnológica Nacional)
Ux en dispositivos móviles (Universidad Tecnológica Nacional)Ux en dispositivos móviles (Universidad Tecnológica Nacional)
Ux en dispositivos móviles (Universidad Tecnológica Nacional)Jordi Almirall
 
La importancia de las prácticas profesionales y crear un portafolio
La importancia de las prácticas profesionales y crear un portafolioLa importancia de las prácticas profesionales y crear un portafolio
La importancia de las prácticas profesionales y crear un portafolioSoftware Guru
 
Mobile Web vs Native App
Mobile Web vs Native AppMobile Web vs Native App
Mobile Web vs Native AppAjen 陳
 
Native Device vs. Mobile Web Applications
Native Device vs. Mobile Web ApplicationsNative Device vs. Mobile Web Applications
Native Device vs. Mobile Web ApplicationsTim Wright
 
Entendiendo los 10 principios UX de Jakob Nielsen
Entendiendo los 10 principios UX de Jakob NielsenEntendiendo los 10 principios UX de Jakob Nielsen
Entendiendo los 10 principios UX de Jakob NielsenJorge Nova Vásquez
 
Principios básicos de UX para móviles
Principios básicos de UX para móvilesPrincipios básicos de UX para móviles
Principios básicos de UX para móvilesJavier Cuello
 
"Sizing the EU App Economy" by David Card and Mark Mulligan, Gigaom Research
"Sizing the EU App Economy" by David Card and Mark Mulligan, Gigaom Research"Sizing the EU App Economy" by David Card and Mark Mulligan, Gigaom Research
"Sizing the EU App Economy" by David Card and Mark Mulligan, Gigaom ResearchEurapp
 
The State of the App Economy
The State of the App EconomyThe State of the App Economy
The State of the App EconomyFlurry, Inc.
 
Mobile web or native app
Mobile web or native appMobile web or native app
Mobile web or native appMike Takahashi
 
Validacion Y Verificacion
Validacion Y VerificacionValidacion Y Verificacion
Validacion Y VerificacionFARIDROJAS
 
Arquitectura, aplicaciones y seguridad en Android
Arquitectura, aplicaciones y seguridad en AndroidArquitectura, aplicaciones y seguridad en Android
Arquitectura, aplicaciones y seguridad en AndroidEventos Creativos
 
Mobile web vs. native apps: It's not about technology, it's about psychology
Mobile web vs. native apps: It's not about technology, it's about psychologyMobile web vs. native apps: It's not about technology, it's about psychology
Mobile web vs. native apps: It's not about technology, it's about psychologyiQcontent
 
Eye Tracking the Mobile User Experience
Eye Tracking the Mobile User ExperienceEye Tracking the Mobile User Experience
Eye Tracking the Mobile User ExperienceUXPA Boston
 
Modulo Mobile Marketing por Ana Lopez (Universidad del Norte, julio 3 y 4 de ...
Modulo Mobile Marketing por Ana Lopez (Universidad del Norte, julio 3 y 4 de ...Modulo Mobile Marketing por Ana Lopez (Universidad del Norte, julio 3 y 4 de ...
Modulo Mobile Marketing por Ana Lopez (Universidad del Norte, julio 3 y 4 de ...Ana Lopez
 

Viewers also liked (20)

Introducción al desarrollo de aplicaciones para dispositivos móviles
Introducción al desarrollo de aplicaciones para dispositivos móvilesIntroducción al desarrollo de aplicaciones para dispositivos móviles
Introducción al desarrollo de aplicaciones para dispositivos móviles
 
Desarrollo de aplicaciones realmente nativas con NDK
Desarrollo de aplicaciones realmente nativas con NDKDesarrollo de aplicaciones realmente nativas con NDK
Desarrollo de aplicaciones realmente nativas con NDK
 
Librerías nativas
Librerías nativasLibrerías nativas
Librerías nativas
 
Desarrollo móvil híbrido bien entendido
Desarrollo móvil híbrido bien entendidoDesarrollo móvil híbrido bien entendido
Desarrollo móvil híbrido bien entendido
 
Bluefly - marketing digital para laboratorios farmaceuticos
Bluefly - marketing digital para laboratorios farmaceuticosBluefly - marketing digital para laboratorios farmaceuticos
Bluefly - marketing digital para laboratorios farmaceuticos
 
UX process design for mobile
UX process design for mobileUX process design for mobile
UX process design for mobile
 
Ux en dispositivos móviles (Universidad Tecnológica Nacional)
Ux en dispositivos móviles (Universidad Tecnológica Nacional)Ux en dispositivos móviles (Universidad Tecnológica Nacional)
Ux en dispositivos móviles (Universidad Tecnológica Nacional)
 
La importancia de las prácticas profesionales y crear un portafolio
La importancia de las prácticas profesionales y crear un portafolioLa importancia de las prácticas profesionales y crear un portafolio
La importancia de las prácticas profesionales y crear un portafolio
 
Mobile Web vs Native App
Mobile Web vs Native AppMobile Web vs Native App
Mobile Web vs Native App
 
Native Device vs. Mobile Web Applications
Native Device vs. Mobile Web ApplicationsNative Device vs. Mobile Web Applications
Native Device vs. Mobile Web Applications
 
Entendiendo los 10 principios UX de Jakob Nielsen
Entendiendo los 10 principios UX de Jakob NielsenEntendiendo los 10 principios UX de Jakob Nielsen
Entendiendo los 10 principios UX de Jakob Nielsen
 
Principios básicos de UX para móviles
Principios básicos de UX para móvilesPrincipios básicos de UX para móviles
Principios básicos de UX para móviles
 
"Sizing the EU App Economy" by David Card and Mark Mulligan, Gigaom Research
"Sizing the EU App Economy" by David Card and Mark Mulligan, Gigaom Research"Sizing the EU App Economy" by David Card and Mark Mulligan, Gigaom Research
"Sizing the EU App Economy" by David Card and Mark Mulligan, Gigaom Research
 
The State of the App Economy
The State of the App EconomyThe State of the App Economy
The State of the App Economy
 
Mobile web or native app
Mobile web or native appMobile web or native app
Mobile web or native app
 
Validacion Y Verificacion
Validacion Y VerificacionValidacion Y Verificacion
Validacion Y Verificacion
 
Arquitectura, aplicaciones y seguridad en Android
Arquitectura, aplicaciones y seguridad en AndroidArquitectura, aplicaciones y seguridad en Android
Arquitectura, aplicaciones y seguridad en Android
 
Mobile web vs. native apps: It's not about technology, it's about psychology
Mobile web vs. native apps: It's not about technology, it's about psychologyMobile web vs. native apps: It's not about technology, it's about psychology
Mobile web vs. native apps: It's not about technology, it's about psychology
 
Eye Tracking the Mobile User Experience
Eye Tracking the Mobile User ExperienceEye Tracking the Mobile User Experience
Eye Tracking the Mobile User Experience
 
Modulo Mobile Marketing por Ana Lopez (Universidad del Norte, julio 3 y 4 de ...
Modulo Mobile Marketing por Ana Lopez (Universidad del Norte, julio 3 y 4 de ...Modulo Mobile Marketing por Ana Lopez (Universidad del Norte, julio 3 y 4 de ...
Modulo Mobile Marketing por Ana Lopez (Universidad del Norte, julio 3 y 4 de ...
 

Similar to Consideraciones al escoger apps híbridas vs nativas

Software en la actualidad
Software en la actualidadSoftware en la actualidad
Software en la actualidadRaelyx Cordero
 
Azure Tech Frogs La vida despues de Xamarin NET MAUI y el desarrollo de apps....
Azure Tech Frogs La vida despues de Xamarin NET MAUI y el desarrollo de apps....Azure Tech Frogs La vida despues de Xamarin NET MAUI y el desarrollo de apps....
Azure Tech Frogs La vida despues de Xamarin NET MAUI y el desarrollo de apps....Luis Beltran
 
Aplicaciones Móviles Híbridas
Aplicaciones Móviles HíbridasAplicaciones Móviles Híbridas
Aplicaciones Móviles HíbridasScio Consulting
 
NativeScript – Barcamp 2016 - Universidad Nacional de Ingeniería
NativeScript – Barcamp 2016 - Universidad Nacional de IngenieríaNativeScript – Barcamp 2016 - Universidad Nacional de Ingeniería
NativeScript – Barcamp 2016 - Universidad Nacional de IngenieríaJorge Ventura
 
6 Lenguajes para dispositivos móviles
6 Lenguajes para dispositivos móviles 6 Lenguajes para dispositivos móviles
6 Lenguajes para dispositivos móviles RAUL Velez
 
Ionic y angular.js
Ionic y angular.jsIonic y angular.js
Ionic y angular.jsGDG Cali
 
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
 
Presentacion para la Flagship Store de Telefónica
Presentacion para la Flagship Store de TelefónicaPresentacion para la Flagship Store de Telefónica
Presentacion para la Flagship Store de TelefónicaJavier Tellez Dones
 
Articulo tipos de ide y ajax control toolkit
Articulo   tipos de ide y ajax control toolkitArticulo   tipos de ide y ajax control toolkit
Articulo tipos de ide y ajax control toolkitCesar Escalante
 
Desarrollo de Apps con la herramienta Phonegap
Desarrollo de Apps con la herramienta PhonegapDesarrollo de Apps con la herramienta Phonegap
Desarrollo de Apps con la herramienta PhonegapCongresoWeb
 
Code Blast 2012 - Fast Mobile Prototyping
Code Blast 2012 - Fast Mobile PrototypingCode Blast 2012 - Fast Mobile Prototyping
Code Blast 2012 - Fast Mobile PrototypingINSIGNIA4U
 
Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? ...
Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? ...Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? ...
Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? ...Software Guru
 
Dev Days 1 - Introducción a Xamarin
Dev Days 1 - Introducción a XamarinDev Days 1 - Introducción a Xamarin
Dev Days 1 - Introducción a XamarinSergio Gasca García
 

Similar to Consideraciones al escoger apps híbridas vs nativas (20)

Software en la actualidad
Software en la actualidadSoftware en la actualidad
Software en la actualidad
 
Azure Tech Frogs La vida despues de Xamarin NET MAUI y el desarrollo de apps....
Azure Tech Frogs La vida despues de Xamarin NET MAUI y el desarrollo de apps....Azure Tech Frogs La vida despues de Xamarin NET MAUI y el desarrollo de apps....
Azure Tech Frogs La vida despues de Xamarin NET MAUI y el desarrollo de apps....
 
Native vsweb
Native vswebNative vsweb
Native vsweb
 
Aplicaciones Móviles Híbridas
Aplicaciones Móviles HíbridasAplicaciones Móviles Híbridas
Aplicaciones Móviles Híbridas
 
NativeScript – Barcamp 2016 - Universidad Nacional de Ingeniería
NativeScript – Barcamp 2016 - Universidad Nacional de IngenieríaNativeScript – Barcamp 2016 - Universidad Nacional de Ingeniería
NativeScript – Barcamp 2016 - Universidad Nacional de Ingeniería
 
6 Lenguajes para dispositivos móviles
6 Lenguajes para dispositivos móviles 6 Lenguajes para dispositivos móviles
6 Lenguajes para dispositivos móviles
 
Ionic y angular.js
Ionic y angular.jsIonic y angular.js
Ionic y angular.js
 
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
 
Presentacion para la Flagship Store de Telefónica
Presentacion para la Flagship Store de TelefónicaPresentacion para la Flagship Store de Telefónica
Presentacion para la Flagship Store de Telefónica
 
Xamarin fest
Xamarin festXamarin fest
Xamarin fest
 
Articulo tipos de ide y ajax control toolkit
Articulo   tipos de ide y ajax control toolkitArticulo   tipos de ide y ajax control toolkit
Articulo tipos de ide y ajax control toolkit
 
Desarrollo de Apps con la herramienta Phonegap
Desarrollo de Apps con la herramienta PhonegapDesarrollo de Apps con la herramienta Phonegap
Desarrollo de Apps con la herramienta Phonegap
 
TRABAJO.ppt
TRABAJO.pptTRABAJO.ppt
TRABAJO.ppt
 
App inventor
App inventorApp inventor
App inventor
 
Code Blast 2012 - Fast Mobile Prototyping
Code Blast 2012 - Fast Mobile PrototypingCode Blast 2012 - Fast Mobile Prototyping
Code Blast 2012 - Fast Mobile Prototyping
 
Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? ...
Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? ...Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? ...
Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? ...
 
todo sobre java
todo sobre javatodo sobre java
todo sobre java
 
Dev Days 1 - Introducción a Xamarin
Dev Days 1 - Introducción a XamarinDev Days 1 - Introducción a Xamarin
Dev Days 1 - Introducción a Xamarin
 
Mini curse
Mini curseMini curse
Mini curse
 
DAM-S4.pptx
DAM-S4.pptxDAM-S4.pptx
DAM-S4.pptx
 

More from 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
 

More from 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
 

Recently uploaded

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

Recently uploaded (11)

Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
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
 
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
 
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...
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
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
 
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
 
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
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 

Consideraciones al escoger apps híbridas vs nativas

  • 1. ¿App Híbrida o Nativa? Pedro Galván (@pedrogk)
 Mar-19-2015 #MobileDay #IntelAndroid
  • 3. App nativa • Diseñada para un sistema operativo o incluso dispositivo específico. • Utiliza librerías y componentes UI nativos al sistema operativo. • Programada en el lenguaje correspondiente de la plataforma. • iOS -> Objective-C o Swift. • Android -> Java. • Windows Phone -> C#, VB
  • 4. Web app • Aplicación web que funciona directamente en el navegador del dispositivo móvil. • Para accederla, simplemente cargas el url correspondiente (no se instala desde un app store). • Se programa utilizando los mismos lenguajes y tecnologías del web (HTML5, CSS, Javascript)
  • 5. Cross-platform • Programadas en un lenguaje común. • Framework se encarga de generar código para distintas plataformas. • Appcelerator: Javascript -> UI web (WebKit). • Xamarin: C# -> UI nativo. • RubyMotion: Ruby -> UI nativo.
  • 6. App híbrida • Aplicación web embebida en un contenedor nativo. • Tiene acceso a librerías y componentes nativos. • Se puede distribuir por medio de App Store. • Ejemplos: • Cordova (PhoneGap) • Sencha Touch • Appgyver
  • 9. Mientras tanto en el Enterprise
  • 11. Apps híbridas: 
 La promesa Apps Nativas ✓ Interacción avanzada ✓ Mejor desempeño ✓ Distribución via App Store Una sola plataforma Menos capacidades Varias
 Platformas Más capacidades Web Apps ✓ Tecnologías web ✓ Actualización instantánea ✓ Distribución sin restricciones Hybrid HTML5 Apps ✓ Tecnologías web ✓ Acceso a capacidades nativas ✓ Distribución via App Store
  • 12. Apps híbridas: 
 La letra pequeña • No utilizan UI nativo, utilizan el DOM (browser). • Consecuencias • Menor desempeño. • Comportamiento distinto entre dispositivos.
  • 13. A pesar de todo … • Sí tiene sentido desarrollar apps híbridas. • El trade-off de desempeño <-> costo es aceptable para la mayoría de los contextos empresariales.
  • 14. Razones para elegir Nativa Híbrida La app es tu negocio. Cuentas con desarrolladores 
 con skills web. Quieres “presumir” tu empresa o studio por medio de la app. Requieres soportar distintas plataformas al mismo tiempo y brindar una experiencia similar. Dispones de desarrolladores para distintas plataformas nativas. Corto tiempo de vida.
  • 15. Apps híbridas:
 Mitigación • Utilizar frameworks de presentación (ej. Ionic, Angular). • Incluir el motor de ejecución (Crosswalk). • Utilizar tecnologías que no usan el DOM (o al menos, no el DOM estándar). • ej: React Native
  • 17. Cordova/Phonegap • Expone APIs que permiten interactuar con capacidades nativas del dispositivo. • Es software libre. • Cuenta con gran variedad de plugins. http://cordova.apache.org
  • 18. Angular JS • Web app framework diseñado para optimizar “single page applications”. • Resuelve la sincronización automática de modelos y vistas. Las vistas se actualizan automáticamente cuando los datos cambian (two-way data binding). http://angularjs.org
  • 19. Ionic • Front-end SDK para enriquecer el UI de apps híbridas. • Complementa a otros frameworks (ej. Cordova). http://ionicframework.com
  • 20. Intel XDK • IDE para desarrollo de apps híbridas. • Ventajas: • Gratuito y disponible para Win, Mac, Linux. • Juega bien con Cordova y otros frameworks. • Depuración y testing. • Capacidades de building/deployment de apps. https://software.intel.com/en-us/html5/tools
  • 21. Crosswalk • Motor de ejecución de apps híbridas basado en Chromium y Blink. • El motor se empaqueta como parte de tu app. • Ya no dependes de qué sistema operativo o versión tenga el dispositivo donde se ejecuta la app. • Es software libre. https://crosswalk-project.org
  • 22. Backend as a Service (BaaS) • Proveen servicios comunes que utilizas en tus apps: • Gestión y operación de API. • Almacenamiento de datos. • Push notifications. • Gestión de usuarios. • Principales opciones • Parse • FeedHenry • Kinvey • Appery • Azure Mobile Services • Haz tu propio BaaS
  • 23. React Native • Tecnología para hybrid web apps • Basado en React JS • No utiliza el DOM, usa componentes nativos de UI. • Async threads -> Rápido.
  • 24. Gaming • 3D • Unity • Project Anarchy • Unreal • 2D • Corona • Cocos2d • Construct 2
  • 25. El siguiente nivel: 
 Apps verdaderamente nativas
  • 26. Apps verdaderamente nativas 
 (native^2) • Código nativo (C, C++, ASM) compilado como librerías binarias que invocas desde tu app.
  • 27. Android NDK: 
 Panorama C/C++ Code Makefile ndk-build Mix with Java* GDB debug Java SDK APIs Native Libs Android* Application NDK APIs C/C++ Using JNI JNI
  • 28. Android NDK: 
 Arquitectura Android* NDK Application Dalvik* Application Java Class Java Source Compile with Javac Java Class Java Source Compile with Javac Create C header with javah -jni Header file C/C++ Source Code Compile and Link C Code (ndk-build) Dynamic Library (.so) *.mk Makefiles
  • 29. Android NDK: Consideraciones • Existen distintas arquitecturas de procesador (ARM, ARM v7, x86, x86 64, MIPS). • Debes generar binarios para cada una. • Puedes optimizar en tiempo de compilación. • Usar instruction sets específicos (ej. SSSE4). • Compilar para binario optimizado para desempeño. • Conoce más en http://software.intel.com/es-es/ android
  • 30. ¡Gracias! Conoce más en http://software.intel.com/es-es