Introducción a JavaFX 1.2
Un vistazo a esta nueva plataforma, sus principales características y componentes.
Las demos que figuran en las slides pueden encontrarlas en:
- Effects Playground: http://javafx.com/samples/EffectsPlayground/index.html
- Photo Flockr: http://javafx.com/samples/PhotoFlockr/index.html
- Indaba Session Console: www.indaba.com (requiere registrarse en el sitio)
- Mosaic: http://javafx.com/samples/Mosaic/index.html
- Video Box: http://www.javafx.com/launch/archive/video3.jsp
- Video Box (II) http://www.javafx.com/launch/archive/video5.jsp
- CloudDVR: http://www.javafx.com/launch/archive/video6.jsp
- HelloWorldAnimated: http://blogs.sun.com/Argentina_ambassador/resource/HalloWorldAnimated.zip
2. A rich client platform for all screens
Lo más destacado de JavaFX
• Es una plataforma que se compone de
elementos web, scripting, multimedia y
Java para crear RIAs.
• Apunta al escritorio, navegador,
dispositivos móviles y la industria
del entretenimiento, y posee un
modelo de desarrollo y deployment
unificado.
• Para desarrolladores (web), diseñadores y creadores de contenido.
• Agrega nuevas dimensiones a la plataforma Java
> Permite realizar complejas y vistosas interfaces en forma sencilla.
> Incrementa el poder y el nivel de difusión de Java.
> Escapa del navegador.
2009 Sun Microsystems, Incorporated. All Rights Reserved.
3. A rich client platform for all screens
Demos
- Effects Playground
- Photo Flockr
- Video Box (Vídeo)
2009 Sun Microsystems, Incorporated. All Rights Reserved.
4. A rich client platform for all screens
Desarrollo de RIAs : ¿Web, RIA o Java?
•Enfocadas al escritorio, crecimiento en
RIA •Experiencia de usuario muy completa. Web dispositivos móviles.
•Sandbox seguro. App •Experiencia de usuario regular,
•Ubicuidad, mientras haya un reproductor mejorando.
disponible. •Acceso limitado a capacidades del
•Acceso limitado a capacidades del sistema o red (salvo que se encuentre
sistema o red. unida a un navegador especifico)
•Propietario. •Tendencia hacía la fragmentación
(navegadores, APIs).
Java •Múltiples pantallas/ plataformas.
App •Arquitectura de seguridad comprobada.
•Acceso a capacidades del sistema y red,
gran integración.
•Es complicado crear una experiencia de
usuario completa.
•Fragmentación (soporte multimedia).
2009 Sun Microsystems, Incorporated. All Rights Reserved.
5. A rich client platform for all screens
Desarrollo de RIAs : ¿Web, RIA o Java?
Objetivo: Realzar los puntos fuertes, resolver las limitaciones
RIA Aplicación Web
JavaFX, construido sobre Java
• Ubicuidad (escritorio, web, dispositivos móviles, TV)
• Arquitectura de seguridad comprobada
• Acceso a capacidades del sistema y red
• Experiencia de usuario rica y multimedia
• Scripting, GUI declarativo
• Integración completa con el navegador (de ser requerido)
• Permite “Escapar” del navegador
2009 Sun Microsystems, Incorporated. All Rights Reserved.
6. A rich client platform for all screens
Que podemos hacer
con JavaFX 1.2
• Reproducir vídeo en diferentes
navegadores, en forma unificada.
• Aplicaciones “business” interactivas
e inmersivas.
• Acceder a web services REST.
• Acceder a aplicaciones en la nube.
• Aplicaciones que pueden
ejecutarse en el navegador,
escritorio, dispositivos móviles y
TVs.
2009 Sun Microsystems, Incorporated. All Rights Reserved.
7. A rich client platform for all screens
Demo
- Indaba Session Console
2009 Sun Microsystems, Incorporated. All Rights Reserved.
8. A rich client platform for all screens
JavaFX 1.2
Arquitectura, Herramientas
y Componentes
2009 Sun Microsystems, Incorporated. All Rights Reserved.
9. A rich client platform for all screens
JavaFX 1.2 + Java Marketecture
JavaFX Applications and Services
JavaFX Apps Framework
Authoring
Tools
JavaFX JavaFX JavaFX
Desktop Mobile TV Developer
Runtime Runtime Runtime Tools
(IDE Plug ins, RAD,
Production Suite)
Desktop Mobile TV
Extensions Extensions Extensions Designer
Tools
JavaFX Common Profile (Authoring, Publishing,
Media Encoding)
Java Platform (Java Plug in)
2009 Sun Microsystems, Incorporated. All Rights Reserved.
10. A rich client platform for all screens
Componentes de JavaFX
• JavaFX Script – El lenguaje
• JavaFX Runtimes: Desktop/Web, Mobile, TV
> Archivos jar de 1.5 MB (700 KB comprimido), se bajan, actualizan y
mantienen en memoria en forma automática cuando se requieren.
• Aplicaciones JavaFX
> En archivos jar, cargadas a través del class loader.
> Independientes, vía Java Web Start, como applets o aplicaciones
móviles.
• Herramientas JavaFX
> Compilador FX Script
> Plug-in para IDEs, herramientas para desarrolladores
> Bibliotecas para gráficos, multimedia, web services, y texto enriquecido.
2009 Sun Microsystems, Incorporated. All Rights Reserved.
11. A rich client platform for all screens
Java 6 Update 10 - “Applets reloaded”
• Nuevo “Kernel” Java
> Runtime “componentizado” – pequeños módulos cargados por demanda
> Descarga e instalación de módulos más rápida
> Java QuickStarter: arranque en frío más rápido, arranque en caliente
instantáneo.
• Nuevo Plug-In para navegadores
> Rescrito desde cero, nueva arquitectura (mayormente en Java)
> Los applets corren como procesos separados, independientes del
navegador.
– Más control y confiabilidad
> El puente “Live connnect” con JavaScript fue rescrito
– La interacción entre el navegador (JavaScript) y el Applet (Java)
mejoró mucho
2009 Sun Microsystems, Incorporated. All Rights Reserved.
12. A rich client platform for all screens
Cadena de desarrollo en JavaFX 1.2
Creación de recursos Transformación de Integración con IDEs Emulados por (de ser
recursos requerido)
Adobe
Illustrator
Plug-in JavaFX
para IDEs
Adobe
Photoshop JavaFX Emulador de
Production JavaFX
Suite Compilador Mobile
On2 Flix JavaFX
Encoders
(JavaFX File Format,
VP6 y MP3)
Adobe CS3
(Flash y Herramienta
Flash Video,
JavaFX 1.5) RAD
(Open
Source)
2009 Sun Microsystems, Incorporated. All Rights Reserved.
13. A rich client platform for all screens
Plug-in JavaFX 1.2 para NetBeans
2009 Sun Microsystems, Incorporated. All Rights Reserved.
14. A rich client platform for all screens
Incorpora recursos visuales existentes con
JavaFX Production Suite
2009 Sun Microsystems, Incorporated. All Rights Reserved.
15. A rich client platform for all screens
JavaFX 1.2
Características y
lenguaje
2009 Sun Microsystems, Incorporated. All Rights Reserved.
16. A rich client platform for all screens
Caracteristicas del perfil común de JavaFX
Componentes Características
Compilador y >SE 5 y CLDC
lenguaje
>Formas geométricas, líneas, >Recortes con formas geométricas arbitrarias
curvas, arcos >Mascaras
Gráficos y texto >Transparencia >Soporte para pantalla completa
>Gradientes, texturas >Transformaciones
>Estilos de trazo >Fuentes True Type
Controles de GUI >Conjunto de controles >Componentes para gráficos
+ Componentes multiplataforma (botón, deslizador, multiplataforma (gráfico de barra,
para gráficos barra de progreso, etiqueta, etc.) de torta, etc.)
2009 Sun Microsystems, Incorporated. All Rights Reserved.
17. A rich client platform for all screens
Características del perfil común de JavaFX
Componentes Características
>Animación basada en key frames >Animaciones estándar
Animación con tweening (rotación, zoom, deslizamiento)
>Animación basada en Paths
>Audio (mp3) y vídeo (On2) >Control de volumen y balance
multiplataforma >Streaming Http + RTSP con
>Soporte nativo para codecs buffering (archivos fxm)
Multimedia
(DirectShow y Core Video), con
controles de reproducción
>Web services (parser JSON/XML, APIs RESTful, RSS/ATOM)
>Almacenamiento persistente
Otros >CSS skinning
>Control de dispositivos de entrada (teclado, mouse, touch)
2009 Sun Microsystems, Incorporated. All Rights Reserved.
18. A rich client platform for all screens
Controles de GUI + componentes para gráficos
2009 Sun Microsystems, Incorporated. All Rights Reserved.
19. A rich client platform for all screens
JavaFX Scenegraph
• Estructura tipo árbol de nodos gráficos
• Forma de representación de gráficos vectoriales sencilla,
independiente de la plataforma
Scene {
Group {
Rectangle, javafx.scene.shape
Circle Rectangle
}
}
javafx.scene.shape
• Pueden embeberse componentes Circle
Swing (en el perfil de escritorio)
2009 Sun Microsystems, Incorporated. All Rights Reserved.
20. A rich client platform for all screens
JavaFX Script – Conceptos básicos
• Un poderoso lenguaje de programación de scripts
> Especifico del dominio: diseñado para la creación de interfaces de
usuario
> OO, tipos estáticos, inferencia de tipos, binding, secuencias, timelines, ...
> Estilo declarativo que refleja el diseño de la interfaz
> Las funciones son objetos “first-class”
> Interoperabilidad fluida con Java (comparten el runtime)
• Soporte incorporado para gráficos y multimedia
> Añade comportamiento composicional sobre Java2D
> Creación sencilla y multiplataforma de gráficos, animaciones, vídeo y
audio
• Compila para ejecutarse en runtimes Java de alta performance
2009 Sun Microsystems, Incorporated. All Rights Reserved.
21. A rich client platform for all screens
“Hello World” - Swing
import javax.swing.*;
public class HelloWorldSwing {
public static void main(String[] args) {
JFrame frame = new JFrame("HelloWorld Swing");
final JLabel label = new JLabel("Hello, World");
frame.getContentPane().add(label);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
}
2009 Sun Microsystems, Incorporated. All Rights Reserved.
22. A rich client platform for all screens
“Hello World” - JavaFX
import javafx.stage.*;
import javafx.scene.*;
import javafx.scene.text.*;
Stage {
title: "HelloWorld JavaFX"
scene: Scene {
width: 200
height: 50
content: Text {
x: 50, y: 20
content: "Hello, World"
}
}
}
2009 Sun Microsystems, Incorporated. All Rights Reserved.
23. A rich client platform for all screens
Algunas características del lenguaje JavaFX Script
• “HelloWorld”, animado
> Posee un timeline para la animación
> Usa un binding para modificar la posición del texto
> Utiliza un botón y un manejador de eventos de mouse para controlar la
animación
> Utiliza la característica “Realtime Preview” de NetBeans
2009 Sun Microsystems, Incorporated. All Rights Reserved.
24. A rich client platform for all screens
JavaFX 1.2 Mobile
2009 Sun Microsystems, Incorporated. All Rights Reserved.
25. A rich client platform for all screens
JavaFX Mobile Architecture
JavaFX Runtime
(Common API, SceneGraph, Media, Webservices)
Sun Java Wireless Client
(CLDC, MIDP 2.0, JSR 135)
Software OpenVG OpenGL-ES
Renderer
Mobile Device
Default Stack 2D Accelerated Stack 3D Accelerated Stack
2009 Sun Microsystems, Incorporated. All Rights Reserved.
26. A rich client platform for all screens
JavaFX Mobile
• Anunciado en el Mobile World Congress 2009
> Partners: LG Electronics, Sony Ericsson
• JavaFX 1.2 SDK
> Runtime JavaFX Mobile para Common Platform
> Emulador JavaFX Mobile (Windows)
> JavaFX Mobile para Windows Mobile 1.2 EA
• Selección de plataformas
> Crea aplicaciones multiplataforma usando JavaFX Common Platform
> Introduce características específicas para dispositivos móviles usando
JavaFX Common Platform
– y/o JavaFX Mobile Elements
– y/o APIs específicas para dispositivos móviles (location, sensor, ...)
2009 Sun Microsystems, Incorporated. All Rights Reserved.
27. A rich client platform for all screens
Crea y realiza el deployment en el escritorio, navegador y
dispositivos móviles
• Realiza un desarrollo unificado
> Herramientas comunes
> Código base común
> Paradigma de programación
común
Escritorio
• Deployment sencillo
> Aplicación de escritorio
> Web Start
Navegador
> Applet (dentro y fuera del navegador)
> Aplicación móvil (emulador o teléfono)
Dispositivo móvil
2009 Sun Microsystems, Incorporated. All Rights Reserved.
28. A rich client platform for all screens
Demos
- Mosaic
- CloudDVR (vídeo)
2009 Sun Microsystems, Incorporated. All Rights Reserved.
29. A rich client platform for all screens
Conclusión
2009 Sun Microsystems, Incorporated. All Rights Reserved.
30. A rich client platform for all screens
Conclusión
• Ahora, Java lo tiene todo
Volumen de dispositivos y plataformas ✔
Amplia base de desarrolladores y creadores de contenido ✔
Expresividad, Interfaces impactantes ✔
Desarrollo rápido de aplicaciones ✔
Accesibilidad y variedad de herramientas ✔
Ubicuidad multiplataforma ✔
• Visita http://javafx.com para encontrar ejemplos, vídeos,
herramientas, documentos y tutoriales
2009 Sun Microsystems, Incorporated. All Rights Reserved.