Building iOS Apps with Doom Emacs
4 hours ago
- #iOS development
- #Emacs configuration
- #workflow automation
- Built first iOS app (SPEEM) entirely from Doom Emacs, bypassing Xcode.
- Achieved full development loop (coding, building, simulator control, logs, LSP) via custom SPC i keybindings.
- Leveraged Apple's command-line tools (xcodebuild, simctl, swift-format, sourcekit-lsp) that underlie Xcode.
- Created a ~1000-line Emacs module (modules/ios.el) for iOS workflow integration.
- Motivation: Preference for Emacs environment and consistency across multi-language configs.
- Key features: Auto LSP setup, build automation, multi-simulator deployment, filtered log streaming, project scaffolding.
- Structure: Modular Doom config with separate files for iOS, keybindings, and other languages.
- Automated generation of buildServer.json for accurate LSP project understanding.
- Simulator management includes booting, installing, launching, and status bar customization.
- Logging system filters noise, highlighting app outputs, errors, and warnings.
- Scaffolding generates new SwiftUI projects via xcodegen without opening Xcode.
- Daily workflow relies on Emacs for most tasks, only using Xcode for occasional tasks like signing, assets, or Instruments.
- Conclusion: Viable for existing Emacs users; Xcode remains a good choice for others.