IDE
Essence
An IDE (Integrated Development Environment) combines a code editor, a build system, a debugger and analysis tools in one window. For iOS that is Xcode: without it you cannot build an app for the iPhone, sign it or submit it to the App Store.
What Xcode is made of
- The editor with completion, highlighting, refactorings and navigation powered by SourceKit; documentation right in the editor.
- The build system (xcodebuild / Swift Build): projects, targets, schemes, Debug/Release configurations, Build Settings, Swift Package Manager integration.
- The compilers
swiftcandclang— Xcode invokes them and shows the errors inline. - The LLDB debugger: breakpoints,
po, the view debugger, the memory graph debugger for finding retain cycles. - The Simulator and running on a device; since iOS 26 — SwiftUI Previews and
#Playgroundfor quick experiments. - Instruments: Time Profiler, Allocations, Leaks, Hangs — profiling.
- Tests: XCTest and Swift Testing, UI tests, test plans, code coverage.
- Organizer: archives, crash logs, metrics, upload to App Store Connect.
xcodebuild -scheme DevPrep \
-destination 'platform=iOS Simulator,name=iPhone 17' test
xcrun simctl list devices # manage simulators from the terminal
swift build && swift test # build a package without Xcode
What else is in use
- Xcode Cloud / GitHub Actions / fastlane — CI: builds and tests without a developer in the loop.
- VS Code / Cursor + SourceKit-LSP — for packages and server-side Swift; they cannot build an iOS app.
- Swift Playgrounds — learning and prototypes.
What the interviewer looks for
Not the definition but the practice: how you hunt a retain cycle (Memory Graph), what you do when the UI freezes (Time Profiler, Hangs), how you speed up builds (modularisation, SPM cache, avoiding heavy type inference).