Sobre la creación de un ambiente para el desarrollo de aplicaciones en Android y el Nexus One

En los últimos días estuve estudiando y analizando cómo crear un ambiente optimo para desarrollar aplicaciones para móviles con la plataforma Android y en especial para el Nexus One.

Cómo es conocido Android (sobre Android en Wikipedia) es un sistema operativo para dispositivos móviles que se basa en un núcleo de Linux.

Inicialmente este sistema operativo fue desarrollado por Android Inc. y luego comprado por Google, creando una Open Handset Alliance con varios manufacturadores de móviles como Motorola y Samsung.

En el transcurso de los años, esta plataforma se ha ido desarrollando rápidamente y con la presentación de la versión 2.1 en el Nexus One de Google, se ha demostrado que Android puede ser la respuesta al iPhone ya que hasta ahora todas las compañías tradicionales de móviles como Nokia o Motorola no lograron alcanzar la funcionalidad del iPhone con sus sistemas operativos convencionales.

1. Motivación
Desde hace varios años atrás, muchos pronosticaban la revolución de los dispositivos móviles e Internet, pero esta revolución se dejaba esperar. En mi opinión, recién ahora con la aparición de este tipo de sistemas operativos, será posible crear dispositivos con una intefaz usable y cómoda para la mayoría de los usuarios. El uso de pantallas multi-táctiles (multitouch) o el uso de pequeños teclados incorporados a los dispositivos móviles ayudará a popularizar estos dispositivos.

Por eso creo que en los próximos años el mercado de las aplicaciones móviles será unos de los motores más importantes para la industria y comercialización de software. Solo basta pensar en esas pequeñas aplicaciones para el iPhone que costando solamente un dólar ya han creado muchos   nuevos millonarios.

Con Android y su plataforma abierta de Open Source, publicado bajo la licencia de software Apache, se abren para los desarrolladores un sinnúmero de posibilidades de crear nuevas e interesantes aplicaciones. Las siguientes imágenes muestran por ejemplo varias herramientas muy útiles que corren en Android 2.1 pero también algunos juegos

Herramientas Android en Android 2.1

Juegos en Android 2.1

Pero Android no solo es interesante como plataforma de software para dispositivos móviles, sino también para nuevos formas de interacción entre usuarios y maquinas, como se puede ver en este ejemplo de una lavadora con un interaz táctil en Android

Lavadora con Interfaz en Android

en un caso-estudio presentado por Touch Revolution.

Por todo esto, creo que apostar al desarrollo de aplicaciones en Android  usando  un modelo SaaS (Software as Service) para que el usuario mantenga y procese sus datos en un servido web o en la llamada «nube» y  los pueda syncronizar y usar en su dispositivo móvil es un modelo de negocio muy interesante y con un gran futuro.

2. Buscando la mejor plataforma de desarrollo para aplicaciones móviles
Debido a que el entrono de Apple siempre ha sido cerrado, y solamente su uso es posible con su hardware propietario, hace que esta plataforma para desarrollar aplicaciones móviles sea descartada.

En cambio Android, que se basa en el núcleo de Linux, que tiene el código fuente abierto y una buena documentación  se adecua mucho mejor para desarrollar aplicaciones móviles de calidad y en forma eficiente.

El siguiente diagrama muestra la arquitectura de Android en detalle

Arquitectura de Android

Y aquí algunas características importantes sobre la plataforma de desarrollo de Android:

  • Kit de desarrollo, el Android Development Kit (SDK) esta en Java y ha sido completamente incorporado al IDE más conocido de Java, Eclipse mediante el Android Development Tools (ADT) plugin. Con este IDE se pueden desarrollar rápidamente y en forma muy confortable apliaciones en Android.
  • La plataforma de desarrollo funciona tanto  Windows, Linux y también Mac lo que posibilita a los desarrolladores usar el sistema operativo de su preferencia.
  • Pero además de Java, también se pueden desarrollar parte de las aplicaciones usando C  y/o C++ y así reusar código ya existente mediante  el Android Native Development Kit (NDK).
  • Buenas herramientas para debbuging o la depuración de los programas (el ADB), así como también emuladores que pueden ser configurados para los diferentes tipos de dispositivos, como se puede observar en la siguiente imagen

Emulador de dispositivos móviles

  • Cómo base de datos nativa, Android usa SQLite que también es muy conocida y usada por los desarrolladores.
  • Una gran cantidad de documentación sobre Android en la red, grandes comunidades de desarrolladores y también ejemplos de código para usarlos como base para nuevas aplicaciones.

Todo estos aspectos posibilitan a los desarrolladores con experiencia en Java y Eclipse crear nuevas aplicaciones para Android con mucha facilidad. Esto  ha permitido la gran aceptación de Android en el mundo de los programadores y contribuirá a su expansión.

Con todos estos antecedentes, ahora solo queda escoger el sistema más apropiado para instalar el Android SDK y todas sus herramientas: Debido a que Java, y Eclipse corren de» forma natural» en Linux, he optado por instalar mi ambiente de desarrollo en Ubuntu.

Los primeras experiencias con el SDK de Android han sido positivas, aunque la instalación del SDK  se puede convertir en un procedimiento más o menos complejo si no se tiene experiencia previa en Java y con Eclipse, ya que existen muchas versiones y variedades de Eclipse.

Una guía completa de cómo instalar Android SDK se puede encontrar  aquí en la página oficial de Android Developers, todo en ingles. Lamentablemente todavía no he encontrado fuentes interesantes en español que traten el tema del desarrollo de aplicaciones en Android.