Hướng dẫn phát triển Compose Multiplatform
Bộ mẫu thực chiến KMP/CMP để viết một codebase Compose duy nhất chạy trên Android, iOS, Desktop và Web.
Lập trìnhNâng cao★ 457⑂ 34Điểm AI 9/10Cập nhật lần cuối: 5 thg 10, 2026
Làm được gì
- Giải thích cấu trúc dự án lấy
commonMainlàm trung tâm và mẫuexpect/actualcho hàm, class và composable kèm ví dụ code. - Đưa ra giải pháp đa nền tảng thay cho API chỉ có trên Android (
LocalConfiguration):LocalWindowInfo,LocalDensity,BoxWithConstraints. - Hướng dẫn dùng Compose Resources cho font/ảnh/chuỗi, tương tác hai chiều iOS (
ComposeUIViewController,UIKitView) và mẹo hiệu năng cho Wasm & frame đầu trên iOS. - Liệt kê những thứ KHÔNG hoạt động: lỗi bàn phím iOS bị đẩy hai lần, vấn đề RTL, các API JVM bị cấm trong
commonMain, kèm bảng anti-pattern.
Phù hợp với ai
- Lập trình viên Android/KMP làm ứng dụng đa nền tảng cùng lúc
- Nhóm đã quen Jetpack Compose nhưng gặp khó ở target iOS
- Dự án hybrid cần nhúng màn hình Compose vào app SwiftUI có sẵn
Ví dụ sử dụng
- "Mở share sheet trên cả iOS và Android" → sinh
expect fun openShareSheetvà hai bảnactual. - "Bàn phím iOS làm layout nhảy hai lần" → cấu hình
OnFocusBehavior.DoNothingkết hợpimePadding(). - "Dùng font Inter trong code dùng chung" → đặt vào
composeResources/font/và tạoFontFamilyquaRes.font.*.
· · · 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 nếu chưa có:
mkdir -p ~/.claude/skills - Copy riêng skill này:
cp -r genjutsu/skills/_jutsu/compose-multiplatform ~/.claude/skills/ - Muốn dùng cả các skill liên quan (
compose-motion,mobile-principles...), copy toàn bộ:cp -r genjutsu/skills/_jutsu/* ~/.claude/skills/ - Khởi động lại Claude Code và kiểm tra bằng
/skills. - Trong dự án KMP, chỉ cần yêu cầu ví dụ "viết phần interop iOS" là skill sẽ được nạp. Hãy đối chiếu các số phiên bản với release note CMP mới nhất.
Xem mã nguồn trên GitHub ↗Giấy phép: NOASSERTION