[Tuist] StaticFramework 와 Preview
[1] 바닐라
Static Framework 에서는 프리뷰를 볼 수 없다.
https://forums.developer.apple.com/forums/thread/704910
이유는 GPT의 대답을 참고하자.
두가지 대응방법이 있겠다.
1) 개발 중에는 dynamic 으로, 배포때는 static 으로 둔다.
2) Static Framework 에 Dynamic Preview (Dynamic Framework) 를 두고 프리뷰를 본다.
[2] Tuist
Tuist 에서도 두가지 대응방법을 사용할 수 있겠다.
1)
tuist edit 에서 설정을 바꿀 수 있겠지만,
Generation-time configuration 을 사용하면 더 편하다.
예를들어
이렇게 세팅해주고
(참고: Environment 는 @dynamicMemberLookup 이 붙어있는 enum)
아래의 command 로 generate 해주면 TuistUI가 dynamic framework 로 세팅된다.
TUIST_FOR_PREVIEW=TRUE tuist generate
(참고: command에서 TUIST_XXX 형식을 환경변수로 봄)
2)
Tuist 에서 제공하는 예제
https://github.com/tuist/tuist/tree/main/fixtures/app_with_previews
ResourcesFramework 는 static 인데
프리뷰를 보기 위해 PreviewsFramework 라는 dynamic framework 를 추가했다.
[3] Best Practice ?
우선 배포 후에도 프리뷰를 볼 수 있으면 더 좋으니까 2번 방식이 더 좋아보인다.
하지만 프리뷰가 퀵하게 해당 뷰 파일에서 이 코드가 어떻게 그려지는 지를 바로바로 보는건데
다른 모듈에 가서 봐야하는게 좋은 경험 같지는 않다.
(특정 뷰 를 지우면 프리뷰 쪽에 가서 같이 지워줘야하는 것도 관리포인트 면에서도 좀 별로이고..)
또한 UI 관련 모듈이 여러개 이면 (HomeUI, SettingUI ..)
프리뷰 모듈도 동일하게 여러개 가 되어야하는 것인가 ? (HomeUIPreview, SettingUIPreview...)
개발용 프리뷰라면 하나에 다 넣겠는데
프레임워크 사용자에게도 프리뷰를 보여주는게 좋지 않겠는가 .. ?