[iOS] Custom Framework 만들기

2021. 6. 26. 21:37iOS

반응형

오늘은 iOS에서 Custom Framework를 만드는 방법에 대해 작성을 해보려고 합니다.

사실 예전에 피드백(?)을 받을 때, Framework 단위로 코드를 작성을 하는 연습을 하면 좋다는 얘기를 들었는데 아..(?) 느낌정도만 왜 좋은지 이해했었는데 몸으로 느끼기 위해서 직접해보겠습니다.

 

아마 Framewokr 단위로 작성하면 코드 자체가 모듈 단위로 작성되기 때문에, 아무래도 다른 코드와의 Coupling(결합도)가 줄어들고 Cohesion(응집성)은 높아지기 때문이겠죠~ 또한, 코드의 퀄리티 외에도 공부를 해보니 장점이 있는 것 같은데, 이건 다음 포스팅에서 작성해보겠습니다. 

 

오늘은 먼저 어떻게 Custom Framework를 만들 수 있는지 알아보겠습니다 ㅎㅎ

 

Custom Framework 만들기

우선 프로젝트 내에서 프레임워크로 만들 단위(?) 어떤 기능들을 묶을 것인지를 정해줍니다. 그리고 직접 만들어보고 작성을 해볼거에요.

저는 프로젝트에서 UI에 관련된 요소들을 분리해서 작성해보려고 합니다.

 

자 우선 상황은 저는 기존에 진행하고 있던 프로젝트가 있고 여기에 새롭게 Framework를 추가하려는 상황이에요. (Xcode Proejct가 기존에 있다는 뜻이에요 ㅎㅎ..)

 

1. Xcode에서 new project에서 Framework를 선택하고 생성해주세요.

 

2. 다음과 같이 몇가지의 파일이 생성되었는데, 본인이 작성하기를 원하는 기능을 작성해줍니다. (DMHalfModalViewController는 제가 작성한 코드입니다.)

 

❗️주의❗️
여기서 코드를 작성할 때, Access Control을 잘 생각해서 코드를 작성해야합니다. Swift에서는 default 값이 internal로 지정되죠? 그런데 기존 프로젝트에 Framework를 import해서 사용하는데, internal 레벨이면 프로젝트에서 접근해서 사용할 수 없겠죠? public, open, internal 등등의 레벨 중에서 적절하게 사용해서 코드를 작성해주세요.

 

3. 이제 기존의 프로젝트를 열어주세요. 저는 기존에 진행하고 있던 프로젝트로 예제를 보여드리겠습니다.

4. 프로젝트에 우클릭을 하고 Add Files to ...을 눌러주세요.

 

5. Framework로 만들었던 xcodeproj을 추가해주세요.

 

6. 이렇게 추가가 되었으면 다음과 같이 Binary 파일을 각 프로젝트의 Target별로 옮겨주세요. (Target - Polaris, Polaris Beta) 중간에 이름이 DM_UIComponent -> PolarisUIComponent로 변경되었는데 신경쓰지 않고 해주시면 될 것 같습니다.

 

7. 마지막으로 사용할 곳에서 import PolarisUIComponent를 해서 사용해주면 됩니다.

 

이렇게 사용해주면 됩니다. 크게 어려운 점은 없습니다.. ㅎㅎㅎ

아.. 저도 문제가 있었던 부분이 있었습니다.

 

바로 위의 7번과정까지 진행했는데, No such Module로 해당 프레임워크를 찾을 수가 없었습니다. 바로 저는 서버 환경을 분리하기 위해 Configuration을 지정했었는데요. 밑의 그림처럼 Dev, Real로 나누었습니다. 근데 이 환경을 새로운 프레임워크에서는 달라서 모듈을 찾을 수가 없었습니다 ㅎㅎ..

 

해결하기 위해서는 그냥 Framework의 Configuartion도 동일하게 맞추어주니 쉽게 해결이 되었습니다. 

혹시 저와 같은 문제가 발생하시는 분은 이렇게 해결하시면 될 것 같습니다. (밑의 그림 2가지를 참고해주세요.)

 

오늘은 이렇게 iOS에서 Custom Framework를 만들고 적용해서 사용하는 방법에 대해 알아보았습니다.

다음 포스팅에서는 이렇게 Framework를 적용했을 때의 이점에 대해 알아볼게요 :)

 

오늘 포스팅도 도움이 되었으면 좋겠네요~~

감사합니다 :)

반응형