A Swift framework that makes iOS/macOS apps immune to recompile-disease by enabling hot reloading with InjectionIII.
Vaccine is a Swift framework that integrates with InjectionIII to enable hot reloading (code injection) for iOS and macOS apps. It allows developers to see UI changes instantly in the simulator without recompiling the entire application, solving the slow iteration problem known as 'recompile-disease'.
iOS and macOS developers using Swift who want to accelerate UI development and testing by implementing hot reloading in their Xcode projects.
Developers choose Vaccine because it provides a straightforward, integrated way to add hot reloading to existing projects, reducing compile times and enabling rapid visual feedback during UI tweaks and debugging.
:syringe: Vaccine - Make your apps immune to recompile-disease
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Directly integrates with InjectionIII to enable instant UI updates in the simulator, reducing compile times as demonstrated in the application delegate setup examples.
Extensions automatically handle injection notifications, reloading views and invoking layout methods, which simplifies the process for view controllers without manual observer management.
Optional method swizzling automates injection for views and controllers, reducing boilerplate code as described in the views section, though it's enabled by default.
Manages Auto Layout constraints by deactivating old ones during injection to prevent ambiguity, a feature highlighted in the Auto layout constraints section with examples.
Hot reloading only works in the simulator, not on physical devices, as explicitly stated in the README, making it ineffective for device testing or production builds.
Swizzling is enabled by default, which can alter runtime behavior and potentially conflict with other libraries or custom code, requiring careful management.
Relies entirely on InjectionIII, a third-party tool maintained externally, introducing risks of compatibility issues or abandonment that could break the workflow.