Framework and Tools Mobile


Vamos a revisar el contexto de las herramientas con las que contamos al momento de diseñar una solución móvil. Podemos elegir trabajar con soluciones estructuradas con:
- Apps nativas
- Apps Web
Las Apps nativas son soluciones desarrolladas bajo un lenguaje puro y nativo para cada sistema operativo móvil. Las aplicaciones para Android son desarrolladas con Java a través de la API que Google ha creado a partir de la JavaME. Las aplicaciones para IOS el sistema operativo de Apple son desarrolladas con Objective C, un lenguaje derivado de C++.
Las Apps web son soluciones que buscan principalmente portabilidad y utilizan las propiedades del navegador para sus requerimientos. Estas son desarrolladas con HTML5, JavaScript y CSS.
La decisión de diseñar una aplicación a partir de apps nativa o apps web es condicionada por los requerimientos de la solución que solicita el cliente.

En una arquitectura para solución móvil también se maneja el concepto de capas como en una arquitectura empresarial a gran escala. Los principales componentes a modo muy general son:
- UI, Interfaz de usuario: Formada por los componentes que administra las vistas, diseño, estilo y controladores de eventos de los usuarios. Es importante contar son un mapa de navegación del cual hablaremos en otro artículo. 
- DAA, Data Access Activity: Componente de integración tanto a la persistencia local como a las BD externas. Para la integración con la base de datos externa es necesario apoyarse en el componente de CWS para ofrecer integración a través de servicio.
- Consumer WS: Componente que implementa la administración de los clientes que harán consumo de servicios para uso de la aplicación, dentro de estos se encuentra los servicios para integración a BD externas, recursos u otros servicios.
- Manager Peripherals: Componente gestor de los periféricos que la solución requiere manipular (GPS,Acelerómetro,Bluetooth, etc).
El diseño de una solución de arquitectura no es tan sencillo como se presenta acá, pero si se representa a manera muy general.
Arquitectura genérica de una solución móvil

Para la implementación de cada componente de arquitectura podemos apoyarnos en frameworks y librerías que ayudaran a llevar a cabo la realización de un proyecto en un tiempos aceptables y bajo estándares recomendados. Para el nivel de presentación o UI de un proyecto Android nativo tenemos:
- DroidUX
- GreenDroid
- ActionBarSherlock
- DroidDraw
- SPB UI Builder
Para proyectos IOS nuestra mejor opción es el framework UIKit soportado por Cocoa Touch que permite entre otras cosas:
- Creación y administración de interfaces de usuario.
- Administración de eventos sobre las interfaces.
Si diseñamos una solución multiplataforma y los requerimientos los permiten, nos inclinamos por una solución basada en HTML5. En ese caso contamos con una gama amplia de herramientas para brindar la implementación de la solución tales como:
- KendoUI
- JQTouch
- DojoMobile
Todas estas soportadas por los frameworks PhoneGap y SenchaTouch.

Por ahora esto es lo correspondiente al nivel de presentación, en siguientes artículos revisaremos los demás componentes.



Thanks for your comment