C.W.K.
Stream
Lesson 07 of 07 · published

다 합치기: Cinder, 끝에서 끝까지

~15 min · tauri, synthesis, cinder, capstone

Level 0웹 관광객
0 XP0/56 lessons0/13 achievements
0/100 XP to next level100 XP to go0% complete
"아홉 트랙에서 부품을 배웠어. 여기 그걸 한꺼번에 든 진짜 앱 하나가 있어."

앱 하나, 모든 트랙

Cinder — 아빠랑 내가 출시한 데스크톱 창작 도구 — 는 퀘스트 전체가 한자리에 선 거야. 배운 것에 대고 걸어봐. Foundations: 번들 브라우저가 아니라 Rust 코어 + 시스템 웹뷰야. Scaffold: apps/cinder/의 모노레포에 살고 네이티브 반쪽이 src-tauri/에, 그리고 응, macOS dev 바이너리 포커스 버그를 맞았어. Bridge: 타입 있는 command 작은 세트, 백엔드 클라이언트 하나 뒤로 합쳐서 프론트엔드가 생 호출을 안 흩뿌려. State & events: 코어의 managed state, 그리고 — 생산자가 별개 프로세스라 — Channel이 아니라 WebSocket으로 스트리밍.

어렵게 얻은 절반

중간 트랙이 Cinder의 흉터가 사는 곳이야. Windows: objc2 frontmost 활성화 고침, 그리고 키보드 포커스를 깨고 learning으로 기록된 always-on-top 실험. Security: 딱 store, clipboard-manager, window-state만 부여하는 capabilities 파일 — 파일시스템 없음, 셸 없음 — 만질 수 있는 모든 걸 한눈에 감사. Plugins: 그 셋, 각자 세 표면 규칙으로 제 자리를 벌고, store 플러그인은 번들 앱에서 macOS WKWebView localStorage가 거짓말해서 특별히 골랐어. 그 하나하나가 진짜 오후였고, 이제 네가 공짜로 받은 콜아웃이야.

Cinder가 안 하는 것 — 그리고 다음에 갈 곳

Mobile: Cinder는 데스크톱-macOS 전용이라 Tauri의 iOS/Android 도달을 안 썼어 — 그 트랙은 Cinder가 아니라 Tauri의 능력을 가르쳤어. Ship: Photoshop 옆 떠난 자리에 다시 열어주는 window-state 마감과 함께 서명된 macOS .app으로 빌드돼. 그게 아크야 — 레슨 하나의 같은 2-프로세스 아이디어가 서명되고 출시되는 네이티브 앱까지 끝까지 실려간 거.

여기서 어디로 가냐면: 생존키트 너머로 가고 싶을 때 Rust는 /cwk-quests/rust-quest에서 자기 퀘스트를 받아. 그리고 퀘스트 내내 읽은 그 앱 Cinder 가 주인공 되는 선택형 Ember & Cinder Quest/cwk-quests/ember-cinder-quest에 있어 — 엔진(Ember), 작업실(Cinder), 그리고 Pippa 브레인이 한 창작 스택으로 합쳐지는 곳, 이 Tauri shell 이 그 토대였어. 그 너머, 이 퀘스트가 살짝만 건드린 방향으로 craft가 깊어져 — 자기 플러그인 짓기, 앱을 진짜 모바일로 데려가기, isolation 패턴 단단히 하기. 근데 시작하는 덴 그거 하나도 안 필요해. 이제 루프 전체가 있어: scaffold, bridge, state, windows, security, plugins, ship. 작고 진짜인 걸 만들러 가, 그게 나머지를 가르치게 둬.

Code

퀘스트 전체, 진짜 앱 하나에·text
Cinder, 아홉 트랙에 매핑 (클론할 레포 아니라 공유한 개념):

  foundations  Rust 코어 + 시스템 웹뷰, 번들 브라우저 아님
  scaffold     모노레포 apps/cinder/src-tauri; macOS 포커스 버그 맞음
  bridge       합쳐진 백엔드 클라이언트 하나 뒤 타입 command
  state        코어의 managed state; WebSocket 스트림 (별개 프로세스)
  windows      objc2 frontmost 고침; always-on-top → 포커스 learning
  security     caps = store + clipboard-manager + window-state. fs/셸 없음.
  plugins      그 3개, 세 표면 규칙; localStorage가 거짓말해서 store
  mobile       (안 씀 — Cinder는 데스크톱-macOS 전용)
  ship         서명된 macOS .app; 창이 떠난 자리에 다시 열림

  → 레슨 하나의 아이디어가 출시되는 앱까지 끝까지 실려감.

External links

Exercise

캡스톤: 작지만 완결된 네 Tauri 앱 하나를 설계해(할 수 있으면 만들기 시작해). 한 문단 스펙을 쓰고, 위 Cinder처럼 아홉 트랙 전부에 매핑해 — 코어가 뭐고, command, state, 창, capabilities, 플러그인, 모바일 가는지, 어떻게 출시하는지. 그 매핑이 이제 네가 네이티브 앱 전체를 머릿속에 들 수 있다는 증거야.
Hint
끝낼 만큼 작게 유지해: 마크다운 스크래치패드, 클립보드 매니저, 트레이에 사는 작은 타이머. 핵심은 풀 루프를 한 번 완성하는 거야 — scaffold에서 서명된 번들까지 — 야심찬 걸 만드는 게 아니라. 완성된 작은 앱이 미완성 큰 앱보다 더 가르쳐.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.