Via Network » TotalCross + Netbeans

TotalCross + Netbeans

¿Qué es TotalCross?
Es una plataforma de desarrollos para aplicativos móviles que usa una sintaxis muy parecida a la de Java, haciendo sencillo el desarrollo, también TC hace uso del JRE de Java para generar los archivos .class para luego compilarlo con el SDK de TC y generar los ejecutables de acuerdo al Sistema Operativo para el que estemos trabajando (Windows Mobile, Simbyan, BlackBerry, Palm OS, Windows, Linux, etc).

Pero TC no nació de la noche a la mañana, hace aproximadamente 10  años apareció una plataforma para desarrollar para aplicaciones  móviles, principalmente Palm OS, llamada SuperWaba pues este migró hace 2  años a lo que ahora conocemos como TotalCross actualmente se ecuentra en su versión 1.15.

Para la empresa donde laboro (Solutec Perú), hemos dado soluciones interesantes con TC, como toma de inventarios, envió de correos con archivos adjuntos, conexión con colectores de datos vía Bluetooth, todos en dispositivos  móviles  e incluso vimos necesarios reemplazar aplicativos hechos en .Net por razones de compatibilidad y estabilidad principalmente.

Puedo trabajar con Base de datos?
Si, TC tiene una librería llamada LiteBase con la que podrás crear Base de datos e incluso podrás hacer creacion de tablas,consultas, inserciones, eliminación, actualizador con sintaxis SQL manteniendo un estándar de trabajo muy cómodo.

Ademas TC tiene clases para poder conectarte a otras Base de Datos lo que lo hace interesante si necesitas hacer una transferencia de datos desde el mismo aplicativo.

Necesita alguna VM?
Exacto, TC necesita de una VM para que pueda correr sus instaladores del mismo modo LiteBase, tal vez para muchos esto sea un problema por que la VM de TC y LB no es la misma de Java por lo que se  complica a groso modo la instalación de una aplicación.

Que necesito para empezar a trabajar con TC?
Necesitas lo siguiente:
- J2SE 6 superior
- SDK de TotalCross
- SDK de LiteBase (si vas a trabar con BD)
- Netbeans (esto puede variar de acuerdo al gusto de cada uno)

Bien ahora si al grano, vamos a explicar paso a paso como configuramos nuestro Netbeans con TC y LB, ojo no es obligatorio trabajar Netbeans pueden usar con cualquier editor de texto pero asegurate de incorporar bien las librerías.

Para este manual trabajaremos bajo Windows pero el proceso ser¡ el mismo si trabajas el Linux.

1. Descargamos todo lo necesario
- J2SE 6
- SDK de TotalCross 1.15 o superior (Necesitas registrarte)
- SDK de LiteBase 2.14 o superior (Necesitas registrarte)
- Netbeans 6.8

Debes hacer una instalación estándar para los 4 punto o sea siguiente, siguiente, siguiente

2. Configuramos nuestra instalación, para el caso de Java debes configurar las variables de entorno como indica la imagen. en tu caso tendrás mas de un variable configurada acá solo colocare las que usaremos.


Hacemos una comprobación en linea de comandos para revisar que las variables respondan a una simple consulta de la versión de Java con la que estamos trabajando.


Si todo esta bien pasamos a ver TC y LB.
Esta es la estructura del archivos de TC y mas abajo la de LB

La instalación de TC creara una carpeta llamada TotalCrossSDK en C:\ como vemos abajo.

La instalación de LB creara una carpeta llamada LitebaseSDK en C:\ como vemos abajo.


Ahora vamos con Netbeans (ojo que en este manual usuamos la versión actual que es la 6.8 pero tambien funciona para versiones anteriores)

Luego de abrir Netbeans, vamos a Tools (o heremientas) ubicado en la barrar de menu y elegimos Libraries (Bibliotecas)

Luego agregamos una nueva library con el nombre TotalCross como indica la imagen.

Luego toca agregar el jar de TC con el boton “Add JAR/Folder”, al presionar aparecera una ventana donde buscaremos esta ruta C:\TotalCrossSDK\dist\tc.jar y agregamos el jar, lo mismo hacemos en Sources y JavaDocs.

Sources

JavaDocs

Estos mismos para debes realizar para agregar la libreria de LB, lo unico que cambian son las rutas, en este caso el jar se encuentra en C:\LitebaseSDK\dist\litebase.jar

Con esto dejamos todo listo para crear nuestra primera aplicación con TC.

3. Nuestra primera aplicación

Lo primero será agregar un nuevo proyecto Java Class Library como indica la imagen.

En el siguiente paso le daremos un nombre al proyecto que será HolaMundo, luego una ruta en mi caso estara en c:\app, Netbeans crea una carpeta dentro de c:\app llamada HolaMundo como se indica en la tercera casilla y finalmente terminamos con el boton Finish.

Bien ya tenemos creado el proyecto pero antes de entrar a ver el codigo debemos agregar al proyecto las Libraries (Bibliotecas) que vimos en el paso 2.

Selecionamos Libraries seguido de un click derecho y en el popup escogemos Add Library, esto nos mandara una ventana donde listara todas las Libraries y agregaremos a TotalCross y LiteBase.

Finalmente esto debe quedar asi

Bien ahora vamos a ver algunas configuraciones antes de entrar al codigo.
Primero seleccionamos el proyecto HolaMundo seguido de un click derecho y luego en el popup escogemos Properties, esto nos lanzara una ventana de configuración, como indica la imagen

En Source solo debemos cambiar la opción del campo Source/Binary Format, la opción SDK 1.2, como indica la imagen.

Luego vamos a Run, en este punto vamos a indicar a Netbeans 3 campos importantes:

- Main Class : Será la clase que  lanzara la aplicación  “totalcross.Launcher”.
- Argumentos : Indicaremos algo basico para este ejemplo “/src WinCe view.main”, fijese que debemos indicar al final ubicación de nuestra clase en mi caso “view” es el nombre del paquete y “main” el nombre de la clase.
- Directorio raiz: Debemos indicar la ruta de nuestra aplicación en mi caso “c:\app\HolaMundo”.

Listo ahora vamos a ver algo de codigo, como todo ejemplo de inicio vamos a hace el famoso Hola Mundo.
Vemote un poco el codigo

package view;

import totalcross.ui.Label;
import totalcross.ui.MainWindow;

//nos extendemos a la interface MainWindow, toda aplicacion debe tener una extensión a esta interface por que este recibe todos los evento enviados
public class main extends MainWindow {
Label lbl; // Indicamos que lbl sera objeto Label

Implementamos el metodo InitUI, este inicializa la interfaz de usuario
public void initUI() {
// Agregamos un control con add() y definimos nuestro lbl  con un texto y le damos un ubicación
add(lbl = new Label(“Hola Mundo”),CENTER,TOP);

}
}


Una vez que tenemos listo el código nos toca correr la aplicación bien este paso es sencillo, seleccionamos nuestro proyecto seguido de un click derecho y elegimos la opción Run.

Listo!, corriendo y funcionando sin problemas :D

Hemos visto desde la instalación, configuración y algo de codigo para este primero ejemplo pero aun falta ver algo del  codigo, base de datos y lo mas importante llevar nuestra aplicación a nuestro dispositivo movil, todo esto lo veremos mas adelante…. bueno espero que este manual sea de gran utilidad.



4 Comments

  • 1. eryth replies at 16th June 2010, 10:50 pm :

    esto es lo que me sale a correr en NetBeans:

    Current path: C:\app\HolaMundo
    Possible Arguments (in any order and case insensitive). Default is marked as *
    /scr WIDTHxHEIGHT : sets the width and height
    /scr WIDTHxHEIGHTxBPP : sets the width, height and bits per pixel
    /scr PalmLo : Palm OS low (same of /scr 160×160x8)
    * /scr PalmHI : Palm OS high (same of /scr 320×320x16)
    /scr PalmTall : Palm OS tall (same of /scr 320×480x16)
    /scr PalmWide : Palm OS wide (same of /scr 480×320x16)
    /scr WinCE : Windows CE (same of /scr 240×320x16)
    /scr Win32 : Windows 32 (same of /scr 240×320x24)
    /scr bbLo : BlackBerry low (same of /scr 320×240x16)
    /scr bbBold : BlackBerry Bold (same of /scr 480×360x16)
    /scr bbStorm : BlackBerry Storm(same of /scr 480×320x16)
    /scr iPhone : iPhone (same of /scr 320×480x24)
    /scr android : Android (same of /scr 320×480x16)
    /pos x,y : Sets the openning position of the application
    * /uiStyle WinCE : Windows CE user interface style
    /uiStyle PalmOS : Palm OS user interface style
    /uiStyle Flat : Flat user interface style
    /uiStyle Vista : Vista user interface style
    /penlessDevice : acts as a device that has no touchscreen.
    /fingerTouch : acts as a device that uses a finger instead of a pen.
    /geofocus : enables geographical focus.
    /keypadOnly : acts as a device that has only the 0-9*# keys
    /virtualKeyboard: shows the virtual keyboard when in an Edit or a MultiEdit
    /showmousepos : shows the mouse position.
    /bpp 4 : emulates 4 bits per pixel screens (16 colors)
    /bpp 8 : emulates 8 bits per pixel screens (256 colors)
    /bpp 16 : emulates 16 bits per pixel screens (65536 colors)
    /bpp 24 : emulates 24 bits per pixel screens (16M colors)
    /bpp 32 : emulates 32 bits per pixel screens (16M colors without transparency)
    /scale : scales the screen, magnifying the contents
    /dataPath : sets where the PDB and media files are stored
    /cmdLine : the rest of arguments-1 are passed as the command line
    The class name that extends MainWindow must always be the last argument
    Invalid or incomplete argument at position 0: /src
    Full command line:
    /src WINCE view.main
    Java Result: -1
    GENERACIÓN CORRECTA (total time: 12 seconds)

  • 2. admin replies at 23rd June 2010, 2:04 am :

    Hola eryth, perdona por responder un poco tarde, sobre tu problema en la nueva versión de TC te obliga a poner como minino los argumentos marcados con * (es decir /scr y /uiStyle ) si no tienes resultados prueba solo con la ruta completa de la clase por ejemplo: org.me.holaMundo.java (donde org.me es el paquete y holaMundo es la clase)

    Saludos

  • 3. eryth replies at 11th July 2010, 12:54 am :

    Gracias por responder… aun no me funciona con netbeans, intente con eclipse y si me funciona, pero tengo muchas dudas con la programacion:
    1. como trabajo con Datos Remotos, envio de informacion desde el server al cel… cosas asi…
    2. como instalo la aplicacion en los dispositivos fisicos… Palm, cel o Blackberry…

    Gracias por la Ayuda…

  • 4. admin replies at 2nd August 2010, 1:45 pm :

    Eryth!! otra vez respondiendo super tarde XD…. bien respondiendo tu duda:

    1. Puedes trabajar con datos remotos usan web Service (soap) o de la misma manera puedes usar la librería Litebase para almecenar datos en el mismo equipo, lo interesante de este es que puedes usar las sentencias sql como en las BD de mayor escala.

    2. Para llevar tu app a una BB,Palm,Nokia,Sony ericsson etc debes primero instalar la MV de TC, en este punto existe 2 tipos de MV un versión libre que funciona bastante bien y una paga donde tienes algunas ventajas como por ejemplo no veras ninguna ventana moslestosa…
    luego desde tu IDE debes compilar tu app, para esto debe seguir una serie de pasos que lo encuentras en la documentación de TC ya sea usando Ant o el SDK de TC.

    Saludos!!!

Leave a comment

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <blockquote cite=""> <code> <em> <strong>