MIDP 3.0

Olá pessoal, acredito que todos já devem ter conhecimento da MIDP 3.0, para os que fogem desta regra, a JCP está desde Março de 2005 trabalhando na nova versão da MIDP (Mobile Information Device Profile). Para você que não sabe o que é MIDP, bem, aí aconselho ler algum tutorial sobre Java ME. Continuando… Eu tinha conhecimento sobre as algumas inovações da nova MIDP que foram destacadas pela mídia, como:

* Comunicação entre MIDlets;
* Bibliotecas compartilhadas, que são chamadas por alguns sites de LIBlets;
* Múltiplas MIDlets rodando na mesma máquina virtual;
* MIDlets rodando em background;
* Jogos mais ricos;
* RMS com questões de seguranças mais sofisticadas;
* MIDlets poderão desenhar em Display(s) secundários;
* Localização e Internacionalização
* IPv6
* Dentre outros

Porém, nesse final de semana, baixei um documento que tem na página da JSP para a MIDP 3.0 - clique aqui - e pode comprovar que além destas mudanças, a MIDP 3 também se destacará por algumas mudanças nos componentes e na criação de novos componentes. As novidades são muitas, seria legal aos que tiverem mais interesse, dar uma lidinha rápida (ou demorada para os mais interessados) no documento.. mas vou falar abaixo somente dos novos componentes que a MIDP 3 terá.. só para dar uma provocada na curiosidade de vocês:

AnimatedImage: Segundo a própria documentação, é um tipo especial da classe Image que trabalha de forma semelhante ao Sprite, ou seja, tem vários frames e o tamanho de tempo que cada um deverá ser mostrado. Até a MIDP 2.0, temos que fazer isso no código mesmo.

DisplayCapabilityException: Nova exceção que indica que o Display não tem capacidades suficientes para realizar as tarefas requisitadas.

DisplayListener: Classe que permite a uma MIDlet tratar das atualizações em um Display.

FileSelector: Como o próprio nome indica, é uma tela que permite a seleção de um arquivo do sistema de arquivos do dispositivos. Deve lembrar um pouco o FileChooser do Java SE .

FormLayoutPolicy: Pelo que entendi é um pequeno gerenciador de layout, algo tipo os famosos BoderLayout, FlowLayout etc, do Java SE, mas bem mais limitado é claro.

ItemLayoutHint: Usado em conjunto com o FormLayoutPolicy. Contém as sugestões de posicionamento da tela de um Item.

ItemLayoutInfo: Usado pelo FormLayoutPolicy para associar informações de layout a um Item.

ItemTraversalListener: Semelhante ao traverse() do CustomItem, ou seja, a MIDlet pode ser notificada quando um Item ganha ou perde o foco.

MenuCommand: Permite a criação de um menu de Command´s. Pelo que entendi, antes isso era feito automaticamente, agora podemos especificar por exemplo, qual o label do menu de Command´s.

TabbedPane: Este componente é o que mais me impressionou, ele é semelhante ao JTabbedPane do Swing, aquele que cria abas na parte inferior ou superior da tela, e cada uma destas abas representa uma tela independente. Muito show ter isso no Java ME.

TabListener: Ouvidor de eventos do TabbedPane.

Text: Usado para renderizar um texto dentro de alguma área. Porém, ele não é simplesmente jogado na tela, você pode especificar mínimos detalhes de onde e como o texto irá aparecer.

Bem, as novidades não param por aí, poderia ficar escrevendo a noite inteira, mas como estou com sono, e também não vou dar tudo de mão beijada pra vocês, hehehe. Bem pessoal, espero ter ajudado..

OBS: Este texto era para ser publicado no nosso novo espaço, o PENSO MÓVEL, mas não sei o que fiz lá e cancelei meu usuário :(

Att.
Ping

Novo espaço para a comunidade ligada na mobilidade!!

Olá pessoal, é com alegria que queria avisar a todos que já estamos com uma página no ar para um grupo de estudos e discussões sobre a Computação Móvel, o grupo se chama “Penso Móvel”, sugestivo não? A página do grupo é encontrada aqui

Agradeço a todos que abraçaram esta idéia que foi postada a somente dois dias nesse mesmo blog, parabéns ao victor por já ter criado a nossa página.. valeww pessoal..

Att.
Ping

Grupo de Estudos sobre Computação Móvel

Olá amigos, estava pensando nesta noite de quarta, enquanto tomo uma água gelada e tento me refrescar. Eu não conheço um grupo de estudos sobre a Computação Móvel, sobre suas diversas ramificações, sobre suas potencialidades, questões que ainda dificultam sua utilização, enfim, de seu modo mais básico até suas raízes mais profundas. Gostaria da opinião de vocês sobre a idéia de criar um grupo de estudos neste sentido, aguardo comentários.

Att.
Ping

Notícias do Terra

Olá blogueiros, não sei se todos aqui acompanham as notícias do Terra. Fazia tempo que não lia as notícias publicadas lá, mas fiquei um pouco impressionado com as principais notícias, todas tem algo haver com o motivo da crição deste blog. Acompanhem:

Steve Jobs anuncia telefone iPod ’sem teclas’. Aliás, me pareceu bem legal esse iPod.
Link:
aqui

Revolução da Web móvel chega em aparelhos de bolso.
Link: aqui

Samsung lança sistema de TV digital móvel.
Link: aqui

Aparelhos móveis são foco da CES 2007.
Link: aqui

Além de outras notícias que também envolvem Computação Móvel, se puderem visitem o siste e confiram as notícias.

Att.
Ping

Ótimo link!

Olá pessoal, hoje estou inspirado, hehe..

Bem, achei um link de um arquivo .doc muito legal na internet, que fala sobre a utilização do Java em sistemas embarcados, não só de MIDP e CLDC, mas de Java Card, JavaPhone e etc… só vou colar uma parte do sumário, para vocês se animarem e abrir o link:

  • PersonalJava™
  • Ferramentas de desenvolvimento Para PersonalJava
  • Otimizações da PersonalJava™
  • EmbeddedJava™
  • JavaCard™
  • JavaPhoneTM API
  • Java TVTM API
  • Java Embedded Server™
  • J2ME (Java 2 Micro Edition)

Que acharam? Eu achei muito legal.. bem, o link é este.
O texto é de e Wellington João da Silva e mesmo tento sido escrito em 2001 é bom.

Att.
Ping

Grandes empresas aderiando a mobilidade!

Olá, final de semana estive conversando com meu padrinho de batizado., ele é funcionário de uma grande empresa do ramo de cigarros, um dos cinco maiores grupos empresarias do Brasil. No meio da conversa ele me contou que estava um pouco preocupado, pois iriam abandonar o notebook, e usar um equipamento que ele achava que se chamava Palm Top (conhecido não é?). Pois é, olhem bem, é impressionante e animador, que uma empresa do tamanho desta irá trocar todo seu sistema de apoio a produção, com contato direto com os clientes, adotando uma solução móvel. Bem, eu confesso que fiquei feliz com a notícia, espero que vocês também.

Att.
Ping

Casas Inteligentes, Domótica e Futuro

Olá amigos.

Esta eu a navegar pela internet, em uma deliciosas e estimulante madrugada de sexta-feira, quando encontrei dois artigos, o primeiro entitulado como “Como Será sua Vida Digital em 2007″, acessível por aqui fala sobre as principais tendência de mercado para o futuro, o segundo artigo entitulado como “Casa Wi-Fi 100% conectada” fala sobre a utilização de comunicação sem fio em residências, acessível por aqui.
Com essas leituras começei a pensar, será que o caro leitor do meu blog sabe o que é domótica, casa inteligente, dentre outros termos do gênero. Então começei a pesquisar mais sobre isso para poder explicar um pouco a vocês. Casa inteligente se refere a moradias que possam tomar decisões sozinhas, utilizando da união de eletrônica e informática para fornecer capacidades inteligentes. O termo domótica refere-se a tecnologias que possam gerir todos os recursos de uma casa, o leitor percebeu que os dois termos (Casa inteligente e domótica) são quase sinônimos.

Os cenários com a utilização destas premissas são fantáticos, coisa de Matrix mesmo. Imaginem você entrar na sua casa, a comida já estar pronta porque você mandou uma mensagem SMS de seu celular, ao entrar na sua sala, o ambiente reconhece seu estado de humor e acende a luz mais fraca ou mais forte, o ar-condicionado se configura automaticamente lendo a temperatura do seu corpo e a temperatura exterior. Você poderia desligar ou ligar seus aparelhos domésticos a quilômetros de distância da sua residência. Pessoas que precisam de cuidados especiais, devido a seu estado de saúde, poderiam ser monitorados pela sua própria casa, enfim, eu poderia ficar dois dias escrevendo aqui sobre estes cenários futuristas.

Bem, mas o leitor pensa, isso é coisa pra se pensar daqui a alguns anos, mas eu detesto contrair meu caro leitor, mas você está errado, leia este artigo de 2005, chamado “Exposição aposta na casa inteligente“, e esse evento não foi em Madrid, Roma ou algo assim, foi no Brasil mesmo. Além de inúmeros outros projetos espalhados pelo mundo. Além disso, eu percebo que isso não é algo assim tão futurista, pelas tecnologias atuais de comunicação sem fio, Bluetooth principalmente, além da capacidade de dispositivos móveis estarem em crescente melhoria.

E quanto ao futuro? Bem, acredito que cada pessoa tem sua opinião, mas a minha é uma só, a casa inteligente não é uma utopia, e quem sabe quando eu já for pai, posso ligar e desligar o ar-condicionado do quarto do meu filho, enquanto estiver viajando pra Flórida.. agora viajei um pouquinho.. mas a idéia vocês entenderam. Hehehehe

Pra quem quiser saber mais questões acerca deste assunto, pode visitar este site.

Att.
Ping

RFID + Java ME = ????

Olá caros leitores deste humilde blog. O post de hoje é sobre a utilização da tecnologia RFID com Java ME. Pra início de conversa, vocês sabem do que se trata RFID, bem, eu vou apenas falar o pouco que sei desta tecnologia impressionante, depois passo alguns links para os mais interessados. O RFID (Radio-Frequency IDentification), ou, Identificação por Rádio Frequência, tem uma analogia semelhante aos códigos de barras, porém, seu foco é direcionados a ambientes mais móveis, sem muita estruturação de funcionamento, como um ambiente hospitalar por exemplo. Como quase tudo na informática, seu berço foi a guerra, de lá pra cá seu aperfeiçoamento foi intermitente, passando de um simples sinal de rádio, para uma tag com várias informações, seu uso pode ser direcionado a vários ambientes, como o rastreamento de produtos de alto valor, onde cada item possuiria um chip RFID implantado, podendo ser facilmente localizado em questão de segundos, até mesmo para localização de pessoas. Bem, mas não vou falar muito para não falar besteira, mas para os interessados, achei este site (em português) que explica desde seu histórico, até seu funcionamento e problemas quanto a privacidade, por favor, clique aqui.

Bem, mas nesse ponto o leitor está se perguntando, porque diachos o ping colocou Java ME no título deste blog, pois bem, pesquisando na web, encontrei uma refrência a duas APIs que estão sendo avaliadas pelo JCP, que permitirão, que os desenvolvedores Java ME, acessem de forma simplificada dados de uma conexão com um RFID. As duas APIs são:

JSR 256 - Mobile Sensor API
JSR 257 - Contactless Communications API [RFID]

Para saber mais sobre ambas, clique aqui

Bem pessoal, era isso.. espero ter despertado a curiosidade em vocês, hehe..

Att.
Ping

Celular com memória igual a computadores?

É, parece que a idéia de ter telefones celulares com quantidade de memória igual aos computadores de mesa mais avançados está deixando de se tornar apenas um sonho. Cliquem aqui, e olhem esta matéria publicada no www.inovacaotecnologica.com.br, chamada de “Montagem 3-D coloca oito células de memória mais controlador em único chip“. Boa leitura.

Att.
Ping

Imagens mutáveis em Java ME, e uma dica legal!

A MIDP nos fornece dois meios de desenhar imagens em um aplicativo Java ME, através das imagens mutáveis e das imagens imutáveis, as imagens imutáveis são mais comuns, são criadas através do método drawImage() do classe Graphics, passando por parâmetro uma String indicando o path da imagem a ser desenhada. Dessa forma, a imagem é estática, não é possível fazer alterações na mesma. O exemplo abaixo mostra a forma de desenho de uma imagem imutável:

try
{
ig.drawImage(Image.createImage(”/imagem.png”), centerX, centerY, Graphics.HCENTER|Graphics.VCENTER);
}
catch (Exception e)
{
System.out.println(”Não achou a imagem”);
}

Já as imagens imutáveis são dinâmicas, isto é, o objeto Graphics é obtido diretamente de um objeto da classe Image, depois disso, pode-se usar todos os métodos de Graphics para desenhar as diretivas gráficas, como linhas, arcos, retângulos, dentre outros. Sendo transparente para o usuário, pois o desenho não é repassado diretamente para o display, somente quando a imagem mutável for desenhada através do método drawImage(), veja o exemplo abaixo:

Image i = Image.createImage(70, 70);

Graphics ig = i.getGraphics();
ig.fillRect(0, 0, 70, 70);

g.drawImage(ig, 0, 0, Graphics.LEFT|Graphics.TOP);

No exemplo acima, perceba que o objeto Graphics é obtido da própria imagem, que é construída com o método createImage(), porém, passamos o tamanho da imagem, e não seu path. A partir daí é nossa responsabilidade “montar” a imagem, semelhante ao que fazemos com uma tela construída através do Canvas. Veja o exemplo abaixo, é mais complexo.

protected void paint(Graphics g) {
g.setColor(255, 255, 255);
g.fillRect(0, 0, getWidth(), getHeight());

Image i = Image.createImage(100, 100);

Graphics ig = i.getGraphics();

ig.setColor(200, 0, 0);
ig.drawLine(0, 0, i.getWidth()-1, i.getHeight()-1);
ig.drawLine(i.getWidth()-1, 0, 0, i.getHeight()-1);

Font fonte = Font.getFont(Font.FACE_PROPORTIONAL, Font.STYLE_PLAIN, Font.SIZE_MEDIUM);
ig.setFont(fonte);

String texto = “Olá leitores”;
ig.drawString(texto, centerX - (f.stringWidth(text1)/2), 1, Graphics.LEFT|Graphics.TOP);

g.drawImage(i, 0, 0, Graphics.LEFT|Graphics.TOP);
}

O exemplo anterior mostra o método paint() inteiro de uma classe que usaria um Canvas e uma imagem mutável. Porém, o objetivo maior deste post, é sobre uma coisa que acontece com o Clipping de imagens mutáveis. Clipping nada mais é, do que você selecionar apenas uma parte para ser mostrada de uma imagem mutável, a região de corte é selecionada com o método setClip(int x, int y, int largura, int altura), onde passamos o ponto inicial e tamanho da região de clip, lembrando que este corte é feito em uma instância da classe Image. No exemplo anterior, apenas acrescentaríamos a linha a seguir, depois da criação do objeto ig.

ig.setClip(10, 10, 50, 50);

Porém, se esse método for colocado depois de todos os desenhos das diretivas gráficas, mas antes da imagem mutável ser desenhada, a região de clipping não aparece. Como eu não uso muito as imagens mutáveis, percebi isso somente no ano passado (2006), hehehe.

Bem, espero que tenha sido uma dica legal para vcs, além de passar um pouco sobre as imagens mutáveis e imutáveis da MIDP.

Att.
Ping