Desarrollo Móvil Multiplataforma

158

Click here to load reader

Transcript of Desarrollo Móvil Multiplataforma

Page 1: Desarrollo Móvil Multiplataforma

Abraham BarreraDesarrollador@abraham_barrera

Desarrollo Móvil Multiplataforma¿Por dónde comenzar?

Page 2: Desarrollo Móvil Multiplataforma

Acerca de @abraham_barrera

Page 3: Desarrollo Móvil Multiplataforma

Desarrollador RoR y Mobile en Continuum

Page 4: Desarrollo Móvil Multiplataforma

Apasionado por el desarrollo Web desde 2001 y Móvil desde 2008

Page 5: Desarrollo Móvil Multiplataforma

Músico Amateur

Page 6: Desarrollo Móvil Multiplataforma

Deportista Amateur

Page 7: Desarrollo Móvil Multiplataforma

Abraham BarreraDesarrollador@abraham_barrera

Desarrollo Móvil Multiplataforma¿Por dónde comenzar?

Page 8: Desarrollo Móvil Multiplataforma

Abraham BarreraDesarrollador@abraham_barrera

Desarrollo Móvil Multiplataforma¿Por dónde comenzar?

Page 9: Desarrollo Móvil Multiplataforma

Abraham BarreraDesarrollador@abraham_barrera

Desarrollo Móvil Multiplataforma¿Por dónde comenzar?

Page 10: Desarrollo Móvil Multiplataforma

Desarrollo Móvil

Page 11: Desarrollo Móvil Multiplataforma

Objetivos “No Funcionales”

Page 12: Desarrollo Móvil Multiplataforma

Objetivos “No Funcionales”

Page 13: Desarrollo Móvil Multiplataforma

Usable

Page 14: Desarrollo Móvil Multiplataforma

UsableEficiente - Fluido

Page 15: Desarrollo Móvil Multiplataforma

UsableFluido - Fluido

Portable

Page 16: Desarrollo Móvil Multiplataforma

Objetivos “Menos Funcionales”

Page 17: Desarrollo Móvil Multiplataforma

Objetivos “Menos Funcionales”

Page 18: Desarrollo Móvil Multiplataforma

Trabajar con Cerveza

Page 19: Desarrollo Móvil Multiplataforma

Trabajar con Cerveza

Divertirse

Page 20: Desarrollo Móvil Multiplataforma

Trabajar con Cerveza

DivertirseHacerlo rápido

Page 21: Desarrollo Móvil Multiplataforma

Trabajar con Cerveza

DivertirseHacerlo rápido

Disfrutar el código

Page 22: Desarrollo Móvil Multiplataforma

Trabajar con Cerveza

DivertirseHacerlo rápido

Disfrutar el código

UsableEficiente - Fluido

Portable

Page 23: Desarrollo Móvil Multiplataforma

Trabajar con Cerveza

DivertirseHacerlo rápido

Disfrutar el código

UsableEficiente - Fluido

Portable

Page 24: Desarrollo Móvil Multiplataforma

Elección de la Tecnología

Page 25: Desarrollo Móvil Multiplataforma

¿WEB o

no WEB?

Page 26: Desarrollo Móvil Multiplataforma

CSS3

Page 27: Desarrollo Móvil Multiplataforma
Page 28: Desarrollo Móvil Multiplataforma
Page 29: Desarrollo Móvil Multiplataforma
Page 30: Desarrollo Móvil Multiplataforma
Page 31: Desarrollo Móvil Multiplataforma

Usable

Page 32: Desarrollo Móvil Multiplataforma

Framework o Diseñador Web

Page 33: Desarrollo Móvil Multiplataforma

Eficiente - Fluido

Page 34: Desarrollo Móvil Multiplataforma

Depende de la conexión (Kb)

Page 35: Desarrollo Móvil Multiplataforma

Portables por Naturaleza

Page 36: Desarrollo Móvil Multiplataforma

Use Frameworks WEB

Page 37: Desarrollo Móvil Multiplataforma

Abraham BarreraDesarrollador@abraham_barrera

Muchas gracias !

¿Preguntas?

Page 38: Desarrollo Móvil Multiplataforma

Funcionalidades Nativas

Page 39: Desarrollo Móvil Multiplataforma

GPS

Page 40: Desarrollo Móvil Multiplataforma

¿ GPS ?

Page 41: Desarrollo Móvil Multiplataforma

¿ GPS ?

Acelerómetro

Page 42: Desarrollo Móvil Multiplataforma

¿ GPS ?

Acelerómetro

Notificaciones PUSH

Page 43: Desarrollo Móvil Multiplataforma

¿ GPS ?

Acelerómetro

Notificaciones PUSH

Libreta de Contactos

Page 44: Desarrollo Móvil Multiplataforma

¿ GPS ?

Acelerómetro

Notificaciones PUSH

Libreta de Contactos

Cámara Fotográfica

Page 45: Desarrollo Móvil Multiplataforma

GPS ?

Acelerómetro

Notificaciones PUSH

Libreta de Contactos

Cámara Fotográfica

Audio y Video

Page 46: Desarrollo Móvil Multiplataforma

GPS ?

Acelerómetro

Notificaciones PUSH

Libreta de Contactos

Cámara Fotográfica

Audio y Video

Sistema de Archivos

Page 47: Desarrollo Móvil Multiplataforma

Computadores

!=

Dispositivos Móviles

Page 48: Desarrollo Móvil Multiplataforma

Desarrollo Nativo

Page 49: Desarrollo Móvil Multiplataforma

Web

I

Page 50: Desarrollo Móvil Multiplataforma

I

Page 51: Desarrollo Móvil Multiplataforma

Desarrollo Nativo

(Necesidad)

Page 52: Desarrollo Móvil Multiplataforma
Page 53: Desarrollo Móvil Multiplataforma
Page 54: Desarrollo Móvil Multiplataforma

¿Aprender o

no Aprender?

Page 55: Desarrollo Móvil Multiplataforma

El tiempo

es Oro

Page 56: Desarrollo Móvil Multiplataforma

Tranquilo

Papá !

Page 57: Desarrollo Móvil Multiplataforma

Take it

Easy !

Page 58: Desarrollo Móvil Multiplataforma

Herramientas de

código abierto

Page 59: Desarrollo Móvil Multiplataforma

Multiplataforma ?

Page 60: Desarrollo Móvil Multiplataforma

Multiplataforma !=

Codificar una vez y ejecutar en todas partes

Page 61: Desarrollo Móvil Multiplataforma

Multiplataforma

==

Codificar una vez y generar para ejecutar en cada una de las partes

Page 62: Desarrollo Móvil Multiplataforma

Rhodes - RhoMobile

Page 63: Desarrollo Móvil Multiplataforma

Rhodes - RhoMobile

PhoneGap

Page 64: Desarrollo Móvil Multiplataforma

Rhodes - RhoMobile

PhoneGap

Titanium Mobile

Page 65: Desarrollo Móvil Multiplataforma

Rhodes - RhoMobile

PhoneGap

Titanium Mobile

Page 66: Desarrollo Móvil Multiplataforma
Page 67: Desarrollo Móvil Multiplataforma

Ruby / HTML / CSS / JS

Page 68: Desarrollo Móvil Multiplataforma

Con sabor a Rails

Page 69: Desarrollo Móvil Multiplataforma

Sincronización de Datos embebida

Page 70: Desarrollo Móvil Multiplataforma

Android, iOS, RIM, WM, otros

Page 71: Desarrollo Móvil Multiplataforma

Interfaz HíbridaDemasiado gusto a Web Embebido

Page 72: Desarrollo Móvil Multiplataforma

Código Nativo Invisible

Page 73: Desarrollo Móvil Multiplataforma

$ gem install rhodes

$ rhodes app test_rhodes <url>

$ rake run:android

Page 74: Desarrollo Móvil Multiplataforma
Page 75: Desarrollo Móvil Multiplataforma
Page 76: Desarrollo Móvil Multiplataforma

(demo)

Page 77: Desarrollo Móvil Multiplataforma
Page 78: Desarrollo Móvil Multiplataforma

HTML / CSS / Javascript

Page 79: Desarrollo Móvil Multiplataforma

Android, iOS, RIM, WM, otros

Page 80: Desarrollo Móvil Multiplataforma

Interfaz Web Embebida

Page 81: Desarrollo Móvil Multiplataforma

Trabajo Directamente sobre el código nativo

Page 82: Desarrollo Móvil Multiplataforma

$ cri cri cri

Page 83: Desarrollo Móvil Multiplataforma

$ echo “Instale PhoneGap”

$ echo “Ejecute el Instalador”

$ echo “Haga un nuevo proyecto”(en su IDE “favorito”)

$ echo “Ejecute desde el IDE”

Page 84: Desarrollo Móvil Multiplataforma
Page 85: Desarrollo Móvil Multiplataforma
Page 86: Desarrollo Móvil Multiplataforma

(demo)

Page 87: Desarrollo Móvil Multiplataforma
Page 88: Desarrollo Móvil Multiplataforma

Javascript

Page 89: Desarrollo Móvil Multiplataforma

CoffeeScript / Compass / SASS

Page 90: Desarrollo Móvil Multiplataforma

Android, iOS, RIM

Page 91: Desarrollo Móvil Multiplataforma

Android, iOS

Page 92: Desarrollo Móvil Multiplataforma

Interfaz Nativa

Page 93: Desarrollo Móvil Multiplataforma

si Nativa !

Page 94: Desarrollo Móvil Multiplataforma

Código nativo Invisible

Page 95: Desarrollo Móvil Multiplataforma

Extensible

Page 96: Desarrollo Móvil Multiplataforma

$ echo “Descargar Titanium Studio”

$ git clone git://github.com/appcelerator/titanium_mobile.git

$ titanium create --platform="iphone,android" --name=test_video --id=org.adamantio.test_video –android=/android-sdk-mac_x86/

$ titanium run

Page 97: Desarrollo Móvil Multiplataforma
Page 98: Desarrollo Móvil Multiplataforma
Page 99: Desarrollo Móvil Multiplataforma

(demo)

Page 100: Desarrollo Móvil Multiplataforma

Azucar Sintáctico

Page 101: Desarrollo Móvil Multiplataforma

Ti Gemhttps://github.com/revans/Ti

Page 102: Desarrollo Móvil Multiplataforma

$ gem install ti

$ ti new test_titanium cl.ibrain.test_ti iphone

$ ti s window Sample main

$ ti compile all

$ ti build iphone

Page 103: Desarrollo Móvil Multiplataforma
Page 104: Desarrollo Móvil Multiplataforma

Coffee

Page 105: Desarrollo Móvil Multiplataforma

Coffee

Javascript

Page 106: Desarrollo Móvil Multiplataforma

Coffee

Javascript

Objective-CJava

Page 107: Desarrollo Móvil Multiplataforma

Coffee

Javascript

Objective-CJava

Page 108: Desarrollo Móvil Multiplataforma
Page 109: Desarrollo Móvil Multiplataforma
Page 110: Desarrollo Móvil Multiplataforma

Bridge Javascript To *

Page 111: Desarrollo Móvil Multiplataforma
Page 112: Desarrollo Móvil Multiplataforma

iOS

JavaScriptCore webkit

http://opensource.apple.com/source/JavaScriptCore/

Page 113: Desarrollo Móvil Multiplataforma

Genera un proyecto iOS

Page 114: Desarrollo Móvil Multiplataforma

Genera un proyecto iOS

Serializa el Código JS

Page 115: Desarrollo Móvil Multiplataforma

Genera un proyecto iOS

Serializa el Código JS

Embebe el código en C

Page 116: Desarrollo Móvil Multiplataforma

Genera un proyecto iOS

Serializa el Código JS

Embebe el código en C

Compila el código nativo

Page 117: Desarrollo Móvil Multiplataforma

Genera un proyecto iOS

Serializa el Código JS

Embebe el código en C

Compila el código nativo

Interpreta en runtime

Page 118: Desarrollo Móvil Multiplataforma

Android

Rhino JSC Compiler

http://www.mozilla.org/rhino/jsc.html

Page 119: Desarrollo Móvil Multiplataforma

Genera un proyecto Android

Page 120: Desarrollo Móvil Multiplataforma

Genera un proyecto Android

Compila javascript con JSC

Page 121: Desarrollo Móvil Multiplataforma

Genera un proyecto Android

Compila javascript con JSC

Embebe archivos .class

Page 122: Desarrollo Móvil Multiplataforma

Genera un proyecto Android

Compila javascript con JSC

Embebe archivos .class

Genera el APK

Page 123: Desarrollo Móvil Multiplataforma

Genera un proyecto Android

Compila javascript con JSC

Embebe archivos .class

Genera el APK

Ejecuta en runtime

Page 124: Desarrollo Móvil Multiplataforma

Titanium es

Extensible

Page 125: Desarrollo Móvil Multiplataforma

Módulos

Page 126: Desarrollo Móvil Multiplataforma

Escritos en código nativoJava, Objective-C, Javascript

Page 127: Desarrollo Móvil Multiplataforma

Javascript App

Módulo(TiModule - KrollModule)

Proxy

View Proxy

View

requierecreatecreateView

Page 128: Desarrollo Móvil Multiplataforma
Page 129: Desarrollo Móvil Multiplataforma

$ titanium create

–- platform=android

–- type=module

–- dir=.

–- name=mimodulo

–- id=org.adamantio.mimodulo

Page 130: Desarrollo Móvil Multiplataforma

$ ant

$ ant run

Page 131: Desarrollo Móvil Multiplataforma

Conclusiones

Page 132: Desarrollo Móvil Multiplataforma

¿ Por dónde comenzar ?

Page 133: Desarrollo Móvil Multiplataforma

¿ Web o no Web ?

Page 134: Desarrollo Móvil Multiplataforma

Elija el framework adecuado

Page 135: Desarrollo Móvil Multiplataforma

Rhodes

Page 136: Desarrollo Móvil Multiplataforma

PhoneGap

Page 137: Desarrollo Móvil Multiplataforma

Titanium Mobile

Page 138: Desarrollo Móvil Multiplataforma

Titanium Mobile + Ti GemCon azucar

Page 139: Desarrollo Móvil Multiplataforma

¿Romperla aún Más?

Page 140: Desarrollo Móvil Multiplataforma

Colabora !

Page 141: Desarrollo Móvil Multiplataforma

¿Donde?

Page 142: Desarrollo Móvil Multiplataforma

¿Comunidades de Desarrollo móvil?

Page 143: Desarrollo Móvil Multiplataforma
Page 144: Desarrollo Móvil Multiplataforma
Page 145: Desarrollo Móvil Multiplataforma
Page 146: Desarrollo Móvil Multiplataforma

Notobi Acquired

Page 147: Desarrollo Móvil Multiplataforma
Page 148: Desarrollo Móvil Multiplataforma
Page 149: Desarrollo Móvil Multiplataforma
Page 150: Desarrollo Móvil Multiplataforma

¿Comunidades de Desarrollo móvil?

Page 151: Desarrollo Móvil Multiplataforma

¿Comunidades [REALES] de Desarrollo móvil?

Page 152: Desarrollo Móvil Multiplataforma

Más fuerte que el Titanium

Page 153: Desarrollo Móvil Multiplataforma

Adamantio Mobile

Page 154: Desarrollo Móvil Multiplataforma

Admantio

http://developer.adamantio.org

http://groups.google.com/group/adamantio-devel

http://github.com/adamantio/adamantio

IRC #adamantio-devel

Commiters: @RodrigoAyala, @abraham_barrera, @FelipeDev

Page 155: Desarrollo Móvil Multiplataforma

Admantio - Roadmap

2011 Q4 – Researching & Docs

*ideas: ruby gem, kill Win & BB support 2012 Q1 – First release with docs Module development

Q2 – Increase modules

Page 156: Desarrollo Móvil Multiplataforma

Ti Gem

https://github.com/revans/Ti

Page 157: Desarrollo Móvil Multiplataforma

StarTechConf 2011

https://github.com/abrahambarrera/

src-startechconf

Page 158: Desarrollo Móvil Multiplataforma

Abraham BarreraDesarrollador@abraham_barrera

Muchas gracias !