Xcode 10, así es la versión definitiva de la herramienta de desarrollo de Apple

Xcode 10, así es la versión definitiva de la herramienta de desarrollo de Apple

28 comentarios Facebook Twitter Flipboard E-mail
Xcode 10, así es la versión definitiva de la herramienta de desarrollo de Apple

Estamos en época de lanzamientos. Se han presentado los nuevos iPhone XS y XS Max, así como el nuevo Apple Watch Series 4 que estarán entre nosotros en breve, hemos visto el lanzamiento final de las nuevas versiones de iOS 12, watchOS 5 y tvOS 12 que están recibiendo unas excelentes críticas por su mejora de rendimiento. Incluso hemos visto la nueva versión del sistema operativo de los HomePod (audioOS) que por fin incluye español (de España, USA y México). Y pronto veremos el lanzamiento de macOS Mojave (el próximo 24), la última pieza de los sistemas de Apple.

Pero todos ellos necesitan una pieza fundamental para ser lo que son. La pieza que permite crear apps para ellos, porque sin apps poco o nada podríamos hacer con todos estos sistemas o dispositivos. Y eso es Xcode, la herramienta de desarrollo de apps de Apple para todos sus sistemas operativos. La opción oficial (aunque obviamente hay otras y siempre podemos elegir). Pero si queremos apostar por el concepto de "desarrollo nativo", Xcode es la herramienta que debemos usar.

30 años de evolución

Xcode comenzó su andadura en el mundo cuando ni siquiera se llamaba así y no era Apple quien la creaba. En 1988, NeXT, la empresa fundada por Steve Jobs tras su salida de Apple, lanzaba su primer ordenador y su primera versión comercial de sistema operativo: NeXTSTEP 0.9. Con ella venían unos discos que cambiarían la historia del desarrollo del software para siempre: las Developer Tools que incluían una herramienta revolucionaria: Interface Builder.

Steve Jobs y NeXT, reinventaron el desarrollo de software con interfaces gráficas en 1988, llevando el desarrollo orientado a objetos y la capacidad de construir interfaces en WYSIWYG por primera vez en la historia. Aquello cambió para siempre el desarrollo y lo definió hasta nuestros días.

Interface Builder era la primera herramienta de desarrollo que incorporaba una paleta de componentes y un lienzo donde arrastrar botones, campos o imágenes, para componer y diseñar interfaces sin escribir una sola línea de código. Aplicando el famoso concepto de diseño de "lo que haces es lo que ves" (o WYSIWYG) donde aquello que poníamos en el lienzo se plasmaba tal cual en la ventana de nuestra aplicación al ejecutarse. Algo impensable en aquella época pues la popularización de las GUI (Graphics User Interface) que vino con el Macintosh, había convertido el trabajo de los desarrolladores en una auténtica pesadilla.

¿Por qué? Porque todo lo que se veía en pantalla debía ser programado paso a paso: ¿un botón? Debías pintar línea a línea y punto a punto dicho botón y colocar su etiqueta y programar qué pasaba con él, incluso si tenía un cambio de color o aspecto al ser pulsado. Todo el desarrollo de software en esa época era totalmente arcaico y casi nada del código podía reutilizarse. Jobs lo que hizo fue darle forma a otra idea del Xerox PARC que encontró en 1977 (donde descubrió la semilla del Mac), pero que se había guardado y nunca puso en práctica en Apple: la programación orientada a objetos enfocada a interfaces gráficas.

Interface Builder, la herramienta que revolucionó el desarrollo allá por 1988.
Interface Builder, la herramienta que revolucionó el desarrollo allá por 1988.

El sistema ya tenía un objeto botón, un objeto campo, un objeto deslizador... tú usabas ese objeto y listo. Todo reutilizable. Obviamente la programación orientada a objetos llevaba muchos años existiendo como paradigma de desarrollo, pero hasta ese momento nadie la había aplicado para el desarrollo de software de interfaces gráficos a nivel comercial. Fue Steve Jobs quien lo hizo en NeXT. Y ese primer Interface Builder fue la semilla de lo que hoy es Xcode. En 1992 esta se completó con Project Builder, el primer IDE (entorno de desarrollo integrado) en entorno gráfico. Una unión de editor de código, compilador, corrección en línea y un método para unir los elementos de la interfaz a un código o propiedades en el mismo.

Project Builder en la Developer Preview de OS X Cheetah 10.0
Project Builder en la Developer Preview de OS X Cheetah 10.0

Cuando Jobs volvió a Apple tuvo 5 años para adaptar todo el software y el know-how conseguido en NeXT, que culminó con el lanzamiento de OS X en 2001. En esta versión ya existían dos programas: Interface Builder y Project Builder, el diseñador de interfaces y el entorno de edición de código. Y este fue evolucionando hasta que en 2003 se lanzó con un único nombre: Xcode. En realidad Xcode era más un conjunto de herramientas de desarrollo, no solo el editor de código, y no fue hasta 2010 (en su versión 4) cuando el editor de código y el diseñador de interfaces se fusionaron en una sola herramienta.

Apple escucha a los desarrolladores

Xcode, como el resto de software hecho por Apple, no ha estado carente de problemas y en los últimos años, al igual que los usuarios se han quejado de problemas e inestabilidad en sus dispositivos, Xcode también ha tenido sus etapas oscuras y sus cosas raras. Hay que tener en cuenta que hasta la salida del kit de desarrollo del iPhone en 2008, Xcode era una herramienta muy minoritaria, solo para aquellos que quisieran crear software nativo para el entonces OS X. Pero la explosión de demanda de desarrolladores desde 2008 la ha convertido hoy día en uno de los IDEs más importantes y utilizados del mercado. Y le ha costado ponerse al día. Y como otras versiones en el pasado, Xcode 10 es un remanso de paz después de una larga batalla.

No os voy a decir nada que no sepáis si os digo que a Apple le ha costado (y en cierta forma le sigue costando) escuchar a sus usuarios. En ocasiones parece más un padre que no oye a su hijo porque está seguro que él sabe lo que más le conviene, pero en ocasiones un buen padre debe saber prestar atención a su hijo ya que a veces podemos aprender mucho de ellos. Y ese es el cambio de filosofía en los últimos años, de cara al desarrollo, que está sufriendo Apple.

En ocasiones Apple se comporta como un padre que no oye a su hijo porque está seguro que él sabe lo que más le conviene, pero en ocasiones un buen padre debe saber prestar atención a su hijo porque podemos aprender mucho de él. Esa Apple, poco a poco, está aprendiendo a escuchar a sus hijos (desarrolladores) y darles la razón cuando ve que la tienen.

Sin perder ese halo de paternidad, ahora nos escucha, nos hace caso y todas esas peticiones para mejorar su herramienta han cristalizado en una versión 10 con importantes y notorias novedades, unido a una estabilidad y velocidad que no habíamos tenido hasta ahora en esta herramienta. Sin duda, un excelente trabajo para el que les escribe que lleva usando Xcode desde su versión 3 hace más de 8 años en su día a día.

Xcode 10, la mejor versión hasta la fecha

Como pasó con las betas de iOS 12 y el resto de sistemas, la primera impresión de uso de Xcode 10 ya era buena. Iba notablemente mejor que cualquiera de sus versiones anteriores. Es importante notar que el editor de código sufrió una refactorización el año pasado (una re-escritura desde 0) realizada en el nuevo lenguaje Swift de Apple y aunque se notó mejoría en cuanto a rendimiento, hemos estado sufriendo casi todo el año una importante carencia de estabilidad. Algo así como si hubiéramos usado una versión beta durante todo el año. Y de igual forma, Apple creó un nuevo motor de construcción de proyectos que es el se encarga de crear los ejecutables, copiar todos los recursos, compilarlos, firmarlos y demás... pero ese sí ha estado en beta durante toda la versión 9 y no recomendado en uso por la propia Apple, solo a nivel experimental.

Xcode 10

Estas dos herramientas esenciales que habían sido re-escritas desde 0 en Swift ahora ya están maduras y cristalizan en una versión donde ambos componentes nos proporcionan una mejora muy notable no solo de velocidad, también de estabilidad que muchas veces es lo que más nos importa. No solo en proyectos, también en la herramienta de prototipos Playground que cualquiera que la haya manejado sabe que no es el súmmum de la estabilidad y el buen funcionamiento, pero que en esta versión 10 se ha convertido en una herramienta increíble, no solo para probar código antes de incorporarlo a un proyecto, también para formación o incluso para machine learning, donde podemos entrenar modelos con unas pocas líneas de código. Además de incorporar un interesante sistema de depuración de código en este tipo de proyectos que hasta ahora no existía y que nos permite ver la ejecución línea a línea de nuestro programa.

Playgrounds en Xcode 10
Playgrounds en Xcode 10

Xcode no solo sirve para iOS como ya hemos dicho, también en macOS, por lo que una de las importantes novedades en este entorno es la posibilidad de crear apps que usen el modo oscuro. Porque las apps en modo oscuro no son simplemente darle la vuelta al color. Nada más lejos de la realidad. Hay que proporcionar nuevas imágenes en muchas ocasiones, configurar colores, recursos... básicamente crear un nuevo aspecto para nuestra app basado en tonos oscuros para que realmente sea una transición interesante.

Crear un modo oscuro para un sistema y que lo usen las apps no es algo fácil, pues requiere crear dos aspectos totalmente diferentes a nivel de colores y elementos gráficos, así como la forma de mostrarlos. Pero, sin duda, el modo oscuro de macOS Mojave es una "beta" para ver cómo adaptarlo para iOS en próximas versiones.

Por eso mismo, lo que muchos de vosotros lleváis años pidiendo que es un modo oscuro para el iPhone, no es algo tan fácil pues requiere crear dos aspectos totalmente diferentes a nivel de colores y elementos gráficos, así como la forma de mostrarlos. Y de hecho, apuesto a que este es el primer paso para que el próximo año las apps "oscuras" lleguen a iOS. ¡Qué mejor que primero probar en macOS las herramientas para que en su propio uso se vayan depurando de posibles problemas!

Cambios en la herramienta

En cuanto a la herramienta, en Xcode cambian algunos aspectos esenciales que llevan años con los desarrolladores, como la ubicación de la paleta de objetos donde están todos los elementos que podemos arrastrar a nuestra interfaz: los botones, etiquetas, campos... normalmente estaban en la barra de inspectores a la derecha y ahora usan una ventana flotante al estilo de Spotlight que debemos invocar pulsando un botón o con una combinación de teclas concreta. Una ventana que también tiene buscador integrado.

La nueva librería de objetos de Xcode 10
La nueva librería de objetos de Xcode 10

Xcode 10 está lleno de pequeños detalles de esos que demuestran que Apple ha escuchado a los desarrolladores en cosas que tal vez puedan parecer una tontería, pero facilitan mucho el trabajo cuando estás con una herramienta como esta donde trabajas muchas horas. Por ejemplo ahora el editor de código tiene un scroll que va más allá del final del mismo por lo que puedes tener siempre el código con el que trabajas en el centro de la pantalla y no abajo de la ventana en el borde del monitor. También han incluido una edición múltiple que permite poner varios cursores en diferentes lugares y escribir a la vez en diferentes sitios del código. Algo muy útil que implementaban otros editores de código y que es de agradecer que llegue a Xcode.

Xcode 10

El editor incorpora nuevas formas de conocer el código que estamos usando, como saber dónde están definidas variables o métodos o dónde son llamados. Basta pulsar la tecla COMMAND y hacer un click para obtener un nuevo menú contextual que nos permite ir a su definición o ver dónde más es llamado y una serie de información que nos permitirá trabajar más cómodamente sin necesidad de estar moviéndose entre diferentes ficheros de código buscando una información.

Xcode 10 como app, tiene plenamente integrado el modo oscuro de macOS Mojave y varias encuestas a desarrolladores han coincidido en que la mayoría trabajará con este nuevo modo oscuro

Ahora en Xcode se soportan nativamente nuevos servicios de repositorio de código, no solo GitHub que se usaba en Xcode 9. Ahora se soportan BitBucket (de Atlassian) o GitLab, tanto las versiones en la nube como servidores propios que tengamos. Cuando escribimos código, cualquier cambio en el mismo con respecto a la última versión que hemos puesto en el commit que guarda cada cambio, mostrará un código de color en el lateral del editor que nos indicará que se ha cambiado esa línea. Así podremos saber de un vistazo qué código hemos incorporado nuevo o cuál hemos cambiado.

Conclusiones

Estas son solo algunas de las novedades que tiene Xcode 10, un pequeño repaso. Se une que ahora se usa nativamente Swift 4.2 y sobre todo y principalmente: estabilidad y velocidad. Pequeños tweaks que nos hacen la vida más fácil, mayor velocidad a la hora de abrir las interfaces, a la hora de crear los proyectos, de ejecutarlos o de abrir los simuladores.

Hasta donde llegan mis recuerdos, podríamos decir que Xcode 10 es una de las versiones más pulidas y mejores de los últimos años, con el usuario en el punto de mira. Tal vez la que más desde la salida de Xcode 4 que unió el constructor de interfaces con el editor de código.

Swift Coding

Desde este pequeño rincón, queremos agradecer al equipo de desarrollo de Apple por esta excelente versión y darles las gracias por el gran trabajo. Como desarrollador, soy plenamente consciente del esfuerzo que supone mantener y dar esta calidad a un software como Xcode que no solo permite crear apps, también juegos 3D, 2D, apps de realidad aumentada y que soporta 4 sistemas operativos diferentes para desarrollar para ellos.

Una herramienta muy compleja que ha conseguido una enorme calidad y donde ese aura de estabilidad y rendimiento que la gente siente cuando prueba iOS 12 se ha transmitido a la herramienta de desarrollo. Una delicia.

En Applesfera | iOS 12 ya disponible: todo lo que podrás hacer en tu iPhone y iPad

Comentarios cerrados
Inicio