-
Meet PaperKit (feat. WWDC 2025)iOS 2025. 6. 25. 18:30
안녕하세요. 그린입니다 🍏
이번 포스팅에서는 WWDC 2025에서 나온 PaperKit에 대해 알아보겠습니다 🙋🏻
개인적으로 재밌는 프레임워크가 나온것 같아서 가장 먼저 정리해보려고 했습니다 😃
Introduction
PaperKit은 애플의 독특한 마크업 경험을 시스템 전반에 구현하는 프레임워크입니다.
Notes, Screenshots, QuickLook, Journal과 같은 애플의 기본 앱에서 사용되고 있습니다.
PaperKit은 도형, 이미지, 텍스트 박스 등 다양한 마크업 요소를 추가하고 그림을 그릴 수 있는 캔버스를 제공해줘요.
macOS Tahoe의 새로운 기능인 PaperKit은 동일한 마크업 환경을 제공해 모든 macOS 앱에서 그림 그리기 및 마크업 요소가 잘 동작합니다.
그럼 조금 더 자세히 알아볼까요?
Getting to know PaperKit
PaperKit에는 세가지 구성 요소가 있습니다.
1️⃣ PaperMarkupViewController라는 마크업 컨트롤러로 PaperKit 마크업과 그림을 대화형으로 만들고 표시합니다.
2️⃣ PaperMarkup이라는 데이터 모델 컨테이너입니다.
PaperKit 마크업과 PencilKit 그리기 데이터를 저장하고 로드하며 마크업을 렌더링합니다.
3️⃣ 캔버스에 마크업 요소를 사용하여 주석을 달 수 있는 새로운 삽입 메뉴입니다.
MarkupEditViewController라고 불립니다.
macOS에선 MarkupToolbarViewController라는 새로운 도구 모음이 대안으로 제공되며 주석을 달기 위한 그리기 도구와 버튼들이 포함됩니다.
Getting started with PaperKit
몇 단계만으로 PaperKit 마크업을 앱에 통합하는 방법에 대해 살펴보겠습니다.
viewDidLoad 메서드 내 마크업 데이터 모델 컨테이너를 초기화하고, 적절한 레이아웃과 렌더링 컨텍스트를 보장하기 위해 뷰의 경계를 일치하도록 해줍니다.
그 후 PaperKit에서 제공하는 최신 기능의 전체 셋으로 구성된 마크업 컨트롤러를 만듭니다.
그리고 뷰 계층 구조에 추가해주죠.
그 후, PencilKit 도구 선택툴을 초기화하고 옵저버로 등록하고 속성을 할당해주면 되죠.
이렇게 코드로 간단히 지원할 수 있죠 ☺️
toolPicker에 액세서리를 통해 삽입 메뉴를 표시하기는 기능도 넣을 수 있죠.
그리고 메서드 내부에서 마크업 컨트롤러와 동일한 기능을 사용하도록 편집 컨트롤러를 넣습니다.
그리고 딜리게이트를 설정하고 각자 맞는 속성을 부여해주고 present 시켜 나타낼 수 있죠.
macOS에서도 본질적으로 동일합니다.
하나의 차이는 MarupToolbarViewController 설정에 있습니다.
PaperKit은 SwiftUI 환경에서 완벽하게 통합될 수 있어요.
늘 그랬듯이, UIViewControllerRepresentable을 이용하면 되죠.
두 프레임간 호환성을 지킬 수 있죠.
또한, 마크업 컨트롤러에는 콜백을 사용해 커스텀하게 처리할 수 있는 딜리게이트가 포함되어 있어요.
모든 수정사항을 자동 저장할 수 있어요.
또한 Observable을 준수하죠.
그리고 PaperKit은 상위 호환성을 매우 간단하게 만드는 도구를 제공해줍니다.
먼저 썸네일을 렌더링할 CGGontext를 만들고 마크업 모델의 그리기 기능을 사용해 모델 썸네일 이미지를 생성하죠.
그리고 마지막으로 마크업과 함께 저장됩니다.
버전이 일치하지 않는 경우 이 썸네일을 표시하는것이 가장 좋은 방법이 될 수 있죠.
이제 iOS/macOS에서 PaperKit 사용법을 다뤄봤으니 다음으로 넘어갈까요?
Customizing the feature set
앱의 요구사항에 가장 적합하도록 PaperKit 마크업 환경을 커스터마이징하는 방법에 대해 살펴보겠습니다.
PaperKit에서 사용 가능한 모든 마크업 기능의 집합을 FeatureSet이라고 부릅니다.
이는 마크업과 삽입 컨트롤러 모두에 노출되는 기능과 도구를 정의해주죠.
FeatureSet의 latest는 PaperKitd에서 지원하는 최신의 마크업 기능 세트를 제공해줍니다.
물론, remove와 insert로 마크업 환경을 커스텀화할 수 있죠.
이를 통해서 앱에서 사용하는 도구를 커스텀할 수 있습니다.
HDR 지원도 가능하죠.
설정한 값은 기기 화면에 지원되는 HDR 헤드룸에 맞춰 톤 매핑됩니다.
또는 UIScreen이나 NSScreen에서 가져올 수 있는 화면의 지원 값을 사용하면 됩니다.
즉, 최신 기능 모음들을 사용하고 HDR까지 제공하면 더 좋은 사용자 경험을 얻을 수 있죠.
요런 그리기도 가능하다는거죠 😃
또한, 커스텀 가능한 영역이 마크업 컨트롤러의 contentView입니다.
FeatureSet을 커스텀화하고 백그라운드 뷰를 구성하고 몇가지 세부 조정 단계를 적용한다면, 앱에서 견고하고 창의적인 방식으로 시스템 전체 마크업 환경을 제공할 수 있게 됩니다.
Conclusion
제공되는 기능도 단순해보이고 쉽게 적용할 수 있을거라 보여집니다.
또한, PaperKit을 들어가보면 아직은 기능들이 많지 않아 앞으로 매 WWDC마다 조금씩 업데이트되지 않을까 싶습니다.
References
Meet PaperKit - WWDC25 - Videos - Apple Developer
Discover how to bring PaperKit to your iOS, iPadOS, macOS, and visionOS apps. We'll cover how to seamlessly integrate PencilKit drawing...
developer.apple.com
'iOS' 카테고리의 다른 글
Logger Caching & Performance (6) 2025.06.04 Lottie vs WebP Animation (2) 2025.05.28 Server Image Format (feat. JPG, PNG, WebP) (4) 2025.05.23 AVCaptureVideoPreviewLayer (0) 2025.04.18 Crash 감지하고 다루기 (1) 2025.03.29