Developer Overview
Tech Stack
| Layer | Technology |
|---|---|
| Framework | Tauri v2 |
| Frontend | Vue 3 + TypeScript |
| Build | Vite 7 |
| Styling | Tailwind CSS v4 |
| Icons | lucide-vue-next |
| Router | vue-router 4 |
| API | ConnectRPC (gRPC-Web) |
| Server | Rust tonic 0.14 + tonic-web |
| Database | SQLite (sqlx) |
| Package Manager | Bun |
Project Structure
tauri-app/
├── src/ # Vue frontend
│ ├── pages/ # Route pages (5)
│ ├── composables/ # Shared state & logic (5)
│ ├── components/ # UI components
│ ├── gen/ # Generated proto types (gitignored)
│ ├── grpc.ts # gRPC client setup + auth interceptor
│ ├── types.ts # TypeScript interfaces
│ └── router.ts # Vue Router config
├── src-tauri/ # Rust native layer
│ ├── src/lib.rs # Tauri setup + SQLite migrations
│ └── Cargo.toml # Rust dependencies
└── server/ # gRPC backend server
├── proto/mymo/v1/ # Protobuf definitions
├── src/
│ ├── services/ # gRPC service implementations
│ ├── domain/ # Business logic
│ ├── models.rs # Shared DB row types
│ └── auth.rs # JWT authentication
└── Cargo.tomlCore Principles
- Mobile-first - iOS và Android là target chính, desktop sau
- Rust-first - Business logic ở server Rust, frontend chỉ hiển thị UI
- KISS - Đơn giản, dễ đọc, dễ maintain, dễ iterate
Quick Links
| Trang | Nội dung |
|---|---|
| Cài đặt môi trường | Prerequisites, scripts, commands |
| Kiến trúc | System diagrams, data flow |
| Database | Schema, ER diagram, migrations |
| gRPC API | 7 services, 23 RPCs |
| Composables | 5 composables API reference |
| iOS Guide | Physical device setup |
| Conventions | Code patterns & anti-patterns |