android-to-ios
npx skills add https://github.com/michaelboeding/skills --skill android-to-ios
Agent 安装分布
Skill 文档
Android to iOS: Feature Parity Implementation
Use Android code as the reference to implement the equivalent iOS feature. Not a literal translation – understand what the Android code does, then implement it idiomatically for iOS.
Use this when:
- Porting a feature from Android to iOS
- Android is the “source of truth” for a feature
- Ensuring feature parity between platforms
Key Principle
Android Code â Understand Feature â Match iOS Codebase Patterns â Implement
(what) (how it's done here)
Preserved: Feature behavior, data structure shapes, business logic, user flows Adapted: Language idioms, frameworks, patterns to match the iOS codebase
Workflow
Step 0: Gather Context
Ask the user for both pieces of information:
To port a feature from Android to iOS, I need:
1. PATH TO ANDROID CODEBASE (source of truth)
Where is the Android project located?
Example: /path/to/android-app or ../android-app
2. FEATURE TO IMPLEMENT
What feature or component should I port?
Example: "UserProfile screen" or "the authentication flow" or "app/src/main/java/features/checkout"
Assumptions:
- Current working directory = iOS codebase (target)
- User provides path to Android codebase (source)
If the user already provided this info, proceed. Otherwise, ask.
Step 1: Locate the Android Feature
Navigate to the Android codebase path and find the relevant files:
- Go to the Android path provided
- Find files related to the feature
- Read and understand the implementation
Step 2: Analyze the Android Code
Thoroughly understand:
| Aspect | What to Extract |
|---|---|
| Feature Behavior | What does this feature do? User-facing functionality |
| Data Structures | Models, types, sealed classes – their shapes and relationships |
| Business Logic | Core logic, validations, transformations |
| State Management | What state exists, how it flows |
| API Contracts | Network calls, request/response shapes |
| UI Flow | Screens, navigation, user interactions |
| Edge Cases | Error handling, loading states, empty states |
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
ANDROID FEATURE ANALYSIS
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
## Feature: [Name]
### What It Does
[User-facing description]
### Data Structures
[Key models and their relationships]
### Business Logic
[Core logic summary]
### State
[What state is managed, how it changes]
### API Calls
[Endpoints, request/response shapes]
### UI Flow
[Screens, navigation]
### Edge Cases Handled
- [Case 1]
- [Case 2]
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
Step 3: Analyze iOS Codebase Patterns
Before implementing, understand how THIS iOS codebase does things:
- Check if
.claude/codebase-style.mdexists – If yes, use it and skip manual analysis - Find similar features in the codebase
- Note the patterns used:
- Architecture pattern
- UI framework and patterns
- State management approach
- Networking approach
- Dependency injection
- File/folder organization
- Naming conventions
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
iOS CODEBASE PATTERNS
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
Style Guide: [Found / Not found]
Patterns observed from existing code:
- Architecture: [what pattern is used]
- UI: [how UI is built]
- State: [how state is managed]
- Networking: [how API calls are made]
- DI: [how dependencies are injected]
- Navigation: [how navigation works]
Similar features to reference:
- [Feature 1]: [path]
- [Feature 2]: [path]
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
Step 4: Create Implementation Plan
Map the Android feature to iOS equivalents using the patterns from Step 3:
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
IMPLEMENTATION PLAN
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
## Files to Create
| # | File | Purpose | Android Equivalent |
|---|------|---------|-------------------|
| 1 | [path matching codebase conventions] | [purpose] | [Android file] |
| 2 | ... | ... | ... |
## Key Mappings
| Android Concept | iOS Equivalent (matching codebase patterns) |
|-----------------|---------------------------------------------|
| [Android thing] | [iOS equivalent as done in this codebase] |
| ... | ... |
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
Step 5: Implement
Create the iOS implementation:
- Match the codebase’s existing patterns exactly
- Use the same architecture, UI patterns, state management as other features
- Follow the same naming conventions
- Keep data structure shapes equivalent for API compatibility
â ï¸ IMPORTANT: After creating each .swift file, register it with Xcode:
ruby ${CLAUDE_PLUGIN_ROOT}/skills/add-to-xcode/scripts/add_to_xcode.rb <filepath>
Without this step, files won’t appear in Xcode or compile. See the add-to-xcode skill.
Step 6: Copy Assets (if needed)
If the feature uses assets, offer to copy them:
Assets that may need to be copied:
- Images, icons, colors, fonts, Lottie animations, sounds, etc.
If assets are needed and the user wants them copied, use file operations to transfer them from the Android codebase to the appropriate iOS locations.
Step 7: Report Results
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
ANDROID â iOS COMPLETE
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
## Feature: [Name]
### Files Created
| File | Purpose |
|------|---------|
| [path] | [description] |
### Feature Parity Checklist
- [x] Core functionality matches Android
- [x] Data structures equivalent
- [x] Error handling preserved
- [x] Loading states preserved
- [x] Edge cases handled
- [x] Matches iOS codebase patterns
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
Triggers
"android to ios"
"convert from android"
"port this kotlin to swift"
"implement this android feature for ios"
"ios version of this android code"
Integration with style-guide
Recommended: Run the style-guide skill on the iOS codebase first.
style guide â Run this first on iOS codebase
android to ios â Then run this
This generates .claude/codebase-style.md which this skill will automatically reference.
If style guide exists:
- Skip manual pattern analysis (Step 3)
- Reference the documented patterns directly
- Ensure perfect consistency with existing code
If no style guide:
- This skill will analyze patterns manually (Step 3)
- Consider running
style-guidefirst for better results
Tips
- Don’t translate literally – Understand the feature, then implement idiomatically
- Match the codebase – Use the same patterns as existing iOS code
- Keep data shapes equivalent – API compatibility matters
- Handle platform differences – Some things work differently (lifecycle, permissions)
- Verify feature parity – Same behavior, not same code