티스토리 뷰
안녕하세요 :) Zedd입니다.
쓰고있는 글이;; 많긴 한데 마무리가 안되네요. 힝구
오늘 좀 고민을 해봤는데...
어떤 사람이 ViewController를 만들 때 A와 B나 C같은걸(클래스, 프로토콜)
미리 상속or채택 해놓으면 개발하는데 좀 편하지 않을까! 하다가..
요 Xcode Template 생각이 나서 개삘받음
일단 지금 상태를 보면
이렇게 만들어지네요.
일단 차근차근 해봅시다.
본격적으로 만들어보기 전에..
얘네의 템플릿은 어디있을까요!?
터미널 루트에서,
cd /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/
에 가면
이렇게 템플릿들이 있습니다.
프로젝트 템플릿먼저 보면,
저는 iOS밖에 없네요. 들어가보면
뭐 이런것들 있음.
말그대로 "프로젝트"를 만들때 나오는 그런 애들이 모여있는 곳임.
파일 템플릿은 파일만들 때 나오는 애들이고 ㅇㅇ
이거
저는 프로젝트 템플릿이 아닌 "파일 템플릿"을 만드는 거네요 그럼!!
본격적으로 만들어봅시다.
만들기전에, 알아야 할 사실이 있습니다!
자...아무거나..는 아니지만 템플릿 폴더에 들어가보면
이렇게 종류가..3개인 파일들을 볼 수 있습니다.
2x까지 지원하는 섬세함..뭐지?
암튼
저기서 ____FILEBASENAME___.???은 실제로 만들어질 파일의 템플릿이에요.
위에서는 .metal이 붙었지만 뭐 .swift, .xib뭐 이런게 붙을 수 있어요!
그리고 이미지!
딱 보면 감이 오듯이..
요 윈도우에서 나오는 이미지 입니다.
참고로 .png는 48x48이구요, 2x는 당연히 96x96입니다.
그리고..마지막으로 TemplateInfo.plist.
이친구는 만드는 템플릿의 configuration을...담당한다고..저는 이해했어요.
그럼 일단 만들어봅시다!!!!!!!
cd ~/Library/Developer/Xcode
로 가시면
아니 다른 블로그 보면 여기에 Templates라는 폴더가 있는데 저는 없어요;;;;;
그래서 일단 만들어주겠삼
mkdir -p ~/Library/Developer/Xcode/Templates/File\ Templates
자 보시면 Templates폴더 안에 File Templates라는 폴더를 만들어주었어요.
이제 이 File Templates안에 우리의 커스텀 파일 템플릿을 넣어줄겁니다.
템플릿은 전부 확장자로 .xctemplate을 가지고 있으니 따라써줍니다. 이제 저 폴더 안에
아까 위에서 말한 이미지 2개, __FILEBASENAME__.???, TemplateInfo.plist을 넣어주면 될 것 같아요.
저는......
큼큼...
복붙해줍니다.
.metal을 .swift로만 고쳐줬어요.
그러면...!!!
이렇게 나오게 됩니다. 아 File Templates가 저 그룹(?)의 이름이구나...
그럼 저는 이름 바꿀래여
자....
그러면 하나씩 해봅시다.
____FILEBASENAME___.swift
를 고쳐볼게요.
지금 메탈껄 쌤처ㅕ와서 이런데, 제가 원하는 모습으로 바꿔줄게요.
이게 UIViewController의 ___FILEBASENAME___.swift인데요. 일단 이거 복붙하고 생각해보자.
그리고 원하는 모양을 만들어줍니다 :D
저는 주석이랑 HeaderComment 그런거 다 지웠어요.
그리고 이미지는 뭐..알아서 하시고
TemplateInfo.plist를 고쳐볼게요.
지금 이상태인데요.
-
(required) DefaultCompletionName - 파일의 default name.
-
(required) Description - 걍 설명
-
(required) Kind - 템플릿 종류 (파일 or 프로젝트)
-
MainTemplateFile - 템플릿에 파일이 2개 이상인경우, 템플릿 파일을 만든 후에 "먼저"열 파일을 지정.
-
(required) Summary - 요약. 저기는 Description랑 똑같네요
-
(required) SortOrder - 이 Custom Template 그룹안에 여러 템플릿이 만들어질 수 있짢슴
이렇게.
얘네 간의 순서를 조정하는데 쓰이는거임
뭐 대충 이렇게 만들어줍니다.
그리고...
아 깔끔해!!!!!!!!!!!!!!!!!!!!!!!!!
근데 당연히 BaseViewController가 있는 프로젝트에서만 추가해줘야겠죠!?
뭔가 강제(?)해줄 수 도 있고..
우리는 프로젝트에서 UIViewController만들 때 이 템플릿을 쓰자! 정도만 서로 합의하면 되니까...
좋은 것 같아요! XD
자 하나 더 해볼건데요!!
원래
Cocoa Touch Class를 만들면
뭔가 설정할 수 있는? 그러니까 만들어질 파일의 옵션을 선택할 수 있도록 윈도우가 뜨고
Next를 누르면
이렇게 어디 저장할건지 막 뜨잖아요
근데 우리꺼는
바로 이렇게 뜨고..딱히 옵션 설정을 할 수 없잖아요?
할 수 있는 방법이 있습니다!
TemplateInfo.plist에 Options를 추가하면 되어요!
이 Options에 들어갈 수 있는 Key?들은 이렇게 있다고 하는데
이런것들을....TemplateInfo.plist에 추가해볼게요.
<key>Options</key>
<array>
<dict>
<key>Name</key>
<string>이름</string>
<key>Description</key>
<string>설명</string>
<key>Type</key>
<string>text</string>
<key>Required</key>
<true/>
<key>Identifier</key>
<string>identifier</string>
<key>Default</key>
<string>Zedd</string>
</dict>
</array>
암튼 복붙 ㄱ
위 사진에서 Default까지만 추가해놨어요.
하나씩 보기전에, 한번 만들어봅시다.
자..만들어보면 이제
이렇게 뜨는게 아니라!!!
이렇게 뜨게 됩니다.
그리고 Next를 누르면
이제 막 어떻게 저장할건지 뜨게되죠!
저 옵션에 들어갈 수 있는 Key들을 하나씩 볼게요.
Name
Name은
저기에 나오는 이름입니다.
Description
Description은 걍 설명임 ㅇㅇ 저렇게 Name이나 input에 마우스 갖다대ㅔ면 Description나옴
이렇게
Type
Type은 option의 "타입"인데요. 가능한 타입으로는
이런게 있다고 해요!!!
지금은 text니까..
이렇게 TextField가 있죠
checkbox
static
combo
저렇게 선택할 수 있는게 나오네요. 지금은 값이 없지만 이따가 넣어볼게요.
popup
역시나 값이 없네요. 이따가 넣어볼게요.
암튼 Type으로 들어갈 수 있는건 이런게 있습니다.
text로 원복하고
내맘대로 만들어보겠음
ㅎ
자 그리고 다음봅시다.
Required
이게 꼭 필요한 옵션이냐? 를 말하는거임 값이 없으면 Next Button이 활성화 되지 않습니다.
지금 YES니까 이름을 꼭 넣어줘야한다는거죠?
안넣으면?
Next Button이 활성화 되지 않죠!?
Identifier
자..이걸 잘 봐야하는데 이 identifier는 말 그대로 identifier로 이 옵션을 고유하게 식별할 수 있습니다.
그리고! 이 옵션의 컨텐츠를 변수로 나타내는데에 사용됩니다.
무슨말인지 잘 모를텐데....봅시다.
저~위에서는 identifier로 해줬는데...뭔가 해보니까 안돼서 이름을 바꿔줬어요!
여러분들도 이름을 바꾸시길 바랍니다.
자 암튼
내가 이렇게 뭔가를 썼으면 이 쓴 값을
___FILEBASENAME___.swift에서 사용해야할거 아님
그때 저 identifier를 쓰게 됩니다.
사용하려면
___VARIABLE_적어준 identifier___
형식으로 사용하면 됩니다.
자 저렇게 하고 만들면
자 그러면 저는 ZeddViewController로 저장해줬기때문에
___FILEBASENAMEASIDENTIFIER___에는 ZeddViewController가 들어가고
___VARIABLE_zeddClass___에는 Zedd가 들어가서
이렇게 나오게 됩니다.
Default
계속 봐서 아시겠지만
Default로 들어가는 값입니다.
Values
Values는 combo나 popup타입에 들어갈 수 있는 value들인데요.
넣어볼게요.
<key>Values</key>
<array>
<string>stay</string>
<string>spectrum</string>
<string>beautiful now</string>
</array>
뭐 이런식으로,..넣어주고 type을 저는 combo로 바꿔볼게요. 그러면!
이렇게 나옵니당 ㅎㅎ
2가지 옵션이 더 있는데........이건 안볼랴
그럼 저~~~위에서 말한 SortOrder실험만 하고 글을 마치겠습니당!!
sortOrder가 같을때는 나중에 만들어진게 앞으로 오더라구요.
참고 :
http://jeanetienne.net/2017/09/10/advanced-xcode-template.html
https://academy.realm.io/kr/posts/custom-xcode-template/
https://www.lordcodes.com/posts/create-xcode-file-templates
https://useyourloaf.com/blog/creating-custom-xcode-project-templates/
'공부' 카테고리의 다른 글
RIBs란? (6) | 2020.01.10 |
---|---|
Metal이 뭔지 궁금해서 쓰는 글 (1) | 2020.01.05 |
Mac에서 Go 시작하기 - 설치와 설정 (0) | 2020.01.03 |
Behind the Scenes of the Xcode Build Process (1) (1) | 2019.12.14 |
Mach-O (4) | 2019.12.06 |
- Accessibility
- swift 공부
- iOS delegate
- swift array
- ios 13
- WKWebView
- 스위프트
- 피아노
- Git
- UIBezierPath
- Xcode
- 스위프트 문법
- SwiftUI
- actor
- Combine
- swift sort
- FLUTTER
- Swift
- WidgetKit
- swift delegate
- WWDC
- swift3
- 회고
- np-complete
- np-hard
- IOS
- swift tutorial
- fastlane
- github
- 제이슨 파싱
- Total
- Today
- Yesterday