React Native Academy · Les

Interne tests, gefaseerde uitrol en productie

Publiceer eerst naar een intern testtraject, promoveer vervolgens naar gesloten en open tests en rol daarna geleidelijk uit naar productie met een percentage voor gefaseerde uitrol; houd de crashpercentages in de gaten.

Les 4 van 413 stappen

Interne tests, gefaseerde uitrol en productie is een gratis React Native Academy-les op CoddyKit. Dit is les 4 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject React Native Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus React Native Academy bevat in totaal 4 lessen.

De vier releasekanalen

Google Play Console biedt vier releasekanalen die samen een gefaseerde uitrolpijplijn vormen. Interne tests bereiken direct maximaal 100 testers zonder beoordeling. Gesloten tests (alpha) zijn gericht op een specifieke lijst met genodigden. Open tests (bèta) staan iedereen toe zich openbaar aan te melden. Productie bereikt alle gebruikers in de door jou geselecteerde landen. Elk kanaal fungeert als een veiligheidscontrole — je valideert de kwaliteit op elk niveau voordat je naar het volgende niveau promoveert.

// Release track comparison:

// Internal Testing:
//   Testers: up to 100 (by email/Google Group)
//   Availability: Instant (no Google review)
//   Visibility: Hidden from public
//   Best for: Team + QA testing

// Closed Testing (Alpha):
//   Testers: Specific invite list (no limit)
//   Availability: After brief automated check
//   Visibility: Hidden from public
//   Best for: Beta test with partners/selected users

// Open Testing (Beta):
//   Testers: Anyone who opts in
//   Availability: Visible public beta badge
//   Best for: Community feedback before launch

Interne tests instellen

Interne tests zijn je eerste stap na een geslaagde build. Maak een release voor interne tests, upload de AAB en voeg testers toe via e-mail of een Google-groep. Testers ontvangen een e-mail met een link om zich aan te melden — ze moeten daarop klikken en de app vervolgens in de Play Store zoeken om deze te installeren. Builds voor interne tests worden binnen enkele minuten na publicatie geleverd (in tegenstelling tot productie, waar de verwerking uren kan duren). Controleer hier altijd of de belangrijkste flows goed werken voordat je promoveert.

// Internal testing setup:
// Testing > Internal testing > Testers tab
// > Create email list: 'Core Team'
// > Add emails:
//   alice@yourcompany.com
//   bob@yourcompany.com
//   qa@yourcompany.com

// Share the opt-in link with testers:
// 'Join the test at this link: [opt-in URL]'
// Testers click link, then search for the app on Play Store
// App appears with an 'Internal' badge

// Tester checklist:
// [ ] Sign up flow works
// [ ] Core feature performs correctly
// [ ] No crashes in main paths

Een kanaal voor gesloten tests maken

Gesloten tests (alpha) zijn nuttig voor een grotere groep op uitnodiging vóór de openbare lancering — bijvoorbeeld bè gebruikers, influencers of partners. Maak de release op dezelfde manier als voor interne tests: upload dezelfde of een nieuwere AAB, schrijf releaseopmerkingen en publiceer. Voeg testers toe via e-maillijsten op het tabblad Testers. Je kunt meerdere kanalen voor gesloten tests hebben met verschillende configuraties (bijvoorbeeld één kanaal voor functietests en een ander voor lokalisatietests).

// Create a closed testing release:
// Testing > Closed testing > Create new track
// Track name: 'Alpha'

// Add testers:
// Testers > Create email list: 'Alpha Testers'
// Or: Add a Google Group email
// (all group members become testers automatically)

// Promote an internal build to closed testing:
// Testing > Internal testing > Releases
// Select the release > Promote release
// > Closed testing > Confirm

Open tests (openbare bèta)

Met open tests maak je je app beschikbaar voor elke Play Store-gebruiker die zich aanmeldt voor het bètaprogramma. Op de Play Store-vermeldingspagina van je app verschijnt een knop Deelnemen aan de bèta. Bètagebruikers zien het label 'Bèta' bij de app en hun recensies staan los van productierecensies. Gebruik open tests om bredere feedback uit de praktijk en crashgegevens te verzamelen van apparaatconfiguraties die je niet bezit, voordat je de app openbaar in productie lanceert.

// Open testing setup:
// Testing > Open testing > Create new release
// Set the percentage of users who can join (optional)

// The opt-in URL for beta is shareable:
// 'Try our beta at: play.google.com/store/apps/...
//  (scroll down and click Join the beta)'

// Benefits of open testing:
// - Real crash data from diverse devices
// - Public rating separate from production
// - Community can submit feedback
// - Validates localization on regional devices

// Tip: Announce the beta on social media
// to quickly gather a large tester pool

Promoveren naar productie

Promoveren van open tests (of interne tests) naar productie is de belangrijkste stap. Ga naar Testen > Open tests, zoek je release en klik op Release promoten > Productie. De eerste promotie naar productie start de beoordeling door Google (meestal 1–3 werkdagen). Latere updates worden sneller beoordeeld. Na de beoordeling verschijnt de app in de zoekresultaten van de Play Store en in de winkelvermeldingen van je doellanden.

// Promote to production:
// Testing > Open testing (or Internal)
// > Select release > Promote release
// > Production > Next

// Set initial rollout percentage:
// 10%, 20%, 50%, or 100%
// (for first launch, 100% is fine — you have no existing users)

// For updates to existing apps:
// Use staged rollout starting at 10–20%
// to catch issues before full deployment

// Review timeline:
// First submission: 3-7 business days
// Updates: Usually 1-3 business days
// (faster if no new permissions or policy changes)

Gefaseerde uitrol naar productie

Bij een gefaseerde uitrol wordt een update aan een percentage van je bestaande gebruikers aangeboden in plaats van aan iedereen tegelijk. Begin met 5–20% en houd crashpercentages, ANR-percentages en negatieve recensies in de gaten. Als de metingen er na 24–48 uur goed uitzien, verhoog je het percentage. Als je een kritieke bug ontdekt, stop je de uitrol onmiddellijk — gebruikers die de update al hebben ontvangen, behouden deze, maar nieuwe gebruikers krijgen de update niet terwijl je de fout oplost en de update opnieuw indient.

// Staged rollout steps:
// Production > Create new release
// Upload new .aab (versionCode must be higher)
// Write release notes: 'Fixed startup crash on Android 13.'
// > Review release
// > Start rollout to production

// Set rollout percentage: 10%

// Monitor for 24-48 hours:
// Android vitals > Crash rate and ANR rate

// If stable: increase to 20%, 50%, 100%
// Production > Manage rollout > Update rollout percentage

// If broken: halt rollout
// Production > Manage rollout > Halt rollout

Crashes controleren met Android Vitals

Android Vitals in Play Console toont realtime crashpercentages en ANR-percentages (Application Not Responding) van productiegebruikers. Google vergelijkt deze met vergelijkbare apps in je categorie. Als je crashpercentage hoger is dan de drempel voor slecht gedrag (doorgaans ongeveer 1,09%), kan Play Console een waarschuwingsbadge aan je winkelvermelding toevoegen en je positie in de zoekresultaten verlagen. Onderzoek de verstrekte stacktraces in de sectie Crashes om oplossingen te prioriteren.

// Android Vitals > Crashes and ANRs
// Shows:
//   Crash rate: 0.47% (Good)
//   ANR rate:   0.12% (Good)
//   Core vitals: All passing

// Crash cluster view:
// Each distinct crash signature grouped
// Tap a cluster to see:
//   - Full stack trace
//   - Affected devices
//   - Android versions affected
//   - Number of affected users
//   - First/last occurrence

// Export traces to integrate with Sentry or Crashlytics
// for richer crash context (user actions before crash)

Beoordelingen en recensies beheren

Reageren op gebruikersrecensies laat zien dat je kwaliteit belangrijk vindt en zet een negatieve recensie vaak om in een positieve nadat je het gemelde probleem hebt opgelost. Ga in Play Console naar Groeien > Beoordelingen en recensies om recensies te bekijken en erop te reageren. Met gefilterde weergaven kun je recensies per versie bekijken (handig om regressies te ontdekken), evenals per sterrenwaardering en land. Negatieve recensies voor een specifieke versie laten precies zien wanneer een regressie is geïntroduceerd.

// Review response best practices:

// 1-star review: 'App crashes on startup'
// Your reply:
// 'Hi, we are sorry to hear about the crash!
//  This was fixed in version 1.2.3 released yesterday.
//  Please update and let us know if the issue persists.
//  You can also reach us at support@yourapp.com.'

// 4-star: 'Great app but missing dark mode'
// Your reply:
// 'Thank you for the feedback! Dark mode is on our
//  roadmap for the next update (v1.3). Stay tuned!'

// Tip: Prioritize recent 1- and 2-star reviews

Strategie voor het verhogen van versionCode

Play Console weigert een upload als versionCode niet hoger is dan die van de laatst geüploade build. Een eenvoudige strategie is om de waarde bij elke upload met 1 te verhogen. Als je meerdere releasekanalen (intern, bèta en productie) tegelijk beheert, reserveer je bereiken: bijvoorbeeld 1000–1099 voor interne tests en 2000–2099 voor productie. EAS Build kan versionCode automatisch verhogen met de vlag autoIncrement: true in eas.json.

// Auto-increment with EAS:
// eas.json
{
  'build': {
    'production': {
      'android': {
        'buildType': 'app-bundle',
        'autoIncrement': true  // EAS increments versionCode
      }
    }
  }
}

// Manual strategy in app.json:
// Before each production build:
// Increment android.versionCode by 1
// Update version string if user-facing change

// Current: { 'version': '1.2.3', 'versionCode': 15 }
// Next:    { 'version': '1.2.4', 'versionCode': 16 }

Firebase Crashlytics gebruiken voor diepgaandere crashanalyse

Android Vitals toont geaggregeerde crashgegevens, maar Firebase Crashlytics biedt een rijkere context: de reeks gebruikersacties vóór de crash, aangepaste logberichten die je hebt toegevoegd, informatie over het apparaat van de gebruiker en het bijhouden van niet-fatale fouten. Integreer Crashlytics met @react-native-firebase/crashlytics. Registreer aangepaste sleutels vóór kritieke bewerkingen, zodat je bij een crashrapport precies weet wat de gebruiker op dat moment deed.

import crashlytics from '@react-native-firebase/crashlytics';

// Log custom keys for crash context
async function loadUserProfile(userId) {
  crashlytics().setUserId(userId);
  crashlytics().setAttribute('screen', 'ProfileScreen');
  crashlytics().log('Fetching user profile...');

  try {
    const profile = await api.getUserProfile(userId);
    crashlytics().log('Profile loaded successfully');
    return profile;
  } catch (error) {
    // Log non-fatal error and rethrow
    crashlytics().recordError(error);
    throw error;
  }
}

Voltooien van de uitrol en zichtbaarheid in de winkel

Zodra je 100% uitrol hebt bereikt, is je app volledig live en geïndexeerd door het zoekalgoritme van Google Play. Het kan 24–48 uur duren voordat de app volledig is verspreid en in alle regio's via de zoekfunctie kan worden gevonden. Houd je Acquisitie-gegevens in de gaten: bezoekers van de winkelvermelding, het conversiepercentage voor installaties en organische versus betaalde installatiebronnen. Een piek in installaties tijdens de lanceringsweek, gevolgd door retentiegegevens, laat zien hoe goed je app de belofte van de winkelvermelding waarmaakt.

// Post-launch monitoring checklist:

// Day 1-3:
// [ ] Crash rate < 1.09% (Play benchmark)
// [ ] ANR rate < 0.47%
// [ ] Check ratings for immediate feedback
// [ ] Verify deep links work from the live listing

// Week 1:
// [ ] Install count vs impressions (conversion rate)
// [ ] D1 retention (users returning next day)
// [ ] Revenue if paid/IAP

// Ongoing:
// [ ] Respond to all 1- and 2-star reviews within 24h
// [ ] Monitor Android vitals weekly
// [ ] Release updates with new features and fixes

Snelle controle

Test je begrip van de concepten voor mobiele ontwikkeling met React Native uit deze les.

Samenvatting van de les

In deze les heb je geleerd: hoe de vier releasekanalen van Play Console (intern, gesloten, open en productie) samen een pijplijn met kwaliteitscontroles vormen, hoe je met een gefaseerde uitrol de impact van updates bij het uitbrengen kunt beperken en hoe je crashpercentages controleert met Android Vitals en Crashlytics. Je hebt ook gezien hoe je op recensies reageert en versionCode automatisch verhoogt met EAS. Hierna volgt het eindproject: een volledige React Native-app plannen en bouwen.

Gratis beginnen

Leer JavaScript met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
30
Lessen
120

Veelgestelde vragen

Is de les “Interne tests, gefaseerde uitrol en productie” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad React Native Academy, waaronder “Interne tests, gefaseerde uitrol en productie”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus React Native Academy bevat in totaal 4 lessen.

Wat leer ik in “Interne tests, gefaseerde uitrol en productie”?

Publiceer eerst naar een intern testtraject, promoveer vervolgens naar gesloten en open tests en rol daarna geleidelijk uit naar productie met een percentage voor gefaseerde uitrol; houd de crashperc… Je oefent met React Native Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met React Native Academy te beginnen?

Ervaring vooraf is niet nodig. React Native Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 4 van 4.

Hoe lang duurt de les “Interne tests, gefaseerde uitrol en productie”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over React Native Academy?

Ja. Elke les over React Native Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Een keystore maken en de AAB ondertekenen
  2. De Play Console-vermelding instellen
  3. Inhoudsbeoordelingen, beleid en privacy
  4. Interne tests, gefaseerde uitrol en productie
← Terug naar React Native Academy