krzysztofzablocki/inject

Hot Reloading for Swift applications!

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 27 minutes ago
Type:Library / SDKCategory(s):Editors & IDEsiOS & macOSDeveloper Tools
Added to GitGenius on September 20th, 2026
Created on November 12th, 2021
Open Issues & Pull Requests: 0 (+0)
GitHub issues: Enabled
Number of forks: 148
Total Stargazers: 3,483 (+0)
Total Subscribers: 18 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 3.2 hours
Mean response time: 10.9 days
90th percentile: 24.6 hours
Tracked items: 23

Most active contributors

Sign in to see contributor activity.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 0
New in 7 days: 0
Closed in 7 days: 0
Avg open age: N/A days
Stale 30+ days: 0
Stale 90+ days: 0

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

No label distribution available yet.

Most active issues this week

Sign in to see which issues are moving.

Detailed Description

Inject is a hot reloading workflow helper for Swift applications that enables you to modify running code and see changes reflected immediately without rebuilding and restarting your app.

The tool solves the productivity drain of lengthy compile-rebuild-restart cycles during development. It wraps InjectionIII, an existing injection framework, to provide a streamlined developer experience. By adding a single line of code to your views, you enable live code editing for UIKit, AppKit, or SwiftUI screens. The approach works by allowing you to edit your application code while it runs in the simulator and have those changes take effect in real time, eliminating the need to recompile, redeploy, and re-navigate to your previous location in the app.

The tool suits any Swift developer working on iOS, macOS, or other Apple platforms who spends significant time iterating on UI and logic. It requires initial project setup including linker flags and installation of the InjectionIII application, but once configured, it operates as a no-op in production builds since the injected code is stripped by LLVM during non-debug compilation. This means you can leave Inject integrated into your codebase indefinitely without any production overhead or need for conditional compilation.

Development activity shows consistent engagement with the codebase through regular commits addressing issues and improvements. The project maintains responsiveness to user-reported problems and feature requests. Documentation is thorough, with detailed setup instructions and explanations of the underlying hot reloading technique provided in the README and linked articles.