¿Xamarin, la mejor solución del desarrollo de aplicaciones móviles para ti? (Parte 1)

Los invito a ver mi opinión sobre este tema y a ver las razones que me llevaron al desarrollo de aplicaciones móviles con XAMARIN. Como esta publicación es un poco larga, la he dividido en dos partes.

Aquí los pondré en contexto con algunas de las definiciones básicas dentro del desarrollo móvil. Les hablaré de lo sucedido en los últimos años con el desarrollo de aplicaciones móviles; las críticas y como fueron mis inicios con esta herramienta. En la próxima entrega expondré los pros, contras y paradigmas; entre otras cosas, relacionados a esta herramienta llamada Xamarin para que puedan tener un conocimiento general al respecto. Así si hay una necesidad de elegir entre las herramientas, podrán saber si Xamarin tiene lo que están buscando.

Entonces, comencemos…

Hoy en día estamos viviendo un crecimiento tecnológico muy acelerado. Cada vez más se hace necesario estar conectado a la nube de información que nos provee el Internet. La tecnología nos hace la vida mucha más fácil en ese sentido.

Con este crecimiento han nacido paradigmas que mientras más pequeña, rápida y funcional es la tecnología, mejor experiencia está brinda; y es en este sentido donde teléfonos móviles cobran sentido. Hoy en día ya estamos viendo indicios de poder tener nuestro propio asistente personal dentro de estos dispositivos inteligentes. Y esto es solo el principio de lo que falta por venir.

A un nivel más técnico, la verdad es que estos dispositivos son solo hardware. La magia que hizo que haya más de 5 millones de dispositivos inteligentes  en el mundo son las aplicaciones móviles. Estas aplicaciones permiten a los usuarios elegir la ruta más rápida para llegar a su destino. Estas simplemente te permite estar conectado con quien quieras ya sea vía chat, llamadas o video llamadas. Estas son las mismas que utilizas para organizar tus quehaceres, pedir una pizza, y muchas otras cosas demás.

Hoy en día se deduce que hay más de 26 millones de aplicaciones móviles descargadas en las tiendas de aplicaciones. Esto es normal ya que el 80% de los usuarios en internet se conectan a través de dispositivos móviles. Pero ¿qué pasa con estas personas que hacen estas aplicaciones móviles? Bueno, estas personas son llamadas desarrolladores de aplicaciones  móviles y son los que hacen que toda la magia ocurra.

La realidad

Anteriormente, cuando se buscaba un desarrollador móvil era para trabajar en una plataforma específica (Android, iOS o Windows Phone). Hoy, estos tienen más opciones; ya que cuentan con herramientas que les permite trabajar para diferentes plataformas en un mismo proyecto.

Desde mis inicios he visto que siempre hay una preferencia por una u otra herramienta para el desarrollo. Es muy común que cuando no tienes conocimientos acerca de estos temas vallas a Internet a tratar de buscar referencias. Quizás quieres elegir una determinada herramienta y comenzar en este mundo del desarrollo de aplicaciones móviles.  Quizás no te sientes muy conforme con la elección de la herramientas que hiciste y estás buscando otras opciones. O quizás solo estas buscando información para tener una referencia sobre las herramientas que están en el mercado actualmente.

Contexto

La verdad es que a la mayoría de las empresas que buscan una aplicación móvil para su negocio no les interesa la tecnología, plataforma o lenguaje de programación que se use. Ellos solo se enfocan en que cumplan con las funciones deseadas a un costo competitivo. Sin embargo, los desarrolladores o empresas que se quieren dedicar al desarrollo de aplicaciones móviles tienen que considerar los factores mencionados anteriormente.

Ahora bien, dentro del desarrollo de aplicaciones móviles nos podemos encontrar con diferentes tipos. Estos son las Apps híbridas, nativas, y generadas. Dentro del desarrollo de aplicaciones híbridas o generadas existe lo que es el desarrollo multiplataforma. Aunque no profundizare mucho en estos detalles les dejaré una breve descripción de cada una.

app development

Desarrollo multiplataforma

Nace de la necesidad de ofrecer soluciones para cada plataforma móvil. Una de las ventajas se basa en la reducción del tiempo de desarrollo cuando se quiere presencia en diferentes plataforma. Otra de las ventajas que presenta este tipo de desarrollo es la mayor facilidad de mantenimiento. Al tener el desarrollo centralizado, el mantenimiento del mismo es más sencillo comparándolo con el mantenimiento de varias aplicaciones nativas al mismo tiempo.

Aplicaciones híbridas

Estas aprovechan el desarrollo web con tecnologías como HTML, JavaScript y Css para el desarrollo de aplicaciones móviles. Estas son flexibles y requieren menores costos y tiempo para su creación. Con estas solo necesitas un proyecto pudiendo generar una aplicación para cada plataforma (Android, iOS y Windows Phone).

Aplicaciones nativas

Estas son caracterizadas porque ofrecen mejor experiencia de usuario (UX) en cada plataforma al utilizar los componentes nativos. Para poder generar una aplicación nativa para cada plataforma es necesario que se utilice el lenguaje de programación específico de dicha plataforma. Objective-C o Swift para iOS, Java o Kotlin para Android y algún lenguaje basado en C con tecnología .net para Windows Phone.

Aplicaciones generadas

Estas se desarrollan con herramientas que tienen su propio lenguaje de programación específico. Estas herramientas te permiten compilar tu aplicación a cualquier plataforma nativa que soporte. En este apartado podemos ver herramientas de desarrollo multiplataforma como NativeScript de Telerik, XAMARIN de Microsoft, React Native de Facebook, entre otros.

Pasadas influencias

navite-vs-hibrid

Años atrás el desarrollo de aplicaciones móviles solo tenía dos bandos, las Apps hibridas y las Apps nativas. Los nativos tenían una controversia en contra de las aplicaciones híbridas. En la actualidad aun estos bandos se siguen viendo con desprecio ya que los desarrolladores de aplicaciones híbridas tampoco le ven sentido a programar en Java, Swift y C#; o por lo menos es lo que parece.

Claro, este rencor es entendible ya que en aquel entonces las aplicaciones híbridas o las aplicaciones que eran hechas de manera nativa pero con otros lenguajes de programación tenían ciertos  problemas de rendimiento.

Aquí es donde todo cobra sentido

Esta percepción se tuvo debido a que las primeras iteraciones de PhoneGap (herramienta para hacer aplicaciones híbridas) entregaron productos muy malos en las tiendas de aplicaciones. Esto es normal porque era un producto nuevo. Lamentablemente las experiencias pasadas aún siguen influyendo en los desarrolladores. Con los grandes avances que hemos tenido a lo largo de estos últimos años las cosas han cambiado bastante.

native-vs-cross-platform-apps

Ahora que contamos con aplicaciones generadas surgen los mismos conflictos que en la anterior batalla de las aplicaciones nativas y las híbridas. Aplicaciones pseudo-nativas es el término adoptado para las aplicaciones generadas en sus inicios. Estas aplicaciones generadas aunque eran nativas no cumplían ciertos parámetros de eficiencia en comparación con las nativas. La verdad es que todo el avance que han tenido estas herramientas no le dan validez a estos conflictos  y comparaciones pasadas.

Xamarin y las criticas 

críticasSegún la investigación que he hecho muchas de las malas críticas, no solo para Xamarin sino también para otras herramientas, son de desarrolladores  con las siguientes características:

  • Basan su evidencia en malas aplicaciones.
  • No quieren salir de su zona de confort.
  • Ignorancia al no conocer cómo trabajan estas herramientas de desarrollo.
  • No tienen en cuentan todos los detalles técnicos y de mantenimiento de otras herramientas.
  • Etc…

Algo que he visto mucho en las comunidades es que los desarrolladores que deciden comenzar la línea de aprendizaje dentro del desarrollarlo de aplicaciones móviles (sin tener ningún conocimiento de esto, pocos experimentados en su mayoría) siempre se deciden ir por lo nativo. Esto es lo lógico porque si quieres hacer un demo para Android para enseñarles a tus familiares lo cool que eres y haces una búsqueda en Google imagino que JAVA será tu primera sugerencia mostrada en tu navegador.

De igual manera he visto muchos desarrolladores entusiasmados en este tema del desarrollo nativo. Y también he visto como migran a diferentes opciones. Al final es un tema de percepción. Claro las empresas tienen otro enfoque basado en la productividad y es por eso que el desarrollo multiplataforma, por las ventajas que ofrece, ha adquirido tanta popularidad en tan poco tiempo.

La popularidad de las herramientas

Aunque es cierto que la cantidad de desarrolladores que utilizan una determinada herramienta influye en la popularidad de estas. Es obvio que si tu ambiente de desarrolladores que te rodea utiliza un determinado tipo de tecnología y tú quieres introducirte en ese mundo, es normal que ellos traten de evangelizarte para que utilices esa tecnología.

Lo malo es que muchos desarrolladores que utilizan una determinada tecnología, ven esa tecnología como si fuera la biblia y todo lo que este fuera de eso está mal, y las cosas no así. Es por esta razón que hay muchas riñas entre desarrolladores que utilizan diferentes tecnologías para el desarrollo de software. Estos solo piensan en lo que utilizan pero no piensan en la persona que tienen delante, en que es lo mejor para él y lo que le puede acortar el proceso de éxito en su desenvolvimiento. Aún sigo viendo desarrolladores que se cierran en una sola opinión sin conocer a fondo otras opciones, mayormente por las características mencionadas anteriormente.

La verdad es que XAMARIN por mas criticas de supuestas competencia (como lo ven algunos, yo pienso que son solo diferentes herramientas para diferentes tipos de desarrolladores) que tenga, ha acogido un gran auge dentro de la comunidad de desarrolladores y esto puedo verse claramente porque cada vez mas poco a poco son más las solicitudes de empresas que requieren desarrolladores de aplicaciones móviles con XAMARIN.

Mis inicios con Xamarin

Para nadie es un secreto que yo utilizo XAMARIN para el desarrollo multiplataforma de aplicaciones móviles. En mis inicios cuando comencé a trabajar como desarrollador móvil fue porque nació de una necesidad en la empresa donde trabajaba. Al ser el primero como desarrollador móvil se me permitió elegir la herramienta que yo creía que era la mejor para mí y la empresa. Obviamente después de un gran análisis y después haber pasado horas en Internet buscando referencias y demás llegue donde XAMARIN.

Después de haber trabajado un tiempo con Xamarin y Visual Studio, en el 2016 mayormente en las comunidades, se sentía un cierto resentimiento con la plataforma como tal. Muchos desarrolladores que utilizaban otros enfoques para el desarrollo de aplicaciones móviles aseguraban que XAMARIN no llenaba las expectativas, por no mencionar las exactas palabras mencionadas.

developer burning at work

Hasta aquí todo esto tiene sentido. Meses después de la integración de Xamarin con Visual Studio los bugs que los desarrolladores enfrentabamos no eran nada normales. Muchas veces sin siquiera ponerle la mano al proyecto cuando ibas a depurar nuevamente tenías 1,798 errores de la nada. En aquel entonces yo solo bajaba la cabeza ya que no había mucha información acerca de estos en ese entonces. Muchas veces llegue a pensar que Dios me estaba castigando por el mal que había en el mundo.

Quizás esto se puede traducir como “XAMARIN la peor herramienta”, pero la verdad es que no es así, yo venía de tener cero conocimientos en desarrollo de aplicaciones móviles y sin tener un mentor o persona con experiencia cerca; esto lo hacía más difícil para mí, los tutoriales eran muy básicos y así por el estilo.

Hombre suertudo

Para mi suerte, soy muy enfocado en lo que hago. Tenía una compañía que confiaba en mí para liberar el proyecto que en aquel entonces estaba trabajando. Nunca desistí y seguí adelante, no me podía dar el lujo de volver a empezar desde cero con otra herramienta. Al poco tiempo  entendí que muchos de los errores se solucionaban con clean/rebuild. La magia de XAMARIN en sus inicios. “La experiencia no se improvisa” dicen…

developer-feliz-trabajo

Como desarrolladores sabemos que no siempre las cosas nos van a salir como queremos. Cuando todo salía bien era una sensación especial que me daba fuerzas para seguir adelante y superar obstáculos. Si eres desarrollador, creo que me entiendes. Es algo que no se puede explicar así de simple.

Es casi obvio que nuevas herramientas pueden ocasionar todos estos problemas. Por suerte Microsoft siempre se mantiene haciendo actualizaciones, solucionando estos bugs y añadiendo nuevas características para hacerle la vida más fácil a los desarrolladores. De lo que era XAMARIN a lo que es ahora hay mucha diferencia, las cosas han cambiado bastantes; ahora contamos con mejoras increíbles y sé que seguirá mejorando. Todas las herramientas lo hacen.

Esto es todo por ahora, nos vemos en la próxima parte.

Muchas gracias por leer esta publicación! 
¿Xamarin, la mejor solución del desarrollo de aplicaciones móviles para ti? (Parte 1)
5 (100%) 8 votes

feedback

Espero que esta publicación haya sido de ayuda para ti, si crees que también puede ayudar a otros entonces compártelo con ellos. Te invito a dejar tu opinión en la caja de comentarios. Si quieres que hable de un tema en específico o que detalle un poco más algunos temas, déjame saber. Los temas más interesantes serán agregados en mi lista de publicaciones futuras.

¿Te gustan las publicaciones como esta? Entonces, suscribete y activa las notificaciones push para recibir actualizaciones. Nos vemos en la próxima!

Otros

2018-12-06T02:54:37+00:00

3
Dejame tus comentarios

avatar
3 Hilos de comentario
0 Respuestas de hilos
0 Seguidores
 
Comentario más reaccionado
El hilo de comentarios más caliente
1 Comentarios de autores
René Posse Comentarios de autores recientes
  Suscribirte  
Nuevos Viejos Mas votados
Notificar de
René Posse
Invitado
René Posse

Gracias

trackback

[…] bueno mencionar que el equipo de desarrollo de xamarin esta haciendo un  increíble trabajo lanzando actualizaciones constantemente. Lo cual se les […]

trackback

[…] bueno mencionar que el equipo de desarrollo de xamarin esta haciendo un  increíble trabajo lanzando actualizaciones constantemente. Lo cual se les […]