20 October, 2009

Qt Labs Americas no Latinoware

Filed under: qt,qtlabs_pt — jeez @ 11:25

Entre 22 e 24 de Outubro estará acontecendo o Latinoware 2009, no Parque Tecnológico de Itaipu – Foz do Iguaçu.

Nós estaremos por lá! Eu e Anselmo Melo vamos ministrar um mini-curso de Qt 4.6 no sábado, 24/10. Teremos também palestras de Artur Souza, sobre o Plasma Netbook, Caio Marcelo e Eduardo Fleury falarão sobre Qt Layouts, Ana Cecília (aninha) vai falar sobre Usabilidade em OSS usando seu GSoC como estudo de caso e Kenneth vai falar sobre o Webkit.

Caso queira entrar em contato, basta nos procurar nas referidas palestras ou no stand do INdT que estará em algum lugar do evento. :)


Nos encontramos por lá!

jeez

26 February, 2009

Layouts Animados com Qt Kinetic

Filed under: dev,qtlabs_pt — jeez @ 13:33

Nesse último mês começamos a trabalhar diretamente com o pessoal da Qt Software (antiga Trolltech), no projeto Kinetic.
A primeira questão que resolvemos lidar foi a transição animada de Layouts. Esse tipo de solução facilitará ainda mais o desenvolvimento de “fancy UI’s” usando o framework Qt.
O vídeo a seguir mostra um demo simples que fizemos para ilustrar melhor o que foi desenvolvido:

Nele você pode ver que temos 3 layouts (um vertical, um horizontal e um grid), aos quais vamos adicionando itens. Também fazemos resize nos layouts e temos a transição animada entre eles.

Para chegarmos nesse resultado, implementamos o QGraphicsLayoutProxy. A idéia é ter um layout proxy em cada layout da sua aplicação, mas que apontem para um mesmo widget. Quando uma mudança entre layouts ocorre, os proxies se responsabilizam por animar a transição dos widgets pelos quais são responsáveis. :)
Por enquanto a transição está “hardcoded” no LayoutProxy, mas já estamos trabalhando na versão final da api.
Tem sido um trabalho bastante divertido, principalmente porque estamos trabalhando em cima do “bleeding edge” do Qt 4.5 – que por sinal sai como LGPL agora em março – e as api’s de animação e de states (QStateMachine) está muito boa, acreditem!

Morpheuz também fez um post com um ótimo overview e Fleury postou uma excelente explicação sobre os “internals”… Inclusive com figuras bastante explicativas!

;)

12 August, 2008

Edje, Qt e UI’s?! QEdje!!

Filed under: dev,qtlabs_pt — jeez @ 19:52

Programar interfaces gráficas já foi uma coisa muito “penosa”. Na faculdade sempre evitei o quanto pude ter que escrever ferramentas que precisassem de UI’s, mas não porque não gostasse, e sim porque fui ensinado a fazer isso sempre da pior maneira possível. Sempre.

Há cerca de um ano e meio, estava no primeiro Bossa Conference quando fui apresentado ao EFL, durante a palestra do Rasterman, e a todas as maravilhas que o Evas, o canvas do EFL, proporcionava. Nesse ano, durante o segundo Bossa Conference, fui melhor apresentado ao Edje pelas duas palestras ligadas ao EFL: a do Rasterman e a do Dave Andreoli, que apresentou o Edje Editor.

Da wiki do Edje: “Edje is a graphical design and layout library based on Evas (the canvas used by EFL) that provides an abstraction layer between the application code and the interface, while allowing extremely flexible dynamic layouts and animations”. Em outras palavras, Edje é uma linguagem para desenvolvimento de UI’s (ricas ou não) e animações, com foco em facilitar o processo de desenvolvimento. E, não, Edje não é XML. A figura seguinte pode auxiliar no entendimento:
Edje workflow

Com Edje, o código da aplicação fica totalmente disjunto do código de interface/animação. O desenvolvedor e o designer trabalham isoladamente, mas com uma maior facilidade de integração posteriormente. Os resultados disso são aplicações que impressionam com suas “fancys UI’s”!

Foi usando Edje (e as outras libs do EFL) que o pessoal do INdT, stream OpenBossa, desenvolveu aplicações como o Canola e o Carman, no ano passado e nesse ano. Alguns screenshots para deixar a coisa mais interessante:

Canola Player Canola Album

Carman Tunning Carman OffRoad

Mas, por mais rapido que o Evas seja como “canvas”, por mais fácil e poderoso que o Edje seja como linguagem de interface, o EFL tem seus problemas. Na minha _bem_ humilde opinião, são dois os principais: o fato do Evas não ser exatamente um Canvas e sim uma abstração de uso do X server, framebuffer, opengl, etc, e a quase ausência de widgets no toolkit do EFL. Não fosse isso…

Por outro lado, existe o Qt, da Trolltech. E existe a Nokia, que comprou a Trolltech, e que é quem mantém o INdT. Façam as contas… :P
O Qt é um framework de desenvolvimento, multi-plataforma e bastante completo. Sempre fui bastante resistente em relação a ele e afins (vide KDE), mas preciso admitir que o KDE 4 e o Plasma me chamaram a atenção e qt4 passou a ser o primeiro item na lista de coisas que preciso conhecer melhor.

Agora o grande motivo desse post: o QEdje. Desenvolvido pela minha equipe@INdT, QEdje tem como objetivo principal unificar a flexibilidade de uma linguagem declarativa de descrição de interfaces (Edje) com um toolkit poderoso e recheado de widgets legais para serem utilizados em UI’s (Qt). O resultado pode ser conferido nesse video, que não foi embutido aqui para forçar vocês a assistirem em alta resolução (VEJAM O VIDEO!!). Isso é uma aplicação feita para demonstrar o QEdje, em formato de palestra. Três dos integrantes da equipe estão no aKademy, na Bélgica, para palestrar sobre o projeto usando exatamente essa aplicação do vídeo! Um PDF da apresentação pode ser encontrado aqui.

Em breve vou escrever um post sobre a performance disso tudo, até então, rodando nos tablets! Sim, QEdje está sendo desenvolvido para desktops, móveis, etc.
Mais informaçõs, emails e, claro, código podem ser encontrados no site do QEdje. E, acreditem, ainda tem muito mais por vir… ;)

Outros posts do pessoal do INdT sobre o QEdje:
- http://atdrez.wordpress.com/2008/07/19/qedje/
- http://codeposts.blogspot.com/2008/08/presenting-qedje.html
- http://labs.morpheuz.eng.br/blog/01/08/2008/qedje-init/