"Tauri API는 흔한 95%를 덮어. 마지막 5%엔, 문을 잠그는 대신 OS 자체의 열쇠를 쥐여줘."
크로스 플랫폼 API로 부족할 때
Tauri 창 API는 일부러 크로스 플랫폼이라, 모든 OS 특정 버릇을 노출 못 해. 가끔 네이티브 윈도잉 층을 직접 불러야 해: macOS는 AppKit/Cocoa(objc2 크레이트로), Windows는 Win32 API(windows-rs로), Linux는 GTK. Tauri는 자기 추상 안에 널 가두지 않아 — 밑바닥 핸들에 닿아 OS랑 대화할 수 있어. 그 탈출구가 Tauri를 진지한 네이티브 앱에 쓸 만하게 만들어.
Cinder 사례: Frontmost 활성화
scaffold 트랙의 macOS 포커스 버그 기억해 — 클릭은 받는데 키 입력은 안 받던 dev 바이너리, 그리고 always-on-top 플로팅 창이 key window가 안 되던 사촌 문제. macOS는 key window에만 키보드 이벤트를 보내는데, 제대로 활성화된 포그라운드 앱이 아닌 프로세스는 영영 못 가질 수 있어. Tauri의 set_focus()만으론 안 고쳐졌어. 진짜 고침은 Cocoa로 내려갔어: set_activation_policy(Regular)로 프로세스를 승격하고, objc2로 NSApplication.activate()를 직접 불러.
게이트하고, 핀하고, 주석 달아
네이티브 코드는 플랫폼 특정이라 #[cfg(target_os = "macos")] 뒤에 살아야 해 — 다른 플랫폼은 그거 없이 깨끗이 컴파일돼. objc2 크레이트는 버전 관리돼(Cinder가 objc2-app-kit이랑 objc2-foundation을 핀해), 그리고 이런 코드는 다음 독자한테 안 뻔하니까 왜 있는지 주석 달아. 네이티브 탈출구는 강력하고 오용하기 쉬워. 하중 받는 것으로 대하고 푸는 버그를 문서화해.