Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? Un caso de estudio

31
MobileWars: Desarrollo móvil multiplataforma Daniel Martínez Ramos Erick Camacho Chavarría

Transcript of Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? Un caso de estudio

Page 1: Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? Un caso de estudio

MobileWars: Desarrollo móvil multiplataforma

Daniel Martínez Ramos Erick Camacho Chavarría

Page 2: Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? Un caso de estudio

Nosotros Daniel Ramos -

@dannyGeek. Adobe Certified Expert en varios productos. CoManager de LiveData AUG

Erick Camacho – @ecamacho. CoManager de CocoaHeads México

Page 3: Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? Un caso de estudio

Nosotros Desarrollamos apps móviles para iOS con Objective-C.

Nos gusta el desarrollo nativo, pero es costoso hacer una aplicación nativa por plataforma.

Existen opciones y queríamos explorarlas.

Page 4: Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? Un caso de estudio

¿Qué hicimos? Litros de A Litro

Una aplicación para geolocalizar gasolineras y su calificación por la Profeco.

OpenSource: github.com/tidyslice

Page 5: Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? Un caso de estudio

Los concursantes

Page 6: Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? Un caso de estudio

Objective -C La usamos como Referencia.

Page 7: Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? Un caso de estudio

Objective-C - Requisitos

IDE Precio Lenguaje

XCode Gratuito Objective-C

Page 8: Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? Un caso de estudio

Objective-C - La aplicación DEMO

Page 9: Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? Un caso de estudio

Objective-C - Observaciones

Performance Documentación

Curva de aprendizaje

Componentes Plataformas soportadas

Excelente Excelente Alta Gran cantidad y muchos de terceros

iOS

Page 10: Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? Un caso de estudio

PhoneGap

Page 11: Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? Un caso de estudio

PhoneGap Permite empaquetar aplicaciones HTML como

aplicaciones nativas.

Ofrece plantillas para cada plataforma soportada.

Tiene una librería nativa para integrarse con la plataforma y una librería javascript para integrarlo con tus aplicaciones.

Page 12: Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? Un caso de estudio

PhoneGap

IDE Precio Lenguaje

Xcode – iOS Eclipse – Android, BlackBerry Dreamweaver CS5.5

Gratuito (Soporte desde USD $249)

HTML, javascript

Page 13: Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? Un caso de estudio

Phonegap – La Aplicación Demo

Page 14: Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? Un caso de estudio

Phonegap - Observaciones

Performance Documentación

Curva de aprendizaje

Componentes Plataformas soportadas

Lento Buena Baja Buena Cantidad

iOS Blackberry Android WebOS Symbian Bada

Page 15: Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? Un caso de estudio

Phonegap - Observaciones Es sencillo hacer plugins que empaqueten funcionalidades

nativas.

Phonegap es sólo un wrapper. Lo importante es el framework HTML/javascript que uses.

Existen varios, pero sólo 2 maduros: jqueryMobile y SenchaTouch

Los controles con cualquier framework javascript, se notan que no son nativos.

Page 16: Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? Un caso de estudio

Appcelerator Titanium

Page 17: Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? Un caso de estudio

Appcelerator Titanium Titanium es un compilador que transforma de código en

un DSL propietario con javascript a código nativo de la plataforma elegida.

Para usarlo, se debe utilizar el Titanium IDE basado en Eclipse

Page 18: Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? Un caso de estudio

Appcelerator Titanium

IDE Precio Lenguaje

Titanium Studio Gratuito (Soporte, cursos, certificación de pago)

javascript

Page 19: Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? Un caso de estudio

Appcelerator Titanium Demo

Page 20: Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? Un caso de estudio

Appcelerator Titanium

Performance Documentación

Curva de aprendizaje

Componentes Plataformas soportadas

Bueno Mala Media Pocos iOS Android Blackberry (beta) Escritorio

Page 21: Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? Un caso de estudio

Appcelerator Titanium Programas usando un DSL javascript que se compila a

componentes nativos casi al 100%

El usuario verá una app nativa, no notará que es Titanium

Lo que no se compila a nativo, se ejecuta por un intérprete en tiempo de ejecución para permitir mecanismos dinámicos

El DSL define un framework MVC para crear aplicaciones basado en eventos y ventanas.

Page 22: Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? Un caso de estudio

Adobe Air

Page 23: Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? Un caso de estudio

Adobe Air Tecnología para crear aplicaciones usando ActionScript

puro o con el framework Adobe Flex.

Page 24: Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? Un caso de estudio

Adobe Air

IDE Precio Lenguaje

Flash CS5 Flash Builder

Desde USD$699 ActionScript MXML

Page 25: Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? Un caso de estudio

Adobe Air Demo

Page 26: Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? Un caso de estudio

Adobe Air

* Sólo funciona en el 10% de los smartphones con Android y en las Tablets con HoneyComb

Performance Documentación

Curva de aprendizaje

Componentes Plataformas soportadas

Bueno con ActionScript Malo con Flex

Buena Media Buena cantidad

iOS Android * Escritorio

Page 27: Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? Un caso de estudio

Adobe Air

Para crear controles (botones, diálogos, etc) puedes hacerlo a mano usando ActionScript o Flex.

Los controles Flex se ven diferentes a los nativos, así que el usuario notará la diferencia

A pesar de que soporta ActionScript no soporta varias características de Flash, por lo que no se puede pasar una app Flash a móvil de forma transparente

Page 28: Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? Un caso de estudio

Conclusiones Usa Aplicación nativa si te interesa mucho el rendimiento

y quieres usar funciones que ningún framework soporta como OpenGL.

Si tienes expertise con javascript, phonegap te permitirá una productividad instantánea a costo de un bajo performance.

Si necesitas que tu app funcione en BlackBerry, sólo phonegap te lo garantiza.

Page 29: Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? Un caso de estudio

Conclusiones Lo mejor de Titanium es que utiliza controles nativos, pero

su DSL es un problema: es poco flexible si te quieres salir de los estándares que maneja.

Adobe Air tiene un ecosistema impresionante. Su IDE te permite hacer debug, simulaciones, construir interfaces con drag & drop; existen varias herramientas de análisis de código, de testing, etc.

Tiene dos desventajas: los controles se nota que no son nativos y el performance en smartphones es todavía lento (en tablets es muy bueno)

Page 30: Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? Un caso de estudio

Conclusiones Si tienes expertise en Adobe Flex, puedes ser muy

productivo desde el inicio.

Page 31: Mobile wars: ¿cuál es la mejor opción para desarrollo móvil multiplataforma? Un caso de estudio

Gracias

Código http://github.com/tidyslice

Contacto [email protected]

Próximo Sábado : charla CocoaHeads México - telmexHub