Caelum | Ensino e Inovação - Cursos de Java, Scrum, Ruby on Rails


CSS3 e o futuro da Web

Por Sérgio Lopes em 17/02/10

O mundo do desenvolvimento Web passa atualmente por grandes mudanças. Com as aplicações Web exigindo cada vez mais dos navegadores, uma verdadeira guerra está sendo travada no client-side da Web. O até então onipresente Adobe Flash vem recebendo críticas e mais críticas. Com suas próprias alternativas, Microsoft, Oracle e Google tentam entrar nesse mercado. E, ainda parecendo velhos e ultrapassados em comparação a tudo isso, estão HTML, CSS e JavaScript.

Mas, se depender dos novos HTML5 e CSS3, o cenário será bem diferente no futuro. Com o grande apelo de serem padrões abertos implementados nativamente nos navegadores, essas novas especificações prometem simplificar bastante o desenvolvimento de aplicações ricas no client-side sem o uso de plugins.

Só para falar do CSS3, assunto desse post, podemos citar entre suas novas capacidades de formatação visual, as queridas bordas redondas, o uso de sombras, múltiplos backgrounds, layouts multi-colunas, novos seletores, uso de fontes externas, transformações 2D e 3D e animações. São recursos que facilitam bastante a tarefa do WebDesigner ao criar interfaces ricas e bonitas.

Embora não seja tão recente assim – o CSS3 data de antes de 2001 -, o suporte nos navegadores ainda é bem precário. Firefox, Safari, Chrome e Opera lideram o movimento, mas ainda estão longe de implementar todos os recursos. O IE tem algumas poucas coisas implementadas em sua versão 8 e uma promessa dos desenvolvedores de melhorar um pouco mais na futura versão 9.

Para demonstrar o uso de alguns recursos do CSS3, recriamos o logotipo da Caelum inteiramente usando recursos do CSS3, como border-radius, pseudo-elementos :after e :before e @font-face. O HTML da página é simplesmente:

  <div class="caelum">
    <strong>Caelum</strong>
    <em>Ensino e Inovação</em>
  </div>

E, sem usar nenhuma imagem (nem JavaScript/canvas/SVG), desenhamos o logo da Caelum. Veja a demonstração usando alguma versão recente do Firefox (3.5+), Safari/Chrome ou Opera (10.50+) e veja também o código CSS. E, por ser tudo CSS, sem imagens, podemos mudar o tamanho do logo a vontade, como mostra esse outro exemplo.

CSS3, HTML5 e outros tópicos da “nova Web” são também assuntos do novo treinamento da Caelum, WD-43: Desenvolvimento Web com HTML, CSS e JavaScript. O CSS3 é peça importante no futuro da Web. Seus diversos recursos mudarão a forma como fazemos WebDesign.

  • Share/Bookmark

Falando em Java: Introdução ao JavaFX

Por Sérgio Lopes em 18/07/07

Atualização: Segunda parte do artigo de JavaFX aqui, e veja sobre nosso curso de Adobe Flex e RIA aqui.

No último Falando em Java apresentei uma palestra sobre JavaFX, apresentando a tecnologia e especulando sobre o futuro desse mercado. É a grande aposta da Sun no mercado das Rich Internet Applications – RIA, onde o Adobe Flex – que abordamos no curso FJ-29 – hoje lidera.

O JavaFX foi apresentado[1] pela Sun no último JavaOne em maio desse ano como uma nova estratégia da empresa para levar o Java ao desenvolvimento fácil de interfaces ricas com o usuário. Dois produtos foram anunciados e novidades foram prometidas para breve. Hoje o que temos é o JavaFX Mobile e o JavaFX Script.

O JavaFX Mobile é um novo sistema operacional baseado no kernel do Linux e com uma JVM portátil que pretende levar o Java ao novo mercado dos “smartphones” a la iPhone. Seria voltado ao desenvolvimento fácil de aplicativos bonitos e usáveis em ambiente móvel.

Já o JavaFX Script é uma nova linguagem de programação pensada para o desenvolvimento de interfaces Swing/AWT/Java2D de forma mais fácil do que hoje. A idéia da Sun é atacar o mercado Desktop, onde o Java tem ganho certo mercado ultimamente, mas também atacar o Adobe Flex e o MS Silverlight no mercado de Rich Internet Applications, as RIAs.

Hoje o mercado de aplicativos ricos embutidos no navegador é dominado pelo Adobe Flash (diretamente ou através do Flex, por exemplo). Os Applets foram a primeira tentativa da Sun de atacar esse mercado lá no começo da década de 90 mas o Java não vingou nesse mercado; o JavaFX hoje é a tentativa de retomá-lo. Isso ao mesmo tempo que a Microsoft entra com o Silverlight e onde JavaScript/AJAX consegue fazer já boa parte do que essas tecnologias se propõe a fazer.

Alguns problemas frequentemente apontados para o fracasso dos Applets:

  • Difícil de desenvolver: programação “pura” em Swing é chato e improdutivo
  • Falta de boas ferramentas para desenvolvimento visual: o Flash só é o que é hoje porque atacou o mercado dos designers e desenhistas antes de se preocupar com os programadores
  • Java é feio?
  • Java é lento? E ninguém tem Java instalado na máquina?
  • Todas essas questões já estão sendo vislumbradas pela Sun. O Java hoje não é lento (era, uma década atrás) e estima-se que 91% dos PCs possuam Java instalado. Mas ainda temos problemas: o tempo de Startup da JVM ainda é alto (em grande parte devido às operações de I/O para subir a VM) e o download é grande. Ambas as questões devem ser solucionadas com a chamada Consumer JRE[2], uma JRE modular onde se baixa apenas os componentes necessários para rodar as aplicações normais e módulos extra são baixados automaticamente sob demanda.

    As questões da dificuldade de desenvolvimento e falta de boas ferramentas são justamente o foco do JavaFX.

    O JavaFX Script é uma linguagem de script declarativa e orientada a objetos, com sintaxe simplificada para desenvolvimento de GUIs. É bem diferente do Java tradicional mas já possui plugins para Eclipse e Netbeans para facilitar o desenvolvimento.

    Veja uma comparação entre um Hello World em Swing e em JavaFX:

    // em Swing
    public class HelloSwing {
    	public static void main(String[] args) {
    		JFrame frame = new JFrame("Meu programa em Swing");
    		JLabel label = new JLabel("Olá Mundo");
    		Dimension d = new Dimension(300, 50);
    		frame.setSize(d);
    		frame.add(label);
    		frame.setVisible(true);
    	}
    }
    
    // em JavaFX
    Frame {
    	title: "Meu programa em javafx"
    	width: 200
    	height: 50
    	visible: true
    	content: Label {
    		text: "Olá mundo"
    	}
    }
    

    Note a semelhança com linguagens de marcação como XML, onde a forma declarativa e aninhada de se agrupar os componentes facilita o desenvolvimento e a leitura do programa.

    Você pode executar esse exemplo através do Java Web Start, clicando aqui.

    Na palestra, desenvolvi um pedaço de uma loja virtual com efeitos 3D e animações. Usamos nesse exemplo recursos avançados do JavaFX como binding de componentes para classes de modelo, buscas otimizadas em arrays, triggers para eventos em variáveis, Java2D, animações e outros. No próximo artigo trato desses assuntos com mais detalhes, mostro como configurar o ambiente de desenvolvimento, bem como outras coisas como concorrência de Threads, integração com o Java e conectividade.

    Você pode executar o demo clicando aqui.

    Os exemplos são apresentados em Java Web Start em formato jar. O ambiente de execução do JavaFX é distribuído junto e possui 2MB; nas futuras versões do JRE, o JavaFX deverá vir embutido, diminuindo consideravelmente o tamanho do download.

    Para ver os fontes, basta descompactar o jar e ver os arquivos .fx. O código fonte é de propriedade da Caelum, exceto o componente DisplayShelf desenvolvido por Chris Oliver e liberado no Site dele. [5]

    Até o próximo artigo!

    Atualização: Segunda parte do artigo de JavaFX aqui


    Algumas referências:

    [1] Apresentação do Chris Oliver sobre o JavaFX/F3 no JavaOne

    [2] Palestra apresentada no JavaOne sobre o mercado Desktop Java e a Consumer JRE

    [3] Tutorial para iniciantes em JavaFX

    [4] Especificação da linguagem JavaFX Script

    [5] Blog do Chris Oliver, desenvolvedor do JavaFX

    [6] Projeto OpenJFX com a implementação do JavaFX e muito material

    • Share/Bookmark

    Fatos e Fotos do Falando em Java 2007

    Por Guilherme Silveira em 06/07/07

    O Falando em Java 2007 foi um sucesso, contando com quase 200 participantes no centro universitário FEI. Foi uma tarde de palestras, tecnologia, confraternização e troca de conhecimento. Você pode conferir algumas opiniões nesse post do GUJ, que falam desde as diversas palestras ao incrível coffee break com direito a mousse de maracujá e tortas!

    Depois da abertura, contamos com a presença do Phillip Calçado falando dos conceitos da web 2.0. E este foi o tema do evento, onde os instrutores da Caelum apresentaram tecnologias e bibliotecas para AJAX, diferentes formas integração de serviços web, gerenciamento de conteúdo por tags com o Lucene e por último o concorrente do Flex e SilverLight: o JavaFX.

    687790001_3f13f96c88_o 687766075_7881c7c8f1_o
    CIMG1403 CIMG1402
    687738345_e7439ef2c2_o 688619802_b895ecc14f_o

    Ao fim do evento tivemos diversos sorteios, que foram de livros, kits, assinaturas da MundoJava até dois Nintendo DS! Postaremos cada uma das palestras neste blog, juntamente com as demos e códigos relacionados. Agradecemos a todos e esperamos ver vocês no próximo encontro.

    • Share/Bookmark
    


    Caelum | Ensino e Inovação
    São Paulo: Rua Vergueiro, 3185, cj. 87, próximo ao Metrô Vila Mariana   |   Tel. (11) 5571-2751
    Rio de Janeiro: Rua Senador Dantas, 80, cj. 307/308 - Centro   |   Tel. (21) 2220-4156 ou 2297-0033
    Brasília: SCS Qd. 8 Bl. B-50, Sala 521 - Ed. Venâncio 2000   |   Tel. (61) 3039-4222