xCode Template 사용해서 개발 생산성 높이기

RiverWindowHyeok·2024년 9월 5일

개요

안녕하세요. windowHyeok입니다. 요즘 회사 프로젝트가 바쁘다 보니 정신이 없었네요.. 오늘은 제목에 나온 내용처럼 xCode Template을 사용하여 제가 개발할때 조금이라도 생산성을 높이는 방법을 말씀드리고자 합니다.

xCode Template?

Template이라는 단어의 의미 자체가 어떤것을 만들 때 안내 역할을 하는, 사용상의 형식이라고 합니다.
즉 xCode Template이라고 한다면 xCode를 통해 앱을 만들기 위해 파일을 작성하는 과정에서 자주 사용하는 코드의 틀과 구조를 미리 짜놓은 파일을 말합니다.

xCode에서 파일을 생성할 때
위 그림처럼 xCode에서 커멘드 + n 을 누르면 파일을 생성할 수 있는데, 각 카테고리마다 만들어저 있는 파일의 형식들이 모두 xCode Template을 사용하여 만들어진 것들입니다.
그동안 우리는 미리 만들어져있는 templates을 통해 편하게 파일을 생성하고 코드를 작성해왔던 것이죠.

Template 찾아보기

xCode Templates같은 경우에 해당 경로로 접근하면 기본적으로 작성되어있는 Templates을 확인할 수 있습니다.

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates

그중 각 파일중 새로운 스위프트 파일을 작성할때 가장 많이 사용하는 UIViewController가 어떤식으로 구성되어있는지 보겠습니다.

___FILEBASENAME___이라는 이름으로 생성되는 파일과 TemplateInfo라는 이름을 가지고 있는 plist파일이 Template을 구성하고 있습니다.
TemplateInfo라는 이름은 봐선 해당 템플릿의 정보를 가지고있는 파일 같아요.

___FILEBASENAME___에 실제로 접근하면 이런 모습입니다.


어딘가 많이 익숙하시지 않나요?? 하나씩 살펴보겠습니다.
___FILEBASENAMEASIDENTIFIER___: 파일을 만들 때 설정한 파일명이 해당 변수의 값입니다. viewController를 생성할때 작성한 파일명으로 클래스가 자동으로 생성되는 이유가 이거 때문이었군요.
___VARIABLE_cocoaTouchSubclass___: TemplateInfo.plist에 있는 Custom Identifier로, 나중에 TemplateInfo.plist에서 원하는 Identifier를 만들 때___VARIABLE_(Custom Identifier)___로 처리할 수 있습니다.

Custom xCode Template 만들기

앞서 다룬 내용들을 바탕으로 제가 실제로 만들어 자주 사용하는 ViewModel Template을 보여드리면서 실제로 어떻게 Template을 생성하는지 보도록 하겠습니다.

먼저 해당 경로의 폴더로 접근해 주세요.
~/Library/Developer/Xcode/

그리고 아래 사진의 경로처럼 Xcode/Templates/File Templates/{카테고리이름}/{사용할 Template 이름}.xctemplate 경로로 폴더를 만들어주세요. 마지막 폴더 안에는 사진처럼 생성될 swift 파일과 TemplateInfo.plist 파일을 넣어주면 됩니다.
저같은 경우에 기존 작성되어있는 파일을 복사해서 붙여넣기 한 후 수정하여 사용했습니다.

swift 파일을 열게 되면 아래의 이미지처럼 구성되어 있습니다.

참고로 해당 뷰모델 구조는 Jimmy님의 uifusionKit을 사용하면서 쓰고있는 뷰모델의 구조입니다. 각 Input, Action, State 를 바탕으로 State의 값에 바인딩하여 동작하는 방식이라 코드를 깔끔하게 작성할수 있어서 좋더라구요. 관심있으시다면 참고해보시면 좋을것 같습니다.
https://github.com/Jimmy-Jung/UIFusionKit/blob/main/README.md

그래서 파일명으로 생성되는 곳에 ___FILEBASENAMEASIDENTIFIER___를 사용하여 자동으로 뷰모델 이름으로 코드가 작성되게 하였고, 기본적인 틀을 작성했습니다.
TemplateInfo 파일의 속성값들을 잘 활용하면 더 자세하게 활용할수 있지만,
___FILEBASENAMEASIDENTIFIER___ 만 이해하고 잘 사용하면 작성하는데 큰 어려움은 없다고 생각합니다.
모든 작성을 완료하고 xCode에서 파일을 생성할때 확인해보면


템플릿에 제가 커스텀한 ViewModel이 정상적으로 올라가있는것을 확인할수 있습니다. ㅎㅎㅎㅎ 그리고 MYViewModel이라는 이름으로 파일을 생성하게 되면?

아래 그림처럼 파일명을 입력해주면 뷰모델의 기본적인 구성을 하기 위한 코드들이 작성되는것을 보실수 있습니다 ㅎㅎ

마치며

맨날 뷰모델을 생성할때 빈 파일로 만들어서 일일히 작성하는것이 여간 귀찮았는데, Template의 구성을 파악하여 제가 사용하고자 하는대로 구성해서 사용하니 엄청 편리하네요 ㅎㅎ 자주 반복적으로 생성하는 파일이 있을때 xCode Template을 활용하여 파일을 생성하면 개발 생산성을 많이 높일수 있을것 같습니다.
궁금하거나 설명이 부족한 부분이 있다면 말씀해주세요. 바로 수정하겠습니다. 감사합니다.

참고

https://nsios.tistory.com/180
https://velog.io/@whitehyun/iOS-Xcode-Template%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%98%EC%97%AC-%ED%8C%8C%EC%9D%BC%EC%9D%84-%EC%89%BD%EA%B2%8C-%EA%B5%AC%EC%84%B1%ED%95%98%EA%B8%B0

profile
기본에 충실하기

1개의 댓글

comment-user-thumbnail
2024년 9월 13일

유익한 글 잘 읽었습니다!

이 방법으로 MVVM에 View, Model, ViewModel을 한번에 만들 수도 있겠네요!!

답글 달기