1 de octubre de 2013

Ejemplo de jQuery Mobile

Ejemplo de jQuery Mobile


En esta entrada publicare un pequeño código para mostrar lo sencillo que es desarrollar una aplicación web móvil con jQuery Mobile. Como se muestra en el recuadro que se encuentra a continuación, una típica página de jQuery Mobile tiene tres secciones: un encabezado, contenido y pie de página.

El código anterior genera una vista similar a la que se muestra en la siguiente figura.

La sección de encabezado es donde normalmente se coloca los encabezados de página y/o logos. La sección de contenido es donde la web específica de la aplicación y el contenido de los diferentes widgets. La sección de pie de página es ideal para la navegación.

Para aprovechar las funciones de jQuery Mobile avanzadas y la sintaxis HTML, un documento HTML jQuery Mobile debe definir el doctype HTML5. El resto del documento HTML consta de:
  • El encabezado contiene las referencias a jQuery Mobile y los temas CSS.
  • La sección del cuerpo contiene el contenido de la aplicación Web.
  • El pie de página puede ser fácilmente utilizado como una barra de navegación.
Con el siguiente código se muestra un ejemplo de un documento jQuery Mobile con HTML5.

<!-- Definir el doctype HTML5: -->

<!DOCTYPE html>

<!-- Definir el <head> HTML5 con referencias a jQuery, jQuery Mobile y temas CSS móviles: -->

<html>

<head>
    <title> Título de la página </title>

    <meta name="viewport" content="width=device-width, initial-scale=1">

    <link rel = "stylesheet" href="http://code.jquery.com/mobile/1.1.0-rc.1/jquery.mobile-1.1.0-rc.1.min.css "/>
    <script src="http://code.jquery.com/jquery-1.7.1.min.js"> </script>
    <script src="http://code.jquery.com/mobile/1.1.0-rc.1/jquery.mobile-1.1.0-rc.1.min.js "> </script>
</head>

<!-- Definir el <body> documento HTML que incluye los elementos móviles de jQuery: -->

<body>

<div data-role="page" id="page1">
    <div data-role="header">
       <h1> HEADER </h1>
    </div>

    <div data-role="content">
       <p>
       ÁREA DE CONTENIDO
       </p>

    </div>

    <div data-role="footer">
       <h1> FOOTER </h1>
<!-- El pie de página se puede convertir en una barra de navegación muy fácilmente, como sigue: -->
      <center>
       <div data-role="footer" class="ui-bar">
        <div data-role="controlgroup" data-type="horizontal">
         <a href="index.html" data-role="button"> One </a>
         <a href="index.html" data-role="button"> Two </a>
         <a href="index.html" data-role="button"> Tres </a>
         <a href="index.html" data-role="button"> Ninguno </a>
        </div>      
       </div>
      </center>

    </div>
</div>

<div data-role="page" id="page2">
:
:
</div>

</body>
</html>




El resultado del código anterior se puede observar en la siguiente figura.

Referencias:
[1] http://www.ibm.com/developerworks/library/wa-jquerymobileupdate/index.html
[2] http://jquerymobile.com/demos/1.2.0/
[3] http://the-jquerymobile-tutorial.org/

Breve reseña de jQuery Mobile

Introducción


jQuery Mobile es un excelente Framework para la creación de aplicaciones web para dispositivos móviles. Desarrollado en base al popular jQuery y su interfaz de usuario (UI), jQuery Mobile es un Framework eficaz y unificado para escribir aplicaciones web para móviles. Con jQuery Mobile se puede asegurar del diseño y comportamiento persistente a través de diferentes plataformas móviles. Las características básicas de jQuery Mobile incluyen:
  • Simplicidad y flexibilidad general: El Framework es fácil de usar. El desarrollador puede:
    • Desarrollar páginas utilizando principalmente etiquetado manejado con poco o sin Javascript.
    • Uso de JavaScript avanzado y eventos.
    • Uso de un único documento HTML con múltiples páginas embebidas.
    • División de la aplicación en varias páginas.
  • Mejora progresiva y la degradación agraciada: Mientras jQuery Mobile aprovecha lo último de HTML5, CSS 3 y JavaScript, no todos los dispositivos móviles cuentan con soporte para estas tecnologías. La filosofía de jQuery Mobile es apoyar a tanto dispositivos de gama alta y de menor capacidad, como los que no tienen soporte de JavaScript y aun así proporcionar la mejor experiencia posible.
  • Soporte para el tacto y otros métodos de entrada: jQuery Mobile proporciona soporte para diferentes métodos de entrada y eventos: el tacto, el ratón y el cursor de enfoque basados en los métodos de entrada de usuario.
  • Accesibilidad: jQuery Mobile se ha diseñado pensando en la accesibilidad. Tiene soporte para Aplicaciones de Internet Enriquecidas Accesibles (WAI-ARIA) para ayudar a hacer páginas web accesibles para los visitantes con discapacidades que utilicen tecnologías de asistencia.
  • Ligero y modular: El Framework es ligero, con un tamaño total (miniaturizada y comprimido para la versión 1.0.1) de 24KB para la biblioteca JavaScript 7KB para la CSS, además de algunos iconos.
  • Tematización: El Framework también proporciona un sistema temático que le permite utilizar y definir su estilo propio. Con la nueva aplicación ThemeRoller el desarrollador puede crear fácilmente sus propios temas.

El Framework de jQuery Mobile incluye todos los componentes de interfaz de usuario necesarios para la construcción de aplicaciones web completas móviles y sitios web: páginas, cuadros de diálogo, barras de herramientas, diferentes tipos de vistas de lista, una gran variedad de elementos de formulario y botones, y mucho más. Además jQuery Mobile se basa en la parte superior del núcleo de jQuery, por lo que tiene acceso a los servicios esenciales, entre ellos: HTML y el modelo de objetos de documento (DOM) XML de desplazamiento y manipulación, gestión de eventos, la comunicación servidor usando Ajax y efectos de animación e imágenes de las páginas web.

Con jQuery Mobile se pueden escribir aplicaciones básicas de Internet móvil sin mucho esfuerzo. Debido a que jQuery Mobile es un Framework muy amplio con eventos avanzados y muchas APIs, también se pueden escribir aplicaciones avanzadas de Internet móvil y sitios web.

Compatibilidad con navegadores móviles


Los navegadores web móviles han recorrido un largo camino, pero no todos los dispositivos móviles ofrecen soporte para HTML5, CSS 3 y JavaScript. En este escenario es donde se puede observar como la consolidación progresiva de jQuery Mobile y el apoyo de la degradación agraciada entran en juego.

jQuery Mobile es compatible tanto con dispositivos de gama alta y menos capaces, como los que no tienen soporte de JavaScript. La “Mejora progresiva” es una filosofía de diseño, consta de los siguientes principios básicos:
  • Todo el contenido básico debe ser accesible a todos los navegadores.
  • Toda la funcionalidad básica debe ser accesible a todos los navegadores.
  • Disposición mejorada mediante CSS’s externamente vinculadas.
  • Comportamiento mejorado mediante JavaScript externamente vinculadas.
  • Las preferencias del navegador del usuario se respetan.

Todo el contenido básico debe representarse (según el diseño) en los dispositivos básicos, mientras que en las plataformas y navegadores más avanzadas se deben mejorar el contenido progresivamente con el uso de JavaScript y CSS.

jQuery Mobile proporciona soporte para un gran número de dispositivos móviles. jQuery Mobile clasifica (o agrupa) los dispositivos soportados en tres categorías en función de su nivel de soporte:
  • Grado A: Los dispositivos con soporte para una experiencia totalmente mejorada con Ajax basadas en transiciones de página animadas. jQuery Mobile es compatible con más de 20 dispositivos diferentes, incluyendo: iOS 3.2 a 5.0; Android 2.1-2.3 y 3.0, BlackBerry Playbook y 6-7; Skyfire 4.1, Opera Mobile, y el escritorio navegadores Chrome, Firefox, Internet Explorer y Opera.
  • Grado B: Los dispositivos con soporte para una experiencia mejorada pero sin las funciones de Ajax de navegación. Los dispositivos compatibles incluyen: BlackBerry 5.0, Opera Mini 5.0-6.5, y Nokia Symbian.
  • Grado C: Los dispositivos con soporte básico que utilizan solo HTML. Los dispositivos compatibles incluyen: la mayoría de los Smartphone BlackBerry, incluyendo 4.x, Windows Mobile, entre otros.

 Referencias:
[1] http://www.ibm.com/developerworks/library/wa-jquerymobileupdate/index.html
[2] http://jquerymobile.com/demos/1.2.0/
[3] http://the-jquerymobile-tutorial.org/

21 de septiembre de 2013

Aplicaciones Móviles Web: Ventajas y Desventajas



Aplicaciones Móviles Web

La principal característica de las aplicaciónes móviles Web es que son Multiplataforma. Aunque se requieran algunos ajustes, una aplicacion móvil Web funciona generalmente en todos los dispositivos móviles. La tecnología utilizada en este tipo de aplicaciones es más sencilla que la necesaria para desarrollar aplicaciones nativas, teniendo la opcion de utilizar lenguajes como HTML5, JS o CSS. En consecuencia es mucho más extendida, popular y general.


Debido a que funcionan con independencia de los canales de distribución de operadores y fabricantes, no se someten a ningún control, ni en la publicación inicial ni en las posteriores actualizaciones, como sucede por ejemplo con las aplicaciones en el App Store, Play Store o Marketplace. Por tanto, no hay revisión de las versiones que se publiquen, y las actualizaciones llegan de manera automática a todos los usuarios y plataformas a la vez.


Relacionado con lo anteriormente mencionado, la independencia del canal de distribución permite un mayor control de la política de precios sobre la distribución de contenidos desde la aplicación (in-App), evitando los rangos fijos, como los que tiene establecidos el App Store. Adicionalmente a la libertad en la política de precios, una aplicación móvil Web permite implementar uno o varios mecanismos de pago diferentes y de esta manera no tener que pagar las altas comisiones de las tiendas de aplicaciones (alrededor del 30%). Como inconvenientes, la descentralización del Store implica un mayor esfuerzo de marketing para que los usuarios tengan conocimiento de la disponibilidad de la aplicación, además de necesitar más recursos para distribuir la aplicación.

Teniendo en cuenta las características mencionadas, para desarrollar una aplicacion móvil es necesario ajustar el desarrollo al tipo de aplicación que ofrezca mayores prestaciones para el tipo de contenido, objetivo y funcionalidad. Es decir, aplicaciones como Páginas Amarillas o GasAll, cuya funcionalidad principal es la utilización del GPS integrado para determinar qué establecimientos o gasolineras están más cerca, en función de la posición del usuario, no tendrían sentido como aplicación web.
 
Por el contrario, tenemos el ejemplo de un sector tan influyente como el editorial, como la cara más visible de una tendencia que se va asentando. Ante la negativa de aceptar las condiciones de Apple, se decantan por las aplicaciones web basadas en HTML5. El caso más escuchado es el Financial Times. Después de varios meses de tira y afloja, Apple ha optado por retirar la aplicación de esta cabecera de prácticamente todos los Stores. El detonante, la normativa relativa a la suscripción de contenidos, puesto que las Guidelines de Apple obligan a realizarlas a través del Store y, de esta manera, retienen el 30% de los beneficios generados. Dado que la funcionalidad de la aplicación del Financial Times no requiere de las prestaciones del iPhone o del iPad, al optar por una aplicación web evitan las revisiones de Apple y, al mismo tiempo, consiguen que los suscriptores accedan al contenido desde cualquier dispositivo y que el beneficio obtenido con las suscripciones de los usuarios se quede íntegramente en sus arcas.


7 de septiembre de 2013

Apps Nativas: Ventajas y Desventajas

Apps Nativas



De las aplicaciones nativas habría que destacar en primer lugar que permiten explotar al máximo las prestaciones integradas en los dispositivos, tales como el GPS, acelerómetro, captura de imágenes, audio y vídeo, 3D, agenda de contactos, calendario, etc.


Permiten aprovechar el canal de distribución y el escaparate que representan los “Stores” de los diferentes fabricantes y operadores. Ofrecen más posibilidades en el área de marketing y branding, aunque esta tarea debe superar la barrera de la visibilidad. Permiten el envío de Push Notifications, una herramienta muy útil para mantener al usuario informado de noticias de última hora, o de actualizaciones disponibles en el Store.



Las compras dentro de aplicación del Store se realizan a través de la cuenta de usuario del dispositivo, por lo que el proceso es muy sencillo para cualquier usuario y no requiere facilitar los datos de la tarjeta de crédito. Permiten la sincronización o el cacheo de datos para funcionar off-line. De esta manera, el usuario podrá acceder a los contenidos de la aplicación incluso cuando no haya buena cobertura de red. Aunque en HTML5 ya hay mecanismos para el funcionamiento off-line, todavía está poco desarrollado y no se pueden garantizar buenos resultados.



A diferencia de las aplicaciones web, las aplicaciones nativas proporcionan una mejor experiencia de usuario, puesto que la interfaz no tiene que cargarse junto con el resto de datos.

Referencia:

[1] http://sixrevisions.com/mobile/native-app-vs-mobile-web-app-comparison/
 

6 de septiembre de 2013

Plataformas de desarrollo para iOS

App Cloud Core [1]


App Cloud Core, una nueva edición gratuita de la plataforma de aplicaciones de la compañía que permite a los desarrolladores web utilizar HTML5 y JavaScript para desarrollar y gestionar aplicaciones nativas (las compiladas a nivel de código ensamblador del sistema operativo) para teléfonos inteligentes y tabletas con sistemas iOS yAndroid.

App Cloud Core cuenta con un paquete de desarrollo de software de código abierto, potentes herramientas de prueba y corrección de errores, compilación ilimitada en la nube y estadísticas en tiempo real para el seguimiento de la instalación y uso de aplicaciones.

Basada en la plataforma inteligente de contenidos en la nube de Brightcove, App Cloud Core permite tanto a desarrolladores como a profesionales crear y gestionar aplicaciones nativas de calidad. Concretamente, ofrece:
  1. Publicación ilimitada de aplicaciones para teléfonos inteligentes y tabletas con sistemas iOS y Android.
  2. Compilación multiplataforma en la nube para generar aplicaciones nativas de calidad y listas para su distribución en distintos dispositivos.
  3. Paquete de desarrollo de aplicaciones en código abierto basado en JavaScript y contenedores nativos para crear aplicaciones con acceso a API nativas de dispositivos y evitar tener que aprender lenguajes específicos para cada plataforma, así como una extensa librería de componentes para generar experiencias de usuario en dispositivos táctiles con soporte para texto, audio, vídeo, imágenes y cualquier tipo de datos.
  4. La herramienta de pruebas App Cloud Workshop permite a los desarrolladores pre visualizar y hacer pruebas de las aplicaciones directamente en el dispositivo, igual que si estuviesen probando una aplicación web en un navegador.
  5. Corrección de errores en el dispositivo para probar el código de la aplicación mientras se está ejecutando en el dispositivo. Con un simple movimiento del dispositivo, los desarrolladores pueden conectar el entorno de pruebas de App Cloud Workshop con la consola de corrección de errores a distancia de App Cloud para diagnosticar rápidamente los problemas y resolver los errores o problemas de rendimiento.
  6. Acceso libre a fuentes de contenido en Internet incluidos sistemas de gestión de contenidos, blogs y servicios web basados en REST, y uso limitado del servicio de optimización de contenidos Fast Feeds de App Cloud para un total de hasta cinco de estas fuentes.
  7. Estadísticas en tiempo real para medir el número de instalaciones, sesiones abiertas, tiempo de uso y tiempo medio por sesión en cada una de las aplicaciones.
Para disponer de funciones más avanzadas es posible actualizar App Cloud Pro, que permite a empresas de todo tipo sacar el máximo partido de todas las funciones de App Cloud, incluidos los potentes servicios de contenidos en la nube y funciones diseñadas especialmente para profesionales como estadísticas en tiempo real, envío ilimitado de notificaciones instantáneas, transcodificación de imágenes, optimización de contenidos y posibilidad de actualizar las aplicaciones de forma sencilla. Con App Cloud Pro las empresas podrán crear y gestionar de forma rentable gran cantidad de aplicaciones.

Xcode [2]

Xcode es el entorno de desarrollo integrado (IDE, en sus siglas en inglés) de Apple Inc. y se suministra gratuitamente junto con Mac OS X. Xcode trabaja conjuntamente con Interface Builder, una herencia de NeXT, una herramienta gráfica para la creación de interfaces de usuario.

Xcode incluye la colección de compiladores del proyecto GNU (GCC) y puede compilar código C, C++, Objective-C, Objective-C++, Java yAppleScript mediante una amplia gama de modelos de programación, incluyendo, pero no limitado a Cocoa, Carbón y Java. Otras compañías han añadido soporte para GNU Pascal, Free Pascal, Ada y Perl.

Entre las características más apreciadas de Xcode está la tecnología para distribuir el proceso de construcción a partir de código fuente entre varios ordenadores, utilizando Bonjour.

Referencias :


[1] http://es.wikipedia.org/wiki/Xcode

[2] http://www.distractable.net/coding/iphone-android-web-application-frameworks/