Enlace Patrocinado
¿Cómo es programar en móviles?
Programar en móviles es una filosofía distinta a la de web y totalmente diferente a la que tenemos para escritorio. En definitiva cambia tu manera de escribir código en móviles, donde sabés que hay un gran diversidad de dispositivos móviles (sobre todo en Android), cuando tienes en cuenta eso, entras a un juego divertido de como optimizar tu código de tal manera que consuma la menor cantidad de recursos posibles.
También debes considerar los permisos en ambas plataformas (iOS y Android) que debes pedir explícitamente de tal manera que tu app sea bastante clara de qué hará con dichos permisos y de esa manera el usuario esté tranquilo de las operaciones que realizará con los mismos.
Almacenamiento de la aplicación también es otra variable que debes manejar con mucho cuidado, si logras que una app móvil pese menos de 6 mb es todo un logro hoy en día, con la exigencia de los clientes o requerimientos del proyecto.
Similitudes entre Android y iOS
Cosas que comparten ambas plataformas tal como mencionaba algunas anteriormente:
- Optimización en memoria
- Menor cantidad de espacio en almacenamiento
- Comparten widgets similares
- La lógica y flujo es similar.
Diferencias entre Android y iOS
Este apartado puede que sea más amplio como era de esperarse, acá la lista:
- Guías de diseño distintos
- Entornos de desarrollo
- Paquetes de dependencias
- Lenguajes de programación
- Diagramación de las vistas
- Publicación de una app en las tiendas
- Comunidad
Es posible que alguna de estas diferencias no queden claras así que voy a ser un poco más específico en cada una de ellas.
Guías de diseño
Cada plataforma cuenta con guías de diseño específicas, que nos ayudarán a los desarrollos de productos móviles a saber cómo se deben mostrar elementos y medidas para respetar la filosofía de diseño, haciendo que la experiencia de usuario sea bastante buena, ya que ellos se han encargado de que cada plataforma tenga estos estándares que hacen que la experiencia sea muy buena.
Guía de diseño para Android (Material Design)
Entornos de desarrollo
Ambas plataformas tienen diferentes entornos, del lado de Android, necesitamos el JDK, Android Studio y el SDK de Android. Para iOS necesitamos si o si una Mac, xCode y el SDK de iOS.
Paquete de dependencias
Para iOS utilizamos CocoaPods y para Android usamos Gradle. En definitiva Gradle está un paso adelante respecto a la instalación de dependencias y librerías que CocoaPods. Sin embargo en Gradle podemos hacer muchas más cosas que solamente instalar librerías. Por ejemplo: Configurar variables de entorno para nuestra aplicación móvil. En cambio para CocoaPods, únicamente nos servirá para instalar librerías y punto.
Lenguajes de programación
Diagramación de las vistas
Los widgets son similares en ambas plataformas, por ejemplo para un botón utilizamos el widget Button y para un texto sencillo tenemos para Android un TextView y para iOS un Label. Al momento de construir las vistas que tendrá cada pantalla, en Android tenemos los xml que se relacionan a una actividad y para iOS tenemos los StoryBoards donde ponemos todas nuestras vistas (o las que prefieras) y les relacionas un ViewController. Puedes crear varios storyboards según prefieras solamente asegurate de tener bien definidos los identificadores que tendrá cada uno.
Publicación de las apps en las tiendas
Tengo que ser honesto y en este apartado tengo que mencionar la superioridad para firmar los instaladores de las apps para su publicación en las distintas tiendas. En el caso de Android tenemos un engorrosibo proceso. Primero tenemos que crear un llave (jks), un alias para el apk, un usuario y contraseña. Mucho cuidado de no perder estas credenciales, ya que si estás se pierden, tendrás que firmar el apk con un nombre de paquete distinto, prácticamente sería una distinta.
En cambio para iOS tenemos algo fabuloso, no necesitamos nada parecido a como lo hace Android. Únicamente necesitamos tener nuestra cuenta de desarrollo de Apple para poder realizar la publicación de nuestra app en la tienda, con una opción que nos da Xcode llamada Achive y listo.
Comunidad
La comunidad de ambas plataformas es bastante grande, sin embargo por un tema de demanda en el mercado, hay mucho más contenido para Android, sobre todo para Java. En el caso de iOS el contenido para compartir abunda para Objective-C, en cambio para Swift es relativamente poco.
¿Qué se siente desarrollar apps para Android y iOS?
La verdad ha sido una experiencia genial, gracias a las oportunidades que me ha brindado la vida y también las personas que he conocido que me han dado proyectos bastante interesantes para poner a prueba las habilidades de desarrollar algo para distintos lenguajes, entornos y manera de desarrollo como es en Android y iOS.
Es una experiencia única poder manipular ambas plataformas, tal vez no como un pro en este momento de mi vida, pero si a futuro, eso seguro. Cada una tiene lo suyo, sus pro y contras. Cosas interesantes, útiles, buenas, y algunas no tanto.
No me gusta hacer comparaciones
De por si, soy una persona que no me gusta estar comparando para criticar, me gusta comparar para sacar diferencias en positivo. Por eso es que cuando me preguntan qué plataforma es mejor, les digo que son totalmente diferentes como para estar comparando, aunque hay algunas cosas que son similares para platicar en otra ocasión.