domingo, 23 de noviembre de 2014

TEMA #6: NUESTRA PRIMERA APLICACIÓN CON NETBEANS

Bueno, ahora sí vamos a entrar en detalle de cómo se hace una aplicación/juego con Netbeans. Primero comenzaremos con una breve descripción del programa Netbeans y luego veremos cómo crear un nuevo proyecto para hacer aplicaciones/juegos y los elementos que componen el proyecto. Empecemos.

Netbeans

Ya lo hemos mencionado muchas veces y de verdad que es un programa que nos facilita las cosas al hacer aplicaciones/juegos en java. En particular, antes había buscado explicaciones de cómo trabajar con java para celulares (J2ME), pero siempre encontraba referencias en las que usaban programas más viejos. Netbeans no es sólo un programa limitado a J2ME sino que es un programa completo que permite la programación para exploradores web, tablets, celulares Android,... Vamos a ver cómo luce.
clic en la imagen para agrandarla

Destacaremos 4 áreas importantes:

  1.  Corresponde al área de trabajo; es donde escribiremos el código de nuestra aplicación/juego.
  2. Corresponde al panel de  proyectos que se encuentran actualmente abiertos en el programa. Se puede activar o desactivar este panel en el menú Window ->Projects, o con el atajo de teclado Ctrl+1.  
  3.  Corresponde panel de archivos que se encuentran dentro del proyecto (es como si viéramos el contenido del proyecto a través del explorador de archivos de Windows). Se puede activar o desactivar este panel en el menú Window -> Files, o con el atajo de teclado Ctrl+2. 
  4. Corresponde a los Menús. No comentaremos cosas específicas sobre los menús sino que a medida que vayamos avanzando en el curso aprenderemos el uso de alguno de ellos.

 

Creando Un Nuevo Proyecto

Un proyecto es un conjunto de elementos que constituyen la aplicación/juego como tal. Podemos crear un proyecto para una aplicación y luego, en un futuro, podemos modificar ese proyecto para mejorar la funcionalidad de la aplicación (hacer una nueva versión del programa). Veamos los pasos que debemos seguir para crear un nuevo proyecto y empezar a hacer aplicaciones/juegos J2ME en Netbeans:

1) Clic en el menú File y clic en New Project.
clic en la imagen para agrandarla
     2) Aparecerá el siguiente cuadro con múltiples opciones. Elegimos Java ME en la lista de la izquierda y luego Mobile Application en la lista de la derecha y hacemos clic en Next.

clic en la imagen para agrandarla

3) Elegimos el nombre de nuestro proyecto y la ubicación donde se guardará, en nuestro caso lo llamaremos Práctica. La opción que dice “Create Default Package and Main Executable Class” se marca si queremos que se creen un paquete y un midlet automáticamente (lo comentaremos más adelante). En este caso la dejaremos marcada y hacemos clic en Next.

clic en la imagen para agrandarla
   4) Aquí lo importante es elegir la configuración y el perfil adecuados para que la aplicación/juego funcione correctamente en nuestro celular. Para saber qué perfil y qué configuración usa tu celular te recomiendo descargar esta aplicación e instalarla en tu celular. Cuando la instales y la abras, entra en Opciones -> Phone info y allí aparecerá el perfil (MIDP) y la configuración (CLDC) que usa tu celular.
 
clic en la imagen para agrandarla
5) Clic en Finish.



Estructura De Un Proyecto

Cuando creamos un nuevo proyecto, vemos los elementos que lo conforman en el panel de proyectos:




clic en la imagen para agrandarla

Tenemos en primer lugar el nombre del proyecto, Practica, luego tenemos los archivos de código por llamarlos de una forma. En los archivos de código vamos a diferenciar un paquete de los archivos propiamente dichos en que los paquetes se identifican con un ícono de una caja amarilla. Un paquete es una caja dentro de la cual se pueden crear varios archivos.
Nota: cuando describíamos los pasos para crear un nuevo proyecto mencionamos la opción de crear un paquete y un midlet automáticamente, como la dejamos marcada se creó automáticamente un paquete con el mismo nombre del proyecto, practica, y un archivo llamado midlet.java.

Una Aplicación De Ejemplo
Ahora veremos cómo hacer una aplicación simple y la probaremos en el emulador de nuestra computadora y en nuestro celular. Lo primero que debemos hacer es abrir nuestro archivo midlet.java y escribir en el área de trabajo de manera que quede igual a esto:


clic en la imagen para agrandarla

Para descargar el código en formato texto haz clic aquí.
Para descargar el proyecto completo y saber cómo abrirlo en Netbeans haz clic aquí.  
Vamos a ir comentando brevemente las líneas del código:

Porción del Código
Comentarios
package practica;
Esto corresponde al nombre del paquete donde se encuentra el archivo que se está mostrando (midlet.java).
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
Permite importar los elementos necesarios que utilizaremos en nuestro código. Si no se importan el programa notificará errores.
public class Midlet extends MIDlet {
}
    public void startApp() {
        display.setCurrent(pantalla);
    }

    public void pauseApp() {
    }

    public void destroyApp(boolean unconditional) {
    }
}
Es como el nombre principal de nuestro código. La palabra extends significa que nuestra aplicación hereda las cualidades de la clase MIDlet, que incluye startApp(), pauseApp y destroyApp(boolean unconditional).
private Display display = Display.getDisplay(this);
private Form pantalla;
private Command comandoSalir;
private String saludo;
En estas líneas definimos los elementos que vamos a utilizar en nuestro código. Vemos que estos elementos son en realidad variables; vemos sus tipos (Display, Form, Command, String) y sus nombres (display, pantalla, comandoSalir, saludo). Vemos que al principio de cada línea se encuentra la palabra private, que significa que las variables definidas sólo pueden ser usadas en esa única aplicación.
public Midlet (){
...
}
Dentro de estos corchetes es que debemos definir el código de funcionalidad de nuestra aplicación.
pantalla = new Form("Saludo");
saludo = "Hola, cómo estás?";
comandoSalir = new Command("Salir", Command.SCREEN, 1);
En estas líneas vemos la definición de los elementos de tipo Form, String y Command. Las definimos a través del operador de asignación “=”.

Más adelante en el curso veremos en más detalle cada uno de estos elementos que hemos usado en nuestra aplicación de prueba.

Una vez escrito todo este código en el área de trabajo procedemos a probarlo en el emulador de que nos provee el J2ME SDK. Esto lo hacemos haciendo clic en el menú Run y luego en la opción Run Project. Esperamos un momento y veremos cómo funciona nuestra aplicación.


Para ejecutar la aplicación en algún celular debes realizar un paso extra que es construirla (clic en Run -> Build). Luego de construirla, los archivos que vas a instalar en tu celular son los que se ubican en la carpeta dist, ubicada donde decidiste guardar el proyecto en tu computadora. Por ejemplo, si decidiste guardar el proyecto en mis documentos, los archivos que tienes que copiar en tu celular son los que se encuentran en mis documentos -Práctica -> dist -> practica.jad y practica.jar. Luego que los tengas en tu celular vas a ejecutar el archivo llamado practica.jad y este se va a encargar de instalar el archivo practica.jar automáticamente.


Haz la prueba y ve cómo se muestra, ya que dependiendo del celular donde se ejecute la aplicación se mostrará con un estilo diferente.

miércoles, 19 de noviembre de 2014

TEMA #5: CONTROL DE ERRORES

Cuando estamos creando nuestras aplicaciones/juegos necesitamos que todo salga bien y que no ocurra ningún error cuando vamos a probarla. Lo cierto es que hay errores que siempre ocurrirán cuando escribimos ciertas líneas de código, y no los podemos evitar, sin embargo, los podemos “atrapar” para que no interfieran con la correcta ejecución de la aplicación/juego.

¿Qué son los errores?, ¿de qué hablamos?
Los errores son como variables que se generan automáticamente cuando escribimos líneas de código que, por naturaleza, generan errores durante su funcionamiento. Estas “variables” son de tipo Exception, y dentro de Exception se encuentran una serie de errores específicos, por ejemplo, IOException, NumberFormatException, MediaException,...

¿Cómo corregimos los errores?
Java nos proporciona una manera de controlar estos errores para que no interfieran con el funcionamiento de nuestra aplicación/juego. Es una estructura, cómo las que vimos en el tema anterior (Estructuras de Control y Estructuras de Datos), y se llama try/catch.
Estructura
Notas
try{
     Código que genera el error
}catch(Exception e){
     Acción a realizar si se genera el error
}
Las palabras que están en cursiva pueden cambiar. Nótese la “variable” originada por el error: su tipo es Exception y su nombre es e. Más adelante mostraremos un código de ejemplo acerca de esta estructura.

Esta estructura la podemos comparar con if/else, ya que podemos decir que si la primera parte de esta estructura genera un error, se ejecutará la segunda parte de la estructura, pero si no ocurre ningún error, no se ejecutará la segunda parte de la estructura. Veamos un ejemplo gráfico:




Como vemos, ahora el nombre de la “variable” de tipo Exception es exc, esto para recordar que le podemos colocar el nombre que queramos a esta variable. No es obligatorio colocar una “acción a realizar en el caso de que se produzca el error”, si sólo quieres “atrapar” el error deja el espacio en blanco, como se muestra a continuación:
try{
...
}catch(Exception e){};

Hasta ahora no hemos visto códigos que generen errores, pero es muy importante tener en cuenta cómo “atraparlos” ya que más adelante del curso trabajaremos con códigos que generan errores.
Algunos ejemplos de errores
Son muchos los errores (Exeption) que ocurren, vamos a nombrar algunos:
  • IOException.
  • MediaException.
  •  NullPointerException.
  •  NumberFormatException.
  •  UnsuportedEncodingException.

Identificando los errors en Netbeans
Cuando trabajamos con Netbeans el programa nos muestra las líneas donde ocurren errores, ya sea porque escribimos mal el tipo de una variable, porque pusimos una letra minúscula en lugar de una mayúscula, o en el caso de que ocurran errores de tipo Exception. Si detecta un error el programa lo muestra a la izquierda de la zona donde podemos escribir, pero esto lo veremos en el próximo capítulo: “Nuestra Primera Aplicación con Netbeans”.
Lo que destacaremos aquí es que contamos con un emulador para ejecutar nuestras aplicaciones en nuestra computadora antes de pasarlas a nuestro teléfono celular, y este emulador nos puede mostrar los errores y algunas veces muestra cómo arreglarlo. Cuando estemos trabajando con el emulador, hacemos clic en el menú “View” y luego en “Output Console”, y allí se mostrará el error en caso de que la aplicación/juego que ejecutemos no esté funcionando bien.
Aquí les muestro una imagen del emulador y la Output Console donde se muestra un error de tipo NullPointerException:



Descarga la aplicación de ejemplo y echa un vistazo a cómo se muestran en la pantalla de tu celular cuando ocurre un error en una aplicación/juego. Descargar App
Descarga el código de la aplicación si así lo deseas. Descargar Código