martes, 2 de junio de 2015


APLICACIONES MÓVILES (Apps)

 Una aplicación móvil o app (en inglés) es una aplicación informática diseñada para ser ejecutada en teléfonos inteligentes, tabletas y otros dispositivos móviles. Por lo general se encuentran disponibles a través de plataformas de distribución, operadas por las compañías propietarias de los sistemas operativos móviles como Android, iOS, BlackBerry OS, Windows Phone, entre otros. 




Existen aplicaciones móviles gratuitas u otras de pago, donde en promedio el 20-30% del costo de la aplicación se destina al distribuidor y el resto es para el desarrollador.
 El término app se volvió popular rápidamente, tanto que en 2010 fue listada como Word of the Year (Palabra del Año) por la American Dialect Society.



Tipos de aplicaciones según su desarrollo


A nivel de programación, existen varias formas de desarrollar una aplicación. Cada una de ellas tiene diferentes características y limitaciones, especialmente desde el punto de vista técnico.



Aplicaciones nativas


Las aplicaciones nativas son aquellas que han sido desarrolladas con el software que ofrece cada sistema operativo a los programadores, llamado genéricamente Software Development Kit o SDK. Así, Android, iOS y Windows Phone tienen uno diferente y las aplicaciones nativas se diseñan y programan específicamente para cada plataforma, en el lenguaje utilizado por el SDK.



Resultado de imagen para whatsappEste tipo de apps se descarga e instala desde las tiendas de aplicaciones —con ciertas excepciones en el caso de Android.



Las aplicaciones nativas se actualizan frecuentemente y en esos casos, el usuario debe volver a descargarlas para obtener la última versión, que a veces corrige errores o añade mejoras.


Una característica generalmente menospreciada de las apps nativas, es que pueden hacer uso de las notificaciones del sistema operativo para mostrar avisos importantes al usuario, aun cuando no se esté usando la aplicación, como los mensajes de Whatsapp, por ejemplo.
Además, no requieren Internet para funcionar, por lo que ofrecen una experiencia de uso más fluida y están realmente integradas al teléfono, lo cual les permite utilizar todas las características de hardware del terminal, como la cámara y los sensores (GPS, acelerómetro, giróscopo, entre otros).


A nivel de diseño, esta clase de aplicaciones tiene una interfaz basada en las guías de cada sistema operativo, logrando mayor coherencia y consistencia con el resto de aplicaciones y con el propio SO. Esto favorece la usabilidad y beneficia directamente al usuario que encuentra interfaces familiares.


Aplicaciones web


La base de programación de las aplicaciones web —también llamadas webapps— es el HTML, conjuntamente con JavaScript y CSS, herramientas ya conocidas para los programadores web.



En este caso no se emplea un SDK, lo cual permite programar de forma independiente al sistema operativo en el cual se usará la aplicación. Por eso, estas aplicaciones pueden ser fácilmente utilizadas en diferentes plataformas sin mayores inconvenientes y sin necesidad de desarrollar un código diferente para cada caso particular.



Las aplicaciones web no necesitan instalarse, ya que se visualizan usando el navegador del teléfono como un sitio web normal. Por esta misma razón, no se distribuyen en una tienda de aplicaciones, sino que se comercializan y promocionan de forma independiente.


Al tratarse de aplicaciones que funcionan sobre la web, no es necesario que el usuario reciba actualizaciones, ya que siempre va a estar viendo la última versión. Pero, a diferencia de las apps nativas, requieren de una conexión a Internet para funcionar correctamente.



Facebook cuenta tanto con una webapp como con una app nativa.
Adicionalmente, tienen algunas restricciones e inconvenientes en factores importantes como gestión de memoria y no permiten aprovechar al máximo la potencia de los diferentes componentes de hardware del teléfono.

Las aplicaciones web suelen tener una interfaz más genérica e independiente de la apariencia del sistema operativo, por lo que la experiencia de identificación del usuario con los elementos de navegación e interacción, suele ser menor que en el caso de las nativas.


Aplicaciones híbridas
Este tipo de aplicaciones es una especie de combinación entre las dos anteriores. La forma de desarrollarlas es parecida a la de una aplicación web —usando HTML, CSS y JavaScript—, y una vez que la aplicación está terminada, se compila o empaqueta de forma tal, que el resultado final es como si se tratara de una aplicación nativa.



Esto permite casi con un mismo código obtener diferentes aplicaciones, por ejemplo, para Android y iOS, y distribuirlas en cada una de sus tiendas.



A diferencia de las aplicaciones web, estas permiten acceder, usando librerías, a las capacidades del teléfono, tal como lo haría una app nativa.




Netflix tiene una aplicación híbrida que se ve prácticamente igual en iOS y en Android.

Las aplicaciones híbridas, también tienen un diseño visual que no se identifica en gran medida con el del sistema operativo. Sin embargo, hay formas de usar controles y botones nativos de cada plataforma para apegarse más a la estética propia de cada una.

Existen algunas herramientas para desarrollar este tipo de aplicaciones. 
Apache Cordova es una de las más populares, pero hay otras, como Icenium, que tienen la misma finalidad.


Algunos contenidos 
(ejemplos) son:

  • Guías turísticas: apps que permiten conocer de primera mano y en cualquier lugar información sobre un destino turístico, alojamientos, restaurantes, atracciones, etc. Muchas veces es útil en estas apps incorporar prestaciones como el geoposicionamiento o la realidad virtual.





  • Apps de eventos: cuando un usuario móvil asiste a un evento normalmente no tiene acceso a un ordenador personal para consultar información sobre ese evento. Muchas veces se reparten folletos o guías en papel que contienen la información del evento pero en algunos casos no pueden dar una respuesta en tiempo real de lo que está sucediendo en dicho evento. Además contribuyen poco a la sostenibilidad imprimiendo kilos y kilos de papel que acaban en la basura al finalizar el evento. Las apps de eventos ofrecen información actualizada, interactiva y con funcionalidades propias del medio, como puede ser la geolocalización, la realidad virtual, y en general cualquier proceso que pueda requerir una interacción del usuario en tiempo real. Hay aplicaciones móviles para todo tipo de eventos: conciertos, congresos, ferias, fiestas, etc. Algunos ejemplos de este tipo de apps son la guía para el Bilbao BBK Live, el XII encuentro iberoamericano de Ciudades Digitales, el festival de música ‘Getafe en vivo’ o la app de las fiestas de Bilbao.

desarrollo de aplicaciones móviles

  • Apps de transportes: uno de las necesidades más comunes de los usuarios móviles es precisamente acceder a información sobre medios de transporte que les permitan moverse. El celular o dispositivo móvil constituye el elemento de acceso a la información más común para estos usuarios. En el desarrollo de aplicaciones móviles este es un tema muy recurrente. Las apps suelen ofrecer información sobre líneas, recorridos, paradas, horarios, etc. Un ejemplo de estas apps es iBilbobus, la guía del transporte por autobús de Bilbao.






  • Utilidades: uno de los tipos de aplicaciones móviles que más éxito tiene es el que proporciona a los ciudadanos información que es útil en su vida diaria. Hay todo tipo de apps, como guías, listados, directorios, buscadores de todo tipo de cosas, etc. Se trata de ofrecer información al usuario y serle útil en contextos de movilidad, donde muchas veces no se tiene acceso a un ordenador u otro medio de información. Un claro ejemplo de este tipo de utilidades es la aplicación móvil del Colegio Oficial de Farmacéuticos (COF) de Gipuzkoa. En esta app se da la información sobre cuáles son las farmacias de guardia más cercana según la localización del usuario.






  • Apps solidarias: existen muchísimos tipos de apps, pero este tipo de apps, las que persiguen llevar al mundo móvil campañas solidarias. En muchas ocasiones estas apps pretenden difundir la información relativa a la campaña pero también enganchar de manera especial al usuario. Gracias a la interacción que permiten las aplicaciones móviles los usuarios pueden ser partícipes y no meros destinos de la información de este tipo de campañas. 




  • Apps de noticias: en muchos casos todo tipo de medios de comunicación se plantean (o ya se han planteado) tener una presencia en el mundo móvil específicamente pensada para este medio. No se trata simplemente de ‘ver en pequeño’ la información que se da en otros medios, sino de adaptar pensando en el usuario móvil. Un ejemplo de este tipo de aplicaciones es la adaptación al mundo móvil del grupo de comunicación Goiena. 











  • Apps de alimentación: Esta app nos permite llevar un seguimiento de las calorías que consumimos diariamente. Cuenta con una amplia biblioteca de alimentos y por si no encuentras alguno, tiene la opción de agregarlo manualmente. Además lleva un registro de los nutrientes principales de éstos: grasas, colesterol, sodio, potasio, carbohidratos, proteínas, y aporte de vitaminas, calcio y hierro. Un ejemplo es la aplicación: Contador de Calorías de MyFitnessPal.

Contador de Calorías MyFitnessPal





  • Apps de fotografía: Lejos quedaron los tiempos en los que las fotos sacadas con el celular quedaban en el olvido. Hoy, no sólo podemos capturar muy buenas imágenes, sino editarlas y mejorarlas. Un ejemplo es el: 


Resultado de imagen para snapseed iphone
       Snapseed: Este editor de            fotos permite mejorar y              transformar tus fotografías          con funciones súper                    avanzadas.


















  • Apps de entretenimiento: El ocio es una parte muy importante entre los usuarios de las terminales móviles, y a la vez un campo abierto para la explotar la creatividad empresarial al máximo. Las aplicaciones móviles destinadas al entretenimiento basan su variedad en muy diferentes parámetros, como el tipo de público al que se dirigen, la temática que buscan, el género en el que se ubican, o el propio grado de complejidad, tanto de diseño como de jugabilidad. Un ejemplo es la aplicación Spotify.







Componentes de una aplicación



Los componentes más importantes que podemos utilizar en la aplicación.


Estos componentes son implementados por las clases java que se encuentran en la carpeta src.

Activity (Actividad)

Nada más arrancar la aplicación nos aparece una pantalla con la que vamos a interactuar. Dicha pantalla es la que llamamos “Actividad”. El conjunto de actividades conforman la interfaz de usuario. Cada actividad es independiente entre sí, y cada una pertenece a una clase descendiente de Activity.


View (Vistas)



Las actividades se componen de una serie de elementos que llamamos “vistas”. El conjunto de vistas forman las actividades, siendo los elementos básicos de la interfaz de usuario. Las vistas pueden ser etiquetas, botones, entradas de texto,…. A la hora de definir las vistas, se puede hacer de forma programática utilizando código Java, pues todas son objetos descendientes de la clase View; o bien, utilizando un fichero .xml donde indicamos los objetos que queremos que la aplicación cree.


Layout

Cuando agrupamos de una determinada forma las vistas, formamos un conjunto de elementos al que llamamos Layout. Hay distintos tipos de Layouts, según queramos distribuir los elementos en la pantalla. Son objetos que descienden de View y también los podemos definir en la clase correspondiente mediante código, o bien utilizando archivos .xml (es lo más utilizado).

Service (Servicio)

No necesita de la interacción del usuario. Es como una sub-aplicación que se ejecuta en segundo plano, que realiza una serie de tareas dependiendo de la activación de determinados eventos externos, tales como la recepción de un correo electrónico, una alarma,…
Intent (Intención)

Cuando queremos que en nuestra aplicación se realice alguna acción, utilizamos lo que se llamaIntent. Los intent o intenciones, son lanzados para pasar a otra actividad, o para realizar una llamada telefónica,….
Broadcast receiver (Receptor de anuncios)

Cuando se recibe un anuncio del tipo broadcast, como por ejemplo una llamada entrante o que tenemos que poner a cargar la batería, existe un receptor de estos anuncios que reacciona al escucharlos. No tiene una interfaz de usuario, pero puede dar inicio a una actividad cuando recibe el anuncio.
Content Provider (Proveedores de contenido)

La lista de contactos de nuestra agenda de teléfonos, es un proveedor de contenido. Es decir, el Content Provider es una de las formas de acceder a una base de datos de otras aplicaciones de nuestro teléfono, y viceversa.