Overview
Mobile app development means building for iOS, Android, or both. The critical first decision is native vs cross-platform. Native development (Swift for iOS, Kotlin for Android) offers best performance and full platform features, but requires separate teams with different skills. Cross-platform (React Native, Flutter) uses a single codebase for both platforms, offers a larger talent pool, and enables faster development for most use cases.
Most apps don't need native performance. Cross-platform handles the majority of use cases effectively. Companies like Discord, Shopify, and Bloomberg use React Native for their mobile apps. Instagram and Airbnb have used React Native for significant portions of their apps.
For hiring, your platform choice determines your talent pool. Cross-platform developers are more common and often have web development backgrounds. Native developers are more specialized and command higher salaries but deliver better performance for demanding applications.
Launching a Mobile App: The Key Decisions
Before hiring mobile engineers, you need to make strategic decisions that affect team composition, hiring difficulty, and development velocity.
The Native vs Cross-Platform Decision
This is the most important decision—it affects everything else.
| Aspect | Native (Swift/Kotlin) | Cross-Platform (RN/Flutter) |
|---|---|---|
| Performance | Best possible | Good for most apps |
| Platform Features | Full access | Most features (95%+) |
| Talent Pool | Split iOS/Android | Larger (web devs adapt) |
| Development Speed | Slower (2 codebases) | Faster (1 codebase) |
| Team Size | Larger (separate teams) | Smaller (unified team) |
| Maintenance | Higher (2 codebases) | Lower (1 codebase) |
Real-World Cross-Platform Success
Discord uses React Native for their mobile app serving 150M+ monthly users. Cross-platform handles their needs.
Shopify switched from native to React Native for faster iteration and unified codebase.
Bloomberg uses React Native for their mobile app with complex real-time financial data.
Key insight: If Discord and Bloomberg can use cross-platform, most apps don't need native.
When to Choose Each Approach
Choose Cross-Platform (React Native/Flutter) When:
Most business apps: CRUD, forms, lists, standard interactions
Web team exists: React developers adapt to React Native quickly
Both platforms needed: Single codebase halves development effort
Speed matters: Faster iteration than maintaining two native apps
Talent availability: Larger pool than native specialists
Choose Native When:
Performance-critical: Games, video, AR/VR, complex animations
Deep platform integration: HealthKit, CarPlay, platform-specific features
Platform-specific UX: Apps that need to feel "native" above all
Existing native team: Don't discard working expertise
The Honest Assessment
Most apps should use cross-platform. The performance difference matters for <10% of apps. If you're building a business app, content app, or utility app—cross-platform is usually the right choice.
Team Composition for Mobile Apps
Starting Team (1-3 Engineers)
Cross-Platform Approach:
- 1-2 React Native/Flutter engineers
- Shared backend with web team
- Design support (can be shared)
Native Approach:
- 1 iOS engineer + 1 Android engineer (minimum)
- Coordination overhead from day one
- Separate design reviews needed
Growing Team (4-8 Engineers)
Cross-Platform:
- 2-3 mobile engineers
- Dedicated backend support
- Mobile-specific QA
- Still one codebase
Native:
- 2-3 iOS + 2-3 Android (6+ total)
- Coordination across platforms
- Duplicate feature development
- Higher testing burden
Skills Assessment for Mobile Engineers
Cross-Platform (React Native)
Essential:
- JavaScript/TypeScript proficiency
- React patterns and state management
- Mobile UX understanding
- Platform awareness (iOS/Android differences)
Nice to have:
- Native bridging (when needed)
- Performance optimization
- App store submission experience
Native (Swift/Kotlin)
Essential:
- Platform-specific language (Swift or Kotlin)
- Platform UI frameworks (SwiftUI/UIKit or Jetpack Compose)
- Platform design guidelines
- Memory and performance awareness
Nice to have:
- Cross-platform experience
- Backend/API understanding
- CI/CD for mobile
Common Mobile App Hiring Mistakes
Mistake 1: Defaulting to Native
Why it's wrong: Native requires separate teams, doubles development effort, and has smaller talent pools—often without meaningful benefit.
Better approach: Start with cross-platform. Switch to native only if you hit clear limitations.
Mistake 2: Underestimating Platform Differences
Why it's wrong: Even cross-platform apps need platform-specific testing, design adjustments, and feature considerations.
Better approach: Budget time for platform-specific polish. Cross-platform isn't "write once, run everywhere."
Mistake 3: Ignoring Backend Needs
Why it's wrong: Mobile apps need APIs. Backend engineering is often underestimated in mobile planning.
Better approach: Plan backend capacity alongside mobile development. Consider API-first design.
App Store Considerations
Release Process Planning
Mobile releases are different from web—app store review adds timeline:
- iOS App Store: 1-7 days review, stricter guidelines
- Google Play: Usually faster, more lenient
Plan release cycles around review times. Have a process for urgent fixes.
Offline and Performance
Mobile users expect apps to work with poor connectivity. Plan for:
- Offline data caching
- Graceful degradation
- Battery and data usage awareness
Mobile Development Team Dynamics
Building an Effective Mobile Team
Unified vs. Split Teams:
Cross-platform approaches enable unified teams:
- Single codebase means single team
- No coordination overhead between iOS and Android
- Consistent feature parity across platforms
- Faster iteration with shared knowledge
Native approaches require coordination:
- Separate iOS and Android implementations
- Feature parity requires explicit coordination
- Different timelines for each platform
- Specialized knowledge in each team
Backend Coordination:
Mobile apps need APIs. Plan for:
- API design collaboration between mobile and backend
- Versioning strategy for mobile clients
- Handling older app versions in the wild
- Offline-first data synchronization
Mobile-Specific Challenges
App Store Dynamics:
Unlike web, mobile releases go through gatekeepers:
- Review times affect release planning
- Rejection requires iteration and resubmission
- Guidelines change and require adaptation
- Different rules for iOS and Android
Device Fragmentation:
Mobile devices vary significantly:
- Screen sizes and resolutions
- OS versions and capabilities
- Performance characteristics
- Network conditions
User Expectations:
Mobile users have specific expectations:
- Fast launch times
- Responsive interactions
- Offline capability
- Battery efficiency
Evaluating Mobile Engineering Candidates
What to Look For
Platform Awareness:
Even cross-platform developers need to understand:
- iOS and Android UX conventions
- Platform-specific capabilities and limitations
- App store requirements and processes
- Device testing strategies
Mobile-Specific Skills:
Beyond general development skills:
- Offline-first architecture patterns
- Mobile performance optimization
- Push notification implementation
- Deep linking and app navigation
Practical Experience:
Ask about real mobile challenges:
- "How have you handled offline data sync?"
- "Walk me through your app store submission process."
- "How do you test on different devices and OS versions?"
- "What mobile performance issues have you debugged?"