El programador Wassim Shipman lanzó SPEEM, su primera aplicación de iOS, sin usar Xcode, trabajando íntegramente desde Doom Emacs. En el artículo explica que el entorno de Apple ofrece un conjunto de utilidades de línea de comandos —xcodebuild, xcrun simctl, xcrun swift-format, sourcekit-lsp y xcode-build-server— que normalmente quedan ocultas tras la interfaz gráfica de Xcode. Combinando esas herramientas con código Emacs Lisp es posible replicar el ciclo completo de desarrollo: escribir Swift, compilar, arrancar un simulador, instalar la app, lanzarla, mostrar logs, reiniciar el LSP y crear nuevos proyectos.
El autor detalla un módulo propio de unas 1000 líneas, modules/ios.el, con atajos agrupados bajo el prefijo SPC i: b para compilar, s para instalar y lanzar en simuladores seleccionados, l para mostrar logs filtrados, n para generar un proyecto SwiftUI desde cero y g para regenerar el archivo buildServer.json. La configuración se integra con swift-mode y LSP, y usa el formateador apheleia, que invoca swift-format al guardar cada archivo.
Uno de los puntos clave es garantizar que el servidor de lenguaje apunte al sourcekit-lsp incluido en la versión activa de Xcode, fijando la variable de entorno DEVELOPER_DIR. El texto también muestra cómo generar de forma automática el buildServer.json que sourcekit-lsp necesita para conocer los flags de compilación del proyecto, mediante xcode-build-server, ejecutándolo la primera vez que se abre un archivo Swift.
El artículo repasa la estructura general de su configuración de Doom, organizada en módulos por lenguaje (rust, elixir, kotlin-android, web, slint) con un único modules/keybindings.el donde residen todos los map! para localizarlos fácilmente. Wassim, usuario de Doom Emacs desde hace cuatro años, justifica el trabajo por la coherencia de mantener un mismo flujo entre lenguajes y por la fricción que le suponía regresar a Xcode.
