I Tried Device Hub in Xcode 27 and I’m Not Going Back to Simulator
You know that feeling when Apple drops something at WWDC and you’re like “okay, cool, but will I actually use this?” That was me with Device Hub. A standalone app for managing simulators and devices? Sounded like a fancy wrapper around what we already had.
Then I actually used it.
The moment it clicked
I was working on a Flutter app — a food delivery app with a pretty detailed order tracking screen. Maps, status updates, ETAs, the whole thing. I’d been testing it on a single iPhone 16 Pro simulator and everything looked great. Ship it, right?
Wrong.
A friend tested the build on her iPhone SE (3rd gen) and texted me a screenshot. The order status card was overlapping the map. The delivery ETA was literally sitting behind the “Track Order” button. It looked broken.
The problem? I’d never actually tested at a smaller screen size with larger Dynamic Type. Classic.
Now normally, this is where I’d start the painful dance -> open Simulator, boot an SE, manually go into Settings > Accessibility > Display & Text Size, bump it up, relaunch the app, check it, go back, change something else. You know the drill.
With Device Hub, I did all of this without leaving one window.
Instant Dynamic Type and Dark Mode toggling
This is honestly the feature that sold me. You can change the text size with a slider and it takes effect instantly. No navigating through three levels of Settings menus on the simulator. No relaunching.
I bumped the Dynamic Type to the largest accessibility size and immediately saw my Text widgets overflowing their containers. Then I toggled dark mode in just one click and spotted that my status badge was using a hardcoded color that became invisible against the dark background.
Two bugs found in about 30 seconds. Previously that would’ve been a 5-minute round trip each.
My actual debugging workflow
Here’s what happened step by step. I’m sharing this because I genuinely think this workflow is faster than anything I’ve done before.
1. Open multiple simulators at once
I selected iPhone SE, iPhone 16, and iPhone 16 Pro Max from the device list, opened them all as compact windows side by side. Three screen sizes, one glance.
2. Spot the bug
The SE was clearly broken at large text. The 16 Pro Max looked fine. The regular 16 was borderline; the text was fitting, but just barely. So this was a constraint issue that only showed up at smaller widths + larger type.
Get Charu Gupta’s stories in your inbox
Join Medium for free to get updates from this writer.
3. Simulate the exact conditions
I set the SE simulator’s location to a specific coordinate (I needed the map to show a real delivery route to test the full layout). Changed Dynamic Type to XXL. Rotated to landscape. All without touching the simulator’s Settings app.
That’s when I saw the real problem i.e in landscape with large text, the bottom sheet was pushing the map off screen entirely. The SafeArea wasn't accounting for the Dynamic Type changes to the bottom sheet height.
4. Grab the app data
Device Hub lets you download the app’s data container. I grabbed the container with the specific order state that was causing the layout issue, so I could restore it later for regression testing after my fix.
This is underrated. Before this, I’d have to set up a specific app state every time I wanted to test a particular scenario. Now I just snapshot it and restore whenever.
The little things that matter
Some features don’t sound exciting until you’ve needed them:
- Capture Keyboard: routes your Mac keyboard input directly to the simulator. I use this to test search flows without clicking into the simulator first. Small thing, but less friction.
- 1:1 physical size: snaps the simulator to the exact real-world dimensions of the device. I used this to check if my tap targets were actually thumb-friendly on the SE. (Spoiler: they weren’t.)
- Contextual hardware controls: when I switched to testing on an Apple Watch simulator, the controls changed to show the Digital Crown and side button. No more hunting for the right menu items.
devicectl for CI
This one’s for the automation nerds. Device Hub has a command-line companion called devicectl. Same underlying tech, but scriptable.
I’m already thinking about adding it to my CI pipeline:
# Switch to dark mode before running screenshot tests
devicectl modify device --device <id> appearance dark
# List all available devices as JSON
devicectl list devices --json-outputThe --json-output flag makes it dead simple to parse in scripts. Imagine running your screenshot tests across light/dark mode automatically, or validating layout at different text sizes in CI. That's the real power here.
What I’d still like to see
It’s not perfect. A few things on my wishlist:
- Side-by-side diff view: I want to see two simulators overlaid or diffed pixel-by-pixel. Would make responsive testing even faster.
- Preset configurations: let me save “SE + Large Type + Dark Mode + Landscape” as a preset I can load with one click.
- Flutter hot reload integration: right now I still need Xcode or VS Code running alongside it. Would be cool if Device Hub could trigger a reload.
Bottom line
Device Hub isn’t just a fancier Simulator window. It’s a workflow shift. The fact that I can configure appearance, simulate locations, manage app data, and control multiple devices, all without opening a single Settings menu on the simulator, has genuinely changed how I test.
If you’re still manually navigating to Settings > Developer > Dark Mode every time you need to test appearance… just try Device Hub once. You’ll get it.









