Compose Motion (Hoạt ảnh Jetpack Compose)
Skill giúp chọn đúng API hoạt ảnh trong Jetpack Compose và tránh các anti-pattern gây giật khung hình.
Lập trìnhTrung cấp★ 436⑂ 31Điểm AI 9/10Cập nhật lần cuối: 5 thg 10, 2026
Làm được gì
Hướng dẫn chọn API hoạt ảnh phù hợp trong Jetpack Compose / Compose Multiplatform, kèm mẫu code dùng được ngay.
- Cây quyết định API: một giá trị →
animate*AsState; hiện/ẩn →AnimatedVisibility; đổi layout →AnimatedContent; nhiều thuộc tính đồng bộ →updateTransition; điều khiển tay →Animatable; hero →SharedTransitionLayout - Bộ giá trị
spring()gợi ý cho modal, nút bấm, toast bouncy, kéo theo ngón tay - Bản đồ gesture:
draggable,anchoredDraggable,transformable,pointerInput - 4 anti-pattern kèm code BAD/GOOD: animate kích thước layout, lạm dụng
LaunchedEffect(true), thiếukeytrongLazyColumn, lồngAnimatedContenttrong từng item - Hỗ trợ Reduced Motion: đọc
ANIMATOR_DURATION_SCALEvà fallbacksnap()
Phù hợp với ai
- Lập trình viên Android Compose hoặc Compose Multiplatform
- Người đang gỡ lỗi jank khi cuộn hoặc hoạt ảnh không mượt
- Người cần làm chuyển cảnh hero, chuyển tab, crossfade loading đúng chuẩn
Ví dụ sử dụng
- "Thêm hero transition ảnh từ danh sách sang trang chi tiết" → sinh code
SharedTransitionLayout+rememberSharedContentState(key) - "Card mở rộng bị tụt FPS" → đổi animate width sang
graphicsLayerscale hoặcanimateContentSize - "Chuyển tab có slide ngang" →
AnimatedContentvớitogetherWithvàSizeTransform
· · · 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-motion/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-motion từ repo GitHub AThevon/genjutsu vào ~/.claude/skills/compose-motion/ 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 && mkdir -p ~/.claude/skills && cp -r genjutsu/skills/_jutsu/compose-motion ~/.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.
- Tải repo:
git clone https://github.com/AThevon/genjutsu.git - Tạo thư mục skill:
mkdir -p ~/.claude/skills - Sao chép skill:
cp -r genjutsu/skills/_jutsu/compose-motion ~/.claude/skills/ - (Nên làm) Skill tham chiếu các file trong
references/và skill lân cận (../motion-principles,../compose-graphics), nên sao chép cả bộ:cp -r genjutsu/skills/_jutsu ~/.claude/skills/ - Khởi động lại Claude Code rồi yêu cầu ví dụ: "làm hoạt ảnh chuyển màn hình trong Compose".
Xem mã nguồn trên GitHub ↗Giấy phép: NOASSERTION