[iOS] [Swift] InjectionIII로 개발생산성 증가 시키기

JB
4 min readJun 25, 2022

--

Code Injection 은 클래스, 구조체, 또는 열거형의 함수나 메서드등을 실시간으로 업데이트시켜 개발 생산성 을 향상시켜줍니다. 특히, UI 를 짜는 프론트엔드 개발자들에게는 완소적인 기능이죠.

과거 Flutter 로 사내 엔터프라이즈 앱을 출시 한 경험이 있는데 가장 눈에띄는건 Hot Reload 였습니다. Code-based로 작성한 UI 를 실시간으로 확인할 수 있다보니 생산성 이 매우 높아졌습니다.

물론 Apple 에서도 Preview 라는 시스템을 도입하긴했지만 iOS 13 부터 사용할 수 있어 minimum deployment target 이 낮은 앱들에게는 아직 제한적인 상황입니다.

이럴때 InjectionIII 을 사용하면 이러한 Preview 와 같은 효과를 낼 수 있습니다.
*사용법도 매우 간단합니다.*

  1. InjectionIII 다운받기
    https://github.com/johnno1962/InjectionIII 에 들어가셔서

오른쪽 하단에 있는 Releases 를 클릭 하신 후에

source code를 받아줍니다.
설치를 마무리하시면 상단 상태바

위와같은 아이콘이 떠있게 됩니다.

2. InjectionIII 초기세팅!

에서 아래 2가지를 설정해주셔야 합니다!
- Open Project
- Add Directory
- Prepare Project

i. Open Project 에는

와 같이 프로젝트 파일을 설정해주시고

ii.Add Directory 에는

위와같이 파일 디렉토리를 설정해주시면 됩니다.

iii.Prepare Project 를 클릭하시면

이런 팝업창이 뜰텐데 Go ahead 클릭하셔서 진행해주시면 됩니다!

그러면 Xcode 콘솔에 아래와 같이 찍히면 InjectionIII 초기세팅은 마무리 되었네요 :)

3. XCode 초기세팅!

i. App Delegate

와 같이 설정해주세요

ii. Build SettingsOther Linker Flags 값에 -Xlinker -interposable 를 추가해줍니다

iii. 마지막으로

와 같이 injected 함수 내부에 사용 할 View 를 대입해 줍니다.

이제 모든 세팅은 끝났으니 빠르게 개발해볼까요?
(재 갱신을 위해서는 Injected 함수가 정의된 ViewController 에서 Command+S 를 눌러주시면 됩니다!)

--

--