Usuario:Juanda/phonegap/Introducción

= Introducción =

Situación actual

 * Hay muchas plataformas distintas para smartphones en el mercado
 * Android, iPhone, BlackBerry, Nokia, Windows7 Phone, WebOS
 * Han aparecido otras nuevas como Bada y Meego
 * La fragmentación es fuerte entre los distintos fabricantes ya que no se sigue ningún tipo de especificación o estándar común

Ha pasado antes

 * Desarrollos para Linux/Unix, Windows y Mac
 * Aparece Java
 * Desarrollo Web para distintos navegadores: Explorer, Safari y Firefox
 * Aparecen nuevos navegadores como Chrome y Opera provocando mayor fragmentación
 * Aparecen frameworks como jquery, YUI o Google Web Toolkit
 * Los navegadores empiezan a seguir las especificaciones de la W3C y últimamente casi todos se apoyan en WebKit (el último Opera).

Tipos de aplicaciones móviles

 * Aplicaciones aisladas
 * Alarma
 * Gestor de llamadas
 * Explorador de archivos


 * Aplicaciones basadas en web services
 * e-mail
 * calendario
 * cliente de Twitter

Tipos de desarrollo web

 * Aplicaciones Web accesibles via navegador


 * Web Services
 * Se usan métodos http
 * No tiene control de estado
 * Estructura directorios como URI
 * Se envían ficheros XML, JavaScript Object Notation (JSON), o ambos.
 * Extensa lista de aplicaciones web que permiten consumir Web Services

Tipo de aplicaciones Web con PhoneGap

 * PhoneGap sirve para realizar aplicaciones que utilicen las características del dispositivo:
 * Camara, GPS, libreta de teléfonos....


 * La mayoría de las aplicaciones web basadas en PhoneGap consumirán mediante javascript servicios web
 * Ejemplos de aplicaciones de este tipo serían Google Maps, FourSquare...

Necesidades en desarrollos web para móviles

 * Desarrollo de la aplicación para varias plataformas
 * La experiencia de usuario en la aplicación debe ser consistente entre plataformas:
 * Un usuario puede migrar de SO incluso utilizar varios
 * La experiencia de usuario podría variar entre dispositivos en función de las características y capacidades de los dispositivos


 * Varios equipos de desarrollo no siempre es la mejor opción, por las necesidades de coordinación inherentes.



PhoneGap

 * Se basa en la parte común de todos los dispositivos móviles: el navegador
 * Los nuevos navegadores se adhieren a estándares como HTML5/CSS3.
 * HTML5 nos da mucha funcionalidad: procesos en background mediante web workers, soporte offline, base de datos...
 * CSS3 permite que nos despidamos de flash para realizar gradientes, bordes redondeados, páginas responsivas, vistas de impresión, etc.
 * Todas las plataformas móviles excepto Windows 7 Phone utilizan un navegador basado en webkit



Webviews

 * Piensa en una aplicación PhoneGap como un navegador embebido (sin marco, "chromeless browser") dentro de la aplicación y que ejecuta HMTL5/CSS.
 * Estos navegadores embebidos es lo que se conoce como webview
 * Cada una de las pantallas de nuestra aplicación será un webview.
 * Desde el webview ejecutaremos código JavaScript que comunicará con código nativo del dispositivo.
 * Todos los dispositivos permiten al código en JavaScript hacer llamadas a código nativo en Java/C++/Objective C y al revés.