앱 내의 새로운 피쳐 개발이나 수정 작업이 아닌
프레임워크 작업이라는 좋은 경험을 회사에서 하게되었다.
이번 포스팅에서는 해당 작업을 위한 세팅 작업과 시작하게된 계기를 간단하게 소개하려한다.
어느 환경에서 무엇을 위해 어떤식으로 쓰였는지에 대한 예시를 들자면
A_Project와 B_Project가 존재하고 있으며
각각의 프로젝트는 동일한 비즈니스 로직을 가지고 있는 View를 가지고 있다고 가정하면 될것같다.
그리고
A_Project에서 디자인 수정 요청이 들어왔으며 해당 작업은 B_Project에서도 동일하게 변경될것을 요청한다고 했을때
각 프로젝트에 개별적으로 변경사항 작업을 진행하여 따로따로 반영하는 방법이 있을수 있고
또는 해당 화면을 프레임워크화 하여 변경사항을 한번의 수정 작업으로
두개의 프로젝트에 바로 적용하게 만드는 방법도 있을수 있을 것이다.
추후에 C_Project, D_Project, E_Project... 등
동일한 View를 다른 Project에서 동일하게 사용할수도 있기때문에 범용적인 측면과
유지보수 측면에서 후자가 월등하게 이로울것이며
생산성을 증대시키는데에 많은 도움을 받을 수 있을것이다.
이러한 개념으로 작업을 진행하기 위한 세팅 작업은
먼저 Framework_Project가 될 프로젝트를 하나 생성 후 원격 저장소에 푸시를 한다.
(푸시하여 업로드된 Framework_Project 원격 저장소의 마지막 커밋은 각각의 프로젝트 내에서 수정사항 반영여부에 관여하게된다.)
그다음 A_Project 내부에 Framework_Project 가 위치할 SubModule 디렉토리를 하나 생성하고
해당 경로와 앞전에 생성했던 Framework_Project의 원격 저장소 url을 입력 후 확인을 누르면
Framework_Project를 클론하여 해당 디렉토리 내부에 추가가 되어있는 것을 확인할 수 있을것이다.
클론받은 Framework_Project를 엑스코드에서 설정하여 사용하기 위해서는
Target - General에 진입해서 Framework_Project를 추가하면 된다.
이제 Framework_Project를 import 할 수 있게 되며
해당 Framework_Project 내에 있는 View를
A_Project에서 가지고와 사용할 수 있는것을 볼 수 있다.
앞서 말했듯이 공통으로 쓰이는 View의 수정사항이 생겨
A_Project, B_Project 둘다 동일하게 적용이 필요한 상황이라고 가정했을때
Framework_Project 내부에서 작업후 푸시하여 업로드 한다음
각각의 프로젝트의 서브모듈을 업데이트 해주어 반영해주기만하면 된다.
'IOS' 카테고리의 다른 글
[IOS] UI Test (0) | 2022.07.26 |
---|---|
[IOS] Unit Test (0) | 2022.07.24 |
[IOS] Fastlane (0) | 2021.10.10 |
[IOS] TableView (with xib) (0) | 2021.02.21 |
[IOS] TableView (with Storyboard) (0) | 2021.02.21 |