SwiftUI, Mac 앱 개발의 미래는?

by DD
1주 전
조회수 4

SwiftUI를 사용한 macOS 앱 개발 시, Mac-assed 앱의 기준을 충족하기 어렵다는 점을 지적

선택 상태(Selected States), 드래그 앤 드롭(Drag & Drop), 키보드 단축키(Keyboard Shortcuts) 등 Mac 고유의 UI/UX 요소 구현의 어려움 강조

SwiftUI의 툴바(Toolbar) 레이아웃 유연성 부족과 플랫폼 간의 차이로 인한 문제점 언급

AppKit의 장점을 살리지 못하고, Mac 앱의 고유한 특징을 살리기 어렵다는 비판

Mac-assed 앱의 정의와 SwiftUI의 한계

본문은 'Mac-assed 앱'의 개념을 소개하며, 이는 네이티브(Native) 앱이면서 시스템의 컨트롤과 규칙을 따르고 운영체제 기능과 완벽하게 통합되는 앱을 의미한다. 하지만 SwiftUI는 macOS에서 이러한 기준을 충족하는 데 어려움을 겪고 있다. 특히, 컨텍스트 메뉴(Context Menu) 타겟, 드래그 앤 드롭(Drag & Drop), 키보드 단축키(Keyboard Shortcuts) 등 Mac 고유의 UI/UX 요소 구현에 있어 SwiftUI의 부족한 지원을 지적하며, Mac 앱 개발의 현실적인 어려움을 보여준다.

SwiftUI의 UI 요소 구현 문제점

SwiftUI는 macOS에서 선택 상태(Selected States), 비활성 윈도우(Inactive Windows), 컨텍스트 메뉴(Context Menu) 타겟 등 Mac 특유의 UI/UX를 제대로 지원하지 못한다. 예를 들어, 컨텍스트 메뉴가 열렸을 때 해당 항목에 포커스 링을 표시하는 기능이 부재하며, 이는 Mac 앱의 핵심적인 사용자 경험을 저해한다. 또한, List 커스터마이징의 어려움과 드래그 앤 드롭(Drag & Drop) API의 제한적인 기능은 Mac 앱 개발의 생산성을 저하시킨다.

키보드 단축키 및 툴바(Toolbar) 구현의 어려움

SwiftUI는 키보드 단축키(Keyboard Shortcuts) 구현에 있어 macOS와 iPadOS 간의 차이로 인해 코드 중복을 발생시키고, TextField 내에서 키보드 이벤트 처리가 제한적이다. 또한, 툴바(Toolbar) 레이아웃의 유연성 부족으로 인해 개발자가 원하는 대로 UI를 구성하기 어렵다. 이러한 문제점들은 Mac 앱의 사용자 경험을 저해하고, 개발자의 생산성을 떨어뜨리는 요인으로 작용한다.

AppKit의 부재와 SwiftUI의 미래

본문은 AppKit의 장점을 언급하며, SwiftUI가 AppKit의 기능을 완전히 대체하지 못하고 있음을 지적한다. 특히, Undo 지원(Undo Support)과 같은 기본적인 기능조차 SwiftUI에서 구현하기 어렵다는 점을 강조한다. 댓글에서는 EtoileUI/CoreObject의 사례를 통해 더 나은 UI/UX를 위한 해결책을 제시하지만, SwiftUI가 Mac 앱 개발의 미래를 완전히 책임지기에는 아직 부족하다는 평가가 지배적이다.

Using SwiftUI to Build a Mac-assed App in 2026