git clone https://github.com/ComeOnOliver/skillshub
T=$(mktemp -d) && git clone --depth=1 https://github.com/ComeOnOliver/skillshub "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/michaelboeding/skills/ios-to-android" ~/.claude/skills/comeonoliver-skillshub-ios-to-android && rm -rf "$T"
skills/michaelboeding/skills/ios-to-android/SKILL.mdiOS to Android: Feature Parity Implementation
Use iOS code as the reference to implement the equivalent Android feature. Not a literal translation - understand what the iOS code does, then implement it idiomatically for Android.
Use this when:
- Porting a feature from iOS to Android
- iOS is the "source of truth" for a feature
- Ensuring feature parity between platforms
Key Principle
iOS Code → Understand Feature → Match Android 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 Android codebase
Workflow
Step 0: Gather Context
Ask the user for both pieces of information:
To port a feature from iOS to Android, I need: 1. PATH TO iOS CODEBASE (source of truth) Where is the iOS project located? Example: /path/to/ios-app or ../ios-app 2. FEATURE TO IMPLEMENT What feature or component should I port? Example: "UserProfile screen" or "the authentication flow" or "src/Features/Checkout"
Assumptions:
- Current working directory = Android codebase (target)
- User provides path to iOS codebase (source)
If the user already provided this info, proceed. Otherwise, ask.
Step 1: Locate the iOS Feature
Navigate to the iOS codebase path and find the relevant files:
- Go to the iOS path provided
- Find files related to the feature
- Read and understand the implementation
Step 2: Analyze the iOS Code
Thoroughly understand:
| Aspect | What to Extract |
|---|---|
| Feature Behavior | What does this feature do? User-facing functionality |
| Data Structures | Models, types, enums - 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 |
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ iOS 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 Android Codebase Patterns
Before implementing, understand how THIS Android codebase does things:
- Check if
exists - If yes, use it and skip manual analysis.claude/codebase-style.md - 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
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ANDROID 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 iOS feature to Android equivalents using the patterns from Step 3:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ IMPLEMENTATION PLAN ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ## Files to Create | # | File | Purpose | iOS Equivalent | |---|------|---------|----------------| | 1 | [path matching codebase conventions] | [purpose] | [iOS file] | | 2 | ... | ... | ... | ## Key Mappings | iOS Concept | Android Equivalent (matching codebase patterns) | |-------------|------------------------------------------------| | [iOS thing] | [Android equivalent as done in this codebase] | | ... | ... | ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Step 5: Implement
Create the Android 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
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 iOS codebase to the appropriate Android locations.
Step 7: Report Results
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ iOS → ANDROID COMPLETE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ## Feature: [Name] ### Files Created | File | Purpose | |------|---------| | [path] | [description] | ### Feature Parity Checklist - [x] Core functionality matches iOS - [x] Data structures equivalent - [x] Error handling preserved - [x] Loading states preserved - [x] Edge cases handled - [x] Matches Android codebase patterns ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Triggers
"ios to android" "convert from ios" "port this swift to kotlin" "implement this ios feature for android" "android version of this ios code"
Integration with style-guide
Recommended: Run the
style-guide skill on the Android codebase first.
style guide ← Run this first on Android codebase ios to android ← 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
first for better resultsstyle-guide
Tips
- Don't translate literally - Understand the feature, then implement idiomatically
- Match the codebase - Use the same patterns as existing Android 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