I built an iOS Simulator toolkit for macOS — here's what it does

Published: (February 8, 2026 at 05:49 AM EST)
4 min read
Source: Dev.to

Source: Dev.to

If you develop iOS apps, you spend hours every day in the Xcode Simulator. And every day, you run into the same friction:

  • Need to check WebSocket messages? No built‑in inspector for that.
  • Need to check API responses? Set up Charles Proxy with SSL certificates.
  • Need a screenshot with a device frame? Switch to another tool.
  • Need to test a push notification? Open terminal, write JSON, use simctl push.
  • Need to test on slow network? Can’t do it on the Simulator natively.
  • Need to verify accessibility? Toggle settings one by one in the Simulator’s Settings app.

I built SimKit to solve all of these in one macOS app.

Download SimKit from the Mac App Store.

SimKit demo GIF

What is SimKit?

SimKit is a macOS application that runs alongside the iOS Simulator and adds professional tools Xcode doesn’t provide. It’s freemium (core features free, Pro tier for advanced tools), built with 100 % Swift and SwiftUI, and has zero third‑party dependencies.

GitHub:

Features at a Glance

Screen Recording & Screenshots

  • Record the Simulator with device bezels and touch indicators visible in the output. Export to MP4 or GIF.
  • Take screenshots with custom status bars and device frames — ready for App Store marketing or pull‑request documentation.

Network Debugging (Zero Config)

Add one line to your iOS app:

import SimKitSDK

SimKitSDK.shared.enable()

Now you get:

  • WebSocket inspection – monitor frames, messages, and connection lifecycle in real time.
  • Real‑time HTTP traffic monitoring – see every request, response, headers, and body.
  • Network throttling – simulate Wi‑Fi, LTE, 4G, 3G, 2G/Edge, custom speeds, or offline mode.
  • Mock endpoints – return custom JSON for any URL pattern without a mock server.
  • Export – HAR format for Chrome DevTools or cURL for terminal replay.

No proxy setup, no certificates, no Charles Proxy license. It uses URLProtocol interception under the hood.

Push Notification Testing

A visual push notification tester replaces the simctl push terminal workflow:

  • JSON editor with syntax highlighting.
  • Built‑in templates (message, alert, badge, silent push, rich notification).
  • Badge number control.
  • Payload history – reuse previous notifications.
  • Send to any running Simulator with one click.

Test URL schemes and Universal Links with a visual interface. Save link templates for frequently tested routes. No more typing xcrun simctl openurl booted ….

Location Simulation

  • 8 preset city locations.
  • Custom GPS coordinate entry.
  • GPX route file playback – simulate movement along a path for navigation, fitness, or ride‑sharing app testing.

Accessibility Testing — 11 Settings in One Panel

Toggle any combination of:

  • Dynamic Type (7 sizes: XS to XXXL)
  • Dark/Light mode
  • Reduce Motion
  • Reduce Transparency
  • Bold Text
  • Button Shapes
  • Grayscale
  • Inverted Colors
  • Increase Contrast
  • On/Off Labels
  • Differentiate Without Color

Test your app’s accessibility support without digging through the Simulator’s Settings app.

Developer Utilities

  • UserDefaults editor – view and edit your app’s UserDefaults without code changes.
  • App container browser – navigate your app’s sandbox directories.
  • Permission manager – grant or revoke permissions (camera, photos, location, etc.).
  • Biometric simulation – trigger Face ID / Touch ID match or failure events.

Getting Started

Download SimKit from the Mac App Store or visit the website.

For network features, add the SimKit SDK to your iOS project via Swift Package Manager:

import SimKitSDK

@main
struct MyApp: App {
    init() {
        SimKitSDK.shared.enable()
    }
    var body: some Scene {
        WindowGroup { ContentView() }
    }
}

Feedback & Support

  • Bug reports:
  • Feature requests: Open an issue with your idea.
  • Star the repo: If SimKit helps you, a star goes a long way.
  • GitHub:

What features would you want to see next? Let me know in the comments.

0 views
Back to Blog

Related posts

Read more »

[SUI] Barra lateral (Sidebar)

Descripción En iPadOS y macOS se pueden presentar las pestañas en una barra lateral modificando el TabViewhttps://developer.apple.com/documentation/swiftui/tab...

A Beginner’s Guide to Testing in Go

Tests Enforce Contracts Now right off the bat, you don’t want to get this wrong. When writing tests, the key thing to keep in mind is that we should treat what...