Configurar Entorno de Desarrollo en macOS

Configurar Entorno de Desarrollo en macOS

En este artículo vamos a configurar nuestro entorno de desarrollo en macOS. Es evidente el hecho de que el enfoque nuestro es hacia Swift y Xcode pero también es cierto que mucho de lo que comentaré es válido para un desarrollador Web / Android / Qt (C++) siempre y cuando trabajen bajo este sistema operativo.

Entorno Inicial

En la siguiente guía vamos a asumir que nos domina un interés por el lenguaje de desarrollo Swift y la creación de aplicaciones iOS, macOS, watchOS, tvOS… por esta razón no hablaremos sobre este lenguaje y en caso de que se desee conocer más sobre el mismo los exhorto a obtener más información en el anterior enlace. También damos por conocido que Xcode es el IDE oficial de este lenguaje y por ende es el que usaremos para desarrollar nuestras aplicaciones.

Cambiar el hostname en macOS

Pero antes de todo cambiaremos el nombre de nuestro ordenador, yo personalmente no soy muy fan de <Usuario>’s MacBook Pro asi que siempre opto por cambiarlo. Para esto abrimos la terminal y ejecutamos el siguiente comando:

…creo evidente que <Nuevo Nombre> debe ser sustituído por el nombre que estableceremos a nuestro ordenador, en mi caso fue WiseRatel. Al presionar Enter escribirmos el password de nuestro usuario, cerramos la terminal y al abrirla de nuevo tendrémos el hostname ya establecido de manera permanente.

Continuamos asumiendo que practicamente acabamos de instalar nuestro macOS, así que en este punto el siguiente paso será abrir la App Store y verificar si hay actualizaciones disponibles, de ser así las aplicaremos todas en pos de llevar el sistema operativo y sus aplicaciones por defecto a las últimas versiónes.

Instalar y Ejecutar Xcode

Acto seguido y en la misma App Store buscaremos, instalaremos y abriremos por primera vez Xcode. Esta acción nos creará una base necesaria en el sistema sobre la cual seguir trabajando. En el caso de que no necesites instalar Xcode completamente ya que no programas en Swift pero aún así necesitas las herramientas de línea de comando (compiladores, librerías, etc…), pues escribiendo la siguiente instrucción en la terminal del sistema las podrás instalar:

…luego de esto se nos abrirá una ventana:

Xcode Command Line Tools - Instalación

…damos click en Install y pasamos a la licencia:

Xcode Command Line Tools - Licencia

…aceptamos y la instalación comienza:

Xcode Command Line Tools - Descarga de Software

…al finalizar veremos esta otra (en caso de que todo termine bien):

Xcode Command Line Tools - Mensaje Final

Instalar iTerm2

Ahorita vamos a descargar e instalar iTerm2, una terminal mucho más completa para nuestro macOS. Luego de descargada y copiado el ejecutable a la carpeta Applications se nos debe mostrar con esta apariencia:

iTerm 2 - Default Look

…terminaremos con iTerm2 en el próximo apartado.

Oh My ZSH!

Esta expresión es el nombre de un framework de código abierto mediante el cual podremos gestionar el interprete de comando ZSH. Oh My ZSH nos ayuda a ser más productivos a través de funciones, ayudas, plugins y temas visuales que harán que nuestra interacción con la terminal sea como mínimo más amena.

Proseguimos a instalar este framework con el comando disponible en su web, específicamente la versión “curl” ya que “wget” no viene instalado por defecto en macOS:

Luego de ejecutar el anterior comando, el script de instalación nos pide el password de nuestro usuario, este proceso se muestra:

Oh My ZSH - Installation

En este punto ya nuestro terminal luce diferente y nuestro próximo paso (en mi caso) será cambiar el aspecto visual por defecto y esto lo haremos mediante el archivo de configuración localizado en nuestra carpeta home, en la dirección:

/Users/<usuario>/.zshrc

…donde “<usuario>” debemos de sustituirlo por el nombre de nuestro usuario.

Para establecer un nuevo tema debemos de modificar la variable ZSH_THEME de su valor por defecto:

ZSH_THEME=”robbyrussell”

…a uno de mis preferidos:

ZSH_THEME=”bira”

Este archivo lo podemos editar con el comando vim o nano, de nuestro home de la siguiente manera:

…una vez terminada la edición presionamos Ctrl + X y cuando nos pregunte por los cambios pues los guardamos presionando la tecla Y y luego Enter. El próximo paso sería cerrar la terminal, volverla a abrir y tenemos el nuevo tema habilitado:

iTerm 2 - Bira Theme

Otro aspecto a destacar de Oh My ZSH es que no tenemos que estar pendientes de su actualización, ya que tal y como se muestra en la siguiente imagen:

Oh My ZSH - Update

…una vez que haya un update disponible nos lo hará saber al abrir la terminal, presionamos Enter y se actualiza automáticamente.

Instalar Homebrew

Continuamos con Homebrew, el gestor de paquetes para macOS que faltaba (según podemos leer en su sitio web) y que todos los que venimos de Linux lo podemos ver como el homologo de apt-get o yum / dnf. Al igual que con Oh My ZSH la instalación la llevaremos a cabo con un comando:

Luego de presionar Enter veremos un resultado similar al siguiente:

Homebrew - Installation

Luego de esto ejecutamos:

Este comando hace un chequeo en busca de problemas que puedan influir en el buen funcionamiento de Homebrew, la salida en pantalla, en caso de todo estar bien, es:

Las opciones de uso más frecuentes son:

OpciónDescripción
brew search <app>Buscar una app.
brew info <app>Obtener información sobre una app.
brew install <app>Instalar una app.
brew updateActualizar Homebrew y el resto de app instaladas a través de él.
brew listMostrar las app instaladas a través de Homebrew.
brew uninstall <app>Desinstalar una app.
brew uninstall –force <app>Todas las versiones de una misma app serán desinstaladas.

Algo que me gusta mucho de Homebrew y que me recuerda al projecto MacPorts es que este no usa binarios precompilados, en lugar de esto descarga los códigos fuentes y compila todo el software antes de instalarlo y esto es genial ya que todo nos queda bien optimizado para nuestro kernel y sistema en general.

Midnight Commander

Otra herramienta que, a mi modo de ver, no puede faltar es el explorador de archivos Midnight Commander, lo uso también en Linux y jamás me ha defraudado, lo que promete lo cumple, lo hace bien. Esta aplicación la vamos a instalar a través de Homebrew con el siguiente comando:

…finalizado este proceso ejecutamos:

…y deberíamos de ver algo similar a la siguiente imagen:

Midnight Commander - Default Look

Con Midnight Commander podemos realizar las mismas tareas (o más) que usualmente llevamos a cabo en un explorador de archivos “normal”: cambiar permisos, editar, borrar, renombrar, mover… como pueden observar la pantalla la tenemos dividida en dos, lo que facilita grandemente la copia local de archivos y la remota, podemos tener a la izquierda nuestra carpeta local y en la derecha una remota ya que MC se puede conectar con otro ordenador por FTP / SSH . Sin dudas una herramienta que optimiza exponencialmente las tareas administrativas a bajo nivel.

Visualizar Procesos y Recursos con HTOP

Otra herramienta que vengo arrastrando de Linux es htop, la cual nos ayuda a visualizar los procesos del sistema y los recursos que tenemos en uso, puedo matar un proceso, darle más prioridad, puedo filtrar, buscar, etc… Lo instalamos con el comando:

…luego de instalado ejecutamos:

Htop - Default Look

Como podemos observar en el área superior de la imagen encontramos el uso de los núcleos, el uso de la memoria RAM y Swap, también tenemos la carga del sistema y el Uptime (tiempo que lleva encendido el ordenador sin reiniciarse y evidentemente sin apagarse) del mismo.

Control de Versiones con Tower

Git es un software de control de versiones creado por Linus Torvalds, muy popular y del cual todos tenemos como mínimo una referencia.  Viene instalado por defecto en macOS pero en el caso de que necesitáramos una versión más moderna (en caso de no serlo) no hay problema alguno, ya hemos tomado en cuenta estas situaciones posibles, a través de Homebrew la vamos a poder instalar. Pero antes necesitamos saber si realmente tenemos una versión antigua:

Primero verificamos la versión actual del sistema con:

…y luego la comparamos con la disponible en los repositorios de Homebrew con el comando:

Comprobamos la versión de git disponibles en los repositorios de brew.

En la imagen podemos observar claramente que tenemos la versión 2.13.5 y que en los repositorios tenemos la 2.14.2 estable, así que está bien claro que debemos actualizar. Algo que podemos lograr de una forma bien sencilla:

Instalamos git mediante el gestor de paquetes brew.

…terminado esto, cerramos y volvemos a abrir nuestra terminal para acto seguido verificar la versión en el sistema.

En mi caso la versión que viene por defecto me ha sido suficiente pero creo que es una buena costumbre siempre mantenernos actualizados a la última versión estable de cualquier software.

Ahora, acerca de la interfaz gráfica pues ya deducirán mi inclinación a favor de Tower que es de pago, pero también contamos con SourceTree una alternativa gratuita también muy buena.

Tower Git Client

Tower es el mejor cliente de Git para Mac y Windows, según ellos mismos proclaman. En mi experiencia lo es para Mac, la interfaz gráfica la encuentro bien diseñada y me siento cómodo en ella, al mismo tiempo que es un software estable y que funciona muy bien, es rápido, se conecta a Github, etc.

Los mejor de estas alternativas sea cual sea la que elijas es que nos permiten hacer de una manera gráfica y amigable casi todo cuanto se puede lograr desde la línea de comandos y esto en ocaciones resulta en un plus de productividad que evidentemente nunca está de más.

Consultando la Documentación con Dash

Todos, en más de una ocasión como parte de nuestro aprendizaje del lenguaje Swift (o cualquier otro) o como referencia, necesitamos consultar la documentación del lenguaje o cualquier otra tecnología / framework.

Para esto me apoyo en Dash, un software que nos permite acceder a la documentación de varias API. A esta información accedemos bajo demanda ya que Dash nos permite elegir la tecnología de nuestro interés, que luego de descargada puede ser consultada de manera offline (sin conexión), también podemos gestionar fragmentos de código (Code Snippet), incluso podemos añadir anotaciones.

Aquí les muestro como luce mi instalación de Dash y la documentación que tengo instalada:

Dash - API Documentation Browser

En la esquina superior derecha de la imagen podemos ver que Dash es un software de pago, pero la versión gratuita tiene disponible todas las características. El modelo de negocio de los desarrolladores es que lo compremos si nos gusta y sobre todo como apoyo al proyecto para que este siga avanzando. Yo aún no lo he comprado pero sin dudas lo haré.

Entorno de Desarrollo Ideal

Un entorno de desarrollo iOS profesional o de cualquier otra tecnología siempre estará determinado por las particularidades que maticen el trabajo a efectuar, el gusto del programador y cuan cómodo se sienta este interactuando con sus herramientas. Muchas veces esta elección va más allá del rendimiento y se encuentra atada a razones emocionales o de moda. Así que un entorno de desarrollo ideal no existe en una selección y configuración especifica, más bien de manera particular. Lo que para mi es un ecosistema genial y en el cual soy muy productivo pues para otra persona quizás no lo sea tanto. Al mismo tiempo tampoco es bueno quedarnos encasillados en lo mismo por lo que siempre es muy recomendado probar cosas nuevas y mantenernos actualizados con las tendencias que no siempre están del todo mal. Dicho esto, si crees que mi configuración puede ser mejorada o conoces alguna alternativa para alguna de estas herramientas, pues te invito a que dejes tu referencia en los comentarios.

Falta aún mucho por aprender… Suscríbete a nuestra lista de correo mediante el formulario en el panel derecho y síguenos en nuestras redes sociales, mantente así al tanto de todas nuestras publicaciones futuras.

Espero que todo cuanto se ha dicho aquí, de una forma u otra le haya servido de aprendizaje, de referencia, que haya valido su preciado tiempo.

Este artículo, al igual que el resto, será revisado con cierta frecuencia en pos de mantener un contenido de calidad y actualizado.

Cualquier sugerencia, ya sea errores a corregir, información o ejemplos a añadir será, más que bienvenida, necesaria!