Skip to main content

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

  1. Development: Create and test changes locally

  2. Release: Push updates to a deployment

  3. Distribution: Users receive update based on their:

    • App version
    • Deployment
    • Rollout eligibility
  4. Installation: Updates are:

    • Downloaded in background
    • Applied on next app restart
    • Or immediately (if configured)

Best Practices

  1. Testing:

    • Always test updates in Staging first
    • Use multiple deployments for different test scenarios
    • Verify updates across different app versions
  2. Versioning:

    • Use semantic versioning for your app
    • Target specific binary versions for updates
    • Maintain compatibility between native and JS code
  3. Deployment Strategy:

    • Start with gradual rollouts
    • Monitor update metrics
    • Be prepared to rollback if needed

Next Steps

Now that you understand the core concepts:

  1. Set up your development environment
  2. Create your first release
  3. Learn about deployment strategies