Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Manual Programacion Moviles PDF
Manual Programacion Moviles PDF
programación
para Móviles
- JDK 6
- NetBeans
3º Indicar el nombre del proyecto y la localización del mismo. Elegir si queremos que
por defecto en el proyecto nos aparezca el “hola mundo”.
4º Seleccionar el tipo de emulador que queremos que tenga nuestro proyecto, elegir
las versiones del CLDC y MIDP (Recomendable dejar las que vienen por defecto).
Ya tenemos nuestro MIDlet, deberá aparecernos una pantalla algo parecida a esta:
Vamos a intentar hacer una calculadora para nuestro teléfono móvil. Los pasos a
seguir son los siguientes:
4º Ahora, vamos a establecerle los botones de control a nuestra aplicación, para ello,
seleccionamos en la paleta de componentes “Exit Command” y pinchamos sobre el
formulario, veremos que se añade un nuevo punto que pone: “Exit”. Bien, a
continuación, vamos a arrastrar este nuevo punto hasta el punto del dispositivo móvil
etiquetado como “Exit Point”.
10º Lo siguiente que tenemos que hacer es volver a la pantalla de “Flow Design” y
arrastrar un componente llamado “Ok Command” encima del formulario para añadir
un nuevo botón de control de la aplicación.
11º Hasta ahora no hemos insertado ni una sola línea de código, pero ha llegado el
momento de meter unas cuentas líneas. Si pulsamos sobre el botón “Source” (al lado
de “Flow Design” y “Screen Design”) veremos el código que el NetBeans ha ido
generando según hemos ido insertado componentes. El código que aparece en azul no
podemos editarlo, es código generado automáticamente. Vamos a buscar en el código
el método commandAction(), veremos que no tiene contemplados los casos de que
ejecutemos el exitCommand1 o el okCommand1. A nosotros ahora nos interesa rellenar
la parte de que ocurra el okCommand1. De modo que donde está etiquetado como: //
Insert pre-action code here, vamos a insertar este código:
try
{
int operando1=Integer.parseInt(textField1.getString());
int operando2=Integer.parseInt(textField3.getString());
int operador=choiceGroup1.getSelectedIndex();
switch (operador)
{
case 0:
textField4.setString(String.valueOf(operando1+operando2));
break;
case 1:
textField4.setString(String.valueOf(operando1-operando2));
break;
case 2:
textField4.setString(String.valueOf(operando1*operando2));
break;
case 3:
textField4.setString(String.valueOf(operando1/operando2));
break;
}
}
catch (Exception e)
{
textField4.setString("ERROR!");
}
Este código solamente coge el contenido de los dos operandos, los convierte a entero
y según se haya hecho la selección en el choiceGroup realiza una operación u otra y el
resultado se mostrará en el tercer cuadro de texto.
El Resultado
12º Por último, solamente nos queda ejecutar el proyecto, para ello seleccionamos en
el explorador de proyectos el proyecto de la calculadora con el botón derecho y
pulsamos sobre “Run Project”. Nos aparecerá el emulador con la aplicación disponible
para ejecutarse, pulsamos en el emulador en “Launch” y pasará a ejecutarse ya
nuestra aplicación.
Una aplicación más avanzada
Vamos a realizar ahora una calculadora utilizando un servlet. Si hemos seguido los
anteriores pasos, lo que tenemos que hacer a continuación es comentar el código que
habíamos introducido para que no lo tenga en cuenta a la hora de ejecutarse. Justo
debajo de donde introdujimos el código introducimos este:
try
{
int operador=choiceGroup1.getSelectedIndex();
String operacion="";
switch (operador)
{
case 0:
operacion="1";
break;
case 1:
operacion="2";
break;
case 2:
operacion="3";
break;
case 3:
operacion="4";
break;
}
url="http://193.146.58.131/riicu/CalculadoraServlet?op1="+textFi
eld1.getString()+"&op2="+textField3.getString()+"&operacion="+operacio
n;
Thread thread = new Thread(this);
thread.start();
}
catch (Exception e)
{
textField4.setString("ERROR!");
}
Cuando hemos mandado iniciar el hilo, se ejecuta el contenido del método “run()”, en
el cual vemos que lo primero es crear una conexión con el servlet y abrirla, para ello
utilizamos el método “open()” de la clase “Connector”. A continuación indicamos que
los parámetros al servlet se los mandaremos como tipo GET (Es decir, iran incluídos en
la propia url). El resto del código sirve para leer la respuesta del servlet que es de tipo
String y por último la colocamos en el textField4.
Hemos cubierto la ejecución del programa principal y del hilo con try-catch para
prevenir las posibles excepciones que se puedan dar (Fallo de conexión con el servlet,
que el hilo sea interrumpido, etc.).
Ya solo nos queda ejecutar el proyecto como se indicó en pasos anteriores y ver que
ocurre. Si lo hemos hecho bien, nos aparecerá una pantalla de advertencia después de
enseñarnos el formulario que nos indicará que se desea acceder a la red, debemos de
indicarle “Yes”.
A continuación mostramos el código del servlet que se ha utilizado en este manual,
aunque no se explicará ya que no es el objetivo de dicho manual.
package servlet;
import javax.servlet.*;
import java.io.*;
import javax.servlet.http.*;
res.setContentType("text/html");
out=res.getWriter();
BufferedReader in =req.getReader();
//Operaciones:
//Suma=1;
//Resta=2;
//Multiplicacion=3;
//Division=4;
int operac=Integer.parseInt(operacion);
int operando1=Integer.parseInt(op1);
int operando2=Integer.parseInt(op2);
int resultadoOperacion=0;
switch (operac)
{
case 1:
resultadoOperacion=operando1+operando2;
break;
case 2:
resultadoOperacion=operando1-operando2;
break;
case 3:
resultadoOperacion=operando1*operando2;
break;
case 4:
resultadoOperacion=operando1/operando2;
break;
}
out.write(String.valueOf(resultadoOperacion));
}
catch(Exception ee)
{
out.write(ee.toString());
}
}
public void doPost(HttpServletRequest req,HttpServletResponse
res)throws ServletException,IOException
{
doGet(req,res);
}
}
NOTA: El servlet que se ha utilizado para la realización de este manual ha sido real y ha
estado colgado en un servidor, pero es muy posible que cuando se lea este manual, el
servlet ya esté fuera de servicio.
3. Primeros pasos con Flash
- Macromedia Flash
Antes de continuar, debemos explicar que en Flash todo son películas que están
compuestas por un montón de fotogramas. En la parte superior de la imagen podemos
ver la línea de tiempo, que contiene los fotogramas de los que hemos hablado. En la
parte central de la pantalla (el recuadro blanco) se encuentra el escenario, que es lo
que aparecerá cuando pasemos nuestra aplicación al dispositivo móvil.
A continuación, pulsamos sobre “Archivo” -> “Importar” -> “Abrir biblioteca externa”.
En nuestro disco duro tenemos que buscar un archivo que se llama “Device Component
Set.fla”, y una vez seleccionado, pulsamos sobre el botón “Abrir”. Se nos abrirá una
paleta de herramientas como esta:
Arrastrar un componente “Device DropDown” al escenario. En la parte inferior de la
pantalla veremos sus propiedades, en la parte de <Nombre de instancia> le
cambiamos el nombre a “Lista1”. Si ahora pinchamos en la pestaña “Parámetros” de la
parte inferior de la pantalla, veremos una tabla con unos campos (“Labels”, “Data”,
“Row Count” y “Change Handler”). En el campo “Labels”, si pinchamos sobre él, en la
parte izquierda veremos una lupa , vamos a pinchar sobre ella y nos aparecerá una
pantalla. Pinchando sobre el símbolo + podemos introducir las etiquetas de los
animales que queramos que aparezcan. Vamos a introducir “Buho”, “Pato”, “Pantera”
y “Serpiente”, después pincharemos en “Aceptar”. Por último, si pinchamos sobre el
campo “Data” veremos el mismo icono de la “lupa” a la izquierda, pinchamos sobre él
y e introducimos los nombres de los animales, para luego buscar información sobre
ellos. Introducimos “buho”, “pato”, “pantera” y “serpiente”.
Vemos que desaparece de arriba el botón, pero si nos fijamos en el cuadro que se
encuentra a la derecha de la pantalla, llamado “Biblioteca – Ejemplo.fla” vemos que
nos aparece ahí el botón como un componente más. Veamos esta pantalla:
A continuación lo que tenemos que hacer es seleccionar el primer fotograma de la
capa “Content” de nuestra aplicación y arrastrar al escenario el componente
“btnVerAnimal”. Lo colocamos donde queramos, en este caso, en la parte inferior de la
pantalla y listo.
Nos queda añadirle funcionalidad al botón que acabamos de insertar, para ello vamos
a seleccionarlo y pinchar sobre la pestaña de “Acciones” que está en la parte inferior
de la pantalla, tenemos que añadir el siguiente fragmento de código:
on(release) {
animal = Lista1.data[Lista1.getSelectedIndex()];
gotoAndStop(2);
Este código es muy sencillito, el “on(release)” sirve para indicar que la acción se
efectuará cuando se pulse el botón, la línea: “animal =
Lista1.data[Lista1.getSelectedIndex()];” se utiliza para asignar en la variable animal, el
nombre del animal que hemos seleccionado en la Lista1. Y por último: gotoAndStop(2);
es para indicar que vamos a parar la reproducción e irnos al segundo fotograma.
contenedor._x=60;
contenedor._y=50;
contenedor.loadMovie(“imgs/”+animal+”.jpg”);
loadVariables(“imgs/+animal+”.txt”,this);
El resultado final
Ya tenemos terminada nuestra aplicación en Flash. Tan sólo nos queda probarla. Para
ello nos vamos al menú “Control” -> “Probar película”. Si hemos ido siguiendo bien los
pasos, debería de salirnos la aplicación más o menos así:
4. Primeros pasos con .NET
- Microsoft ActiveSync
El Microsoft Visual Studio 2005 lo vamos a utilizar para desarrollar las aplicaciones y a
la vez poderlas emular. Este software es de pago, pero como alumnos de la
Universidad de Alcalá, podemos descargarlo totalmente gratis desde la página del
Academic Alliance:
http://msdn30.e-academy.com/elms/Storefront/Home.aspx?campus=ualc_comp
Actualmente, también existe ya un Service Pack 1 para el Visual Studio 2005, sería
interesante tenerlo instalado. También se puede descargar de la página de Microsoft.
Por último, el “Virtual Machine Network Driver For Microsoft Device Emulator” es un
pequeño parche que se instala para poder crear una red virtual y acceder a ella desde
el emulador del Visual Studio 2005. Es gratuito y se puede descargar desde la página
web de Microsoft.
Ahora, vamos a introducir otro “Label” que ponga “Resultado” y un “TextBox” vacío
como los anteriores. Además, añadimos un “Button” cuya propiedad “Text” sea
“Calcular”. Debemos de tener en pantalla estos componentes:
Lo siguiente que tenemos que hacer es seleccionar el botón que hemos insertado y
pinchar en el “rayo” que aparece en la parte superior del cuadro de propiedades.
Bien, nos encontramos ante los eventos, vamos a buscar el evento “Click” y pinchamos
doblemente sobre él, veremos que pasamos a la ventana de código. Vemos que ya se
ha insertado un método, llamado private void button1_Click(object sender,
EventArgs e). Lo que introduzcamos entre las dos llaves { } de este método será lo
que se ejecute cuando pinchemos sobre él botón cuando estemos ejecutando la
aplicación. A estas alturas, cabe destacar que en el explorador de soluciones, si
seleccionamos el archivo “Form1.cs”, justo en la parte superior del explorador de
soluciones, hay dos botones , el de la derecha sirve para ver el diseñador
(donde insertábamos los componentes) y el de la izquierda sirve para ver el código de
la aplicación. Ahora vamos a introducir, introducir este código dentro de la clase
“Form1”, fuera de ningún método:
//Variables
double num1, num2, result;
string operacion;
Hemos declarado tres variables de tipo double y una de tipo string. Fijaos, que cuando
introducís algo de código, aveces aparecen en pantalla cuadros pequeños con una lista
de nombres, esto sirve para que podamos seleccionar en esa lista un determinado tipo
de dato, método, clase, etc. y simplemente con darle al TAB ya se nos inserte ese
código sin necesidad de escribirlo entero. Recordar que el Visual Studio 2005, es
sensible a las mayúsculas y minúsculas. Ahora vamos a introducir el siguiente
fragmento de código dentro del método “button1_Click()”:
num1 = Convert.ToDouble(txtNum1.Text);
num2 = Convert.ToDouble(txtNum2.Text);
operacion = comboBox1.SelectedItem.ToString();
switch (operacion)
{
case "+":
result = num1 + num2;
break;
case "-":
result = num1 - num2;
break;
case "*":
result = num1 * num2;
break;
case "/":
result = num1 / num2;
break;
}
txtResult.Text = result.ToString();
El Resultado
Vamos a probar lo que hemos hecho hasta ahora. Para ello, vamos a pinchar sobre el
botón que está en la parte superior de la pantalla. Nos aparecerá una ventana
pequeña donde podremos seleccionar el emulador que queramos que ejecute nuestra
aplicación. Seleccionamos uno y le damos a aceptar. En pantalla, aparecerá una
ventana donde podemos ver el emulador. Tras un tiempo se ejecutará la aplicación
que hemos creado (puede tardar bastante en ejecutarse, dependiendo de si es la
primera vez que ejecutamos un proyecto de PocketPC en Visual Studio 2005). Si
cerramos el emulador, nos aparecerá una ventana que nos preguntará si guardamos el
estado, es recomendable decirle que “si”, ya que así la próxima vez que iniciemos el
emulador no tardará tanto.
Directamente nos aparecerá el código de la aplicación web. Por defecto nos aparece
este código:
[WebMethod]
public string HelloWorld() {
return "Hola a todos";
}
Los WebMethod son los métodos que luego podremos invocar como servicios web.
Vamos a añadir justo debajo de este:
double result;
[WebMethod]
public double Calcular(double num1, double num2, string operacion)
{
switch (operacion)
{
case "+":
result = num1 + num2;
break;
case "-":
result = num1 - num2;
break;
case "*":
result = num1 * num2;
break;
case "/":
result = num1 / num2;
break;
}
return result;
}
Vemos que recibe 2 parámetros de tipo double que serán los números y un string que
será la operación y el funcionamiento es el mismo que en el caso del ejemplo anterior:
un switch que indica que operación es la seleccionada y se realiza la misma.
Si pulsamos con el botón derecho sobre el proyecto web que hemos creado, vemos
que nos aparece una opción llamada “Ver en el explorador”, le pinchamos y se nos
abre una pantalla con los servicios web. Vamos a copiar la url que aparece en el cuadro
superior, en mi caso es: “http://localhost:49170/WSCalculadora”, esto puede variar,
pero siempre que la copiemos de ahí no pasará nada.
Ya queda poco. Vamos a ir al código del primer ejemplo que hicimos, en mi caso era el
llamado “Form1.cs”, lo podéis encontrar en el proyecto “Calculadora” del “Explorador
de soluciones”. Debemos insertar arriba del todo, donde los “using”, esto:
using Calculadora.localhost;
Esto es para utilizar la referencia web que hemos introducido. Ahora borramos el
código que antes habíamos escrito e insertamos este:
//Variables
double num1, num2, result;
string operacion;
Vemos que solo hemos quitado el switch y hemos insertado la llamada al servicio web.
Este nos devuelve el resultado en la variable “result” y lo mostramos en el cuadro de
texto.