Como enviar uma aplicação nativa BlackBerry para o device usando o cabo USB?

blackberry-bold.jpgÉ muito prático, principalmente na hora do desenvolvimento, enviar suas aplicações nativas para o BlackBerry usando o cabo USB. Você precisará apenas do .COD final, aquele que é gerado na pasta do emulador BlackBerry.

Você precisará do BlackBerry Device Manager rodando. Normalmente ele aparece na área de notificação do windows (próximo ao relógio). Caso você não o tenha, instale-o. Você poderá baixá-lo no site www.blackberry.com. Se você instalou o BlackBerry Desktop Software, ele automaticamente instala o BlackBerry Device Manager.

Se certifique de que o cabo USB está conectado ao device e ao PC. Dê duplo clique no Device Manager, e aparecerão as portas COM. Deve aparecer também a porta “USB:PIN - Connected”. Caso não apareça, procure solucionar isso antes de continuar.

Eu sugiro criar uma pasta chamada OTA, dentro da pasta do seu projeto, e criar um arquivo .BAT com os três comandos MS-DOS, para que você não precise ficar digitando comandos sempre que quiser enviar a aplicação para o BlackBerry. O primeiro comando copia da pasta do simulador o último arquivo .COD gerado. O segundo comando apaga, ou desinstala, a aplicação antiga do device, caso ela exista. O terceiro comando envia para o device a sua aplicação .COD que rodou no emulador BlackBerry.

Ler a continuação desse artigo…

Como assinar midlets com certificados digitais e certificar suas aplicações JME?

motorola_verisign.jpgVou ensinar a assinar aplicações JME usando o NetBeans 6. Com uma aplicação certificada por algum órgão, como a VeriSign, sua aplicação pode ter acesso liberado à muitas funções do device, sem que o ele peça autorização ao usuário para executar tais funções. Por exemplo, se você inicia uma conexão à web por meio da sua aplicação JME, se a aplicação não é assinada, é perguntado ao usuário se ele deseja permitir que a aplicação se conecte à web. Se sua aplicação for assinada, o acesso é feito sem que o usuário autorize.

Primeiro você precisa adquirir o certificado. Depois que você já comprou o certificado da VeriSign, que tem validade de um ano, por exemplo, ela lhe enviará o certificado por e-mail. Será um e-mail como segue:

Título: VeriSign Java Object Signing (Class 3) Digital ID Order Confirmation
Mensagem:

Dear VeriSign Customer,

Congratulations! Verisign has issued your Java Object Signing (Class 3)

Digital ID.  VeriSign has digitally signed your

Digital ID which gives you assurance that your

Digital ID has not been damaged or changed in any way during its transmission to you.

Ler a continuação desse artigo…

Gráficos e Controles Personalizados para Windows Mobile

charbar1.jpgcontrols1.jpgPara quem deseja criar gráficos, e controles gráficos personalizados em aplicações Windows Mobile, poderá fazer uso da biblioteca que o colega Thiago Bighetti criou.

A biblioteca inclui:

  • Gráfico em barras
  • Botão com degrade
  • Painel com degrade
  • Caixa de texto para números inteiros
  • Caixa de texto para números com casas decimais
  • Teclado numérico para “linkar” com Caixas de texto

Esses controles são uma mão na roda, principalmente o controle de gráficos.

Quem for usar os controles, comentem abaixo no post.

Ler a continuação desse artigo…

Python for BlackBerry escrito em J2ME

Python for BlackBerry escrito em J2MEEstou escrevendo um interpretador Python para BlackBerry, para rodar aplicações Python nesses potentes smartphones. O objetivo é poder rodar aplicações Python for S60, da Nokia, também nos BlackBerry, bem como escrever aplicações mais facilmente nesses devices. O interpretador é um RIMlet, e está sendo escrito para rodar nativamente em BlackBerry, no formato .COD.

Não estou usando nenhum interpretador como base, apenas a própria especificação da linguagem, pois um interpretador para mobile deve ter arquitetura específica, devido a limitações de memória e processamento. Uso o interpretador no desktop para testar e inibir possíveis diferenças, analisando ambas as saídas.

Ainda estou implementando o núcleo da linguagem, como tipos de dados, if, loops, e alguns métodos básicos. Já consigo rodar alguns scripts básicos, como o abaixo.

w = 3

i = 1

resultado = 0

temp = 0

while i <= 1000000:

  resultado = w * i

  temp = i%100000

  if temp == 0:

    print resultado

  i = i + 1

print w

Ler a continuação desse artigo…

Como deixar uma imagem em tons de cinza em J2ME

n95pb.jpgMostrarei um código básico para deixar uma imagem em tons de cinza, ou grayscale.

O algoritmo para deixar uma imagem em tons de cinza é muito simples. Levando-se em conta que cada pixel de uma imagem possui 4 valores ARGB, representando o canal de transparência (A=Alpha), o canal de vermelho (R=Red), o canal de verde (G=Green), e o canal de azul (B=Blue), devemos alterar os canais RGB, mantendo o canal alpha inalterado.

Mas como calcular o tom de cinza de um pixel pelos canais RGB? Basta calcular a média aritmética dos 3 canais e usar esse valor como o novo valor de R, G e B.

Canal Cinza = ((R+G+B) / 3 )

Por exemplo, um pixel que tenha:

A=10, R=120, G=30, B=45

Calcularíamos o canal cinza assim: (120 + 30 + 45) /3 = 56.

Então montaríamos a nova cor do pixel repetindo o canal cinza nos canais RGB, ficando assim:

A=10, R=56, G=56, B=56

Fazendo isso com todos os pixels da imagem, deixando os valores RGB iguais, com o valor da médias dos 3 canais de cores, fará com que a imagem fique em tons de cinza, como mostra a imagem ao lado.

O código é bem simples. Ele trabalha em cima do array ARGB da imagem. Veja:

    public Image grayscaleImage(Image imgOriginal, int porcentagem) {

        //Guarda a largura e altura da imagem
        int largura = imgOriginal.getWidth();        
        int altura = imgOriginal.getHeight(); 


        //Cria o vetor RGB da imagem destino, com o mesmo tamanho da imagem origem

        int[] rgb = new int[largura * altura];

        //Preenche o vetor RGB com as cores dos pixels da imagem origem

        imgOriginal.getRGB(rgb, 0, largura, 0, 0, largura, altura);
        //Deixa a imagem em tons de cinza
        int gray;
        for (int i = 0; i < rgb.length; ++i) {
            gray = (((rgb[i] >> 16) & 0xff) + ((rgb[i] >> 8) & 0xff) + (rgb[i] & 0xff)) / 3;
            rgb[i] = (((rgb[i] >> 24) & 0xff) << 24) | (gray << 16) | (gray << 8) | gray;
        }
        //Cria a imagem final com base no vetor RBG com transparência alterada

return Image.createRGBImage(rgb, largura, altura, true);

    }

Ler a continuação desse artigo…

Como alterar a semi-transparência de uma imagem em J2ME

n95.jpgMostrarei um código básico para deixar uma imagem transparente, respeitando a transparência já existente na imagem. Por exemplo, se eu aplicasse 50% a mais de transparência numa imagem, e esta imagem já tivesse pixels semi-transparentes com 50% de transparência, estes pixels ficariam 75% transparentes, enquanto que os outros pixels que não tinham transparência ficariam 50% transparentes.

Veja as duas imagens ao lado. A imagem PNG-24 da motocicleta está com transparência de 70%. Ocorre que ela já possuía pixels semi-transparentes em sua extremidade, e quando aplicamos a transparência de 70%, mesmo estes pixels que já eram trasnparentes ficaram 70% mais transparentes do que já eram.

Procurei bastante na internet por um método para fazer isso, mas não encontrei. O mais perto que cheguei foi de um método que deixava a imagem semi-transparente, mas não respeitava os pixels que já eram semi-transparentes. Isso não poderia ser usado numa imagem PNG-24 com pixels semi-transparentes.

O código é bem simples. Ele trabalha em cima do array ARGB da imagem. Veja:

    public Image transparentImage(Image imgOriginal, int porcentagem) {

        //Guarda a largura e altura da imagem
        int largura = imgOriginal.getWidth();        
        int altura = imgOriginal.getHeight(); 


        //Cria o vetor RGB da imagem destino, com o mesmo tamanho da imagem origem

        int[] rgb = new int[largura * altura];

        //Preenche o vetor RGB com as cores dos pixels da imagem origem

        imgOriginal.getRGB(rgb, 0, largura, 0, 0, largura, altura);
        //Deixa a imagem transparente, respeitando a transparência já existente        
        for (int i = 0; i < rgb.length; i++)

            rgb[i] = (((porcentagem * ((rgb[i] & 0xFF000000) >>> 24))
                     / 100) * 0×1000000) + (rgb[i] & 0×00FFFFFF); 

        //Cria a imagem final com base no vetor RBG com transparência alterada

        return Image.createRGBImage(rgb, largura, altura, true);    
    }

Ler a continuação desse artigo…

Tutorial: Como criar e trabalhar com imagens em aplicações J2ME

app.jpgNeste artigo mostrarei como carregar e usar imagens em aplicações J2ME de dois modos, usando Canvas, interface gráfica de baixo nível, e usando interface gráfica de alto nível, no caso, Form, List, etc. A primeira tela será uma tela Splash em Canvas com a logo da aplicação, e depois de alguns segundos automaticamente será carregada a tela inicial da aplicação, um Form. Ensinarei também a onde colocar corretamente os arquivos de imagens, de modo que quando for criado o JAR as imagens fiquem dentro dele.

Sobre os tipos de Imagens

Podemos usar tipos diferentes de imagens em nossas aplicações J2ME, mas nem todos os celulares que aceitam vários tipos. Por exemplo, alguns celulares reconhecem JPG e PNG-24, mas outros não. No entanto, todos reconhecem o formato PNG-8. Portanto, se sua aplicação precisa rodar em muitos dispositivos diferentes, use PNG-8, que normalmente é o formato que deixa a imagem com o menor tamanho final, comparando-se com JPG e PNG-24.

Ler a continuação desse artigo…

Como obter dados de um XML e formatar as colunas de um DataGrid a partir de um DataTable para Windows Mobile

htc5.pngNesse tutorial criaremos um projeto que terá o objetivo de obter dados de um XML vindo de uma url, sendo que, nossa url será: href=”http://devmobile.blog.br/rss”.Faremos duas telas, para começarmos a entender como transitar de tela em tela em nossas aplicações Windows Mobile.
Teremos uma tela para obter os dados da url onde armazenaremos esses dados em um objeto e uma outra tela para mostrarmos os dados em um grid utilizando os dados do objeto.
Será mostrado como criar uma instância para se conectar a web e receber os dados da url, utilizaremos para isso as classes WebRequest e WebResponse do namespace System.Net e criaremos um objeto Stream do namespace System.IO onde será alocado o conjunto de bytes, o arquivo, vindo do objeto de conexão.

Criaremos um objeto DataSet (Dataset é um objeto pertencente ao ADO.Net, que tem como objetivo ser o repositório de dados deste objeto, possuindo tabelas, colunas, linhas, etc. O objeto dataset também tem recursos para manipulação dos dados nele contidos (inclusão, exclusão e alteração)) para armazenar os dados do stream e utilizamos o objeto DataSet no grid da segunda tela.
Iremos criar uma tabela com um DataTable . Criaremos 2 colunas da tabela e faremos uma estrutura de repetição na qual criará as linhas do DataTable de cada coluna.
Criaremos outro DataSet para receber a tabela (objeto DataTable) e mostraremos no grid.

Ler a continuação desse artigo…

Conheça o Android iFeed - Meu projeto que participa do Android Developer Challenge

00.jpgConheça o iFeed, o projeto que desenvolvi aqui na Abacomm e que está participando do Android Developer Challenge.

É um projeto simples, desenvolvido em 3 dias. Consiste em um leitor de RSS. Permite que você cadastre seus canais de feeds, lista os artigos de cada feed, exibe o resumo do artigo, e abre o navegador para exibir o conteúdo completo do artigo.

Pude tirar bastante proveito desenvolvendo essa aplicação, pois aprendi muito sobre a filosofia de aplicações Android, principalmente para aplicar essa filosofia no framework de aplicações J2ME que desenvolvo aqui na Abacomm e que todo dia cresce um pouco mais. Gastei muito tempo antes de iniciar o projeto estudando o framework, desenvolvendo outros protótipos, criando componentes de GUI, etc.

Em suma, gostei de desenvolver para Android.

Agora estou preparado para desenvolver qualquer projeto que vier, também ‘for Android’.

Logo estarei publicando artigos sobre Android aqui no blog.

Veja alguns screens da aplicação rodando no Android.

Ler a continuação desse artigo…

Comunicação paralela com servidor em aplicações J2ME com HttpConnection usando componente reutilizável

489.jpgEstarei 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.

No final do artigo você poderá baixar os arquivos do componente de conexão reutilizável, bem como uma aplicação de exemplo que mostra como usar o componente corretamente.

Ler a continuação desse artigo…

Conexões HTTP e Socket com BIS BES WAP Wi-Fi e TCP APN em aplicações BlackBerry

Explicarei nesse artigo como preparar sua aplicação para usar conexões com a Internet de forma funcional, decidindo se deve usar transporte por BES (BlackBerry Enterprise Server), BIS (BlackBerry Internet Server), WAP, conexão direta pelo device TCP (APN), ou Wi-fi.

A grande maioria dos desenvolvedores BlackBerry já passaram por esse problema. Inicialmente todos desenvolvedores pensam que basta criar uma conexão normalmente, e tudo estará resolvido. Até que começar a ter os erros “Invalid Tunnel” ou “Can’t Open Connection”, ou erros semelhantes. Esses erros ocorrem pois a conexão não foi configurada corretamente na aplicação, e ela está tentando usar uma conexão indisponível no device.

Nos outros celulares, quando fazemos uma conexão com a Internet em nossa aplicação, o próprio celular pergunta ao usuário qual conexão ele deseja usar, se WAP, ConnectFast, Wi-fi, etc. No BlackBerry não é assim, em cada conexão você precisa definir qual será o meio de transporte dos dados.
Ler a continuação desse artigo…

Configurar a plataforma de desenvolvimento BlackBerry JDE no NetBeans

Ensinarei neste tutorial como preparar seu computador para poder desenvolver aplicações nativas para BlackBerry, usando a JDE instegrada ao NetBeans. Conheça as diferenças entre aplicações MIDlet e RIMlet lendo este post escrito por mim:
Aplicações BlackBerry: RIMlet X MIDlet.

Para desenvolver para BlackBerry você precisará fazer download, instalação e configuração dos seguintes softwares. Salve todos os downloads numa única pasta, e ao terminar todos os downloads, dê continuidade ao tutorial.

Ler a continuação desse artigo…

Detalhes .NET Framework

10309-windows_mobile_new.jpgNos tutoriais do DevMobile, você notará que irei falar sobre o .NET Framework nas aplicações que iremos fazer. Sendo assim, pesquisei em alguns sites, como o site da Microsoft, afim de buscar informações sobre o .NET Framework.

Do ponto de vista dos programadores, o .NET Framework é o sistema operacional. É através dele que são invocadas todas as funções necessárias ao funcionamento dos programas, sob qualquer sistema operacional.

O.NET Framework é um componente do Microsoft Windows que se encontra disponível para os utilizadores do Windows através de vários canais de distribuição. Dentre estes canais de distribuição estão incluídos o Web site de actualizações da Microsoft e o centro de transferências da Microsoft.

Poderá ter várias versões do .NET Framework instaladas no computador. Cada versão do .NET Framework pode coexistir com outras versões no computador.

Ler a continuação desse artigo…

Capture telas de celulares Symbian usando Screencapture Free

Quando desenvolvemos uma aplicação móvel e precisamos criar uma página web apresentando a aplicação, mostrando suas diferentes telas, nada melhor do que capturar as telas rodando no próprio device.

Ler a continuação desse artigo…

Tutorial: Faça uma Calculadora em Flash Lite e ActionScript para rodar no Celular

Muitos celulares hoje já conseguem rodar aplicações em Flash, usando o plugin do Flash para dispositivos móveis, o FlashLite.

Ensinarei neste tutorial a desenvolver passo a passo uma aplicação em Flash Lite. A aplicação se trata de uma calculadora comum, para rodar no SmartPhone Nokia E61, com suporte ao Flash Lite 1.1, ou em qualquer outro SmartPhone com suporte a FlashLite. A aplica’c~ao ser’a exibida melhor se o celular tiver tela de resolução 320 x 240. O resultado final do tutorial pode ser visto na imagem abaixo. Esse tutorial é mais do que um simples Olá Mundo em Flash Lite. Você aprenderá a fazer uma aplicação completa, passo a passo.

Calculadora em Flash Lite para rodar no SmartPhone Nokia E61

Para executar nosso tutorial usaremos a ferramenta Adobe Flash CS3 Professional, que acompanha ferramenta para criação de aplicações para Flash Lite, com emuladores para muitos celulares. Se você não possui esse software, baixe uma verão trial no site da Adobe www.adobe.com.

Ler a continuação desse artigo…

Como desenvolver sua primeira aplicação Olá Mundo para Windows Mobile

Neste artigo ensinarei a desenvolver passo a passo uma aplicação simples, um Olá Mundo, para rodar em Windows Mobile.

Se você ainda não tem o ambiente de desenvolvimento Microsoft Visual Studio 2008 instalado e configurado em sua máquina, aprenda a instalar lendo esse post: Como instalar e configurar seu ambiente de desenvolvimento para desenvolver aplicações para Windows Mobile.

Abra o Visual Studio 2008 e vamos fazer nossa primeira aplicação Pocket PC Windows Mobile – Hello Word!

Ler a continuação desse artigo…

Como instalar e configurar seu ambiente de desenvolvimento para desenvolver aplicações para Windows Mobile

Este tutorial explica como instalar a versão mais nova IDE da Microsoft – Visual Studio 2008.

Caso tenha o DVD – VS2008 coloque em seu drive de DVD-ROM e espere inicializar a instalação, caso não tenha o software, clique aqui e faça o download da versão trial do Visual Studio 2008.

Ler a continuação desse artigo…

Excelente Evento: Rim BlackBerry - Seminário de Desenvolvimento

Os novos celulares BlackBerry

A Rim, empresa que fabrica os celulares BlackBerry, está querendo mesmo investir no Brasil. Nos dias 16 e 17 de janeiro de 2008, estive no BlackBerry Developer Seminar 2008 Event, em São Paulo, um seminário de 2 dias, totalmente custeado pela Rim, onde foram ministrados cursos e palestras sobre desenvolvimento na plataforma BlackBerry. Fui representando a Abacomm Brasil, empresa de mobilidade em que trabalho.

O evento foi excelente. Já de chegada, cada participante ganhou um presente: um álbum fotográfico digital, com display, para se colocar na estante.

No primeiro dia foram feitas várias palestras, fazendo a apresentação da plataforma BlackBerry. No segundo dia havia uma sala cheia de mesas e notebooks conectados à Internet, para então participarmos dos cursos práticos ministrados pelos técnicos da Rim.

Ler a continuação desse artigo…

Lista de Cursos: Desenvolvimento para Mobilidade. Indique um!

Para aqueles que desejam fazer curso sobre desenvolvimento de aplicações para dispositivos móveis, cursos de J2ME, FlashLite, BlackBerry, Symbian, Android, WindowsMobile, PocketPC, etc., estarei dedicando este artigo para listar os principais cursos do país, por tecnologia e região. Iniciarei apenas com os poucos cursos da minha região, mas espero que esta lista cresça mais. Se você deseja indicar um curso sobre mobilidade para aparecer na lista, deixe um comentário no final da página informando a URL que detalha o curso, a tecnologia do curso e a região, e depois de verificar a URL colocarei na lista. Não serão listadas empresas que não possuem uma página especificando o curso de mobilidade. Ler a continuação desse artigo…

DevMobile: Desenvolva aplicações para dispositivos móveis!

Estamos iniciando este blog com o objetivo de compartilhar conhecimento sobre desenvolvimento de aplicações para dispositivos móveis, como telefones celulares, smartphones e computadores de mão. Entre as tecnologias que pretendemos abordar nos artigos de desenvolvimento podemos citar J2ME, BlackBerry, Symbian, Windows Mobile, Android, FlashLite e PocketPC, bem como assuntos relacionados à novas tecnologias móveis.

Ler a continuação desse artigo…

blogarama.com Globe of Blogs EatonWeb Blog Directory