Hướng dẫn mẫu Compose Multiplatform
Bộ mẫu thực chiến KMP/CMP để viết một codebase Compose duy nhất cho Android, iOS, Desktop và Web.
Lập trìnhNâng cao★ 298⑂ 25Điểm AI 9/10Cập nhật lần cuối: 31 thg 7, 2026
Làm được gì
- Hướng dẫn viết đúng
expect/actualcho hàm, class và cả@Composable. - Đưa ra cấu trúc
commonMain/androidMain/iosMain/desktopMain/wasmJsMainvà tỷ lệ code dùng chung nên đạt 80–95%. - So sánh API đa nền tảng (
LocalDensity,LocalWindowInfo,BoxWithConstraints) với API chỉ có trên Android (LocalConfiguration). - Cách quản lý font/ảnh/chuỗi bằng Compose Resources, code interop hai chiều Compose ↔ SwiftUI/UIKit, và danh sách những thứ KHÔNG hoạt động (xung đột swipe drawer trên iOS,
imePadding(), API chỉ có trên JVM...). - Bảng anti-pattern chỉ ra lỗi phổ biến: dò nền tảng bằng reflection, rò rỉ
Context, vòng lặp coroutine vô hạn.
Dành cho ai
- Lập trình viên mobile/desktop dùng Kotlin Multiplatform + Compose Multiplatform.
- Đội đã quen Jetpack Compose nhưng mới bắt đầu build cho iOS/Wasm.
- Người muốn nhúng màn hình Compose vào app SwiftUI hoặc ngược lại.
Ví dụ sử dụng
- "Mở share sheet riêng cho Android và iOS thế nào?" → nhận ngay mẫu
expect fun openShareSheetkèm haiactual. - "Trên iOS bàn phím che nội dung" → phần gotcha giải thích giới hạn của
imePadding()trên iOS và cách xử lý. - "Cần biết kích thước cửa sổ trong code chung" → dùng
LocalWindowInfo.current.containerSizethay choLocalConfiguration.
· · · Hướng dẫn cài đặt · · ·
Dùng thử ngay, không cần cài
Dán đoạn dưới vào Claude là dùng được skill này mà không cần cài đặt.
Hãy đọc hướng dẫn trong tệp này và làm theo để giúp mình: https://raw.githubusercontent.com/AThevon/genjutsu/HEAD/skills/_jutsu/compose-multiplatform/SKILL.md Mình muốn: (viết việc bạn cần ở đây)
Nếu Claude không mở được liên kết, hãy mở liên kết và copy nội dung vào rồi dán.
↓ Thấy hữu ích thì tải ZIP bên dưới và cài. Sau đó skill tự chạy, không phải dán lại mỗi lần.
Cài vào ứng dụng Claude (không cần terminal)
- Tải tệp ZIP bằng nút bên dưới.
- Trong Claude, mở Settings → Capabilities và bật 'Code execution and file creation'. (chỉ một lần)
- Vào Customize → Skills → + → 'Upload a skill' rồi tải tệp ZIP lên.
Cài vào Claude Code
Để Claude làm — dán câu dưới đây vào Claude Code
Hãy cài skill mình tìm thấy trên Claude Skill Mart. Copy thư mục skills/_jutsu/compose-multiplatform từ repo GitHub AThevon/genjutsu vào ~/.claude/skills/compose-multiplatform/ của mình. Sau khi cài xong, cho mình biết skill này làm được gì trong một câu.
Cài bằng lệnh thủ công
git clone https://github.com/AThevon/genjutsu.git /tmp/genjutsu && mkdir -p ~/.claude/skills && cp -r /tmp/genjutsu/skills/_jutsu/compose-multiplatform ~/.claude/skills/⚠ Đây là skill do người khác tạo. Hãy kiểm tra repo gốc trước khi cài.
- Mở terminal và clone repo:
git clone https://github.com/AThevon/genjutsu.git - Tạo thư mục skill:
mkdir -p ~/.claude/skills - Copy skill này:
cp -r genjutsu/skills/_jutsu/compose-multiplatform ~/.claude/skills/ - Kiểm tra thư mục
references/(ví dụcmp-interop.md) đã được copy kèm. - Nếu muốn dùng cả các skill liên quan (
compose-motion...), copy toàn bộ:cp -r genjutsu/skills/_jutsu/* ~/.claude/skills/ - Khởi động lại Claude Code, rồi thử yêu cầu "review cấu trúc Compose Multiplatform của project" để skill tự kích hoạt.
Xem mã nguồn trên GitHub ↗Giấy phép: MIT