docs/overview

zenit 개발 매뉴얼

Zig로 진정한 네이티브 macOS 데스크톱 UI를 만듭니다. zenit은 창, GPU 렌더링, 텍스트, 입력기, 접근성을 하나의 명확한 UI 모델로 묶습니다. 이 매뉴얼은 첫 창부터 유지보수 가능한 프로덕션 앱까지 안내합니다.

0.15.2Zig 버전
Metal현재 GPU 백엔드
2 tiers공개 API: ui.X 및 ui.<group>.X
src/main.zig
const std = @import("std");
const ui = @import("ui");
const App = @import("zenit_app").App;

fn mountUi(cx: *ui.Cx, _: *ui.Scope) anyerror!*ui.Node {
    return ui.text(cx, "Hello, zenit!", .{
        .font_size = cx.tokens.font_size.xxxl,
        .color = cx.tokens.color.fg_primary,
    });
}

pub fn main() !void {
    var gpa = std.heap.GeneralPurposeAllocator(.{}){};
    defer _ = gpa.deinit();

    const app = try App.init(gpa.allocator(), .{
        .window = .{ .title = "Hello" },
    });
    defer app.deinit();
    try app.runWith(mountUi);
}
Claude Code나 다른 에이전트로 개발하나요? 먼저 zenit UI dev Skill을 설치하세요.

이 매뉴얼, 컴포넌트 선택표, 실제 프로젝트에서 겪은 함정을 에이전트가 필요할 때 불러오는 지침으로 묶었습니다. 그래서 작성되는 코드가 zenit 규칙을 따릅니다.

학습 경로

순서대로 한 번 따라가면 약 45분, zenit 앱을 혼자 개발하는 데 필요한 전체 멘탈 모델을 갖추게 됩니다.

사용하게 될 아키텍처

앱은 안정적인 공개 계층에만 의존하고, 플랫폼과 렌더링은 zenit이 맡습니다.

LAYERS
zenit.attach(dep, exe)는 실행 파일에 ui와 zenit_app 두 모듈 임포트만 추가한 뒤, 네이티브 브리지를 컴파일하고 시스템 프레임워크를 링크합니다. 내부 모듈은 빌드 그래프에 아예 없습니다. “쓰지 말자는 약속”이 아니라 “쓸 수 없는” 것입니다.

API 모음 그 이상

이 세 가지는 런타임, 텍스트 스택, 도구 전반에 걸쳐 있으며, 각각 실행 가능한 데모와 실제 창 증거로 뒷받침됩니다.

세 가지 개발 원칙

이 원칙을 따르면 zenit이 빠르게 발전하는 동안에도 코드를 명확하게 유지할 수 있습니다.

01
공개 계층에서만 임포트

ui.*, ui.<group>.*, zenit_app.App를 사용하고, 내부 디렉터리에는 절대 손대지 마십시오.

02
데이터가 UI를 결정하게 하기

지속 상태는 Signal 또는 바인딩 상태에 두고, 파생 값은 Memo로, 부수 효과는 Effect로 처리합니다.

03
Token 우선

색상, 글자 크기, 간격, 모서리 반경은 테마에서 가져옵니다. 스케일을 벗어나야 할 때는 ui.arb로 명시합니다.

zenit · 이중 라이선스오픈 소스 프로젝트는 GPL-3.0-only로 무료 사용할 수 있으며, 비공개 소스나 상용 제품에는 상용 라이선스가 필요합니다.작성자 연락처: zongyi.xzy#gmail.com (#을 @로 바꾸세요)zenit 5f9add5+wip 2026-09-30