Hot Reload
Apply C# changes to a running SkeleKit app with JetBrains Rider.
Everyone who ever tried working with .NET for iOS knows how annoying the development experience is. Building UIs takes a loooot of time, and the lack of modern tooling like hot reload makes writing UI in code especially tedious. Not even MAUI supports hot reload for code behind files...
SkeleKit supports full hot reload for JetBrains Rider through a marketplace plugin. It applies compatible C# changes while the debugger remains connected, then rebuilds the current page without recreating its ViewModel.
The current plugin supports Rider 2026.2 and only iOS simulators. Hot reload is not available for physical devices.
Install the Rider plugin
Open Settings → Plugins → Marketplace in Rider, search for SkeleKit Hot Reload, install it, and restart Rider when requested.
Hot reload must also be enabled in the project file. Projects created from the SkeleKit template already include this setting. For manually configured projects, add:
Apply changes
- Select a local iOS simulator in Rider.
- Start the app with Debug, not Run.
- Wait for
Hot reload ready.in the Debug output. - Edit the constructor of a view, the method body of a view model or a service, and save the file.
After a successful update, Rider prints which file was reloaded and the visible page is rebuilt inside the Debug output. The normal debugger, breakpoints, and stepping remain available.
Limitations
Hot reload currently supports changes inside existing method bodies. Changes to type structure - such as new fields, types, or method signatures - require rebuilding and restarting the app.
Apply edits while the app is running. If Rider is paused at a breakpoint, resume the app before saving again.