img ilustrativa

Desenvolver aplicativos para dispositivos móveis utilizando Java ME é bem simples. Primeiro você cria seu MIDlet, roda pelo Wireless Toolkit e se ele funcionar do modo esperado tudo bem, não é? Tudo isso muda até o dia em que você decide instalar seu MIDlet em um celular, ou melhor, dois celulares de modelos e fabricantes diferentes. Aí você percebe pequenas (ou grandes) diferenças na forma de navegação e como o MIDlet se comporta, às vezes fazendo algo que com certeza não era esperado. Mas como isso é possível se você testou ele antes utilizando os emuladores do Wireless Toolkit? A resposta é bem simples: A plataforma Java ME é apenas uma especificação, onde quem define realmente a maneira como o MIDlets irão se comportar dentro dos dispositivos são seus fabricantes (Motorola, SonyEriccson, Nokia, etc).

Então vem a pergunta: “Mas como diabos eu vou saber se meu MIDlet irá se comportar da forma adequada no meu celular ou no dos meus clientes?”. Existem duas formas, uma fácil e outra difícil:

  • Difícil: Testar em cada dispositivo e fazer os ajustes, testar novamente…
  • Fácil: Testar seus MIDlets nos SDKs que os fabricantes disponibilizam e que se aproximam muito da forma como os celulares reais irão tratar seus MIDlets.

Qual você prefere? Se a resposta foi a maneira fácil, acompanhe os passos abaixo e aprenda a utilizar o SDK da Motorola dentro do próprio Eclipse. Neste post estou levando em consideração que você já tem os plugins Java ME e/ou Pulsar instalados.

Instalando o MOTODEV SDK

Abra o Eclipse na perspectiva Java ME. Na parte de baixo (ver figura 1) clique na aba Mobile SDKs. Lá você irá encontrar uma série de SDKs dos grandes fabricantes como Motorola, Ericsson, Sony e Nokia. Vá até MOTODEV SDKs e dê um duplo clique no plugin MOTODEV Studio (figura 2).

Mobile SDKs

Figura 1

SDKs disponíveis

Figura 2

Após o Eclipse calcular tudo o que é preciso baixar, irá aparecer uma janela para instalação do plugin. Faça todo o processo de instalação norma de plugins e, assim que terminar, escolha para aplicar as mudanças.

Testando nosso MIDlets

Agora veja algo interessante: vá em WindowPreferencesJava MEDevice Management. O SDK da Motorola já está carregado com todos os seus dispositivos. Caso queira importar dispositivos de outros SDKs, como o Wireless Toolkit por exemplo, sinta-se a vontade.

Agora vamos ver como isso funciona na prática. Crie um novo MIDlet Project e coloque o nome de Teste Motorola SDK. Quando o projeto for criado, crie um novo pacote e dentro dele coloque um MIDlet chamado TesteMotorola e adicione a interface CommandListener. Olhe o código abaixo:

import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.StringItem;
import javax.microedition.lcdui.TextField;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;

public class TesteMotorola extends MIDlet implements CommandListener
{

	private Display display;
	private Form loginForm;
	private Form sucessfulForm;
	private TextField tfUser;
	private TextField tfPassword;
	private StringItem stSucessful;
	private Command cmdLogin;
	private Command cmdExit;

	public TesteMotorola()
	{
		display = Display.getDisplay(this);

		tfUser = new TextField("User", " ", 30, TextField.ANY);
		tfPassword = new TextField("Password", "", 30, TextField.PASSWORD | TextField.ANY);

		cmdLogin = new Command("Login", Command.SCREEN, 0);
		cmdExit = new Command("Exit", Command.EXIT, 1);

		stSucessful = new StringItem(null, "Login Sucessful");

		loginForm = new Form("Login");
		loginForm.append(tfUser);
		loginForm.append(tfPassword);
		loginForm.setCommandListener(this);
		loginForm.addCommand(cmdLogin);
		loginForm.addCommand(cmdExit);

		sucessfulForm = new Form("Login Susceseful");
		sucessfulForm.append(stSucessful);
		sucessfulForm.setCommandListener(this);
		sucessfulForm.addCommand(cmdExit);

	}

	protected void destroyApp(boolean arg0)
		throws MIDletStateChangeException
	{
		// TODO Auto-generated method stub

	}

	protected void pauseApp()
	{
		// TODO Auto-generated method stub

	}

	protected void startApp() throws MIDletStateChangeException
	{
		// TODO Auto-generated method stub
		display.setCurrent(loginForm);
	}

	public void commandAction(Command c, Displayable d)
	{
		if (c == cmdLogin)
			display.setCurrent(sucessfulForm);
		else
			if (c == cmdExit)
			{
				// o aplicativo irá pedir para ser desativado.
				display.setCurrent(null);
				notifyDestroyed();
			}
	}

}

Até agora nada de novo, não é? Bem, agora clique com o botão direito no código-fonte e escolha Run AsRun Configuration. Clique na aba Emulation e marque a opção Specific Device. No menu Device escolha o dispositivo FLIP. Clique em Apply e depois em Run.

Escolhendo preferências de runtime

Emulador SDK Motorola

Legal não é? Agora podemos ver como nosso MIDlet iria se comportar em alguns modelos de celulares da Motorola. Quer mudar de dispositivo? Quer ver como ficariam seus MIDlets antigos nesses SDKs? Faça o mesmo processo de quando você clicou com o botão direito em cima do código e escolha o SDK e o dispositivo que você quiser.

Emulador MOTODEV Studio - FLIP

Assim como a Motorola, outros fabricantes também disponibilizam seus SDKs. Alguns sites interessantes:

Infelizmente a maioria é somente para o Microsoft Windows 😥 .

Este post vai ficando por aqui pessoal. Qualquer dúvida postem nos comentário ou mandem um email. Ficarei muito feliz em ajudar.

Até a próxima.

Anúncios