각각의 기능으로 분리되어 있는 프로젝트들은 공통의 리소스를 가질 수 있다.
Color, Image, Lottie의 JSON 등을 포함한다.
각각의 프로젝트들은 공통의 리소스를 사용하여 개발해야 하기 때문에, 리소스 Framework를 만들어 관리할 수 있다.
중복되는 이미지도 없고, 리소스 Framework를 import만 하면 된다.
Image, Color를 리소스 Framework으로 관리
먼저 리소스 Framework를 만든다. 그리고 이미지를 Images.assets에 추가한다.
해당 이미지들은 외부에서 코드로 불러와 사용하는 경우가 있기 때문에, 이미지를 외부에서 접근할 수 있는 코드를 만든다.
Resource Framework는 R 이라는 타입으로 접근하여 사용할 것이다.
먼저 R 타입을 만들자.
Framework로 만들었기 때문에, 이미지를 불러올 때 Resource Framework의 Bundle 위치를 알기 위해 내부에서 사용할 Bundle을 만들었다.
이제 이미지를 외부에서 접근할 수 있는 코드를 R.Image.[이미지이름] 형태를 따르도록 만든다.
이제 외부에서는 다음과 같이 이미지를 불러올 수 있다.
Color도 Image와 마찬가지로 만들 수 있다.
Storyboard, Xib를 리소스 Framework에서 관리
iOS 개발시, 항상 논쟁이 되는 주제가 있다. 바로 View를 Storyboard vs Xib로 작성하는 것이다.
Storyboard 파일을 갖기 위해서는 Dynamic Framework를 만들어야하는데, 각 기능마다 Framework로 만들게 되면 Framework 개수가 빠른 속도로 늘어날 뿐만 아니라, 기능을 더 작게 나눠 한 화면을 Framework로 만들면 어마어마할 것이다.
따라서 Storyboard, Xib를 리소스 Framework에서 관리하면 된다.
리소스 Framework에서 관리하면 화면 단위의 Framework를 Static으로 만들어도 Bundle의 위치가 리소스 Framework이기 때문에 문제가 없다.
그리고 Storyboard, Xib에서 이미지와 Color를 지정해도 Framework 자신의 내부에서 가져오기 때문에 문제가 없다.
그렇다면 다른 Framework에 있는 UIViewController Class와 ViewController View를 어떻게 연결할까?
위 사진처럼 Module을 선택하고 해당 UIViewController Class 선택하면 된다.
사용은
'iOS' 카테고리의 다른 글
[iOS] Bundle, Package, Framework 란? (0) | 2021.06.03 |
---|---|
[iOS] 서브 프로젝트 그리고 Dynamic/Static Framework (2) (0) | 2021.06.01 |
[iOS] Dynamic/Static Framework (1) (0) | 2021.06.01 |
[iOS] Framework vs Library / 모듈화 (0) | 2021.06.01 |
[iOS] UIView / 레이아웃 업데이트 관련 메소드 (0) | 2021.05.24 |