Core Concepts
Understanding the core concepts of Source Push will help you effectively use the platform for your React Native app updates.
Over-The-Air Updates
Over-The-Air (OTA) updates allow you to deploy mobile app updates directly to your users' devices. With Source Push, you can:
- Fix bugs
- Add new features
- Update content
- All without going through the app store review process
Key Components
Apps
An app in Source Push represents your React Native application. You should create separate apps for:
- iOS and Android platforms
- Different versions of your application
- Different environments (e.g., development, staging, production)
Deployments
Deployments are channels through which you release updates. By default, each app has:
- Staging: For testing updates before production
- Production: For releasing updates to end users
You can create additional custom deployments for specific needs.
Deployment Keys
Each deployment has a unique key that your app uses to:
- Identify itself to the Source Push server
- Check for updates
- Download the correct version
Updates
Updates are the new versions of your JavaScript bundle and assets that you release. Each update:
- Has a unique label
- Can be mandatory or optional
- Can target specific app versions
- Can be rolled out gradually
Release
A release is the process of pushing an update to a deployment. When releasing, you can specify:
- Target binary version
- Release description
- Mandatory status
- Rollout percentage
- Disabled status
Update Lifecycle
-
Development: Create and test changes locally
-
Release: Push updates to a deployment
-
Distribution: Users receive update based on their:
- App version
- Deployment
- Rollout eligibility
-
Installation: Updates are:
- Downloaded in background
- Applied on next app restart
- Or immediately (if configured)
Best Practices
-
Testing:
- Always test updates in Staging first
- Use multiple deployments for different test scenarios
- Verify updates across different app versions
-
Versioning:
- Use semantic versioning for your app
- Target specific binary versions for updates
- Maintain compatibility between native and JS code
-
Deployment Strategy:
- Start with gradual rollouts
- Monitor update metrics
- Be prepared to rollback if needed
Next Steps
Now that you understand the core concepts: