10
Consideraciones para desarrollar Aplicaciones moviles para varias plataformas Roberto Alvarado Taborda Arquitecto de Software .NET Microsoft MVP C# @RAlvaradoT / [email protected]

Consideraciones para desarrollar aplicaciones moviles para varias plataformas

Embed Size (px)

DESCRIPTION

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.

Citation preview

Page 1: Consideraciones para desarrollar aplicaciones moviles para varias plataformas

Consideraciones para desarrollar Aplicaciones moviles para varias plataformasRoberto Alvarado Taborda

Arquitecto de Software .NET

Microsoft MVP C#

@RAlvaradoT / [email protected]

Page 2: Consideraciones para desarrollar aplicaciones moviles para varias plataformas

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.

Page 3: Consideraciones para desarrollar aplicaciones moviles para varias plataformas

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.

Page 4: Consideraciones para desarrollar aplicaciones moviles para varias plataformas

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?

Page 5: Consideraciones para desarrollar aplicaciones moviles para varias plataformas

Cual tecnologia para abordar el desarrollo?

Page 6: Consideraciones para desarrollar aplicaciones moviles para varias plataformas

Pros y Contras desarrollo HTML5, CSS3 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.

Page 7: Consideraciones para desarrollar aplicaciones moviles para varias plataformas

Pros y Contras desarrollos nativos

Acceso a todo el hardware del dispositivo (camara, lanzamiento de llamadas, etc.)

Aplicaciones mas rapidas, tienen mejor desempeño que Apps 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

Page 8: Consideraciones para desarrollar aplicaciones moviles para varias plataformas

Y el Cross 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

Page 9: Consideraciones para desarrollar aplicaciones moviles para varias plataformas

Conclusiones

Defina bien el alcance de su AppEs corporativa o es de consumoSeleccione la plataforma de desarrollo desde el principio. Es muy importante!

Seleccione cual de las plataformas es la que va a lanzar primero.

Page 10: Consideraciones para desarrollar aplicaciones moviles para varias plataformas

GRACIAS!!!

Roberto Alvarado

Director Comunidad de desarrolladores profesionales BDotNet

www.meetup.com/BDotNet/

Microsoft MVP C#

Email: [email protected]

Twitter : @RAlvaradoT