30 de enero de 2012

Reporte Inicial

Ingeniería de Dispositivos Móviles
Reporte del proyecto

Introducción


Hablar de Dispositivos Móviles implica hoy en día una gran variedad de dispositivos de vanguardia que nos permiten llevar en nuestro bolsillo. Estos por lo general los podemos imaginar como aparatos pequeños, con una capacidad de procesamiento, una conexión permanente o intermitente a una red, memoria limitada, creados con funciones específicas, aunque esto último parece no ser así, ya que los dispositivos más recientes con un sistema operativo incluido permiten la adquisición de aplicaciones, las cuales hacen uso de los recursos del dispositivo mismo para brindarnos una gran variedad de funciones.

En pocas palabras con una definición general de dispositivo móvil podríamos hablar de un reproductor de audio, un navegador GPS, teléfonos móviles, PDAs o tablet PCs. Para esta materia nos enfocaremos en teléfonos móviles inteligentes y dispositivos tipo tablets por ser los más usados en la actualidad, y por ser los que ofrecen una gran variedad de aplicaciones multimedia y que además ofrecen la posibilidad de expansión.

Sistemas operativos en dispositivos móviles
Un sistema operativo se puede encontrar normalmente en la mayoría de los aparatos electrónicos que utilizan microporcesadores para funcionar, y que gracias a estos podemos entender la máquina y que ésta cumpla con sus funciones.

Entre los sistemas operativos para dispositivos móviles tenemos:
  • iOS - para productos de Apple
  • Symbian - teléfonos marca Nokia
  • Palm OS - para PDAs
  • Windows Mobile - adoptado por varias marcas de teléfonos
  • Android - también lo encontramos con diferentes marcas

Hablaré un poco de este último ya que es el sistema operativo de mi elección para desarrollar mi aplicación.

Android
Android es un sistema operativo móvil basado en Linux, que junto con aplicaciones middleware, está enfocado para ser utilizado en dispositivos móviles como teléfonos inteligentes y tablets. Es desarrollado por la Open Handset Alliance, la cual es liderada por Google.

Android, al contrario que otros sistemas operativos para dispositivos móviles como iOS o Windows Phone, se desarrolla de forma abierta y se puede acceder tanto al código fuente como al listado de incidencias donde se pueden ver problemas aún no resueltos y reportar problemas nuevos.

El que se tenga acceso al código fuente no significa que se pueda tener siempre la última versión de Android en un determinado móvil, ya que el código para soportar el hardware de cada fabricante normalmente no es público, así que faltaría un trozo básico del firmware para poder hacerlo funcionar en dicho terminal, y porque las nuevas versiones de Android suelen requerir más recursos, por lo que los modelos más antiguos quedan descartados por razones de memoria, velocidad de procesador, etc.

Las aplicaciones se desarrollan habitualmente en el lenguaje Java con Android Software Development Kit (Android SDK), pero están disponibles otras herramientas de desarrollo, incluyendo un Kit de Desarrollo Nativo para aplicaciones o extensiones en C o C++, Google App Inventor, un entorno visual para programadores novatos y varios cruz aplicaciones de la plataforma web móvil marcos.

El desarrollo de aplicaciones para Android no requiere aprender lenguajes complejos de programación. Todo lo que se necesita es un conocimiento aceptable de Java y estar en posesión del kit de desarrollo de software o SDK provisto por Google el cual se puede descargar gratuitamente.

Enlace para descarga de Android:
Android Developers

Cabe mencionar que Android es de las plataformas más usadas por los usuarios según la siguiente gráfica obtenida de las estadísticas de Nielsen en 2011.

Definición de mi proyecto


Como propuesta formal para mi proyecto de dispositivos móviles creare una aplicación a la que llamaré "Blogger Notifier". Trabajaré en la plataforma Android, que ya mencione antes esto, y junto con otra serie de herramientas como la API de blogger creare un servicio gratuito para seguir blogs interesantes.

En general mi proyecto será capaz de brindar al usuario un lector de blogs, añadidos por él mismo y que sea capaz de notificarle cuando en alguno de ellos se publica una nueva entrada.

En si la aplicación mostraría en forma de lista los blogs añadidos, donde los blogs con entradas más recientes se encuentran al inicio, esto sería para la pantalla principal de la aplicación. Tener otras dos secciones como Favoritos y Recientes, donde Favoritos son blogs marcados por el propio usuario como favoritos mediante la común estrella amarilla representativa para esto, y Recientes son los cuales han accedido últimamente, ya que aunque aparezcan siempre en la pantalla principal y que han sido añadidos por el usuario, no implica que se halla entrado directamente a ver el contenido de la entrada.

En el listado mencionado de blogs de forma predeterminada aparecería solo el título de la entrada con opción de extender la vista y ver el primero párrafo escrito o como en otros servicios feed los primeros 255 caracteres, y por lógica poder ver el blog completo desde la misma aplicación pero vista en su formato web nativo.

Aplicaciones existentes


Esta idea admito no es completamente original, sin embargo me interesa brindar un servicio diferente a los existentes. Los que he visto son lectores rss que es fácil ubicar en la mayoría de las páginas con contenido dinámico, pero en mi caso es un uso particular para seguir blog de la plataforma Blogger.

Algunas aplicaciones relacionadas a mi proyecto son las siguientes que encontré en el Android Market:
Simple Reader - Android App
RssDemon - Android App

Aún existiendo aplicaciones que den un servicio parecido al que brindaré y existiendo aparte de las anteriores algunas otras para plataforma iOS, lo hago pensando en que al ser un proyecto escolar, la aplicación será gratuita, cosa que en la mayoría de las ocasiones no encontramos ya que suelen cobrar por descargar la aplicación, o en aquellas versiones gratuitas ponen publicidad estorbosa que en mi caso entiendo pero no me gusta, y para mi aplicación pienso evitar eso y contar con un buen diseño.

Les muestro dos vídeos de aplicaciones para lectores rss de productos Apple. EL primero es la interfaz desde una tablet y el segundo de un teléfono móvil.





Y como podemos observar en los vídeos existe una mayor ventaja al usar una tablet ya que el espacio con el que disponemos es mayor y acomodar cosas resulta más fácil, al no tener que preocuparnos mucho en mostrar suficiente información en pantallas pequeñas como en teléfonos.

Pasos siguientes


La aplicación no debe de ser creada para un dispositivo con ciertas especificaciones por lo cual habré de investigar que recursos es posible encontrar en general en un dispositivo móvil y en posteriores entradas dar un análisis de el uso promedio de batería en las aplicaciones así como la que crearé, y métodos para que las notificaciones de nuevas entradas aparezcan inmediatamente en el dispositivo, tomando en cuenta que no es viable que la aplicación este descargando información de internet en todo momento.

Recursos consultados:
Dispositivos Móviles - Universidad de Oviedo
Dispositivos móviles - Ing. Juan Manuel Álvarez
Android - Wikipedia

24 de enero de 2012

Sexto Semestre

Esta es la entrada principal donde muestro el contenido general del blog. La imagen junto a la información de cada materia es una especie de etiqueta para lograr identificar entradas mediante la vista sidebar de blogger.
Este semestre estaré llevando las siguientes clases con la Dra. Elisa Schaeffer:

Ingeniería de dispositivos móviles + laboratorio


Como propuesta inicial para mi proyecto de dispositivos móviles es una aplicación llamada "Blogger Notifier". Trabajaré en la plataforma Android, junto con otra serie de herramientas como la API de blogger. Mi aplicación tiene el objetivo de brindar al usuario un lector de blogs añadidos por el propio usuario y que sea capaz de notificarle cuando en alguno de ellos se publica una nueva entrada.

Cómputo integrado + laboratorio


Mi proyecto realizado con el arduino consiste en un alcoholímetro que indique la intensidad de alcohol bebido y que en caso de estar suficientemente ebrio no te permita hacer uso de la computadora.

Sistemas distribuidos y paralelos + laboratorio


Trabajaré principalmente en el equipo encargado de buscar aplicaciones en la vida real de los sistemas distribuidos y paralelos, y completaré mi trabajo en clase ayudando al equipo de trabajo especializado en algoritmos.

Modelado y simulado de sistemas dinámicos


Trabajos de investigación referentes a los temas vistos en cada semana.