본문 바로가기
C.W.K.
Stream
Lesson 01 of 05 · published

Tauri, 모바일로 가다

~12 min · tauri, mobile, ios, android

Level 0웹 관광객
0 XP0/56 lessons0/13 achievements
0/100 XP to next level100 XP to go0% complete
"코어는 거의 공짜로 따라와. 모바일이 진짜 일을 요구하는 쪽은 껍데기야."

약속이 정확히 뭐냐면

Tauri 2의 간판 기능이 모바일이야. 같은 Rust 코어랑 같은 웹뷰 프론트엔드가 데스크톱만이 아니라 iOS랑 Android로도 빌드돼. 진짜로 네가 배운 그 2-프로세스 구조 — 네이티브 Rust 프로세스랑 OS 웹뷰 — 가 폰에서 도는 거야. SwiftUI나 Jetpack Compose로 옮겨 짜주는 게 아니고, 데스크톱 .app을 그대로 돌리는 것도 아냐. 네가 이미 가진 코드를, 다른 곳을 겨냥해서 다시 빌드하는 거지.

뭐가 넘어가고 뭐가 안 넘어가나

깊은 쪽은 거의 그대로 따라와. 네 command도, invoke도, serde 직렬화도, 상태 관리도, Rust 로직 대부분도 모바일에서 컴파일되고 돌아가. 진짜로 다시 지어야 하는 건 껍데기야. UI가 터치랑 작은 화면에 맞아야 하고, 데스크톱 멀티윈도우 같은 건 아예 없고, 앱 생애주기가 훨씬 거칠고(OS가 사정없이 재우고 죽여), safe area랑 노치랑 화면 키보드 같은 플랫폼 문제들이 새로 튀어나와. 코어는 같이 쓰고 프론트엔드의 레이아웃이랑 조작은 모바일용으로 다시 짠다고 잡아둬.

그리고 분명한 선 하나: Cinder는 데스크톱 전용이야

이 퀘스트 다른 곳에선 Cinder가 실제로 만든 예제 노릇을 해. 여긴 아냐. Cinder는 Photoshop 옆에 앉는 macOS 데스크톱 창작 도구고, 걔가 하는 일엔 모바일이 상관없어서 Tauri 모바일 지원을 일부러 안 써. 이 트랙은 Cinder 너머로 Tauri가 어디까지 닿는지를 가르쳐. 둘을 떼어놓고 읽어. 여기서 '모바일'이라고 하면 그건 Tauri의 능력이지 Cinder의 기능이 아냐.

Code

넘어가는 것과 안 넘어가는 것·text
데스크톱에서 모바일로 건너기:

  옮겨감 (공유해)                재작업 필요 (다시 지어)
  ─────────────────────          ─────────────────────────
  Rust command + invoke          UI 레이아웃 (터치, 작은 화면)
  serde 직렬화                   멀티윈도우 모델 없음
  managed state, 이벤트          생애주기 (OS가 suspend/kill)
  Rust 코어 로직 대부분          safe area, 노치, 키보드
  IPC 멘탈 모델                  모바일 특정 permission

  전략: 코어를 공유하고, 셸을 다시 지어.

External links

Exercise

앱 아이디어를 하나 골라서 설계를 '코어'(로직, 데이터, command — 같이 쓸 수 있는 것)랑 '껍데기'(UI, 레이아웃, 조작 — 모바일 버전이 따로 필요한 것)로 쪼개봐. 그대로 다시 쓸 것과 폰용으로 새로 지을 것을 적어. Tauri 모바일을 코드베이스 두 벌이 아니라 진짜 이득으로 만들어주는 구조 분리를 연습하는 거야.
Hint
코어는 Rust에 있는 것 + 데이터 모양 + IPC 전부. 껍데기는 React 레이아웃이랑 화면 이동이랑 입력 처리. 로직이 UI 아래쪽에 많이 살수록 모바일이 더 많이 가져다 써. UI랑 뒤엉킨 로직이 모바일을 비싸게 만드는 그거야.

Progress

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

댓글 0

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

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