Um Manifesto!

...

  • Increase font size
  • Default font size
  • Decrease font size

Simples Ideias evolui para IdeasWall.org!

E-mail Print PDF

Como disse em um texto anterior, acho que tecnologia se aprende fazendo, como eu queria aprender e testar algumas coisas, surgiu o Simples Ideias. Na época, em janeiro, queria colocar em prática o máximo que aprendi sobre Restful, JQuery e Spaghetti,  e o Simples Ideias foi uma boa experiência.

Mas agora eu queria mais, então primeiro com o intuito de internacionalizar o aplicativo, surgiu o IdeasWall.org, que é a evolução do simples ideias, mas em inglês e com novas tecnologias. 

O básico continua o mesmo serviço, de guardar Idéias em Tags e acessar em qualquer lugar. Mas só isso que continua o mesmo.

Eu ia reescrever o serviço em outra linguagem sem ser PHP, como Clojure, mas essa mudança iria demorar muito então resolvi por reescrever, mas em PHP mesmo, mas sem usar o Spaghetti* por motivos que vou explicar mais a frente. Como o serviço é simples foi rápido reescreve-lo e graças aos testes em CURL, estava tudo funcionando. Vamos as interfaces:

Mobile. (J2ME)

O principal objetivo do app, desde antes, era acessar em qualquer lugar. Então a primeira nova interface a ficar pronta foi a para celular. Feita em J2ME de forma extremamente simples aqui pus em prática o estudo desta tecnologia.

As telas são simples e com controles rápido, todos os algoritmos foram reduzidos para caber nos aparelhos mais limitados, e o acesso a web é feito apenas quando necessário e com chamadas o reduzidas.

Obviamente também não oferece muitos recursos e não haverá muitos updates, exceto a opção de trabalhar offline e sincronizar por demanda no futuro.

Web. (JQuery)

A versão web, escrita em JQuery, foi a cópia da antiga interface do serviço, apenas adaptando as mudanças no webservice. É a primeira interface rica, e foi a ultima a ficar pronta, pois o JavaScript esta um lixo, shame on me.

Apesar disso é talvez a melhor opção de acesso, oferece todos os recursos implementados no serviço com um desempenho muito bom, além de esta a um link de distância.

Nela usei os recursos de Arrastar nós, Edição sem sair da página, Abas e muita requisição assíncrona com Json. Funciona no Opera, no Firefox, no Chrome e no IE 7, não funciona no IE6. No IE7 até que foi fácil, neste app eu não ligo para o IE6 mesmo. Não pude testar no Safari, mas aposto que não funciona.

Desktop. (JavaFX) 

Sem dúvida, o principal motivo do novo aplicativo. Estou muito empolgado com  a tecnologia do JavaFx e resolvi fazer um app para o JavaFx Challenge,  como não tive muito criatividade em pensar em algo novo, resolvi refazer o app de idéias. Como ia para o challenge ia ter que passar a Inglês e padronizar mais o serviço, então refiz logo tudo.

JavaFx é muito bom de trabalhar, com sua sintaxe declarativa e similaridades com programação funcional(um pouco longe, mas...) e ainda assim acesso a todo poder dos pacotes do Java. Essa foi o primeiro do novo serviço a ser implementado, logo após reescrever o PHP pela primeira vez. 

Essa é com certeza o que mais me dediquei, a interface esta tão trabalhada quanto aguentei, usei os belos icones do KDE, Oxygen e Crystal SVG, para me ajudar, e tentei deixar a interface o mais funcional possível.

Graças ao JavaFx o app funciona nos navegadores(Qualquer) como applet, ou pode ser lançado separado com o WebStart, além de poder arrasta-lo para área de trabalho para deixar instalado localmente.

Infelizmente ainda existem problemas, o  tempo para carregar o applet ainda acho muito demorado, mas a versão Webstart e local não sofrem disso, a API ainda tem poucas coisas mas de fácil extensão, e esbarrei num bug sinistro nos HttpRequest que paravam de funcionar. 

O Runtime é razoavelmente rápido até, e a experiência é boa, com  resposta rápida da interface o feedback é bom. Com as otimização corretas no código é fácil eliminar os gargalos. E em todo lugar que testei funcionou igual.

Webservice. (PHP e GAE) 

Como disse no começo reescrevi o webservice por que o queria em inglês e mais padronizado. Como o foco inicial era o JavaFx a primeira reescrita em PHP foi rápida, usei o RestServer e um classe de Sql qualquer, e em meio-dia estava pronta para testar o Javafx e mais tarde baixaria o Framework novamente e melhoraria o código.

No decorrer do desenvolvimento porém resolvi aproveitar a oportunidade para testar o Google App Engine, que tinha lançado o ambiente Java e já havia resultados usando o PHP através do Quercus. Quando o JavaFx já estava quase pronto, me cadastrei no GAE e registrei o domínio. 

Enquanto esperava entrar no GAE, instalei o Quercus para começar a portar o serviço, deu um bom trabalho mas funcionou. Aproveitei e comecei a adaptar logo a interface Web. Ai o tempo  estava esgotando, já que meu prazo é o JavaFx challenge.

Quando resolvi finalmente passar ao GAE tive ainda de configurar tudo, e a parte que mais me atrapalhou, mudar o esquema de banco de dados. Quer dizer, no GAE não temos um banco de dados comum, disso eu sabia, mas o que eu não tinha percebido é que não poderia usar um externo também!

Bom, tive que aprender JDO, fazer a persistência o mais simples possível em Java adaptar todo o PHP para usar o novo esquema, "wrapping" toda a alteração em uma classe de conexão em PHP.  

Enfim, estou cansado e resolvi deixar o web service como esta, já que ainda havia o bug no JavaFx, a página a escrever e testar tudo no Windows. Mas, finalmente, desde de o começo de abril com esse projeto, esta tudo pronto! Viva viva.

E agora?(futuro)

Pronto esta, mas ainda tem muito o que acrescentar:

  • Vou reescrever o serviço com certeza, mas ainda não sei se em PHP.
  • Um interface(ou adaptar a atual) capaz de ficar na bandeja.
  • Possibilidade de usar offline com sincronismo por demanda, em todas as versões.
  • IPhone?
  • Ambiente compartilhado?
  • Integração com o Google Calendar e E-mail?
  • Notas com data para termino ou para acontecer.

Fim. 

Espero que não tenha muito erro de português, não revisei o texto e estou com fome ;) 

Write comment
Your Contact Details:
 
Comment:
Security Please input the anti-spam code that you can read in the image.

!joomlacomment 4.0 Copyright (C) 2009 Compojoom.com . All rights reserved."

Last Updated on Thursday, 14 May 2009 15:40