Apple siempre ha sido muy cerrada en cuanto a su ecosistema, y esto se ha convertido tanto en su mayor virtud, y al mismo tiempo, en su mayor problema. No podemos negar que tanto los iPhone como los Mac son equipos excelentes, de muy alta calidad, y, acompañados de un buen sistema operativo (como es el caso de macOS) nos garantizan una inversión a largo plazo. Sin embargo, también muy caros, lo que hace que queden fuera del alcance de muchos usuarios. Sin embargo, lo peor es que si somos programadores y queremos crear apps y programas para estos sistemas, es necesario pasar por el aro y comprar un Mac.
Por poner un ejemplo, aunque existen muchas más aplicaciones para Android en la Play Store, de sobra se sabe que iOS es un ecosistema mucho más rentable para los desarrolladores. Esto se debe también a que Apple no permite que se publique cualquier cosa en su tienda, sino que debe tener un mínimo de calidad. Sin embargo, crear programas para cualquier plataforma de Apple es bastante más complicado que hacerlo, por ejemplo, en Android, donde bastaría con instalar el Android Studio en el sistema operativo que queramos.
¿Qué necesitamos?
Lo ideal para crear programas para macOS, iOS, o cualquier otra plataforma del gigante de la manzana es tener a nuestra disposición un equipo Mac. Sin embargo, cuando esto no es posible, existen algunos pequeños trucos que nos van a ayudar a llevar a cabo esta tarea. Apple nunca se ha caracterizado por ser un ecosistema abierto y, aunque se está viendo obligado a cambiar su política, si queremos programar aplicaciones para iOS desde Windows, no lo vamos a tener sencillo.
Para hacerlo necesitamos dos cosas: por un lado, necesitamos de una aplicación para crear la aplicación. Apple cambio de parecer unos años después de lanzar su propio lenguaje de programación Swift (del que hablaremos más adelante), un lenguaje de programación que es de código abierto con Licencia Apache 2.0 y que está disponible además de para macOS, para Windows y Linux. Por otro, necesitamos de un dispositivo de Apple para probar las aplicaciones. Esto último, no es necesario, si tenemos un Mac, ya que podemos hacerlo con la aplicación Xcode. El problema de esta aplicación es que únicamente está disponible para macOS y Apple no tiene ninguna intención de lanzar una versión para Windows.
Si queremos comenzar a crear aplicaciones para iOS desde un PC con Windows, estas son las únicas opciones que tenemos disponibles hoy en día.
Swift
Los programas para Apple siempre se han creado usando el lenguaje Objetive-C y compilado usando la herramienta Xcode, un IDE de programación que solo se puede ejecutar en sistemas operativos macOS. En 2014, Apple quiso ofrecer a los usuarios una alternativa, mejorada y más moderna, para crear aplicaciones para su ecosistema. Y así nació Switft.
Este nuevo lenguaje de programación es mucho más moderno y está preparado para interactuar mucho mejor con Cocoa, la API de los sistemas operativos de Apple. Este lenguaje de programación nos ofrece un código mucho más claro, conciso, limpio y seguro, con gestión mejorada de memoria y mucho mejor rendimiento que Objetive-C (hasta 2.6 veces) y que Python (hasta 8.4 veces).
Switft nació originalmente como un lenguaje cerrado, pero desde la versión 2.0 del mismo se convirtió en un lenguaje de código abierto con licencia Apache 2.0. Aunque originalmente este lenguaje de programación también estaba limitado a macOS, ahora mismo es posible crear y compilar programas sin problemas desde Windows.
Para ello, lo que debemos hacer es descargar Swift for Windows, una herramienta de código abierto que nos permite compilar este lenguaje de programación desde el sistema operativo de Microsoft. Para ello, simplemente debemos crear el programa con nuestro editor favorito (como VS Code), guardarlo como fichero con extensión .swift, y abrirlo con el compilador.
Esta herramienta ya incluye el compilador de Swift, por lo que no tendremos que bajar ni instalar nada a mayores. Basta con hacer clic en el botón «Compile», y después sobre el «Run» para ejecutar el programa recién compilado en nuestro Windows, siempre y cuando sea compatible.
Y, si lo preferimos, también podemos bajar la última versión de Swift para Windows y Linux desde su web, pudiendo compilar igualmente los programas que creemos (aunque manualmente).
Máquina virtual con macOS
Si lo que queremos hacer es programar en Objetive-C, o tenemos problemas para dar forma a nuestros programas en Swift desde otros sistemas operativos, entonces no nos queda más remedio que pasar por macOS. Llegados a este punto, las opciones que tenemos son, o bien montar nuestro propio hackintosh (algo que no recomendamos salvo que realmente sepamos hacerlo, ya que es un proceso complicado), o bien apostar por una máquina virtual, el método recomendado.
Para montar una máquina virtual con macOS, lo que debemos hacer es instalar en nuestro ordenador un programa de virtualización, como es el caso de VirtualBox (por ejemplo), y tener a mano un disco duro virtual con este sistema previamente instalado, o, al menos, una ISO desde la que poder instalar nosotros mismos el sistema desde cero.
Debido a las restricciones de Apple, es algo compilado poner en marcha de cero este sistema, por lo que recomendamos buscar en la red máquinas virtuales ya creadas y configuradas. Hay muchas, por lo que no deberíamos tener problemas en encontrarlas. Además, suelen estar siempre actualizadas y con los controladores adicionales (como las Guest Additions de VirtualBox) instaladas de serie, lo que nos ahorrará mucho trabajo.
Es cierto que el rendimiento no va a ser el mismo que si tenemos un Mac real, que las actualizaciones son más complicadas y que podemos tener algún que otro problema. Pero se trata de una solución rápida y económica para poder crear y probar nuestras aplicaciones para Mac y iPhone desde un PC con Windows o Linux.
Alquila un Mac en la nube
Si todo lo anterior no es suficiente, o no queremos complicaciones, existe una opción mucho más rápida y sencilla con la que vamos a poder disponer de un Mac sin tener que hacer una gran inversión: alquilarlo en la nube. Plataformas como MacinCloud o MacStadium se encargan de conectar una serie de ordenadores Mac a Internet y, a cambio de una cuota mensual (que parte desde los 25 dólares) nos permiten hacer uso ilimitado de ellos.
Podemos optar por un Mac dedicado, que nos permite conectarnos a un Mac real de forma remota a través de un escritorio remoto, uno virtual, que viene a ser una máquina virtual a la cual nos brindan acceso (que no se ejecuta sobre un hardware de Apple) y un servidor Mac, especializado en tareas de compilación de código.
Xcode
Por último, si lo que estamos pensando en crear aplicaciones para iPhone y iPad, debemos saber que no es necesario hacer una inversión en este tipo de dispositivos, ya que perfectamente vamos a poder emularlo desde la herramienta «iPhone Simulator» de Xcode.
Eso sí, volvemos de nuevo al principio. Xcode es un IDE exclusivo para macOS, y no podemos usarlo de ninguna forma en Windows o Linux. Por lo tanto, si necesitamos este emulador tendremos que volver atrás y recurrir a alguna de las técnicas de las que acabamos de hablar, ya sea a la virtualización, a un hackintosh o a alquilar un Mac en la nube.
Comprar un Mac de segunda mano
Otra opción pasa por comprar un Mac de segunda mano. El precio de los ordenadores Mac de segunda mano ha bajado muchísimo en los últimos años, especialmente con el lanzamiento de los procesadores ARM de la gama M. De esta forma, vamos a poder crear aplicaciones para iOS, iPadOS, tvOS, watchOS y demás sin necesidad de recurrir a emuladores de macOS para Windows ni será necesario disponer de un dispositivo de Apple para poder probar las aplicaciones a través de Xcode.
Subir aplicaciones a la App Store
Para poder crear y subir aplicaciones a la App Store, a diferencia de Android, debemos pasar por caja y pagar, todos los años 99 dólares. Este es uno de los principales motivos por los que en la Play Store siempre vamos a encontrar muchas más aplicaciones de todo tipo que en la App Store, ya que cualquier usuario puede subir sus aplicaciones y distribuirlas de forma gratuita.