27
The Prosciutto Project an open source mobile application engine

Prosciutto Palermo Valley Mobile Sessions

Embed Size (px)

Citation preview

The Prosciutto Project

an open source mobile application engine

¿Qué problemas existen hoy?

• Device fragmentation– Hardware (pantalla, memoria, input)– Software (APIs, diferencias de implementación)– Configuración de device (preferencias)– Configuración de red (carriers)

• Más de 20 vendors diferentes• Más de 5000 modelos diferentes identificados• Más de 11.000 variaciones de firmware *Fuente: WURFL

(Wireless Universal Resource File, 22 Abril 2009)

¿Qué problemas existen hoy?

• Write once, run everywhere?

• No: Write once, debug everywhere!

• Redistribución. Los costos de “sembrar” la aplicación se vuelven a pagar con cada nuevo release (publicidad, dar a conocer, distribución).

• Costos de Testing y Porting

Motivaciones y visión

• El espíritu: – Suficientemente configurable para construir cualquier aplicación– Separar la lógica de negocios del código java– Modelar la lógica por fuera– Implementar en una configuración simple– Que analistas/modeladores de procesos puedan construir la

aplicación, sin necesidad de conocimientos específicos

• Llevar la tecnología a la gente, en todo sentido (engine que corra en terminales baratos, posibilitar sumar mayor valor agregado, permitir que una persona sin skills de programación pueda eventualmente realizar algo)

Motivaciones y visión

• Separar la lógica de negocios del código java

Motivaciones y visión

• Separar la lógica de negocios del código java

¿Qué es Prosciutto?

• The Prosciutto Project es un motor implementado en Java ME.

• Se lo puede pensar como un framework RAD, o un motor distribuíble que apunta a acotar el problema de la fragmentación de terminales.

• Se basa en utilizar un lenguaje de markup muy básico e intuitivo para definir objetos de UI y comportamiento.

• Las aplicaciones Prosciutto corren sobre el motor Prosciutto

• Cualquier aplicación cuyo sentido sea el de navegar datos (online u offline) y representarlos en pantalla es construíble en Prosciutto.

¿Por qué un motor?

• …y no una aplicación WAP?– Acceso a APIs y nuevas funcionalidades– Seguridad– Libertad

¿Por qué un motor?

• …y no una aplicación vertical?• Rapidez de desarrollo y prototipado vs. eficiencia en la

resolución de un problema vertical• Falsa dicotomía

– Prosciutto resuelve los problemas comunes a todos– Las aplicaciones verticales proveen una solución concreta a un

problema específico, bien definido– Prosciutto provee un piso donde la generación de aplicaciones

es una actividad que permite abstraerse de los problemas de la plataforma subyacente

– Permite enfocarse en el problema vertical a resolver (aplicación) de una manera eficiente y rápida

¿Por qué Java?

• Más del 90% de los terminales fabricados actualmente tienen alguna versión de JVM.

• Existen más desarrolladores con skills en Java que en cualquier otra plataforma móvil– Symbian– iPhone– .NET CF (Windows Mobile)

• (por algo Google creó su propio lenguaje Java como plataforma de desarrollo base para Android)

¿Por qué open source?• Fomentar la idea de compartir• Los problemas que Prosciutto resuelve son comunes a

todos• Device fragmentation• Recursos limitados• Malabares de código para soportar cuestiones específicas de

diferentes modelos y/o fabricantes

• Por lo tanto, las soluciones a los mismos no deberían ser un activo de una compañía, sino de la industria

• Si resolvemos los problemas de todos entre todos, más rápido podremos enfocarnos en agregar valor

• El valor agregado es esencialmente el diferenciador• El V.A. proviene de las aplicaciones verticales, y no

de solucionar los problemas de siempre una y otra vez (concepto DRY)

¿Qué se resuelve?

Device fragmentation? Si!Write once, run everywhere? Si!Redistribución. Si! Los costos de

“sembrar” la aplicación se pagan sólo una vez.

Minimizar costos de Testing y PortingPor ende, un menor costo de desarrollo y

un mejor time-to-market

Markup• Prosciutto se basa en una idea simple:

definir tanto el layout y apariencia como el comportamiento en un único modelo de XML

• HelloWorld:

Ejemplo: Hello World

Ejemplo: Login

Modelos testeados

Iniciativas similares• J2ME Polish (www.j2mepolish.org)

• LWUIT Lightweight User Interface Toolkit (https://lwuit.dev.java.net/)

• Hecl (http://www.hecl.org)

• http://phonegap.com/

• MUPE (http://www.mupe.net/) Multi-User Publishing Environment

• http://mobile.processing.org/

Futuro• Integración completa de Hecl (Q2 2009)

• Android (Q3-Q4 2009)

• Integración con LWUIT (Q4 2009 – Q1 2010)

• Editor WYSIWYG (2010)

Caso de éxito: Ticketek

Calling All Innovators ContestRegional Winner/Global Finalist

The application

TIM (TELECOM PERSONAL)TIM (TELECOM PERSONAL)11,9 MM users (4Q08)

TICKETEK TICKETEK ARGENTINAARGENTINA

Largest Ticket Broker in Argentina

www.ticketek.com.ar

Functionality I

Functionality II

Functionality III

Access validation

Architecture

¡[email protected]

http://www.prosciuttoproject.org