
생산성 올리는 방법 (Hot Reload)
Inject를 이용하여 생산성 올리기
2025-01-04 09:00
·- iOS
- Hot Reload
들어가며
앱을 개발하다 보면, 작은 변경이 있을 때마다 재빌드하는 게 꽤 비효율적이에요.
Flutter를 개발할 때는 핫 리로드가 빌트인으로 들어있어서 정말 빠르게 개발할 수 있었거든요.
반면 iOS 개발에서는 모듈을 쪼개고 데모앱을 따로 만들어 빌드 속도를 줄이는 방식으로 해결해왔어요.
그러다 "iOS에서도 핫 리로드를 쓸 수 있으면 얼마나 좋을까?" 하는 생각이 들었고,
찾아보니 꽤 괜찮은 도구들이 있었어요.
Hot Reload: Inject 도입
Inject를 사용하면 iOS에서도 핫 리로드가 가능해요.
빌트인은 아니라 초기 설정이 조금 필요하지만, 크게 어렵진 않았어요.
UI 시나리오 관리: Playbook
또 하나 유용했던 건 Playbook이라는 라이브러리예요.
시나리오를 등록하면 각 UI를 한눈에 볼 수 있어요.
/// Playbook 예시 코드
/// 출처: https://github.com/playbook-ui/playbook-ios
Playbook.default.addScenarios(of: "Home") {
Scenario("CategoryHome", layout: .fill) {
CategoryHome().environmentObject(UserData.stub)
}
Scenario("LandmarkList", layout: .fill) {
NavigationView {
LandmarkList().environmentObject(UserData.stub)
}
}
Scenario("UIView red", layout: .fixed(length: 100)) {
let view = UIView()
view.backgroundColor = .red
return view
}
}
마치며
Playbook으로 시나리오를 등록하고, Inject로 핫 리로드를 걸면
작은 UI 수정에 재빌드할 필요 없이 바로 결과를 확인할 수 있어요.
Flutter에서 느꼈던 빠른 개발 경험을 iOS에서도 어느 정도 가져올 수 있었고,
체감 생산성이 확실히 달라졌어요.