Extending titanium

72
Abraham Barrera Desarrollador about.me/abrahambarrera Extendiendo Titanium Mobile

Transcript of Extending titanium

Page 1: Extending titanium

Abraham BarreraDesarrolladorabout.me/abrahambarrera

Extendiendo Titanium Mobile

Page 2: Extending titanium

:DcExtendiendo

Titanium

Page 3: Extending titanium

:DcEntendiendo

Titanium

Page 4: Extending titanium

Qué y Cuánto

Sabemos

Page 5: Extending titanium

:DcCool !

Page 6: Extending titanium

Muiltiplataforma

Page 7: Extending titanium
Page 8: Extending titanium
Page 9: Extending titanium
Page 10: Extending titanium
Page 11: Extending titanium
Page 12: Extending titanium
Page 13: Extending titanium
Page 14: Extending titanium

The important is Here !

Page 15: Extending titanium

:Dc

Bridge Javascript

toJava and Objective-

C

Page 16: Extending titanium

Front-End Compiler

Page 17: Extending titanium

generate the appropriate

platform-specific native code, native

project (if necessary) and

build any specific code that is necessary to

compile Titanium for a given

platform compiler..Bla bla bla bla

Blablablab bla bla blaaaa

Bla bl b bla bla blblblblbba

Page 18: Extending titanium
Page 19: Extending titanium

Javascript To Objective-C (iOS)

:Dc

Page 20: Extending titanium

JavaScriptCore Webkit:Dc

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

http://www.phoboslab.org/log/2011/06/javascriptcore-project-files-for-ios

Page 21: Extending titanium

1. Genera un proyecto XCode:Dc

Page 22: Extending titanium

2. Serializar código Javascript a base64:Dc

Page 23: Extending titanium

3. Embebe código Serializado en los archivos “C” :Dc

Page 24: Extending titanium

4. Compila código nativo con

xcodebuild :Dc

Page 25: Extending titanium

5. Interpreta en Runtime el código

serializado con JavaScriptCore :Dc

Page 26: Extending titanium

Javascript To Java (Android)

:Dc

Page 27: Extending titanium

Rhino JSC Compiler Mozilla:Dc

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

Page 28: Extending titanium

1. Genera un proyecto Android (eclipse):Dc

Page 29: Extending titanium

2. Compila el código Javascript con JSC

CompilerDc

Page 30: Extending titanium

3. Genera APKDc

Page 31: Extending titanium

:DcEntendemos Titanium

Page 32: Extending titanium

:DcExtendemos Titanium

Page 33: Extending titanium

Titanium Modules:Dc

Page 34: Extending titanium
Page 35: Extending titanium

Módulo: Set de APIS

Page 36: Extending titanium

ProxysViewProxys

ViewsModules

Page 37: Extending titanium

ProxysViewProxys

ViewsModules

Page 38: Extending titanium

ProxysViewProxys

ViewsModules

Page 39: Extending titanium

ProxysViewProxys

ViewsModules

Page 40: Extending titanium

ProxysViewProxys

ViewsModules

Page 41: Extending titanium

Hands on Lab

Page 42: Extending titanium

Defina un nombre SIN “-”

Page 43: Extending titanium

Defina un nombre SIN “-”#JavascriptFail

Page 44: Extending titanium

# titanium create --platform=iphone --

type=module --dir=./ --name=mimodulo --

id=org.adamantio.mimodulo

Page 45: Extending titanium

# cd mimodulo

Page 46: Extending titanium

Classes/ Assets/ build.pyExample/ mimodulo.xcodeproj manifesttimodule.xml

Page 47: Extending titanium

version: 0.1 description: Mi modulo author: Abraham Barrera license: Apache copyright: Copyright (c) 2011

manifest

Page 48: Extending titanium

# open mimodulo.xcodeproj

Page 49: Extending titanium

Corregir Archivo build.pyMarkdown por markdown2

Page 50: Extending titanium

# ./build.py # titanium run

Page 51: Extending titanium

# cp org.adamantio.mimodulo-

0.1.zip /Library/Application\ Support/Titanium/

Page 52: Extending titanium

# cd /Library/Application\ Support/Titanium/# unzip org.adamantio.mimodulo-iphone-0.1.zip

Page 53: Extending titanium

Usarlo en nuestra propia aplicación Titanium

Page 54: Extending titanium

<modules> <module version="0.1"> org.adamantio.mimodulo </module></modules>

tiapp.xml

Page 55: Extending titanium

var elmodulo = require('org.adamantio.mimodulo');elmodulo.hacer_algo();

app.js

Page 56: Extending titanium

Titanium Modules(bonus track)

:Dc

Page 57: Extending titanium

Titanium Modules:Dc

Page 58: Extending titanium

Apple Storekit Barcode reader

Magtek credit card readerPaypalSMS

TV OutOmnitureAnalytics

Page 59: Extending titanium

Appcelerator:Dc

Page 60: Extending titanium

Titanium MobileOPENSOURCE PROJECT

:Dc

Page 61: Extending titanium

Internal Devs:Dc

Page 62: Extending titanium

thousands of developers (QA)

Page 63: Extending titanium

Titanium MobileBUY CERTIFIED “NO

OPENSOURCE” CODE:Dc

Page 64: Extending titanium

Titanium MobileEPIC “WIN” TO APPCELERATOR

:Dc

Page 65: Extending titanium

Titanium MobileMEGA “FAIL” TO COMMUNITY

:Dc

Page 66: Extending titanium

Appcelerator Titanium

:

Page 67: Extending titanium

Más fuerte que el Titanium

Page 68: Extending titanium

Adamantio

Page 69: Extending titanium

developer.adamantio.org:Dc

Page 70: Extending titanium

groups.google.com/group/

adamantio-announce:Dc

Page 71: Extending titanium

groups.google.com/group/

adamantio-devel:Dc

Page 72: Extending titanium

Abraham Barrera C.Desarrollador

http://about.me/abrahambarrera