Clasificacion de las aplicaciones


Aplicaciones nativas


Una app nativa, en principio (y solo en principio), es una aplicación que se desarrolla directamente en el lenguaje nativo de cada terminal. Por eso, si vamos desarrollar una App nativa tendremos que utilizar un lenguaje diferente para cada Sistema Operativo. Los lenguajes de programación serán por tanto los siguientes:

iOS: Objective C
Android: Java
Windows: C# y Visual Basic .NET.
BlackBerry 10

Obviamente todo depende del nivel y experiencia del equipo de desarrollo y de que el código resultante de su trabajo sea el correcto, pero en principio, una App nativa es la opción cuyo resultado es el más robusto y fluido ya que se desarrolla directamente para integrarse en el Sistema Operativo. Si tu App surge de una buena idea y un diseño bien trabajado a todos los niveles, la experiencia de usuario será completa ya que su funcionamiento, rendimiento y respuesta será el más inmediato de todas las opciones de desarrollo incluso en los diseños más complejos y personalizados.

Desarrollar Apps nativas te permitirán:

· Tener acceso a todo el hardware del móvil como puede ser el GPS, la cámara y demás accesorios.
· Acceso a todas las librerías gráficas del SO (botones, etc).
· Envío de notificaciones push, una de las herramientas de comunicación más potentes de las Apps.
· Modular todas las ventajas que ofrece estar las diferentes stores de aplicaciones como puede ser integrar contenidos de pago para modelos de negocio Freemium mediante In-App Purchasing.
· Sincronizar o cachear datos para funcionar sin conexión a internet.

Las desventajas son fundamentalmente del tipo económico ya que, como decíamos antes, para hacer apps nativas debemos conocer los diferentes lenguajes de programación de cada Sistema Operativo. No será posible reutilizar el código de un SO en otro y no solo eso, debes tener en cuenta que las Apps necesitan actualizaciones a nuevas versiones del SO, mantenimiento y/o aumento y mejoras de las funcionalidades… y todas estas cosas deberás hacerlas directamente en el código nativo de cada plataforma.

Por lo tanto, realizar tu proyecto en nativo te obligará a contar con una plantilla de técnicos con alta preparación y experiencia en lenguajes mucho menos utilizados entre los desarrolladores (comparado por ejemplo con lenguajes web). Los programadores expertos en estos lenguajes están muy solicitados y a mayor nivel y experiencia, mayores serán sus expectativas económicas. Factores sin duda determinantes en el precio final de todo desarrollo.

 Aplicaciones híbridas

Generalmente consisten en Apps que contiene en su interior el navegador web del dispositivo. Para su desarrollo se utilizan frameworks de desarrollo basados en lenguajes de programación web (HTML, CSS y JS). Actualmente Phonegap es el más conocido (aunque no el único) y el que concentra mayor número de desarrolladores a su alrededor.
En este tipo de Apps el nivel de integración con el SO dependerá del framework de desarrollo utilizado y como de abierto sea el SO (BlackBerry 10 es todo un ejemplo), teniendo cada uno de ellos sus ventajas e inconvenientes. Actualmente con esta opción tendrás bastante acceso al hardware del teléfono e incluso en algunos casos a las librerías del SO, pero lo cierto es que aunque de momento no se ha conseguido igualar la respuesta y la experiencia de usuario de una App nativa, hay que reconocer que va camino de hacerlo.

De todas maneras, la cosa ha ido evolucionando a desarrollos más complejos en los que ciertas funcionalidades se ejecutan como una web y otras en nativo, como por ejemplo Instagram que utiliza nativo para hacer y publicar la fotografía, pero web para desplegar las fotografías y perfil.
Su uso es una opción muy económica y muy interesante para llegar al mayor número de usuarios repartidos en las diferentes plataformas y dispositivos aunque por el momento sus limitaciones son claras.

Aplicaciones Web

Pues una Aplicación Web o Web App es precisamente eso, una web a la que se accede a través de una URL en el navegador del dispositivo (Safari, Chrome o el que sea) y se adapta al formato de tu pantalla para que tenga aspecto de navegación App. Los navegadores de los móviles permiten crear un acceso directo en nuestro escritorio de esta web, así que esa será la manera de “instalarla” (si se le puede llamar así) en nuestro dispositivo.

En función de como sea nuestro proyecto tecnológico quizá solo nos interese adaptar nuestra web a formato móvil con lo que hacer una Web App se convierte en una solución estupenda. O quizá consideremos necesario que además de tener nuestra App en las diferentes tiendas, tener una versión web a la que se acceda desde un navegador, en ese caso es importante que tengas en cuenta que muchos de los diferentes frameworks de desarrollo híbridos que existen (y también Titanium Appcelerator) te permitirán un desarrollo multiplataforma completo que incluirá también la web.
A nivel de lenguajes de programación pues efectivamente es lo que estás suponiendo: al ser una web deberás usar lenguajes de programación web (HTML, CSS y Javascript).

Sus inconvenientes principales son:
Están altamente limitadas en el acceso al hardware del dispositivo.
Tiempos de respuesta y experiencia de usuario propios de una navegación web.
No se encuentran en las Stores, siendo este el lugar donde la gente está acostumbrada a buscar apps.


Comentarios

Entradas populares de este blog

Presentación del curso