Antes de empezar con cualquier tipo de tutorial es necesario mencionar qué tecnologías se encuentran disponibles a la hora de desarrollar aplicaciones para dispositivos móviles. Es evidente que actualmente un dispositivo móvil ya no sólo sirve para hablar y esto va a más.
Las tecnologías para el desarrollo de aplicaciones moviles son:
Aplicaciones basadas en SYMBIAN: Symbian es un sistema operativo desarrollado prácticamente por Nokia (actualmente propietario del 40% de acciones) y por eso los moviles Nokia llevan este sistema operativo, aunque tambien otras marcas como Sony o Siemens utilizan este sistema en sus terminales móviles (son pocos los modelos que lo implementan). Para desarrollar aplicaciones en Symbian es necesario tener conocimientos de programación en lenguaje C++. y los kits de desarrollo se pueden bajar del site oficial de Nokia, llamado Nokia Forum (LINK); debes darte de alta y lo aconsejable es que lo hagas como desarrollador para asegurarte tu inscripción. Las ventajas que obtendrás programando bajo Symbian es la rapidez de ejecución (sobretodo en juegos), el acceso al sistema, la disponibilidad de música y varios sonidos simultaneamente o la realización de operaciones matematicas complejas, con lo que podrás crear juegos de gran complejidad y calidad. La desventaja más significativa es que para cada serie del sistema operativo tendrás que generar mas de un archivo y quizás no todo tu código sea compatible. Otra gran desventaja es que la mayoria de móviles no soportan symbian con lo cual estarás desarrollando aplicaciones para un número limitado de terminales.
Java: Java es el más extendido de los lenguajes actuales. Java no es solo un lenguaje de programación sino que implementa una máquina virtual. Esta máquina virtual de Java lo que hace es ser un traductor entre el sistema operativo que utiliza el terminal móvil y el código del programa Java que se ejecuta. La principal ventaja de Java es que es compatible con la mayoria de moviles del mercado. La desventaja más destacable es la pérdida de velocidad que conlleva el proceso de interpretación del código ya que tiene que hacer una parada en el traductor para comunicarse con el sistema operativo del móvil. Otra desventaja es que no puede aprovechar en su totalidad la capacidad que puede ofrecer un terminal móvil y en consecuencia las aplicaciones siempre estarán limitadas a las posibilidades que ofrece Java y no a las del sistema operativo del móvil. Para empezar a desarrollar en Java tienes que descargarte los paquetes de desarrollo (SDK) y el toolkits de j2me (LINK).
Flash: Flash se está introduciendo cada vez más en el mundo de los móviles y actualmente los nuevos modelos ya implementan la tecnología Flash, como por ejemplo todos los nuevos modelos de Nokia. La principal ventaja de Flash es su simplicidad: programar es muy fácil si lo comparamos con C++ o Java y puedes crear tus animaciones, peliculas o juegos fácilmente. La desventaja: el entorno para desarrollar en Flash es de pago y de momento los terminales que llevan Flash son aún escasos. Su velocidad de ejecución parece ser que tampoco es un punto fuerte.
Windows mobile : Microsoft tambien tiene su sistema operativo para moviles, la versión más reciente es la 6.0. Lamentablemente para desarrollar aplicaciones para este sistema operativo es necesario tener la herramienta profesional de desarrollo (visual studio.net profesional) ya que las versiones de desarrollo gratuitas ofrecidas por microsoft (express edition) no incluye estas herramientas. Del sistema se sabe que consume muchos recursos y la interfaz gráfica se asemeja mucho a la versión de pc pero con sus limitaciones.
Linux: Linux tambien se hace escuchar en los móviles, en el mercado existen varios moviles implementando linux como sistema operativo (varios modelos de motorola entre otros), no he visto ninguna herramienta de desarrollo para el desarrollo de aplicaciones para este sistema.
Android: Finalmente el más prometedor de todos, Android, un sistema operativo basado en Linux y desarrollado por Google. Este sistema operativo tiene el apoyo de varias empresas fabricantes de terminales móviles y se espera que empiecen a salir al mercado a mediados del 2008. Para desarrollar aplicaciones para Android se utiliza el lenguaje Java y actualmente el único entorno de desarrollo que soporta el SDK otorgado por Google es Eclipse (LINK) aunque seguramente salgan para otros entornos como Netbeans. Las ventajas: para los que programan en Java y sobre todo j2me el código les parecera familiar aunque cambia un poco, El apoyo y el acuerdo firmado entre google y varias empresas fabricantes de moviles da al desarrollador la seguridad de que en poco tiempo este sistema este implementado en muchos terminales, y otra gran ventaja es que a pesar que utiliza una maquina virtual para interpretar el código java entre el sistema operativo (linux), se podrá alcanzar a utilizar todo el potencial del movil. Las desventajas: al dia de hoy no hay ningún movil en el mercado, son escasas las tutoriales aunque en solo un mes hay muchos sitios que están por el tema, Nokia la principal fabricante de moviles no forma parte de este consorcio pero no ha cerrado la puerta a android, seguramente porque será su rival más fuerte.