Programando Java ME para BlackBerry – Parte 4 – Utilizando Componentes de UI

Olá..

Depois de alguns dias inativo, a sequência de artigos sobre a programação de aplicativos Java para aparelhos BlackBerry voltou com força total. O site JavaFree publicou o artigo “Programando Java ME para BlackBerry – Parte 4 – Utilizando Componentes de UI“. Teve apenas um erro (culpa minha), na verdade a nossa sequência de artigos tinha parado na parte 2, logo, este seria a parte 3.

O artigo publicado trata da utilização de componentes gráficos e customização dos menus do aplicativo.

Bons estudos..

E Obrigado ao JavaFree…

Att.
Ping

Boatos casam Microsoft e BlackBerry

Bom dia..



Acabo de ler no Portal Terra: “Microsoft pode virar a dona do BlackBerry“. A notícia deixa bem claro que são só boatos, porém, são boatos que parecem ter fundamentos. Veja parte do texto:


O rumor circula há dias: a Microsoft poderia comprar a Research in Motion (Rim) e virar ‘a dona’ do BlackBerry, o smartphone superpopular entre executivos.
Analistas apontam a queda considerável no valor das ações da canadense Rim como fator que a torna vulnerável a aquisições. A Microsoft, em sua luta com o Google e com a Apple, teria motivos - e condições financeiras, cabe salientar - para tentar uma oferta e, quem sabe, levar a companhia.

Programando Java ME para BlackBerry - Aviso

Bom dia..

Só um aviso.. a série de posts sobre BlackBerry foi interrompida por um breve momento, estou escrevendo um texto extenso, que não ficaria bem aqui no blog, então ele será publicado em breve no JavaFree. Lembrando, será sobre os componentes gráficos e coisas afins…

Aguardem…

Att.
Ping

Programando Java ME para BlackBerry - Parte 2 - Começando a codificar

Boa tarde..

Olá a todos, este é o terceiro post da série de artigos sobre programação Java ME para Bluetooth com JDE. Depois de dois post mais teóricos, hoje vamos entender a arquitetura básica de um código extremamente simples para aplicativo Java ME com BlackBerry API.

O primeiro passo é conhecer o gerenciador de aplicativos Java que entra em ação toda vez que o dispositivo BlackBerry é iniciado, ele é responsável por gerenciar todos os aplicativos Java presentes no aparelho, repassando os eventos do sistema operacional, trabalhando como um roteador central de eventos.

Pra começar a programação, você precisa de uma classe (continuamos trabalhando com Java), se sua aplicatição tiver interface gráfica, esta classe deve extender de net.rim.device.api.system.UiApplication, caso contrário, de net.rim.device.api.system.Application.

Uma das principais diferenças em relação ao Java ME - MIDP acontece em relação ao método de início do aplicativo. Na BlackBerry API você terá um método main? Hã, método main, estamos voltando ao Java SE? Isso mesmo, é metodo main, mas continuamos no mobile, com BlackBerry. O código abaixo mostra um método main padrão, onde criamos uma instância da classe e em seguida chamamos o método enterEventDispatcher(), que inicia uma thread para tratamento de eventos e processamento de mensagens, o método também inicia os métodos responsáveis pela rederização dos elementos gráficos do aplicativo (se tiver interface gráfica).



public static void main(String[] args) {
    HelloWorld theApp = new HelloWorld();
    theApp.enterEventDispatcher();
}

O construtor padrão de um aplicativo BackBerry faz uso do método pushScreen, passando como parâmetro a instância da classe que será mostrada ao iniciar o aplicativo. Veja o código abaixo:



public HelloWorld() {
    pushScreen(new HelloScreen());
}

A classe HelloScreen extende de MainScreen, uma das duas classes que herda de Screen, a outra é FullScreen. Extendendo de MainScreen, sua classe já terá uma interfaces KeyboardListener e TrackwheelListener, para tratamento de eventos de teclado e Trackwheel, respectivamente. A única regra para a classe que faz uso desta herança é sobrescrever ao menos dois métodos: o construtor e o método onClose(). Abaixo, segue o código de uma classe MainScreen padrão.



class HelloScreen extends MainScreen {

public HelloScreen() {

super(FullScreen.DEFAULT_MENU | FullScreen.DEFAULT_CLOSE);
    LabelField title = new LabelField(”BlackBerry App Ping”, LabelField.ELLIPSIS | LabelField.USE_ALL_WIDTH);
    setTitle(title);
}

public boolean onClose() {
    System.exit(0);
    return true;
}

}

No construtor passamos FullScreen.DEFAULT_MENU | FullScreen.DEFAULT_CLOSE, adiconando um menu padrão a nossa tela principal, com um MenuItem Close padrão também.

Bem, qualquer dúvida mande um comentário, ou ainda, se falei besteira também podem me corrigir pelos comentários. Não perca o próximo post sobre os componentes disponíveis na BlackBerry API.

Att.
Ping

Programando Java ME para BlackBerry - Parte 2 - Utilizando o JDE

Bom dia..

Hoje veremos a segunda parte da sequência de posts sobre a programação Java ME para BlackBerry, aprendendo a utlizar o ambiente de desenvolvimento BlackBerry Java Development Environment.

O link para download da ferramenta está aqui. A versão que tenho na minha máquina é a 4.2.1, porém, a JDE já está na versão 4.6.0. Na 4.2.1 é baixado um executável, depois de instalado um item no menu “Iniciar -> Todos os Programas -> Research in Motion -> BlackBerry 4.2.1 -> JDE”. Isso abre o nosso ambiente de programação, que é mostrado na figura abaixo.




Para utilização da ferramenta, irei descrever os passos citados no documento “BlackBerry J2ME JDE Development Guide Vol. 1“:

Cria uma workspace
1.Na BlackBerry IDE, no menu File, clique em New Workspace.
2.No campo Workspace name, coloque um nome sem a extensão.
3.No campo Create in this directory, escolha uma pasta.
4.Clique OK.

Crie um projeto
1.Na BlackBerry IDE, no menu Project, clique Create New Project.
2.No campo Project name, escreva um nome para o projeto sem extensões.
3.No campo Create project in this directory field, escolha a pasta que para criar o arquivo do projeto.
4.Clique OK.
5.In the workspace Files pane, double-click the project name to set the project properties.

Crie seus arquivos
1.Na Blackberry IDE, no menu File, clique New.
2.No campo file name, coloque o nome do arquivo com a extensão .java.
3.No campo Create source file in this directory, ou Location na versão 4.2.1, coloque o nome de uma pasta.
4.Clique OK.
5.No painel editor, clique com o botão direito do mouse no arquivo, e então clique na opção Insert into project.
6.Selecione um projeto.
7.Clique Ok.


Pronto, agora que o ambiente está configurado preparem-se para o próximo post, vamos começar a programar com a BlackBerry API.

Até lá..

Att.
Ping

Programando Java ME para BlackBerry - Parte 1

Boa tarde..

A partir de hoje estou começando uma série de Posts sobre programação Java ME para aparelhos BlackBerry utilizando as APIs da própria BlackBerry. No post de hoje vou falar de forma sucinta sobre as diferenças de programar somente com MIDP e utizando APIs BB, e também, introduzir a arqutetura utlizada no BlackBerry® Java Development Environment (JDE).

Pra início de conversa, segundo a documentação, “o BlackBerry® Java Development Environment (JDE) é projetado para fornecer um complete conjunto de APIs e ferramentas para você desenvolver aplicações Java™ que rodem em dispositivos BlackBerry”. Os dispositivos BlackBerry fornecem a configuração CLDC 1.1 e o perfil MIDP 2.0. O uso das APIs BlackBerry resulta em um melhor aproveitamento das capacidades do aparelho, porém, como consequência negativa, perdemos em portabilidade, isso porque, um programa feito pra BlackBerry com suas APIs só roda nestes aparelhos. Sendo assim, é necessário um bom estudo e levantamento de requisitos pra decidir utilzar o JDE. A imagem abaixo ilustra essa divisão



Apesar de acabar com a portabilidade, o uso da BlackBerry API fornece um leque maior de possiblidades para sua aplicação Java ME. A tabela abaixo mostra os pacotes da API:

Pacote Descrição
net.rim.blackberry.api.browser Permite que as aplicações invoquem o browser BlackBerry.
net.rim.blackberry.api.invoke Permite invocar aplicativos BlackBerry, como tarefas, mensagens, memórias e telefone.
net.rim.blackberry.api.mail Define as funcionalidades necessárias para converter os components do sistema interno de mensagens RIM em objetos portáveis que são compatíveis com a mail API. Ele pemrite envio, recebimento e acesso as mensagens.
net.rim.blackberry.api.mail.event Define eventos de mensagem e interfaces listener para gerenciar estes eventos.
net.rim.blackberry.api.menuitem Permite que as aplicações adicionem menu items customizados para as aplicações BlackBerry, como um address book, calendar e messages.
net.rim.blackberry.api.options Permite que as aplicações adicionem itens para as opções do dispositivo BlackBerry
net.rim.blackberry.api.pdap Permite que as aplicações interajam com aplicativos BlackBerry personal information management (PIM), incluindo address book, tasks e calendar.
net.rim.blackberry.api.phone Fornece acesso para características avançadas do aplicativo telefone.
net.rim.blackberry.api.phone.phonelogs Fornece acesso ao histórico de chamadas.
net.rim.device.api.bluetooth Pemrite que aplicativos BlackBerry se comuniquem com a tecnologia Bluetooth®.
net.rim.device.api.browser.field Permite que as aplicações mostrem browser fields na interface de usuário.
net.rim.device.api.browser.plugin Permite que as aplicações adicionem suporte para tipos MIME adicionais para o BlackBerry Browser.
net.rim.device.api.collection e net.rim.device.api.collection.util Define interfaces e classe utilitárias para gerenciamento de coleção de dados.
net.rim.device.api.compress Este pacote fornece utilitários para compressão de dados, no formato GZip e Zlib.
net.rim.device.api.i18n Fornece classes para suportam a localização de aplicativos nos dispositivos BlackBerry
net.rim.device.api.io Fornece uma biblioteca de classes BlackBerry para gerenciamento da entrada e saída de dados.
net.rim.device.api.io Fornece uma biblioteca de classes BlackBerry para gerenciamento da entrada e saída de dados.
net.rim.device.api.notification Fornece métodos para notificação de eventos e resposta no lado do sistema e eventos específicos de aplicativos.
net.rim.device.api.servicebook Pemrite que aplicativos adicionem, deletem e acessem entradas do service book entries.
net.rim.device.api.system Fornece acesso para funcionalidades no nível de sistemay, incluindo event listeners para o teclado e trackwheel, image creation and support, and application control.
net.rim.device.api.ui Fornece funcionalidades para controle da interface de usuário, incluindo screen e gerenciadores de layout de campos, field type support, and focus, scroll, and change listeners.
net.rim.device.api.ui.component This package provides a library of interface components for creating UI applications.
net.rim.device.api.ui.container This package provides a library of interface manager components for creating UI applications.
net.rim.device.api.ui.text This package provides classes to filter text strings containing various types of data, such as phone numbers or URLs.
net.rim.device.api.util This package provides utility methods and interfaces, including classes for arrays, hash tables, and string matching.

Acho que o leitor pode perceber o que pode fazer com a BlackBerry API que não poderia com a MIDP.

Um ponto crucial na programação para BlackBerry é a utilização de um arquivo .cod e não um arquivo .jar ou .jad, utilizado em outros equipamentos MIDP-Enabled. Nos próximos posts iremos tratar da geração deste arquivo. Existe também uma mudança significativa na pré-verififcação dos aplicativos. Segundo a documentação: O BlackBerry JDE usa um arquitetura VM separada, como descrito na especificação da CLDC. Para reduzir a quantidade de memória e poder de processamento que o dispositivo BlackBerry exige, parte do processo de carregamento de classes, chamado pré-verificação, ocorre antes do código Java ser carregado para o dispositivo BlackBerry. O BlackBerry IDE pré-verifica os fontes automaticamente antes de empacota-los dentro de um arquivo .cod. A VM realiza o resto da verificação durante o carregamento de classes em dispositivos BlackBerry.

Para persistência de objetos, a API fornece um modelo de persistência específico, permitindo uma nova forma de persistência além do RMS e seus frameworks. Quanto a conectividade, a BlackBerry JDE fornece as seguintes opções:
•stream connections (StreamConnection interface), including:
•HTTP connections (HttpConnection interface)
•HTTPS connections (HttpsConnection interface)
•socket connections (SocketConnection interface)
•secure socket connections (SecureConnection interface)
•serial connections to a communication port on the BlackBerry device (CommConnection interface)
•datagram connections (DatagramConnection interface), including:
•UDP datagram connections (UDPDatagramConnection interface)
Além do PushRegistry.

Duas características de grande ajuda para programadores são em relação as Collections e Vector´s. O pacote net.rim.device.api.collection inclui interfaces que definem vários tipos de coleções, como listas, sets, and maps, para tipos de dados específicos. Estas interfaces definem capacidades similares as interfaces List, Set, and Map na Java SE Collections Framework. Já a classe java.util.Vector implementa um vetor de objetos redimensionável. A BlackBerry JDE também fornece classes de conveniência, como um net.rim.device.api.util.IntVector e net.rim.device.api.util.ByteVector para trabalhar com arrays de tipos primitivos. Para grandes arrays de dados (mais que 10 ou 15 KB), a BlackBerry JDE fornece as classes BigVector, BigLongVector e BigIntVector no net.rim.device.api.collection.util. A BlackBerry também fornece a classe net.rim.device.api.collection.util.LongHashtableCollection, tornando possível o uso de HashTables em Java ME.

Quando aos listener´s disponíveis na API, o programador pode usufruir das seguintes opções: AlertListener, BluetoothSerialPortListener, GlobalEventListener, HolsterListener, IOPortListener, KeyListener, RealTimeClockListener, SerialPortListener, SystemListener, TrackwheelListener, USBPortListener. Pessoalmente fiquei admirado com as últimas três. O SystemListener, por exemplo, permite adicionar listener´s para eventos do sistema, como carga da bateria, status etc. Com ela, podemos ter um caso de uso assim: o aplicativo pode ser avisado quando a bateria apresentar menos de 10% de capacidade, avisando o usuário e salvando os estados mais importantes.

Outra classe muito útil é a Memory, que pode fornecer informações sobre espaço disponível para armazenamento e outros detalhes sobre a memória.

Acho que deu para perceber o poder que a BlackBerry JDE dá ao programador, claro, tem o ponto negativo de perda de portabilidade. Porém, se sua empresa trabalhará com sistemas direcionados exclusivamente a aparelhos BlackBerry´s, o uso desta API é uma boa pedida.

No próximo post vamos começar a trabalhar com o ambiente de desenvolvimento JDE. Até lá..

Att.
Ping

Boato de impacto..

Bom dia…

HSBC deve substituir 200 mil Blackberries por iPhones: O banco HSBC estaria considerando adotar o iPhone como o aparelho celular corporativo padrão, segundo informações do site Cnet. O banco tem cerca de 300 mil funcionários em todo o mundo, e a compra seria uma das maiores encomendas já realizadas do telefone da Apple.

Fonte: Terra.

Att.
Ping

Como acalmar um BlackBerry

Boa noite..

Depois do post “Como deixar um BlackBerry estressado…“, onde contei a minha experiência de como bugar um aparelho BlackBerry 8700, hoje apresento a vocês a solução. Primeiramente, gostaria de dizer que o meu êxito dependeu em muito do Blog do Malluco e do post “Versão 4.5.0.52 no Blackberry 8100“. Olhem o início do post: Depos do meu mais acessado post sobre a instalação do OS 4.5.0.37 no blackberry pearl 8100 eu resolvi atualizar novamente a versão do meu BB para a última versão que saiu esta semana, ainda em fase beta mais bem completa e compativel com o aparelho. Abaixo segue um passo-a-passo de como fazer a atualização do seu blackberry e suas melhorias. A leitura deste artigo pelos usuarios do bb 8100 faz bem

Como vocês perceberam o nosso caso aqui é outro, é um bug e não uma atualização, vamos aos procedimentos.
Primeiramente, encontrei este link, com o link para o download do BlackBerry 4.2.1.

Depois de baixar a versão BlackBerry 8700v Software-Version 4.2.1.101 dei um duplo-clique no .exe. A primeira tela que apareceu foi essa:



Depois de selecionar o idioma Português (Brasil) dei “Ok”. Recebi a tela abaixo.



Next.



Nesta tela selecionei Brasil como o país onde estou. Posteriormente recebi uma sequência com três contratos que aceitei.







Depois disso a instalaçãpo do software começa de verdade. Como tudo ocorreu bem recebi a tela abaixo. Marquei a única caixa de seleção e dei “Concluir”.



Posteriormente, recebi uma tela avisando que iria entrar no Assistente do Application Loader. Dei “Avançar”.



Na tela abaixo, eu precisava escolher qual Conexão estava sendo usado pelo BlackBerry. Devido ao bug do aparelho, que fazia com que ele ligasse e desligasse sozinho, marquei a caixa de seleção “Detectar porta de comunicação” e escolhi “Avançar”.



A próxima tela que recebi, permitia que eu escolhesse os programas que iriam ser gravados no aparelho. Marquei todos, exceto nos suportes a linguagens e inputs, que dei uma selecionada.



A tela a seguir me avisou que iria perder todos os dados. Como o aparelho não estava funcionando mesmo, e não tinha nada de importante armazenado apertei sem pensar no “Concluir”.



As próximas 3 telas mostram um pouco do andamento no processo ue se seguiu após o “Concluir” na tela anterior.







E a tela abaixo foi a última que recebi.



Depois disso o aparelho ficou um pouco no estado de espera (com aquela ampulheta), já achei que não tinha resolvido, porém, após alguns minutos, ele entrou no S.O normalmente e o problema estava resolvido.

Um comentário que fica aqui. Os aparelhos BlackBerry são famosos por sua segurança, muito usados no ambiente corporativo, mas, pesquisando na internet, descobri que o problema que aconteceu comigo não era único. Outros usuários tiveram o mesmo problema quando foram inserir um novo aplicativo, imagem, proteção de tela etc, ou seja, não é um problema corriqueiro. Para vocês não pensarem que estou mentindo, pequisem por “Blackberry inicializa ampulheta”, ou termos parecidos, no Google.

Bem, mas era isso..

Att.
Ping

BlackBerry com corpinho de iPhone

Bom dia..

Vejam este post: “bPhone: seu Blackberry com a cara do iPhone“.

Att.
Ping

A briga tá ficando feia..

Bom dia..

Matéria publicada na revista Exame de Junho de 2008: “O BlackBerry que se cuide: com novos modelos e um software atualizado, o celular da Apple entra na disputa pelo mercado corporativo.” Eu digo só uma coisa, a briga vai ser feia. O Blackberry é extremamente competente para o mercado corporativo, a prova disso é o número de aparelhos vendidos em todo o mundo no ano passado. 14 milhões. Outra prova disso foi o número de BlackBerry´s que vi no evento Mobile Payment e Mobile Banking que fui semana passada, impressionante. Porém, é inegável que o iPhone da Apple é a estrela do momento, e com sua nova versão pode sim brigar de frente com a estabilidade do BlackBerry no ramo corporativo. O jeito é esperar pra ver.

Att.
Ping