Que es PhoneGap


Phone Gap
PhoneGap es una de las mejores opciones (y mi favorita) que existen en el mercado para crear aplicaciones para móviles utilizando HTML5 + CSS3 + JS.
Vamos a intentar dejar claras en este post 10 ideas fundamentales sobre PhoneGap.
  1. PhoneGap es una tecnologia contenedora de aplicaciones que nos permite crear, utilizando HTML, CSS y Javascript, aplicaciones para móviles que se instalan nativamente
  2. La interfaz de una aplicación PhoneGap se crea utilizando HTML, CSS y Javascript. Esta interfaz nos la muestra PhoneGap a traves de un componente que es un navegador que toma el 100% del ancho y el 100% del alto de nuestro dispositivo.
  3. La vista web utilizada por PhoneGap es la misma vista web utilizada por el sistema operativo nativo. Asi, en iOS, esta vista será la clase UIWebView de Objective C; enAndroid será el componente android.webkit.WebView.
    Al haber diferencias en los motores de renderizado web entre sistemas operativos, tendremos que tener en cuenta esto para el desarrollo (y testeo) de nuestra interfaz.
  4. PhoneGap proporciona una API (Application Programming Interface) que nos permite acceder a las funcionalidades nativas de los dispositivos móviles utilizando Javascript. Así, podemos desarrollar toda la lógica de nuestra aplicación en Javascript y utilizar la API de PhoneGap para acceder a las funcionalidades nativas del dispositivo.
  5. Además de las funcionalidades que nos ofrece PhoneGap “de serie”, podemoscrear nuestros propios “plugins nativos“. Los plugins nativos de PhoneGap nos permiten crear nuestras propias clases nativas con su correspondiente interfaz en Javascript para usarlas en nuestras aplicaciones PhoneGap
  6. Las aplicaciones PhoneGap son desarrolladas con HTML, CSS y Javascript, sin embargo, el producto final de una aplicación PhoneGap es un archivo binario (IPA, APK, XAP…) listo para ser distribuido en los correspondientes marketplaces

    Para aplicaciones iOS se genera un archivo IPA (iOS Application Archive), para Android se genera in archivo APK (Android Package), para Windows Phone se genera un archivo XAP (Application Package), etc…
    Estos formatos son los mismo utilizados por las aplicaciones “nativas” y se pueden distribuir a traves de los canales correspondientes (iTunes Store, Android Market, Amazon Market, BlackBerry App World, Windows Phone Marketplace, etc…)
  7. La aplicacion cliente de PhoneGap se comunica con una aplicación en el servidor para recibir/enviar datos. La aplicacion en el servidor gestiona la logica de negocio y se comunica con la Base de Datos.

    El servidor suele ser un servidor web (Apache, IIS, nginx, etc..) que sirve una aplicacion escrita en un lenguaje de servidor como Java, PHP, Ruby, Node.js, etc… PhoneGap es agnostico en cuanto a tecnologia backend y puede trabajar con cualquier aplicacion en el servidor que utilize protocolos web estándares.
    La aplicación en el servidor implementa la lógica de negocio y los cálculos, y generalmente se encarga de leer/escribir en la base de datos.
  8. Las aplicaciones PhoneGap no suelen hablar directamente con una base de datos. Esta comunicacion es gestionada a traves de una aplicación en el servidor. La comunicacion con el servidor se suele basar en peticiones HTTP standard para contenido HTML, como REST-ful, XML, JSON, SOAP o websockets.
    Serian exactamente las misma técnicas que utilizarias en una aplicación de escritorio basada en AJAX
  9. La arquitectura de la aplicación cliente suele utilizar un modelo de página únicadonde toda la lógica de la aplicación está en una única pagina HTML. Esta pagina permanece cargada en memoria y los gestiona todo. Los datos se muestran actualizando el DOM HTML, los datos se guardan desde la aplicacion en el servidor a traves de técnicas AJAX y las variables se mantienen en memoria a traves de Javascript
  10. Para desarrollar aplicaciones PhoneGap, se suelen utilizar frameworks (como jQuery Mobile y Sencha Touch) que nos facilitan hacer que nuestra app se comporte y se vea como una aplicación nativa.

Enlaces y más:

¿Que opinas de PhoneGap? ¿Lo has utilizado ya? ¿Alguna alternativa mejor para desarrollo de aplicaciones para moviles? ¿Cual es tu experiencia? ¿Nos puedes recomendar algun framework para el desarrollo de la interfaz? Esperamos vuestros comentarios

Comentarios

Entradas populares de este blog

Instalar Ruby on Rails en Ubuntu 13.04

Navigation Drawer (Cajón de Navegación) Android

Preguntas de una entrevista de trabajo para Ruby y Ruby on Rails