
일반적인 Native 개발 환경 (ex - Android Studio, Xcode 등) 에서는 개발을 진행하며 결과물을 보기 위해 프로젝트를 빌드시켜야하는 치명적인 단점이 있다.
물론 프리뷰도 있지만.. 프로젝트에 부담이 갈 수 있다.
이런 부분을 정확히 알고 있는 Flutter에서 굉장히 장점으로 내세우는 기능이 바로 Hot Reload입니다.
Hot Reload를 활용하면 변경 사항을 즉각적으로 확인할 수 있으며 코드의 변경 및 확인 사이클이 매우 짧아지게 되어 빠른 시도, 빠른 피드백이 가능하게 됩니다.
Flutter에서 사용하는 이 Hot Reload 를 사용하려면! 일단 이 AppStore, 혹은 Github로 들어가 다운받아줘야한다.
⚠️ Inject를 사용하려면 Xcode의 경로가
/Applications/Xcode.app이어야 합니다!
다운로드한 injectionIII를 실행시키면
![]()
이와같이 탭바에 추가될 것이다. 그렇다면 이제 Xcode를 만져주면 된다.
만약 본인이 SPM을 사용한다면 이렇게 추가해주면된다.

물론 cocoa pod도 가능하겠지만.. 나는 사용하지 않으니 생략하겠다.
Targets/(ProjectName)/Build Setting/Other Linker Flags
이 위치로 들어가서
-Xlinker -interposable
를 넣어준다

["OTHER_LDFLAGS": "-Xlinker -interposable"] 를 추가해주면 됨
이제 거의 다 왔다.
일단 아까 봤던 탭바 속 InjectionIII에 들어가 Remote Control/Start Server 를 해주고
UIKit 같은 경우에는 SceneDelegate
let viewController = Inject.ViewControllerHost(ViewController())
rootViewController.pushViewController(viewController, animated: true)
작성 해주고 실행했을 경우
💉 InjectionIII connected /Users/Philip/Desktop/Inject-Practice/InjectPractice.xcworkspace
💉 Watching files under /Users/Philip/Desktop/Inject-Practice
이렇게 뜨면 성공적으로 연동이 된 것이다.
SwiftUI도 비슷한데,
import Inject
struct ContentView: View {
@ObservedObject private var iO = Inject.observer ✅ ///안해주면 감지 못함
var body: some View {
Text("Hello, world!")
.padding()
.enableInjection() ✅
}
}
이렇게 해주먼 된다.
똑같이
💉 InjectionIII connected /Users/Philip/Desktop/Inject-Practice/InjectPractice.xcworkspace
💉 Watching files under /Users/Philip/Desktop/Inject-Practice
로그 확인해주면 끝!
UIKit
SwiftUI
이 분 글 많이 참고 했습니당
글 잘 읽었습니다!
혹시 안드로이드에서도 사용이 가능할까요??