Aqui explico que debemos considerar para la arquitectura de aplicaicones moviles para varias plataformas. Tanto HTML5 como aplicaciones nativas utilizando frameworks que nos permitan esto como Xamarin.
2. Que
significa
movil?
Que se pueda ver en cualquier dispositivo de
mano?
Por ejem.Tablets, SmartPhones, en cualquiera
de las plataformas moviles (demasiado
ambicioso!).
En las plataformas mas populares:
Android, iPad, iPhone,Windows Phone
8,Windows 8, Blackberry.
3. 2 Razones por
las cuales las
aplicaciones
moviles no
estan talladas
en piedra.
Primero: La industria de movilidad, nunca duerme,
toma los requerimientos y las oportunidades y las
mueve a un ritmo impresionante, asi que puede
cambiar cualquier definicion actual de una solucion
movil para incorporar aspectos en cuestion de 1 o 2
años, incluso de meses.
Segundo: Una solución móvil se aplica a un escenario
de negocio particular. El escenario empresarial
determina en última instancia los detalles de la
solución y tecnologías,los patrones de diseño y
plataformas que manejaran los desarrolladores y
arquitectos de software.
Por ejemplo: puede que necesites añadir algunos
applets de facebook o aplicaciones de escritorio
multiplataforma si la empresa tiene interaccion con las
redes sociales.
4. Como
abordar el
desarrollo
de una
aplicacion
movil ?
La aplicacion solo va a mostrar datos?
Vamos a colocar un portal en un App para un
dispositivo?
Es una Aplicacion nueva?
Con que tecnologia vas a abordarla, en cual
estas pensando?
Tienes la experiencia en la tecnologia?
HTML5, CCS3, JavaScript?
Aplicaciones nativas: Java, Xcode, XAML y C# ?
Cual plataforma? varias? Por cual vas a iniciar?
Necesito guardar datos locales?
Que motor de base de datos?
6. Pros y
Contras
desarrollo
HTML5,CS
S3 y
JavaScript
La facilidad de HTML5, la versatilidad de CSS3, la reutilizacion del
85% al 95% del código JavaScript
La utilizacion de frameworks javascript como jQuery, KendoUI, y
otros.
La curva de aprendizaje del lenguaje javascript por parte del
equipo de desarrollo
La curva de aprendizaje de CSS3 del equipo de desarrollo
Hay probabilidad que lo que te funcione de un framework, por
ejemplo jQuery, en Android, no funcione para iOS ni para
Windows Phone.
Hay riesgo de tener que utilizar una libreria especifcia para cada
plataforma diferente, esto incrementa la complejidad del
mantenimiento.
Es mas complejo acceder al hardware del dispositivo desde
javascript.
Implementacion del estandar HTML5 en los navegadores de cada
plataforma.
7. Pros y
Contras
desarrollos
nativos
Acceso a todo el hardware del dispositivo (camara,
lanzamiento de llamadas, etc.)
Aplicaciones mas rapidas, tienen mejor desempeño
queApps HTML5.
Si conozco el lenguaje de programacion minimize la
curva de aprendizaje del mismo.
Si no conozco el lenguaje Java ( Android), Objetive C
(iOS), C#,VB.NET, C++, XAML (Windows Phone), la
curva de aprendizaje hay que tenerla en cuenta.
Conocer el patron de la UI de cada plataforma que es
diferente, los controles UI no son iguales.
MVC Android e iOS
MVVM Windows Phone, Windows 8
8. Y elCross
Platform?
Existen herramientas que me permiten desarrollar
entre un 70% y un 80% (Apreciaciones de Roberto
Alvarado) para varias plataformas
Tienen costo adicional de la herramienta para el
proyecto
Hay tanto para HTML5 como para .NET C#
Herramientas:
Telerik DevCraft : www.Telerik.com
DevExpress DevExtreme (HTML5) :
www.devexpress.com
Xamarin (Nativo Android, iOS, Windows Phone) con
C#: www.xamarin.com
PhoneGap(HTML5, CSS3, javaScript)
www.phonegap.com
9. Conclusiones
Defina bien el alcance de su App
Es corporativa o es de consumo
Seleccione la plataforma de desarrollo desde el
principio. Es muy importante!
Seleccione cual de las plataformas es la que va
a lanzar primero.