What React Native Developers Build
Cross-Platform Mobile Apps
The core use case:
- iOS and Android apps from shared JavaScript codebase
- Native UI components (not web views)
- Platform-specific customizations when needed
- Native module integrations for device features
Companies Using React Native
- Meta - Facebook, Instagram, Messenger
- Microsoft - Office mobile apps, Xbox
- Shopify - Shop app, Point of Sale
- Discord - Mobile client
- Pinterest - Mobile app
Expo vs Bare React Native
Two development approaches:
- Expo: Managed workflow, faster development, limited native access
- Bare: Full native access, more complex setup, maximum flexibility
React Native vs Flutter vs Native
| Aspect | React Native | Flutter | Native |
|---|---|---|---|
| Language | JavaScript/TypeScript | Dart | Swift/Kotlin |
| Learning Curve | Low (if React known) | Moderate | High |
| Performance | Near-native | Near-native | Best |
| Code Sharing | ~80-90% | ~90-95% | 0% |
| UI Components | Native | Custom rendered | Native |
| Ecosystem | npm (massive) | Growing | Platform-specific |
When to Choose React Native
- Existing React/JavaScript team
- Want to share code with React web app
- Need access to npm ecosystem
- Prefer native UI component look
Skills by Experience Level
Junior React Native Developer
- Understands React fundamentals (components, props, state, hooks)
- Can build basic screens and navigation
- Uses Expo for development
- Basic understanding of iOS/Android differences
Mid-Level React Native Developer
- Handles complex state management (Redux, MobX, Zustand)
- Implements native module integrations
- Optimizes performance (FlatList, memoization)
- Writes tests for components and logic
- Debugs platform-specific issues
Senior React Native Developer
- Architects large-scale applications
- Makes Expo vs bare workflow decisions
- Implements custom native modules
- Leads performance optimization efforts
- Mentors team and establishes patterns
Common Hiring Mistakes
1. Assuming All React Developers Know React Native
React Native has mobile-specific concepts:
- Navigation differs from web routing
- Performance constraints are different
- Native modules require understanding
- App store deployment is complex
Test React Native-specific knowledge, not just React.
2. Ignoring Native Development Awareness
Cross-platform doesn't mean platform-ignorant:
- iOS and Android have different UX conventions
- Platform APIs differ
- Some features require native code
Senior developers should understand platform differences.
3. Overlooking Expo vs Bare Experience
These are different skillsets:
- Expo: Faster development, managed infrastructure
- Bare: More flexibility, native code access
Match candidate experience to your setup.
4. Not Testing Mobile-Specific Skills
Mobile development has unique challenges:
- Performance on constrained devices
- Offline support and caching
- Background processes
- Push notifications
Include mobile-specific questions in interviews.
Interview Approach for React Native
Technical Assessment Areas
React Fundamentals:
Components, hooks, state management. These transfer from web React.
React Native Specifics:
Navigation patterns, platform differences, native modules. Test mobile-specific knowledge.
Performance Understanding:
FlatList optimization, memoization, lazy loading. Mobile devices have constraints.
Platform Awareness:
iOS vs Android differences, App Store vs Play Store, platform guidelines.
Sample Interview Questions
"How would you optimize a slow-scrolling list in React Native?"
Good answers: FlatList optimization, memoization, virtualization, image optimization.
"When would you need to write native code in a React Native app?"
Good answers: Platform APIs not supported, performance-critical features, custom native modules.
"How do you handle offline functionality in mobile apps?"
Good answers: AsyncStorage, caching strategies, sync when back online, user feedback.
React Native Team Composition
Starting Team (1-2 Engineers)
- Full-stack React Native developers
- Can handle iOS and Android
- Expo workflow for faster iteration
Growing Team (3-5 Engineers)
- Dedicated mobile engineers
- Maybe separate iOS/Android focus
- Someone with native bridging experience
Scaling Team (5+ Engineers)
- Mobile architecture lead
- Platform specialists
- Dedicated QA for mobile
React Native Development Patterns
What Experienced React Native Developers Know
Navigation Architecture:
React Navigation is the de facto standard, but implementation patterns vary. Experienced developers understand:
- Stack, tab, and drawer navigator composition
- Deep linking configuration and testing
- Navigation state persistence
- Type-safe navigation with TypeScript
State Management at Scale:
Mobile apps have unique state considerations:
- Persisting state across app restarts
- Handling background/foreground transitions
- Optimistic updates for perceived performance
- Offline state synchronization
Performance Optimization:
Mobile devices have constraints that web developers may not anticipate:
- FlatList optimization (getItemLayout, windowSize, maxToRenderPerBatch)
- Image caching and lazy loading
- Avoiding unnecessary re-renders
- Memory management for long sessions
Platform-Specific Considerations
iOS vs Android Differences:
- Navigation patterns and gestures
- Permission request flows
- Notification handling
- App store requirements and review processes
Handling Platform Code:
- Platform.select and Platform.OS for conditional logic
- Platform-specific file extensions (.ios.js, .android.js)
- When to use native modules vs JavaScript solutions
- Testing on both platforms consistently
Building a React Native Team
Hiring for Mobile Success
Evaluate Mobile-Specific Knowledge:
Don't assume React web experience equals React Native readiness. Test:
- Understanding of mobile app lifecycle
- Knowledge of platform differences
- Experience with mobile debugging tools
- Familiarity with app store processes
Consider Native Bridging Needs:
Some features require native code. Evaluate whether your team needs:
- Custom native module development capability
- iOS (Swift/Objective-C) or Android (Kotlin/Java) skills
- Experience with native build systems
Plan for Both Platforms:
Even with shared code, both platforms need attention:
- Testing on real iOS and Android devices
- Platform-specific bug investigation
- Design adjustments for platform conventions
- Separate app store submission processes