top of page
  • Foto del escritorJorge Sánchez Medina

¿Android vs iOS o mejor ambos a la vez?


los logos se enfrentan cara a cara
Android Vs iOS

En el mundo de los dispositivos móviles tales como los SmartPhone, Tables, Smartwatch o incluso los coches, es Google con su (OS) Android quien tiene el trozo más grande de la tarta en que se divide la cuota de uso. Sin embargo, Apple y su iOS tiene prácticamente las migajas sobrantes. Suena muy partidista por mi parte pero observando las cifras y se entenderá.


Si accedemos a la web Statista.com veremos la comparativa de uso de los OS en el año 2019. En ella se destaca la enorme cuota de uso que tiene Android a nivel mundial (85,5%). Seguida, muy de lejos, por iOS (14.4%). Las restantes plataformas como Windows Phone apenas tienen un 0,1 % de la cuota de uso.

Estadistica de uso de OS móviles
Cuota de uso de OS móviles

Se notará en mis palabras mi predilección por Android, aunque no dejaré de alabar las enormes posibilidades que tiene iOS. Sin embargo, Android es de código libre y por ende gratis, lo que le proporciona una ventaja sobre los demás OS. Pero no cabe duda que, como programadores, debemos atender a la mayor cuota de usuarios posibles. Es por lo que descartaremos el Windows Phone y nos centramos en Android e iOS. Para desarrollar aplicaciones para iOS es común, y a priori recomendable, usar el lenguaje Swift y Objetive-c. A diferencia del iOS, este lenguaje es de código libre y no requiere de ningún pago para poder usarlo ya que esta distribuido con licencia Apache2.0. En Android, se solía escribir las App con el lenguaje Java. Posteriormente, Google, hizo del lenguaje Kotlin el oficial para desarrollo de app en Android, el cual es mucho más eficiente, seguro y ligero a la hora de escribir el código.


¿Cual OS elegir ?
iOS or Android

Como se puede ver, elegir una plataforma requiere elegir un lenguaje de programación y excluir al otro o postergar su aprendizaje. La mayor parte de los BootCamps y Masters en desarrollo de app incluyen una parte de formación en cada plataforma. Pero es solo una parte. Profundizar requerirá de nuestra propia investigación. No cabe duda que nuestro tiempo es finito, y que obtener los conocimientos necesarios para ser candidatos a un puesto en una empresa nos llevara, al menos, dos años por cada plataforma.

Se intentan poner de acuerdo
Android: ¿Podríamos trabajar juntos?

Ahora tenemos que decidir si dedicar nuestro tiempo a estudiar el desarrollo para una u otra plataforma. Lo más lógico es decantarse por el OS más predominante. Pero como programadores debemos atender a la mayor cuota de usuarios posible. Sí, me repito como el ajo porque es algo muy importante. Para salvarnos de esa papeleta, aparecieron Framework de desarrollo híbrido, como los expuestas por Abel Naharro en su blog que nos permiten escribir el código en un lenguaje determinado y luego compilarlo tanto para Android como para iOS.


El Juicio de Salomón

Existe otro, que Abel Naharro no ha nombrado, y al cual me voy a suscribir por dos razones. En primer lugar porque la curva de aprendizaje es muy corta. En segundo, porque es un Framework desarrollado por Google y llamado a ser el SDK sucesor del Android Studio puro como el oficial para desarrollo de App Android y exportables a iOS. Este entorno de desarrollo no es otro que Flutter el cual usa como lenguaje de programación Dart. Os voy a explicar un poco como funciona este SDK.


Arbol del directorios

En la imagen se ve como se distribuye las carpetas de un proyecto en Flutter. La carpeta Android contiene la parte del proyecto que, según el estándar, compilará la App para esa plataforma. En la de iOS tanto de lo mismo para esa plataforma minoritaria ;-) . Luego esta la carpeta lib que tiene los archivos que definen la estética y la funcionalidad de la App, escritos en los archivos con extensión .dart.

El acceso a imágenes, sonidos y otros recursos, se realiza de modo global para ambas

plataformas. Es decir, se almacenan en una carpeta especifica y se le asigna una dirección en el archivo pubspec.yaml. Para el caso de las imágenes, carpeta images. Para el caso de los sonidos se usa la carpeta assets. Luego en el pubspec.yaml se define donde se localizan esos archivos. De ese modo ambas plataformas, que a priori tienen distintos modos de acceder a los recursos, tienen un modo común para localizarlos.


Carpetas pubspec.yaml llamada a la imagen

Una vez terminado la programación definiendo la funcionalidad y diseño en los archivos main.dart y restantes clases, se puede exportar la app a ambas plataformas. De este modo se ahorra el engorro de tener dos proyectos abiertos para la misma app, el mantener dos códigos distintos para la misma funcionalidad, muchas horas de debugger en cada uno de los códigos y muchas otras ventajas que iras descubriendo.

iOS: -Creo que este es el comienzo de una larga y prospera amistad.

En próximas entradas os comentaré un poco como funciona el andamio (Scaffold) de la clase main.dart, que es quien da soporte al resto de la construcción de la app.

Saludos y hasta la próxima entrada

12 visualizaciones0 comentarios
bottom of page