Para el ojo inexperto crear apps móviles para Android o para iOS puede ser muy parecido, pero la verdad es que cada sistema operativo tiene sus peculiaridades. Además de las bases técnicas para el desarrollo de apps, sino en el propio proceso de crear una aplicación existen muchas diferencias si se trata de Android o de iOS.
No solamente a nivel técnico, sino también a nivel de diseño y de estrategia móvil. Es decir, que la concepción completa de la app tiene estará relacionada y dependerá del sistema operativo. Por eso serán sobretodo los desarrolladores que pasen de un SO a otro, o que s inicien en un segundo lenguaje, serán ellos los que más lo noten.
Diferencias de desarrollo
Vamos primero las diferencias que podemos encontrar a nivel de desarrollo móvil cuando nos disponemos a crear apps para dispositivos móviles Android o iOS.
La estructura del proyecto
La estructura de un proyecto iOS es bastante libre dentro de Xcode, dado que puedes crear carpetas y ficheros donde quieras y luego referenciar entre ellos. Aunque siempre habrán ciertas nomenclaturas (eg. Los iconos para distintas resoluciones) que el desarrollador debe respetar.
Al crear apps Android, por otra parte, nos topamos con una estructura mucho más rígida. La nomenclatura en desarrollo Android siempre debe respetarse no importa que sea carpeta, fichero o recurso. Nuestro desarrollo móvil en Android siempre quedará muy bien estructurado.
Probar la app
La fase de testeo de una app es imprescindible en el proceso de crear apps para móvil, igual que para juegos y cualquier otro tipo de software. Debemos comprobar que nuestro desarrollo funciona a la perfección. Para ello solemos utilizar el simulador iOS y el emulador Android.
Las diferencias que podemos apreciar son que el simulador iOS es mucho más rápido que su equivalente para Android. Pero con la ventaja de que el emulador Android es efectivamente una máquina virtual efectiva con una CPU virtualizada, por lo que es más realista que el de iOS. De hecho el simulador iOS suele fallar al dar representaciones realistas y exactas de los dispositivos Apple.
Sin embargo, siempre os vamos a recomendar realizar las pruebas y el testeo en dispositivos móviles de verdad para poder ver el flujo de interacción de la app y los fallos en un hardware de verdad.
El lenguaje de programación
Al tratarse de sistemas operativos distintos, se programan apps con lenguajes de programación distintos. Y es precisamente su rasgo más distintivo: iOS Objective-C / Swift, mientras que Android utiliza Java para crear apps móviles.
Interfaz gráfica
Aquí nos topamos con las diferencias visuales al crear una app para Android o crearla para iOS. Y además será también el usuario final el que percibirá las diferencias en el diseño. A nivel técnico, el desarrollador montará ficheros XML en las interfaces en Android. Son muy similares a los ficheros XIB de iOS, pero éstos últimos no son legibles.
En cuanto a las animaciones por ejemplo, iOS está mucho mejor preparada que Android. Google ha intentado solucionarlo en la preview de Android L y con la tendencia del Material Design en cuanto diseño de apps. Mientras Apple siempre se ha enfocado en animaciones suaves, complejas y potentes, cuidando mucho la estética y experiencia de usuario; Google por su parte se ha preocupado de ellas teniendo en cuenta el hardware como principal objetivo.
‘Volver atrás’
Otra de las grandes diferencias entre Android e iOS es la funcionalidad del botón ‘Atrás’, que en Android sí que existe pero en iOS no está. De modo que todo el desarrollo debe pensarse en torno a este hecho.
En el caso de Android se utilizará ese botón para la navegación, mientras que en iOS debe pensarse de otra forma, bien indicando en la pantalla como volver a atrás, o con otro tipo de flujo de interacción cuando no sea necesario.
Otras diferencias en el desarrollo
- Delegate vs Adapter: iOS utiliza el patrón de delegación (delegate) al usar patrones delegados. En Android ese patrón se representa con un adaptador (adapter). Aunque son diferentes plataformas y vocablos, son conceptos muy similares.
- UIViewController vs Activity: En Android utilizaremos la clase Activity para representar una pantalla en un dispositivo móvil Android. En iOS, es el controlador UIViewController el que hace ese trabajo. Con él también podemos gestionar los ciclos de vida de los eventos, subvistas, etc. Aunque no es exactamente lo mismo realizan el mismo rol.
- Desbloqueo: Los dispositivos Android se desbloquean arrastrando hacia arriba y en iOS hacia la derecha.
- Las preferencias y permisos: Mejor agrupadas en los dispositivos iOS, los encontramos todos juntos en las preferencias generales del dispositivo. En Android están más dispersas y es necesario navegar por el dispositivo.
- Mapas: En desarrollo iOS podemos utilizar los mapas de Apple o Google Maps, pero en Android usaremos generalmente Google Maps.
Otras diferencias de crear apps
No solamente la parte técnica aprecia diferencias en sistemas operativos a la hora de crear una app. La parte del diseño y de marketing se ven claramente afectadas a un nivel muy básico. Veamos como afrontar estas diferencias.
Coste de crear apps
Ya os hemos hablado en alguna ocasión sobre las diferencias de coste al crear apps para Android o iOS. De hecho aunque la diferencia no es muy grande, el desarrollo iOS es ligeramente más caro debido a una oferta menor que en Android y a que el material inicial para desarrollar iOS es más caro porque requiere materiales originales Apple.
Diseño de apps
Como ya hemos contado antes, el diseño de una app está íntimamente relacionado con el desarrollo por eso visualmente también es diferente el diseño iOS del diseño Android. Cada uno de ellos tiene su propia lógica de interacción y estilo fuertemente influenciados por las marcas creadoras de los sistemas operativos. Para ello es recomendable contar con diseñadores de apps expertos en uno o ambos sistemas operativos para que nos asesoren en nuestro proyecto. Solo así podremos crear apps realmente buenas y ‘nativas’
App Store Optimization
Como vimos en el artículo de la semana pasada sobre las best&worst practices en ASO, el app store optimization no es igual para una app Android que para una iOS. Tendremos que tenerlo muy en cuenta a la hora de optimizar la app para que se posicione bien en las stores. Tendrás que prestar especial atención a las diferencias en titulo y description, el resto de variables son mas o menos iguales para ambos casos.
Monetización y retorno de la inversión
Por regla general el retorno de la inversión no es igual para una app Android que para una iOS. Si hablamos de la vía de ingresos, de la forma de monetizar la app en sí, vemos que en iOS es más común cobrar por descargas y por compras dentro de la app. En Android las aplicaciones suelen ser de descarga gratuita y se monetizan a través de anuncios incrustados dentro de la aplicación móvil.
Hasta aquí nuestro listado de diferencias entre crear apps para Android o para iOS, si consideras que nos hemos saltado alguno, puedes déjanos un comentario más abajo.
Te esperamos en los próximos artículos en donde hablaremos mas acerca de estos temas que hoy en día son de importancia e interés en el mundo de la tecnología.