DEV Community

CoreDataHero
CoreDataHero

Posted on

Can You Do iOS Development Without Xcode? A Full-Process Comparison from Environment Setup to Running on a Real Device

I had been using Xcode for iOS development until one day I changed computers. Downloading Xcode took nearly two hours, and after unzipping, I found only 20GB left on the hard drive. Every major version update involved over ten gigabytes of downloads, plus Simulator and various iOS SDKs, so a 256GB Mac soon required cleaning up space. Later, a new teammate arrived with a Windows laptop and wanted to write iOS code, but the Mac configuration hadn't been approved yet. The threshold of iOS development being tied to Mac and Xcode is indeed not flexible for many scenarios. So I began to wonder: can iOS development be done without Xcode? Are there lighter alternatives?

Several Alternative Paths Without Installing Xcode

I first tried the approach of VS Code plus remote Mac compilation. Write code on Windows, connect to a remote Mac via SSH, and execute xcodebuild. The coding environment problem was solved, but the debugging phase is unavoidable—running on a real device requires Xcode to handle provisioning profiles and signing, so ultimately a Mac with full Xcode is still needed. Moreover, after each code change, the three steps of local editing, remote compilation, and syncing to the device made the workflow longer than developing directly in Xcode.

I also tried the CI approach. Codemagic and GitHub Actions can automate build packaging, suitable for continuous integration before releases. However, frequent debugging and modifications during daily development—changing a line of code and running to see the result—cannot be pushed to CI every time and wait a few minutes. Its coverage is limited.

I also considered AppCode, but it essentially still depends on Xcode's toolchain, and JetBrains has discontinued its maintenance.

Another Approach: KXApp IDE

KXApp has built the compilation toolchain into the IDE, allowing iOS applications to be compiled and signed without installing Xcode on the system. It uses VS Code as its editor layer, with shortcuts, interface layout, and plugin ecosystem consistent with VS Code—AI code completion, ESLint, and the Git panel all work directly, so there's no need to adapt to a new editor. Project creation supports three templates: Swift, Objective-C, and Flutter. Selecting a type generates a standardized project structure in one click, unlike in Xcode where creating a project involves checking a bunch of options. The iOS compilation of Flutter projects usually depends on Xcode's toolchain, but KXApp has built-in support for Dart compilation, so you can open a Flutter project and run it directly on a real iOS device, eliminating the steps of configuring Flutter and Xcode integration.

The biggest difference lies in real-device debugging. The standard Xcode workflow is: connect the device → go to Devices and Simulators to configure signing → Product → Run, which can be interrupted by mismatched certificates and provisioning profiles in the process. KXApp reduces this to three steps: connect iPhone via USB → click Build and Install → the tool automatically handles signing and deploys to the real device. After code changes, it incrementally syncs to the device for direct verification, without rebuilding the full installation package every time. Once development is complete, you can directly create a build package in the same interface for test distribution or uploading to the App Store, without needing to open additional tools like Application Loader or Transporter.

How to Choose in Different Scenarios

Xcode remains irreplaceable for complex project configuration, visual Storyboard/XIB editing, and in-depth analysis with Instruments. KXApp is suitable for rapid prototyping, scenarios where Windows developers on the team need to participate in iOS coding, or when disk space is limited and you don't want to install the full Xcode. For beginners just starting iOS development, they don't have to face Xcode's complex project configuration right away, making the learning curve more gentle. The two can be used complementarily, switching flexibly based on project stage and team environment.

Top comments (0)