domingo, 30 de novembro de 2008

JavaFX - impressões de um fim de semana

Nessa preview (JavaFX Preview SDK), bug pra caramba! impraticável! vamos esperar a release em 04/12! só funfa os exemplos deles, e alguns botões, sliders, bem simples; me pareceu, e pelo que li nos foruns, que a API não foi toda liberada e a integração com netbeans, tá meio loucona... ele se perde pra importar um script, ou scene, etc... tem que colocar na mão! doc da API ainda é draft.

O bom! simples, simples, simples! os scripts (a linguagem FX) é uma mistura de javascript com java e pedaços da XLib (X11) ; a idéia são conjuntos, grupos, frames,
scenes, gradients, widgets, eventos de keys e mouse, etc. A integração com java me pareceu tranquila, pelos menos nos Sysout.out da vida... ops, é OO! a idéia de script, nos tira os objetos da cabeça... hehe!

Muito rápida, muito rápida! o weather ficou show (exemplo deles), lendo do google weather pra infinidade de png que tem, pra os efeitos das nuvens, raios, chuvas, trovoadas, lua, sol, etc, é bem rápida! nos exemplos, muita matemática, circle, vector, area, lightning... o posicionamento dos ponteiros, é uma composição seno/coseno mesmo! isso me lembrou flash! shadows, infinity, texture,... quem conhece o Photoshop, deve lembrar aquela parada de ficar brincando com sombras, angles, opacidade, camadas... é por aih,... toin! mas, tá bem voltado pra desenvolvedor, coisa que não acho no flash... mas, dêem uma olhadinha num estilo de script... (vejam no ImageView um pedaço de Java... oh meu Deus!)
Group {
transform: bind Transform.rotate(angle, 50, 50)
translateX: bind x
translateY: bind y
content: [
Circle {
opacity: bind shape.value
centerX: 50 centerY: 50 radius: 50
stroke: Color.YELLOW
fill: RadialGradient {
centerX: 50 centerY: 50 radius: 50
focusX: 70 focusY: 30
proportional: false
stops: [
Stop {offset: 0 color: Color.YELLOW},
Stop {offset: 1 color: Color.WHITE}
]
}
},
Text {
transform: bind Transform.rotate(33, 10, 100)
opacity: bind text.value
content: "Duke"
},
ImageView {
transform: bind Transform.translate(31, 27)
opacity: bind image.value
image: Image {url: this.getClass().getResource("duke.png").toString()}
},
]
}
Tem o Project Nile, que são plugins para exportar do Photoshop ou Illustrator para o FX; nada mais que vetorizar as imagens no padrão SVG; só usei png mesmo, pois o bicho capotava quando tratava os vetores... ahh, ele deixou eu criar um projeto com o mesmo nome no workspace (ouch!!) e quando fui apagar, ambos foram pro espaço! depois quando tentei reabrir, o bicho ficou doidão!

O velho e bom Quicktime, o Fenix, volta a aparecer como a principal ferramenta para exibir vídeos no FX, e, também na API disponibilizada, só tem ele; deve aparecer logo coisas pra Windows Media Player, Winamp,... e o flash player?

Detalhe, para os desavisados... não rodei nada dentro do browser, fiz tudo no IDE; entretanto, o grande atrativo dessa tecnologia, pra mim, é você "arrastar" (criar um link!) de dentro do browser e colocar no desktop, e rodar como uma aplicação qualquer, e, depois pode-se criar um link no desktop, tipo JNLP (Java web start launcher)... pronto! do browser pro desktop num piscar de olhos... e o link fica lá,... clicou, aplicação rodou... ou roda localmente, ou de um server; não se preocupem, tem como fazer cache também! Nesse ponto ficou uma dúvida... ele usa a cache do browser, usa o engine do browser default? no meu caso, ele usou o xlrunner do firefox? bom, o Dudu elucidou o dilema; o próprio webstart tem todo esse mecanismo de configuração, praticamente o mesmo mecanismo dos browsers, como arquivos temporários, tamanho da cache, JVM disponíveis, certificados, etc...

Bom, pra ficar bonitinho, tem que ter um trabalho gráfico, mas se quiser uma interface com botões e sliders, fica "fofo!" (nada de boiolices, vlw?! hehe)

Li bastante coisa do projeto,... agora, vou esperar dia 04/12, baixar e começar a brincar! como eu iria pra flash e tava achando dificil demais, vou agora gastar tempo com o FX!

Recomendo a galera dar uma olhada e compartilhar a impressão... ainda apanho um pouco com o netbeans... ahh, soh roda no 6.1 segundo a Sun; espero que a release rode no 6.5, mas a Sun não garante... fiz o teste, e rodou... esquisito?! achei naum!

Por enquanto o SDK JavaFX só tem pra Windows e Mac... pobre pinguim! mas encontrei dicas e "marretas" pra rodar no Linux a partir do pacote Mac (diga-se kernel FreeBSD), mas não tentei.

nesse link, sabe-se quase tudo sobre o projeto: http://www.javafx.com/

fui!

Nenhum comentário: