DotNet4

LWUIT 1.2 lançada..

Boa noite..

Graças ao Carlos Fernando Gonçalves, do Java Noroeste, fiquei sabendo que o LWUIT ganhou sua nova versão 1.2.

Segundo o blog Shai’s Java & LWUIT Blog, as novidades desta versão são:

* New Styling concept - first announced here, this new feature revolutionizes the way LWUIT treats styles. Rather than have a single style object per component we can have 2 or more styles and the component can replace them in runtime based on state (this is very similar to CSS e.g. hover selector).
All components now have a selected/unselected style to represent focus, this essentially deprecates fg/bgSelection attributes instead allowing you to customize every style attribute for selection state (e.g. bgImage, transparency, border etc.).
* New LWUIT Designer (formerly Resource Editor) - I’ve spent allot of time working on this particular feature, one of the coolest things is that if you have Java 6 installed you will see an orange button here & you can just click it to launch the LWUIT Designer using Java Web Start.
The LWUIT designer supports the new styles concept allowing your designer far greater power in determining the theme for LWUIT applications. We also updated the resource file format (more on that later) which allows us to export the resource file into an Ant task structure (frequently requested feature that was previously impossible).
We also offer lots of great usability features such as Copy & Paste for theme entries, simpler image border editing, easier to use preview etc.
* Support for setUIID - this was technically impossible in previous releases of LWUIT but newer changes allowed Chen to implement this revolutionary feature. You can now easily make TextArea or button have a label style rather than start manipulating borders, this works better with the theming support as well.
* Background Painter Features - Style now includes more elaborate image scaling, tiling, centering as well as gradient backgrounds (Radial, Linear etc.). These are supported by the LWUIT designer and by the standard LWUIT background painter, allowing a designer more power without code changes.
This also allows reducing resource sizes since no images are required for some very elaborate themes! E.g. the theme created here is 7kb with the bitmap font and 622 BYTES without it!
* Scrolling in LWUIT with components greater than screen size has always been a problem, this is now fixed in with a rather complex recursive algorithm. This is still not the non-focus based scrolling we would expect in the future but it does simplify some common use cases.
* SVGImage is now deprecated, instead we can integrate SVG’s directly into LWUIT via the SVGImplementionFactory by calling SVGImplementionFactory.init() before the first Display.init() call.
This would allow Image.createSVG to “just work” on devices with JSR 226 support. Since the SVG related code is entirely within the SVGImplementation it wouldn’t appear in versions of LWUIT that don’t include the SVGImplementionFactory.
We intend to offer full SVG support in the LWUIT Designer soon, this will also allow fallback images so devices without SVG support will see an “auto generated” PNG file.
* Fonts have been rewritten to include more information in the resource file and allow us to load a font by name. This will allow truetype fonts when supported by the native platform e.g. in MIDP 3 or JSR 287.
* The Ant task used to create theme now uses the same code base as the LWUIT designer and follows a somewhat modified syntax. I’ll try to blog about this more in the future, the advantage is that we would be able to track changes more easily to both.
This allowed us to find quite a few bugs in both tools so its a great feature at that.
* New Calendar component is redesigned to use component/container hierarchy rather than custom painting. This solved allow of issues we had with the calendar such as proper touch phone support.
* The LWUIT distribution includes a PDF with a specification of the resource file format used by the LWUIT Designer/ant task.
This is an important step in formalizing the file for future versions and for corporate uses that might need such information. We are considering the option of providing a desktop based resource file generation API, I will hopefully post about this in the future soliciting feedback.

Besides the above LWUIT looks & feels better and faster than ever with every version, we shrunk code size in some use cases and try to provide more power to developers. The full list of changes is too big to mention e.g. one of the last things to make it into the release was the often requested “minimize” feature…

Confesso que nem testei ainda… se alguém já fez isso, pode dizer oque achou nos comentários.. :)

Att.
Ping

Facilitando a comunciação HTTP no Java ME

Boa tarde..

Esse post é especialmente para quem trabalha com a plataforma Java ME. Bem, quando criamos um aplicativo Java ME que precisa se conectar a internet, geralmente através do protocolo HTTP, precisamos gerenciar a Thread que tratará deste protocolo, cuidar dos dados que chegarão, dentre outras coisas. Porém, por acaso, descobri algumas linhas de códigos que podem facilitar nossa vida, e muito.

O post “Comunicação paralela com servidor em aplicações J2ME com HttpConnection usando componente reutilizável“, do blog DevMobile, fala sobre duas classes utilitárias que permitem o acesso a um servidor atravpes de HttpConnection em apenas uma linha de código. Texto retirado do blog: Estarei apresentando neste artigo uma das melhores práticas para fazer a comunicação com o servidor usando HttpConnection em aplicações móveis J2ME, iniciando a conexão com apenas uma linha de código. Ensinarei a criar uma classe reutilizável responsável por toda a comunicação com o servidor, deixando sua aplicação mais lógica, enxuta e melhor estruturada. Você poderá inclusive disparar várias conexões paralelas, e ainda assim, ao receber os dados, terá o controle de qual conexão se trata. Poderá facilmente cancelar a requisição, caso queira. Se aplicar as informações deste artigo em seus projetos, você passará a se preocupar apenas com as regras de negócio, apenas trabalhará com a informação em si, despreocupando-se com quaisquer detalhes quanto à comunicação com o servidor.

Eu baixei as duas classes e já usei inclusive em um trabalho que tive que entregar ontem a noite. Fiquei impressionado com a velocidade. Infelizente a classe nao possui uma barra de progresso, mas, o código é aberto e o desenvolvedor pode implementar isso.

Parabéns para o Nelson Pereira Junior que teve essa idéia.. As suas duas classes facilitarão muito a parte de acesso web do meu projeto..

Att.
Ping

Nova Release do Java ME SDK 3.0!

Boa tarde..

Hoje recebi uma ótima notícia.. mas muito boa mesmo.. o site Mobideia publicou o post sobre o novo Java ME SDK 3.0, acabei baixando e testando ele, a ferramenta contém muitas novidades muito legais.. algumas delas são:

* Integração com emuladores de terceiros, bem como, de dispositivos com Windows Mobile;
* Simplificação no processo de deploy em dispositivos reais;
* Integração do CDLC/MIDP, CDC/FP/PBP/AGUI e BD-J em um único SDK, não sendo mais necessário o download e instalação de pacotes separados;
* Uma nova máquina virtual HotSpot CLDC, em substituição à antiga KVM;
* MSA 1.1 otimizado e com extensões;
* Suporte a profiling;
* Suporte a BD-J;
* Novo ambiente de desenvolvimento baseado na plataforma Netbeans;
* Integração com Lightweight UI Toolkit (LWUIT);
* Pesquisa por especificações técnicas de dispositivos integrado no SDK.

Na minha opinião, os novas features mais importantes foram destacadas em negrito na listagem acima, porém, quero destacar muittoo duas delas: suporte a BD-J (você pode programar para player blue-ray) e suporte a CDC (quem já teve que programar CDC até hoje sabe a complicação)..

Não vou me estender muito no texto porque no Mobipedia tem mais informações e também, na fonte principal, o JavaMovel.

Outra pequena observação, eu tentei criar um projeto para BlueRay, porém, ele dá um erro quando tenta emular o programa no ArcSoft TotalMedia Theatre.. mas não fui atrás desse erro para resolver.. digamos que estou com outras pendências..

Bem, agora temos mais poder nas mãos.. :)..

Att.
Ping

Fiquei feliz e depois triste.. :(

Boa noite..

Li uma notícia que me deixou extremamente feliz, foi no blog Mobideia, em um post chamado “Lançado um Add-on Mobile Sensor API para Nokia 5800 Xpress“. Como já foi discutido aqui no Mobilidade é Tudo, a Mobile Sensor é uma especificação da Sun para que dispositivos Java ME possam capturam dados de sensores, dos mais diversos tipos, deste sensores conhecidos, como acelerômetro, até outro sinistros, dependendo da implementação do fabricante. Sendo assim, fiquei doido quando li “acabei de descobrir que no site do Fórum da Nokia foi lançado recentemente um pacote de instalação para o Mobile Sensor API em aparelhos Symbian 5nd Ed. para desenvolvimento de aplicativos em Java”, porém, minha felicidade logo acabou quando reli a parte Symbian 5nd Ed., o único Nokia que tenho aqui é uma versão inferior. Porém, de qualquer maneira, é uma bela iniciativa da Nokia e uma boa ajuda para disseminar esta JSR…

Att.
Ping

Programar para Blu-ray com Java ME..

Boa tarde..

Estava procurando uma solução para um problema com o LWUIT quando me deparei com um texto bem interessante:

All Java ME Goodies Consolidated into One SDK: The recently released early access edition of the new Java ME SDK (version 3.0) unites Java ME developer tools for CLDC, CDC, Blu-ray Disc Java, and LWUIT into a single SDK. Find out how it works. Eu já havia comentado sobre a nova versão do SDK da Sun para Java ME a um tempo atrás aqui no Mobilidade é Tudo, mas depois de ver este texto ir direto para sua última página, “BD-J Development”, procurei algumas informações a mais sobre este plataforma BD-J.

Primeiro, fui saber um pouquinho mais sobre os discos Blu-Ray na Wikipedia, segundo o site, Blu-ray, também conhecido como BD (de Blu-ray Disc) é um formato de disco óptico da nova geração de 12 cm de diâmetro (igual ao CD e ao DVD) para vídeo de alta definição e armazenamento de dados de alta densidade. É o sucessor do DVD e capaz de armazenar filmes até 1080p Full HD de até 4 horas sem perdas. Requer obviamente uma TV de alta definição (Plasma ou LCD) para exibir todo seu potencial e justificar a troca do DVD. Sua capacidade varia de 25 (camada simples) a 50 (camada dupla) Gigabytes. O disco Blu-Ray faz uso de um laser de cor azul-violeta, cujo comprimento de onda é 405 nanometros, permitindo gravar mais informação num disco do mesmo tamanho usado por tecnologias anteriores (o DVD usa um laser de cor vermelha de 650 nanometros).

Porém, neste mesmo link oque me chamou a atenção foi o parágrafo: Na feira JavaOne de 2005, foi anunciado que o software ambiente multi-plataforma Java da Sun Microsystems seria incluído em todos os “tocadores” Blu-ray como uma parte obrigatória do padrão. Java é usada para aplicar menus interativos em discos Blu-ray, em oposição ao método usado em DVD de vídeo, que utiliza segmentos MPEG pré prestados e imagens de legenda selecionáveis, que é consideravelmente mais primitivo e menos perfeito. James Gosling, criador do Java, na conferência, sugeriu que a inclusão de uma máquina virtual Java bem como conectividade de rede em alguns dispositivos BD irá permitir atualizações para os discos Blu-ray através da Internet, acrescentando conteúdos, tais como idiomas de legenda adicionais e recursos promocionais que não estão incluídos no disco no momento (Atualmente os tocadores de BD de nova geração vem com esta funcionalidade, são chamados de aparelhos blu-ray 2.0, ou segunda geração, onde dados referentes aos filmes em execução são baixados por uma porta ethernet do player). Esta versão Java é chamada de BD-J e é um subconjunto do padrão Globally Executable MHP (GEM). GEM é a versão mundial do padrão Multimedia Home Platform.

Já estava doidinho porque, já imaginaram que legal seria programar para discos Blu-Ray.. Pra finalizar com cheva de encontrei o site “Blu-ray Application Development using Java ME“. Fantástico, com muita informação.

Fiquei com muita vontade de ter um aparelho Blu-Ray só para fazer uns testes malucos :)..

Att.
Ping

RIM abre API de e-mail do BlackBerry

Boa tarde..

Vejam que notícia interessante foi publicada no IDGNOW: “RIM abre API de e-mail do BlackBerry“.

Segundo a fonte, a Research in Motion divulgou a API da sua tecnologia push para que desenvolvedores criem aplicativos usando uma das funções mais populares do BlackBerry. A partir desta segunda-feira (04/05), membros do programa BlackBerry Alliance poderão usar a API para criar novas funcionalidades baseadas em Java para o e-mail móvel do smartphone.

Parece que a RIM leu meus pensamentos, veja: “A razão pela qual é tão importante ganhar a atenção de desenvolvedores é que a disputa entre as plataformas não deverá se manter tão fragmentada como está agora por muito tempo. Segundo o analista, nos próximos 18 meses, os desenvolvedores terão que apostar em apenas uma plataforma para seus aplicativos, o que poderá dar uma ampla vantagem para a companhia escolhida”

Boa notícia para os desenvolvedores Java mobile..

Att.
Ping

Um pouco mais sobre a IMP

Boa tarde..

Há vários dias atrás eu escrevi sobre a IMP (Information Module Profile), a grosso modo é uma versão da MIDP (Mobile Information Device Profile) sem classes para interface gráfica. Porém, a IMP permite a utilização da Java ME em diversos tipos de equipamentos, fazendo com que dispositivos aparentemente sem muita inteligência, possam fazer qualquer coisa, ou seja, você pode dar voz a uma gama muito grande equipamento eletrônicos. Por exemplo, vocês devem saber oque é um Parquímetro, dispositivo usado para coletar dinheiro em troca do direito de estacionar um veículo em um local particular por tempo limitado. O leitor imaginou poder programar Java ME para este tipo de equipamento?

Estou falando disso porque encontrei sem querer diversos textos, excelentes, em diversas fontes. Tudo começou com o texto “Getting Started With the Information Module Profile“, que fala sobre a IMP e, também, sobre como utilizar o emulador Nokia 12 IMP 1.0 Concept Simulator. Posteriormente, encontrei um ótimo pdf da Nokia, chamado “NOKIA 12 GSM MODULE JAVATM IMLET PROGRAMMING GUIDE“.

Para acabar, leiam o texto “Tutorial :: Step by Step J2ME IMlet development primer for T-Box (N12i)“.

Enfim, com estes textos o leitor tera uma noção exata do poder da IMP..

Att.
Ping

Conexões com Java ME e BlackBerry

Boa madrugada..

Para quem está pensando em migrar seu aplicativo Java ME para aparelhos BlackBerry, é bom saber que esta plataforma tem algumas peculiaridades em relação a conectividade. Para facilitar a vida do querido leitor, encontrei uma apresentação da Research In Motion que explica os diferentes métodos de conetividade que tem disponíveis nos aparelhos BlackBerry.

Muito bom mesmo..

Att.
Ping

Portando aplicativos Java ME para Android…

Boa tarde..

Acabo de ler um post muito interessante, que pode colocar os desenvolvedores Java ME em vantagem na entrega de aplicativos Android. O blog Mobits publicou o texto “Aplicações JavaMe portadas para Android: é possível?“, falando sobre uma possível versão do j2mepolish que portará automaticamente aplicativos feitos em Java ME para a plataforma Android.

E, realmente, vejam a informações encontrada no site da j2mepolish:
J2ME Polish 2.1. supports Android porting: 2009-02-16: The upcoming version 2.1. will support automatic porting from J2ME to Android. Feel free to ask us for a preview.

Isso seria muito bom.. pessoalmente não precisaria estudar mais uma plataforma, hihihhi. A questão é como ficarão as interfaces, se a migração não ficar muito bom o jeito é refazer o aplicativo na mão mesmo.

Att.
Ping

Conteúdo i-mode com DoJa

Boa tarde..

Veja este post publicado no JMEBrasil: “Conteúdo i-mode com DoJa“.

Conheça este primo da MIDP.

Att.
Ping