This document discusses Injection for Xcode, a plugin that allows hot reloading code changes in Xcode without rebuilding the project. It works by using method swizzling for classes that inherit from NSObject. The document outlines what Injection for Xcode is, provides a demo, explains how it works and its limitations, discusses its history as a plugin and standalone app, and describes how it can be used for test-driven development.
3. What¡¯s Injection
Plugin for Xcode ¡ú Standalone app (Xcode 8.3.3 & up)
Hot Reload (without making any changes to your project)
Save compile time
Without making any changes to projects
Change Compile Find Check
> 2 sec, up to minute
Change CheckInject
< 2 sec
5. How it Works & limitations
Method Swizzling
Must inherit from NSObject (i.e., not struct, enum)
Method dispatch must Not be direct dispatch, (i.e., not - final, -private, extension methods)
http://bit.ly/2AjZByA
6. History
1. Before Xcode 8 : direct installed by Alcatraz
2. Xcode 8 : signed Xcode(remember Xcode ghost?)
3. Mac App(Injection II) : for Xcode 8.3.3
4. Mac App(Injection II) : separate version for Xcode 9
5. Mac App(Injection III) : upcoming re-write (mostly) in Swift4