Desarrollo Móvil Multiplataforma

Post on 31-May-2015

1.587 views 3 download

Transcript of Desarrollo Móvil Multiplataforma

Abraham BarreraDesarrollador@abraham_barrera

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

Acerca de @abraham_barrera

Desarrollador RoR y Mobile en Continuum

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

Músico Amateur

Deportista Amateur

Abraham BarreraDesarrollador@abraham_barrera

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

Abraham BarreraDesarrollador@abraham_barrera

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

Abraham BarreraDesarrollador@abraham_barrera

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

Desarrollo Móvil

Objetivos “No Funcionales”

Objetivos “No Funcionales”

Usable

UsableEficiente - Fluido

UsableFluido - Fluido

Portable

Objetivos “Menos Funcionales”

Objetivos “Menos Funcionales”

Trabajar con Cerveza

Trabajar con Cerveza

Divertirse

Trabajar con Cerveza

DivertirseHacerlo rápido

Trabajar con Cerveza

DivertirseHacerlo rápido

Disfrutar el código

Trabajar con Cerveza

DivertirseHacerlo rápido

Disfrutar el código

UsableEficiente - Fluido

Portable

Trabajar con Cerveza

DivertirseHacerlo rápido

Disfrutar el código

UsableEficiente - Fluido

Portable

Elección de la Tecnología

¿WEB o

no WEB?

CSS3

Usable

Framework o Diseñador Web

Eficiente - Fluido

Depende de la conexión (Kb)

Portables por Naturaleza

Use Frameworks WEB

Abraham BarreraDesarrollador@abraham_barrera

Muchas gracias !

¿Preguntas?

Funcionalidades Nativas

GPS

¿ GPS ?

¿ GPS ?

Acelerómetro

¿ GPS ?

Acelerómetro

Notificaciones PUSH

¿ GPS ?

Acelerómetro

Notificaciones PUSH

Libreta de Contactos

¿ GPS ?

Acelerómetro

Notificaciones PUSH

Libreta de Contactos

Cámara Fotográfica

GPS ?

Acelerómetro

Notificaciones PUSH

Libreta de Contactos

Cámara Fotográfica

Audio y Video

GPS ?

Acelerómetro

Notificaciones PUSH

Libreta de Contactos

Cámara Fotográfica

Audio y Video

Sistema de Archivos

Computadores

!=

Dispositivos Móviles

Desarrollo Nativo

Web

I

I

Desarrollo Nativo

(Necesidad)

¿Aprender o

no Aprender?

El tiempo

es Oro

Tranquilo

Papá !

Take it

Easy !

Herramientas de

código abierto

Multiplataforma ?

Multiplataforma !=

Codificar una vez y ejecutar en todas partes

Multiplataforma

==

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

Rhodes - RhoMobile

Rhodes - RhoMobile

PhoneGap

Rhodes - RhoMobile

PhoneGap

Titanium Mobile

Rhodes - RhoMobile

PhoneGap

Titanium Mobile

Ruby / HTML / CSS / JS

Con sabor a Rails

Sincronización de Datos embebida

Android, iOS, RIM, WM, otros

Interfaz HíbridaDemasiado gusto a Web Embebido

Código Nativo Invisible

$ gem install rhodes

$ rhodes app test_rhodes <url>

$ rake run:android

(demo)

HTML / CSS / Javascript

Android, iOS, RIM, WM, otros

Interfaz Web Embebida

Trabajo Directamente sobre el código nativo

$ cri cri cri

$ echo “Instale PhoneGap”

$ echo “Ejecute el Instalador”

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

$ echo “Ejecute desde el IDE”

(demo)

Javascript

CoffeeScript / Compass / SASS

Android, iOS, RIM

Android, iOS

Interfaz Nativa

si Nativa !

Código nativo Invisible

Extensible

$ 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

(demo)

Azucar Sintáctico

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

$ gem install ti

$ ti new test_titanium cl.ibrain.test_ti iphone

$ ti s window Sample main

$ ti compile all

$ ti build iphone

Coffee

Coffee

Javascript

Coffee

Javascript

Objective-CJava

Coffee

Javascript

Objective-CJava

Bridge Javascript To *

iOS

JavaScriptCore webkit

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

Genera un proyecto iOS

Genera un proyecto iOS

Serializa el Código JS

Genera un proyecto iOS

Serializa el Código JS

Embebe el código en C

Genera un proyecto iOS

Serializa el Código JS

Embebe el código en C

Compila el código nativo

Genera un proyecto iOS

Serializa el Código JS

Embebe el código en C

Compila el código nativo

Interpreta en runtime

Android

Rhino JSC Compiler

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

Genera un proyecto Android

Genera un proyecto Android

Compila javascript con JSC

Genera un proyecto Android

Compila javascript con JSC

Embebe archivos .class

Genera un proyecto Android

Compila javascript con JSC

Embebe archivos .class

Genera el APK

Genera un proyecto Android

Compila javascript con JSC

Embebe archivos .class

Genera el APK

Ejecuta en runtime

Titanium es

Extensible

Módulos

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

Javascript App

Módulo(TiModule - KrollModule)

Proxy

View Proxy

View

requierecreatecreateView

$ titanium create

–- platform=android

–- type=module

–- dir=.

–- name=mimodulo

–- id=org.adamantio.mimodulo

$ ant

$ ant run

Conclusiones

¿ Por dónde comenzar ?

¿ Web o no Web ?

Elija el framework adecuado

Rhodes

PhoneGap

Titanium Mobile

Titanium Mobile + Ti GemCon azucar

¿Romperla aún Más?

Colabora !

¿Donde?

¿Comunidades de Desarrollo móvil?

Notobi Acquired

¿Comunidades de Desarrollo móvil?

¿Comunidades [REALES] de Desarrollo móvil?

Más fuerte que el Titanium

Adamantio Mobile

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

Admantio - Roadmap

2011 Q4 – Researching & Docs

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

Q2 – Increase modules

Ti Gem

https://github.com/revans/Ti

StarTechConf 2011

https://github.com/abrahambarrera/

src-startechconf

Abraham BarreraDesarrollador@abraham_barrera

Muchas gracias !