Androiditis

Blog sobre Google Android en Castellano

Presentado el Motorola Morrison / Dext

Posted by Pablo September - 11 - 2009 - Friday ADD COMMENTS

Ayer se presentó el rumoreado Motorola Morrison con el nombre de Dext y ya está anunciado en la web de Motorola http://www.motorola.com/Consumers/ES-ES/Consumer-Products-and-Services/Mobile-Phones/Motorola-DEXT-ES-ES. Esta compañía está apostando fuerte por Android y en crear una gran comunidad de desarrolladores a su alrededor.

El terminal viene con el Motorola BLUR, la personalización del interfaz sobre Android de Motorola, que promete mucho juego, especialmente enfocado al uso de redes sociales.

Más allá de limitarme a hacer eco de la noticia, he tenido la oportunidad de probar el terminal durante unas semanas y mi primera impresión fue algo decepcionante. Físicamente es grande y pesado. En imágenes parece mucho más ligero de lo que es. A mi parecer le sobra el teclado físico, que hace que pese bastante y se vuelva poco manejable, ya que la base que sustenta el teclado es más grande que la base para la pantalla y se vuelve un poco inestable.
En cambio, Motorola BLUR es una pasada. Incluso me gusta más que el HTC Sense. Buen primer intento de Motorola, pero por favor, que no hagan ladrillos… que el móvil es algo que se lleva encima todo el día… por lo demás, solo me falta comprobar cuánto durará la batería, algo que es fundamental optimizar en este tipo de terminales para que sean realmente útiles.

Popularity: 48% [?]

Piensa en el modelo de negocio antes de codificar

Posted by Pablo August - 27 - 2009 - Thursday ADD COMMENTS

Con el lanzamiento de las mobile stores como la Apple Store o el Android Market surge una nueva forma de que los desarrolladores den a conocer sus productos en el mundo de las aplicaciones para móviles. Puede que lo hagan como modo de probarse a sí mismo, como manera de aprender, o para sacarse un dinero extra. En cualquier caso, si el tiempo invertido será de unos meses y quieren obtener una rentabilidad económica a cambio, Michael Mace, de Rubicon Consulting, nos da unos consejos al respecto. Antes de que inviertas tu tiempo desarrollando, piensa:

  1. ¿Quién es el cliente?
  2. Vas hacer una aplicación de ocio o centrada en la productividad, como utilidad. Porque son dos cosas totalmente diferentes.
  3. Es algo que esperas que compren impulsivamente o se lo van a tener que pensar.
  4. Cuan grande es el problema que estás resolviendo a los clientes, asumiendo que no es una aplicación para el entretenimiento.
  5. Cuánto les importará, cuánto estarán dispuesto a pagar.
  6. ¿Quienes son tu competencia? ¿Cómo demuestras que tu producto es mejor?

Otros pequeños comentarios que nos deja son:

“Hay un mercado muy bueno para aplicaciones de negocio muy específicas. Por ejemplos, saber las diferentes frecuencias de radio en los aeropuertos, información de altitud o cosas así. Son verdaderos nichos de mercado, pero para gente que realmente necesita esos productos y tal vez paguen  10 pavos por ellas.”

“Es posible no no exista ni una categoría para el software que quieres construir, asique hay que ver la manera de llegar a tu público.”

En términos de modelo de negocio, no todos los mercados permiten diferentes tipos de modelo, como por ejemplo,

  • el usarla gratuitamente durante un tiempo y de pago pasado ese tiempo.
  • Tampoco la suscripción al servicio.
  • O un precio bajo por el núcleo de la aplicación y suplementos por el módulos adicionales.

El video original es Pricing and Business Models for Mobile Apps

Popularity: 24% [?]

Más allá del Hello Word!

Posted by Pablo August - 22 - 2009 - Saturday ADD COMMENTS

En la red se pueden encontrar cantidades ingentes de ejemplos de tu primera aplicación con Google Android, si bien rara vez nos encontramos con uno que difiera de lo que podemos encontrar en la web oficial para desarrolladores. Incluso los libros de 300 o 400 páginas no van mucho más allá de ahí. Por suerte, hay excepciones, y acaban de publicar en commonsware.com La Guía para Programadores Ocupados de Desarrollo de Aplicaciones Avanzadas con Android. Me llama la atención porque en el título original ‘Avanzados’ lo ponen en cursiva, por lo que interpreto que es más bien para un nivel intermedio. Ideal para aquellos que necesiten ejemplos para ir más alá del Hola Mundo.

En esta guía se cubre el uso de sensores, widgets en la pantalla de inicio, reproducción de contenido multimedia, o la implementación de servicios sofisticados. Desgraciadamente para la obtención el PDF es necesario registrarnos en CommonsWare por 35$ anuales, y con ello tenemos acceso a su biblioteca virtual sin restricciones durante un año. Pero al menos tenemos la oportunidad los ejemplo de código completamente ejecutables de cada capítulo a través de github.com: https://github.com/commonsguy/cw-advandroid/tree Yo ya me he hecho con ellos, ¿tú a qué esperas? ;-)

Otra gran iniciativa es la web OpenIntents, que espero vaya creciendo en número de Intents OpenSource que podemos usar.

Popularity: 24% [?]

Diseño de interactividad e interfaces híbridas.

Posted by Pablo August - 20 - 2009 - Thursday ADD COMMENTS

(O como hacer un intento de interfaz táctil).

Con la moda táctil implantada claramente por el Iphone muchos son los terminales que se suben al carro. Y los terminales HTC no han sido la excepción. Soy un feliz (aunque no siempre…) usuario de un Iphone desde hace ya un año y desde entonces gracias a mi trabajo he tenido la oportunidad de utilizar muchos terminales “táctiles”. Entre ellos el HTC Dream y el Hero. Y ambos -y supongo que el Magic también- pecan de ser semitáctiles en el manejo de su interfaz. Es decir, que la pantalla que tienen es táctil, pero la mayor parte del tiempo vas a tener que estar alternando entre la pantalla táctil y los botones para poder navegar y realizar distintas acciones en el terminal.

Ahora que puedo comparar, me parece un gran acierto por parte de Apple el apostar al 100% por el interfaz táctil, y no quedarse a mitad camino como al resto de terminales. En un Iphone solo usarás el botón central para ir a la home, o con doble pulsación para ir al listín telefónico, por lo demás, todas las acciones podrás realizarlas tocando la pantalla. Y esa es una comodidad enorme que les hace, una vez más, ser los reyes de las interfaces gráficas allá por donde pasan.

Por ejemplo, al navegar por una web nos encontaremos que en la parte superior tenemos la barra y la casilla de búsqueda, y en la parte inferior los botones de navegación, mientras que para desplazarnos por la pantalla lo haremos desplazando el dedo por la misma. En cambio, en un HTC Hero para volver a la página anterior en el historial de navegación tendremos que acceder al incómodo botón de vuelta atrás situado en la esquina inferior derecha del terminal, cosa bastante incómoda.

Todo este artículo puede parecer una chorrada, pero estos pequeños detalles son los que distinguen la imitación burda de la excelencia a nivel de diseño de interactividad.

Popularity: 21% [?]

A pesar de que un dirigente de Google digera recientemente que el futuro de las aplicaciones móviles pasa por el navegador web, hay toda una serie de beneficios en crear aplicaciones nativas en lugar de basarse exclusivamente en la web:

Ancho de banda
Los recursos estáticos como imágenes, rejillas y sonidos puede llevar a un excesivo consumo de datos en el dispositivo. Con las aplicaciones nativas el ancho de banda es menor, requiriéndo solo conexión para la actualización de datos.

Caché
Las soluciones móviles todavía no poseen el dónde la ubicuidad. Basándonos en el navegador puede que tengamos acceso intermitente a la aplicación. En una solución nativa los datos cacheados proveen de funcionaldiad a la aplicación sin necesidad de conexión contínua.

Características nativas
Los terminales con Android poseen muchas más características más allá del navegador; servicios de geolocalización, cámara, acelerómetro, etc. Con las aplicaciones nativas puedes combinar el acceso a información online con características propias del terminal para dar una experiencia de usuario más rica.

Del libro (en inglés) Android Application Development (Ed.Wrox)

Popularity: 12% [?]

Almacenamiento de archivos

Posted by Pablo July - 29 - 2009 - Wednesday ADD COMMENTS

Almacenamiento de archivos en Android

Según la guía oficial de desarrolladores Android, todos los datos de la aplicación (archivos incluidos) son privados de la aplicación. Realizando la compartición de información con otras aplicaciones mediante Content Providers. Son componentes opcionales que dan acceso a la lectura y escritura de datos de una aplicación. Android trae por defecto proveedores de contenido básicos para imágenes, video, audio, archivos y información personal de contacto.

Independientemente si queremos compartir información con otras aplicaciones, la forma de almacenar archivos (que no información, para lo que podemos usar el sistema de almacenamiento datos clave-valor o el API de sqlite) es mediente el uso de métodos del paquete android.content.*, especialmente de la clase Context.

Context.openInputFile()

public FileInputStream openFileInput (String name)
Abre un archivo privado en el paquete Context de la aplicación.

Parámetros:
name El nombre del archivo a abrir para su lectura; no puedo contener separadores.
Devuelve
FileInputStream input stream resultante
Lanza
FileNotFoundException

Análogamente,

Context.openOutputFile() abre un archivo para escritura.

En ambos casos especifican claramente que no es posible incluir un path en su ubicación, ya que esta siempre será el contexto de la aplicación en curso. Y por tanto no podemos usar directamente el framework de desarrollo de alto nivel si lo que queremos es estructurar de alguna manera el contenido que vamos guardando, y por ello tengamos que implementarlo con las librería de bajo nivel incluidas en Android 1.5. O bien, usar el path como nombre del archivo almacena, pero esta solución me parece menos limpia.

Usando la librería de bajo nivel convencional java.io.* necesitamos apuntar a la ruta de ubicación de archivos propia de la aplicación que estamos corriendo, pues es la única en la que tendremos permisos de lectura/escritura. Esta es/data/data/NOMBRE_DEL_PAQUETE/files/

A partir de ahí ya se puede crear subdirectorios y archivos con los correspondientes métodos del paquete.

subdirectories

Popularity: 17% [?]

HTC Hero

Posted by Julia July - 28 - 2009 - Tuesday 1 COMMENT

Por fin tengo el HTC Hero en mis manos! Aún no he tenido tiempo de “cacharrear” mucho con él, pero voy a dar mis primeras impresiones:

- En primer lugar, cuenta con un diseño elegante, caracterizado por una curva en la parte inferior. Tiene los 6 botones típicos en los terminales Android y una bolita que que facilita el manejo del terminal. Sin embargo, por el momento yo no he necesitado usarla, pues la interfaz que incorpora, HTC Sense es muy cómoda de usar.

- La interfaz HTC Sense, ofrece 5 escritorios sobre la misma pantalla, cada uno de los cuales es configurable. Por defecto, incorpora una pantalla con información meteorológica, una para cofigurar aplicaciones como el twitter, otra destinada al correo electrónico, la pantalla principal con el reloj y algunos widgets (mensajeria, explorador, calendario…), un quinto escritorio con algunos accesos directos (a la cámara, wi-fi, Bluetooth…)… La inferfaz va bastante bien, sin mucho retardo, aunque de momento tengo pocos widget y puede que al añadir más se haga más pesada…ya iré contando.

- De momento lo que más me está costando es acostumbrarme al teclado! No he pillado el truco y a veces pulso la tecla que no quiero…pero esto es como todo, cuestión de acostumbrarse!

- Aye cuando recibí el terminal, aún no tenía activada la tarifa Navehable, así que lo encendí sin insertar la tarjeta SIM. Tengo red inalámbrica en casa, así que me conecté y estuve navegando sin gasto alguno! jeje, esto me sorprendió positivamente! Es una ventaja lo del wi-fi, porque de esta manera estando en casa o en lugares con wi-fi, no tendremos que usar la conexión

de datos de Orange, que ya seabemos que no es la mejor…

Como ya he dicho, aún no he exprimido el HTC Hero al máximo así que poco más puedo contar…

Popularity: 12% [?]

Para que un proyecto genérico Java que sirva para la creación tanto de aplicaciones bajo JavaSE, JavaME y Java Android hay que tener en cuenta las siguientes consideraciones:

  • No hacer uso de librerías específicas de JavaME ni Java Android
  • Ser JDK compliance 1.3
  • En el proyecto Android deben estar vinculadas todas las dependencias, aunque éstas sean de segundo nivel o superior (esto es debido a la operativa del plugin Android para Eclipse). En el caso de MIDP no es necesaria esta consideración.
  • El uso de un JAR JavaSE en Android es inmediatamente convertido a bytecode ejecutable en la DalvikVM, que difiere del resto de implementaciones por estar orientada a registros, y no haciendo uso de clases ME, ni de AWT ni Swing, teniendo entonces su propio conjunto de paquetes que es un subconjunto de la implementación Java OpenSource Apache Harmony.

Popularity: 9% [?]

onCreate()

Posted by Pablo July - 15 - 2009 - Wednesday ADD COMMENTS

Bienvenido, arrancamos esta nueva aventura en el prometedor mundo de la plataforma para dispositivos móviles Android, de la que sobran presentaciones. Si has llegado hasta aquí sabrás de qué va esto, sino, don’t worry, invoquemos a la wikipedia para ayudarnos a aclararte:

Android es un sistema operativo para dispositivos móviles basado en el núcleo Linux. fue inicialmente desarrollado por Google y luego por la Open Handset Alliance. La presentación de la plataforma Android se realizó el 5 de noviembre de 2007 junto con la fundación Open Handset Alliance, un consorcio de 48 compañías de hardware, software y telecomunicaciones comprometidas a la promoción de estándares abiertos para dispositivos móviles.
Esta plataforma permite el desarrollo de aplicaciones por terceros (personas ajenas a Google), para lo cual, los desarrolladores deben de escribir código gestionado en el lenguaje de programación Java y controlar los dispositivos por medio de bibliotecas desarrolladas o adaptadas por Google, es decir, escribir programas en C u otros lenguajes, utilizando o no las bibliotecas de Google (compilándolas a código nativo de ARM ). Sin embargo, este esquema de desarrollo no es oficialmente soportado por Google.
La mayoría del código fuente de Android ha sido publicado bajo la licencia de software Apache, una licencia de software libre y código fuente abierto.

http://es.wikipedia.org/wiki/Android

Vamos a tratar tanto temas de implementación como aspectos de negocio y todo lo que rodea al ecosistema Android; todo lo que nos sea útil y que esperamos que también te lo sea a tí. Desde aspectos de la arquitectura a cuestiones de implementación con el framework de desarrollo de aplicaciones pasando por echar un vistazo a los terminales que van saliendo en el mercado. Y cuestiones más de negocio como la filosofía del Android Market, tiendas de aplicaciones alternativas y futuras propuestas de terceros que ya están en camino.

Popularity: 13% [?]