Puelocesar User Interface Development


Macuco update: Zoom support and new screenshots!

Hey everyone! Our little web browser specialized for Gmail just got a new feature! Thanks to the patches from Jie, requests from some nice folks on talk.maemo, and one hour on Firebug debugging Gmail code to find out why the hell it didn’t let I zoom fonts, now Macuco has zoom support with hardware keys!

Oh, and some people requested screenshots of it running other google apps then Gmail, so here it is:

Google Reader on Macuco

Google Reader on Macuco

google reader feed item

Opening a feed item on google reader

 

 

Orkut

Orkut on Macuco

screenshot04

Opening a google docs spreadsheet

My objective right now is to send the application to extras and put it on the Downloads page. Bye!

 


Macuco updated!

Hi everyone! I know you are all excited with new and glorious Maemo5 and n900, but for the mortals who doesn’t have to privilege to get one, I have just updated Macuco, my Gmail/Google Reader/Orkut client for the Maemo4.

Thanks for Jie Zhang, a very nice fellow from Shangai, the high CPU utilization bug was solved, now everything is much smoother and fast!

Jie also solved the problem with packaging, so now you can launch Macuco from the menu, with a nice icon my wife made for me :)

By the way, I’m really happy to see how open source work well! If the code was closed, the bugs wouldn’t be solved and I would just abandon the application. But as the code is open, I found a contributor who solved the two main problems with the app and now the project is alive and more importantly: useful for people!


Macuco: Gmail Client for Maemo

Hi everybody, my name is Paulo Cesar, and I was invited to participate on the Maemo planet recently. Here I’ll post about my adventures with Maemo development.

My first ‘test’ application is actually something that’s very useful for me: a Gmail client. Well, technically the client isn’t mine, it’s from Google, and for iPhones. My application is a little webkit browser made in Qt that identifies itself as iPhone’s Safari, and it uses kinetic scrolling to have a similar behavior as iPhone.

This is a picture of it’s first version:

Foto do Gmail App for Maemo

Gmail App for Maemo

I made a video too, so you can see the kinetic scrolling in action:

After that, I added a little bunch of goodies to it, basic stuff, like a name, an icon, a loading animation and error  handling. The name it’s Macuco, and the logo it’s this nice bird my wife draw for me :)

logo do Macuco

Well, if you want to test it yourself, the application was already submitted to Maemo Extras Devel, and if you like it and want to contribute with code, it’s everything published at:

http://github.com/puelocesar/Macuco/tree/master


Macuco: Gmail Client App

Logo do Macuco

Olá internet!

No post passado, eu falei sobre o cliente de gmail para Maemo que eu estava fazendo. Pois bem, agora este programa tem nome, e se chama Macuco. Esse desenho aí do lado é o ícone legal que a minha esposa desenhou para mim :)

Além do nome e logo, o Macuco agora cresceu e tem mais funcionalidades, agora ele suporta cookies, tem uma animação de loading, e trata erros de conexão, mostrando uma janelinha de erro e retry.

Tela de erro de conexão do Macuco

Tela de erro de conexão do Macuco

A única dificuldade que tive nesta tela, foi que eu não estou usando um GraphicsView para poder colocar efeitos nos widgets, então para criar essa layer transparente aí, eu estou chamando um método muito útil: o evaluateJavascript() da classe QWebFrame, que permite que eu execute javascripts arbitrários dentro do contexto da página que o webview está mostrando. Neste caso, eu crio um novo nó DOM, seto ele para ser uma DIV e então aplico um CSS de opacidade (CSS3 rules by the way).

Outra coisa que fiz no programa é fazer seu empacotamento para Maemo. É bem chato seguir todas aquelas regras de empacotamento do debian, principalmente para um desenvolvedor Rails acostumado com conceitos KISS como eu, mas depois de algum tempo lendo documentação e tentativas  e erros, acabei conseguindo gerar o bendito .deb para instalar no Maemo. Agora só falta submitar o pacote para o repositório Extras do Maemo.org!

A propósito, quem tiver um N8x0 rodando o Diablo e quiser testar o Macuco, aí está o .deb: http://rapidshare.com/files/262956299/macuco_0.1-1_armel.deb

Eu prometo de dedos cruzados que ele não formatar seu dispositivo, fazê-lo explodir, ou matar suas crianças. Duvida? O código está publicado aqui: http://github.com/puelocesar/Macuco/tree/master

Meu objetivo inicial foi atingido, que era de acessar o gmail de uma forma rápida e eficiente. Mas agora estou com planos maiores para o Macuco, talvez ele cresça e vire um pequeno browser, quem sabe?


Gmail App for Maemo

Como eu disse no primeiro post, eu tive várias idéias de aplicativos para o Maemo. Hoje eu vou falar de uma delas, que apesar de bem besta, para mim vai ser bem útil.

Pela primeira vez que usei o browser do maemo, fiquei surpreso em como ele renderiza as páginas como se eu estivesse no meu laptop. De fato, o N810 tem a mesma resolução do meu laptop (ok, sub-laptop) que é 800×480. Porém, ao começar usar mais, reparei como algumas páginas são pesadas. O Gmail particularmente é uma página bem pesada, o que faz sentido, afinal é um aplicativo não um site.

Como eu não gosto de nenhum cliente de email (eles nunca integram direito com o gmail), resolvi tentar fazer o meu.

Primeira tentativa: Criar do zero um cliente usando alguma API. Resultado, não existe API oficial para o gmail, até existem algumas gambiarras como o libgmail (em python), porém se o google mudar a forma como são feitas as requisições http do gmail a biblioteca já era, e também após alguns testes, o libgmail estava fechando sozinho quando encontrava acentos. Acabei deixando de lado.

Foi aí que eu lembrei de como a interface do gmail para iPhone/Android é legal, e resolvi aproveitar do que já existe e é oficial.

A primeira etapa, foi enganar o gmail para ele achar que tenho um iPhone. Isso foi razoavelmente fácil, é só fazer seu navegador se identificar com a seguinte UserAgent string:

Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_1 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7C97d Safari/528.1

No QtWebKit foi bem fácil até, é só reimplementar o método userAgentForUrl do QWebPage para retornar essa string bonitona aí em cima.

A segunda parte é mais difícil, emular a rolagem cinética do Android e do iPhone. Bom, na verdade essa parte foi bem fácil, já que o desenvolvedor Ariya da QtSoftware demostrou em seu blog o flickcharm, uma classe Qt que simplesmente instala a rolagem cinética no meu QWebView. Piece of cake.

Agora é a vez de compilar para o Maemo. Perdi meia hora lendo a documentação do Scratchbox e do Maemo SDK, mas descobri que é muito fácil instalá-los no Ubuntu, basicamente é só rodar os scripts encontrados em http://maemo.org/development/sdks/maemo_4-1-2_diablo e está tudo pronto, maravilha!

Instalar o Qt para compilar para Maemo foi bem fácil também, basicamente é só adicionar algumas URLs no source.list e instalar as bibliotecas do Qt com apt-get, assim como você faria no Ubuntu. (http://wiki.forum.nokia.com/index.php/Getting_started_with_Qt_for_maemo)

Tudo instalado, portar meu app para o maemo foi a coisa mais fácil do mundo, é só setar o target do Scratchbox para DIABLO_ARMEL e rodar o famoso qmake && make. Tudo pronto, foi só enviar o binário para o N810 e rodar:

Foto do Gmail App for Maemo

Foto do Gmail App for Maemo

Também fiz um vídeo para demonstrar a rolagem cinética:

O que ainda falta fazer: Empacotar, publicar o código e enviar para o Maemo Extras. Porém ainda tem alguns detalhes que eu ainda tenho que acertar no código antes disso, como por exemplo, descobrir porque o botão de fullscreen não funciona desse jeito que eu fiz, e tentar arrumar um problema do flickcharm que no Maemo ele precisa de dois cliques para ativar um link, porém no computador não.

Por enquanto é isso, obrigado por lerem até aqui, e mandem sugestões por favor.


Olá mundo!

Olá internet! Este é o primeiro post do meu novo blog de desenvolvimento. Já fazem alguns anos que eu venho pensando em fazer um blog, mas nunca o fiz,  já que os fotologs, jotelogs e twitters da vida sempre foram o suficiente para a minha pequena necessidade comunicação com o mundo.

Porém recentemente eu fui o vencedor de um desafio de desenvolvimento em Qt, e fui premiado, entre outras coisas com um Nokia N810, o que me torna um sério candidato a desenvolvedor de aplicativos para os NIT (Nokia Internet Tablet). Bom, pelo menos acho que foi essa a intenção do pessoal da Nokia me dando esse brinquedo nerd tão legal!

A moral é que eu acho que eles estavam certos, porque este pequeno aparelho é muito divertido de hackear, e eu já tenho várias idéias para novos aplicativos, então resolvi seguir a idéia do Francisco Alecrim, um desenvolvedor lá do INdT que conheci no FISL 10, e criar um blog para compartilhar com o mundo minhas idéias e meus aplicativos.

ps: não pude deixar de comentar, esse painel do wordpress é fantástico, @ancara, vamos roubar umas idéias dele e colocar nos nossos layouts hein



Seguir

Obtenha todo post novo entregue na sua caixa de entrada.