HTML 삽입 미리보기할 수 없는 소스 Tuist로 프로젝트 설정하기! Tuist 를 사용하게 된 계기 아카데미 내에서 프로젝트를 하는 동안, pbxproj 파일의 충돌은 계속해서 일어났다. 이것을 해결하기 위해 git attributes 파일도 작성해봤지만, 여전히 충돌은 계속해서 일어났고, develop 브랜치에 rebase 혹은 pull 을 땡기면 github 가 자동으로 충돌을 머지해주는 것 같았지만, 종종 pbxproj 파일이 깨지는 경우가 발생했고 그 때마다 머지 전 커밋으로 돌아가 conflict 를 직접 해결하거나, 아니면 눈알 빠지게 pbxproj 파일을 훑어보며 잘못 합쳐진 부분을 직접 수정해야 했다... 문제는 이런 사태로 인해 시간이 너무 많이 소요된다는 점이다. 프로젝트가 매우 작..
Tuist를 먼저 공부하기 전 알아야 할 개념들을 먼저 정리해보았다. Xcode Target의 의미 Project나 Workspace의 파일들을 Build 하여 생성되는 End Product 를 의미한다. End Product는 앱이 될 수도 있고, Framework가 될 수도 있고, Unit Test 번들 이 될 수도 있다. 또한 프로젝트에는 하나 이상의 Target 이 포함될 수 있으며, 각 타겟은 하나의 제품을 생성한다! Target은 product 를 빌드하기 위해, project, workspace 안의 파일들을 (소스파일) 과 그 소스파일을 처리하는 명령 (Build setting, Build phase) 들을 보고 End product 를 생성한다. 즉 Project 와 workspace 에..

NotificationCenter.Publisher name publish 할 Notification 의 이름 object 위 name 을 가지는 Notification 을 post 할 object, 만약 nil 이면, 해당 이름을 가지는 모든 노티피케이션을 sender 에 상관없이 publish 한다. Return Value Notification 을 publish 하는 Publisher 를 리턴한다. Notification Publisher 예시 UITextField 는 기본적으로 text 프로퍼티가 바뀔 때마다, UITextField.textDidChangeNotification 을 post 한다. 즉 Notification Center 를 통해 해당 텍스트 변경 이벤트를 구독하는 옵저버를 만들거나..

var observer: NSObjectProtocol? observer = NotificationCenter.default.addObserver(forName: UIApplication.userDidTakeScreenshotNotification, object: nil, queue: nil) { notification in print("user take screenshot!") NotificationCenter.default.removeObserver(observer!) } Notification Center 등록된 옵저버들에게 노티피케이션을 보낼 수 있는 클래스이다. 모든 애플리케이션은 default Notification Center 를 가지고 있다. 노티피케이션을 그룹화하기 위해 새로운 Notif..

백준 프로필의 IOS 버전을 개발하던 도중, 티어 배지를 Swift UI 의 Shape 프로토콜을 사용하는 커스텀 도형으로 직접 구현해보기로 하였다. 티어 배지는 위와 같이 생겼으며, 물론 어도비 XD 를 이용해 svg파일을 직접 추출해도 되지만 6가지의 티어 (브론즈, 실버, 골드, 플래티넘, 다이아, 루비) 색상과, 1~5단계에 해당하는 티어 단계로 인해 만약 위와 같은 방식으로 구현할 경우 총 30가지의 svg 파일을 추출해야 한다. Android 버전은 티어 단계를 텍스트 뷰로 구현해 총 6가지의 svg 파일만으로 구현을 완료했지만, IOS 버전에서는 직접 저 모양을 그려서 구현해보았다. Swift UI Shape 프로토콜 Swift UI 에서 사각형, 원, 둥근 사각형 등은 각각 Rectangl..
Comment