Android 16 in 2026: Nieuwe API's, Desktopmodus en Sollicitatievragen

Android 16 brengt ingrijpende veranderingen voor ontwikkelaars: verplicht edge-to-edge-rendering, desktopmodus, ProgressStyle-notificaties en predictive back-navigatie. Een technische deep-dive met codevoorbeelden en sollicitatievragen.

Android 16 nieuwe API's en desktopmodus

Android 16 (API-level 36, codenaam "Baklava") is een van de meest impactvolle platformupdates sinds de introductie van Material You met Android 12. De stabiele versie verscheen op 10 juni 2025, en in maart 2026 draait Android 16 al op meer dan 21% van alle actieve apparaten — waarmee het de meest verspreide Android-versie ter wereld is. Voor Android-ontwikkelaars die zich in 2026 voorbereiden op technische sollicitatiegesprekken, is grondige kennis van deze API-wijzigingen onmisbaar.

Kernpunt voor Sollicitatiegesprekken

Android 16 dwingt drie breaking changes af voor apps die API 36 als doel hebben: edge-to-edge-rendering is verplicht, beperkingen op schermoriëntatie en aanpasbaarheid worden genegeerd op grote schermen (600dp+), en predictive back-navigatie moet correct worden afgehandeld. Elk Android-sollicitatiegesprek in 2026 zal minstens een van deze onderwerpen behandelen.

Het SDK-releasemodel van Android 16: Major- en Minor-strategie

Android 16 introduceert een dubbele releasestructuur die de manier waarop ontwikkelaars feature-adoptie plannen fundamenteel verandert. De major-SDK werd uitgebracht met Beta 3 in maart 2025 en legde alle gedragswijzigingen en kern-API's vast. Een tweede minor-SDK volgde op 2 december 2025 en voegde nieuwe API's toe zonder het platformgedrag te wijzigen.

Deze ontkoppeling is relevant voor sollicitaties: de major release bevat compatibiliteitsbrekende wijzigingen (edge-to-edge, oriëntatiehandhaving), terwijl de minor release nieuwe mogelijkheden biedt (aanvullende Jetpack-bibliotheken, AI-gerelateerde API's) zonder impact op bestaand app-gedrag. Google heeft dit model ontworpen om API-levering te versnellen en tegelijkertijd enterprise-teams een stabiel, voorspelbaar jaarlijks compliance-doel te bieden.

Een veelgestelde sollicitatievraag betreft targetSdkVersion versus compileSdkVersion in de context van dit duale model. Het antwoord: targetSdkVersion = 36 activeert alle gedragswijzigingen van de major release. De minor-SDK is puur additief — er is geen opt-in of target-update vereist.

Verplicht Edge-to-Edge op API 36

Apps die Android 16 als doel hebben, kunnen edge-to-edge-layouts niet meer uitschakelen. Het systeem negeert aanroepen van setDecorFitsSystemWindows(true) en verouderde SystemUI-zichtbaarheidsvlaggen. Elke app moet window insets correct afhandelen, anders dreigen UI-elementen achter de statusbalk en navigatiebalk te verdwijnen.

MainActivity.ktkotlin
class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        // enableEdgeToEdge() is now the default on API 36+
        // No opt-out available
        enableEdgeToEdge()
        setContent {
            Scaffold(
                modifier = Modifier.fillMaxSize()
            ) { innerPadding ->
                // innerPadding accounts for system bars
                MainContent(
                    modifier = Modifier.padding(innerPadding)
                )
            }
        }
    }
}

Het Scaffold-composable in Jetpack Compose verwerkt insets automatisch via innerPadding. Voor View-gebaseerde apps blijft ViewCompat.setOnApplyWindowInsetsListener de aanbevolen aanpak. Het cruciale detail: WindowInsetsCompat.Type.systemBars() moet expliciet worden geconsumeerd, anders past het systeem standaard-padding toe die mogelijk niet overeenkomt met het app-ontwerp.

Bij sollicitatiegesprekken wordt vaak gevraagd wat er gebeurt met apps die vertrouwden op android:fitsSystemWindows="true" in XML-layouts. Op API 36 werkt dit attribuut nog steeds, maar het past alleen padding toe voor systeembalken — het voorkomt niet langer dat de app edge-to-edge rendert.

Adaptieve Apps en Oriëntatiewijzigingen op Grote Schermen

Android 16 negeert android:screenOrientation en android:resizeableActivity="false" voor niet-game-apps op schermen met smallestWidth >= 600dp. Tablets, foldables en externe monitoren via de desktopmodus vallen hier allemaal onder. Dit beëindigt jaren van letterbox-weergave van telefoonlayouts op grote schermen.

kotlin
// Responsive layout using WindowSizeClass
@Composable
fun AdaptiveLayout() {
    val windowSizeClass = currentWindowAdaptiveInfo().windowSizeClass
    when {
        windowSizeClass.windowWidthSizeClass == 
            WindowWidthSizeClass.EXPANDED -> {
            // Two-pane layout for tablets/desktop
            TwoPaneLayout()
        }
        windowSizeClass.windowWidthSizeClass == 
            WindowWidthSizeClass.MEDIUM -> {
            // Adapted layout for foldables
            MediumLayout()
        }
        else -> {
            // Phone layout
            CompactLayout()
        }
    }
}

De Jetpack WindowManager-bibliotheek biedt WindowSizeClass voor responsief ontwerp. Een opt-out-eigenschap was beschikbaar voor apps die specifiek API 36 als doel hadden, maar Android 17 (verwacht in Q2 2026) verwijdert deze opt-out-mogelijkheid volledig.

Een typische sollicitatievraag luidt: "Hoe zou men een app die vergrendeld is op staande oriëntatie migreren om grote schermen te ondersteunen?" Het antwoord omvat het vervangen van vaste oriëntatie door responsieve layouts, het testen van configuratiewijzigingen (met name onConfigurationChanged) en het verifiëren dat opgeslagen state de overgang tussen schermformaten overleeft.

Desktopmodus en Externe Beeldschermen

De desktopmodus is uitgebracht als algemeen beschikbare functie in Android 16 QPR3 (Pixel Drop van maart 2026), met ondersteuning voor Pixel 8+ en Samsung Galaxy S26/Fold7/Flip7-apparaten. Het aansluiten van een smartphone op een externe monitor via USB-C start een onafhankelijke desktopsessie met taakbalk, aanpasbare vensters, meerdere virtuele desktops en volledige toetsenbord- en muisondersteuning.

LaunchOnExternalDisplay.ktkotlin
fun launchOnExternalDisplay(context: Context) {
    val displayManager = context.getSystemService(
        Context.DISPLAY_SERVICE
    ) as DisplayManager
    // Find external displays
    val externalDisplays = displayManager.displays.filter {
        it.displayId != Display.DEFAULT_DISPLAY
    }
    if (externalDisplays.isNotEmpty()) {
        val options = ActivityOptions.makeBasic().apply {
            launchDisplayId = externalDisplays.first().displayId
        }
        context.startActivity(
            Intent(context, DesktopActivity::class.java),
            options.toBundle()
        )
    }
}

De smartphone en het externe beeldscherm werken onafhankelijk van elkaar — apps zijn specifiek voor het beeldscherm waarop ze draaien. Google en Samsung hebben samengewerkt aan de desktop-vensterervaring om fragmentatie in het ecosysteem te verminderen. Samsung DeX maakt gebruik van dezelfde platform-API's, waardoor er één uniform ontwikkeldoel ontstaat.

Belangrijke ontwikkelaaroverwegingen voor de desktopmodus:

  • Venstermetrieken veranderen dynamisch. Display-objecten mogen nooit worden gecachet. Bij elke configuratiewijziging moeten WindowMetricsCalculator of Compose LocalConfiguration worden opgevraagd.
  • Toetsenbord- en muisondersteuning. Externe randapparatuur is de norm in desktopsessies. Het afhandelen van KeyEvent-dispatching en pointer-hoverstaten is vereist.
  • Multi-instantie-ondersteuning. Desktopgebruikers verwachten meerdere vensters van dezelfde app. android:documentLaunchMode="intoExisting" moet worden gedeclareerd of FLAG_ACTIVITY_NEW_DOCUMENT moet correct worden afgehandeld.

Klaar om je Android gesprekken te halen?

Oefen met onze interactieve simulatoren, flashcards en technische tests.

ProgressStyle-notificaties en Live Updates

Android 16 introduceert Notification.ProgressStyle, een nieuw notificatiesjabloon voor voortgangsgerichte gebruikersreizen zoals ritdeeltracking, bezorgingsupdates en navigatie. Het vervangt ad-hoc aangepaste notificatielayouts door een gestandaardiseerd, door het systeem gepromoot formaat.

DeliveryNotificationHelper.ktkotlin
fun buildDeliveryNotification(
    context: Context,
    orderId: String,
    progress: Float,  // 0.0 to 1.0
    currentStep: String
): Notification {
    val style = Notification.ProgressStyle()
        .setStyledByProgress(true)
        .setProgress(progress)
        .setProgressTrackerIcon(
            Icon.createWithResource(context, R.drawable.ic_delivery_truck)
        )
        .addProgressSegment(
            Notification.ProgressStyle.Segment(0.33f)
                .setColor(context, R.color.segment_preparing)
        )
        .addProgressSegment(
            Notification.ProgressStyle.Segment(0.33f)
                .setColor(context, R.color.segment_in_transit)
        )
        .addProgressSegment(
            Notification.ProgressStyle.Segment(0.34f)
                .setColor(context, R.color.segment_delivered)
        )
        .addProgressPoint(
            Notification.ProgressStyle.Point(0.0f)
                .setLabel("Order placed")
        )
        .addProgressPoint(
            Notification.ProgressStyle.Point(0.33f)
                .setLabel("Preparing")
        )
        .addProgressPoint(
            Notification.ProgressStyle.Point(0.66f)
                .setLabel("In transit")
        )
        .addProgressPoint(
            Notification.ProgressStyle.Point(1.0f)
                .setLabel("Delivered")
        )

    return Notification.Builder(context, DELIVERY_CHANNEL_ID)
        .setSmallIcon(R.drawable.ic_notification)
        .setContentTitle("Order #$orderId")
        .setContentText(currentStep)
        .setStyle(style)
        .setOngoing(true)
        .build()
}

ProgressStyle ondersteunt segmenten (gekleurde secties van de voortgangsbalk), punten (gelabelde mijlpalen) en een tracker-icoon dat langs de balk beweegt. Door setStyledByProgress(true) in te stellen, kleurt het systeem de segmenten op basis van voltooiing. Voor de sollicitatievoorbereiding over Android-notificaties is het essentieel om te begrijpen wanneer ProgressStyle in plaats van een standaard setProgress()-aanroep moet worden gebruikt: ProgressStyle is bedoeld voor meerstaps-reizen met duidelijke mijlpalen, terwijl setProgress() geschikt blijft voor enkelvoudige bewerkingen zoals bestandsdownloads.

Predictive Back-navigatie met OnBackInvokedCallback

Android 16 voltooit de meerjarige migratie van onBackPressed() naar de OnBackInvokedCallback-API. Het systeem toont nu een "peek"-animatie van het doelscherm tijdens het terug-gebaar, waardoor gebruikers de actie kunnen bevestigen of annuleren. Apps die onBackPressed() blijven overschrijven zonder een callback te registreren, verstoren deze animatie.

DetailActivity.ktkotlin
class DetailActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        if (Build.VERSION.SDK_INT >= 36) {
            onBackInvokedDispatcher.registerOnBackInvokedCallback(
                OnBackInvokedDispatcher
                    .PRIORITY_SYSTEM_NAVIGATION_OBSERVER
            ) {
                // Observe back navigation without intercepting
                // Log analytics or trigger save-draft logic
                analyticsTracker.logBackNavigation(
                    screen = "detail"
                )
            }
        }
    }
}

De nieuwe prioriteit PRIORITY_SYSTEM_NAVIGATION_OBSERVER stelt apps in staat om back-events te observeren zonder de systeemanimatie te blokkeren. Android 16 voegt ook finishAndRemoveTaskCallback en moveTaskToBackCallback toe voor aangepaste back-stackgedragingen die nog steeds integreren met de predictive animatie.

Predictive back werkt op Android 16 ook met 3-knopnavigatie: lang indrukken van de terugknop start de voorbeeldanimatie. Dit is een veelvoorkomend sollicitatieonderwerp — kandidaten die alleen gebarnavigatie noemen, vertellen slechts de helft van het verhaal.

Notificatie-cooldown en Verplichte Groepering

Twee aanvullende notificatiewijzigingen raken elke Android-app. Notificatie-cooldown vermindert het waarschuwingsvolume bij snel opeenvolgende notificaties van dezelfde app door het geluidsniveau geleidelijk te verlagen over ongeveer 60 seconden voordat het wordt gereset. Dit is standaard ingeschakeld en kan niet door ontwikkelaars worden overschreven.

Verplichte notificatiegroepering betekent dat het systeem notificaties nu automatisch groepeert, ongeacht of de app setGroup() gebruikt. Apps die afhankelijk waren van individuele notificatieprominentie voor engagement, moeten mogelijk hun notificatiestrategie heroverwegen.

Voor sollicitatievoorbereiding combineren deze wijzigingen goed met vragen over Kotlin coroutines en Flow, aangezien het efficiënt bundelen en beperken van notificaties vaak coroutine-gebaseerde debouncing-patronen vereist.

Health Connect FHIR-API's en RangingManager

Android 16 breidt Health Connect uit met FHIR-schrijfondersteuning (Fast Healthcare Interoperability Resources), waardoor gezondheidsapps gestructureerde medische dossiers kunnen aanmaken en opslaan. De RangingManager-API uniformeert afstands- en hoekmetingen over BLE-kanaalmeting, BLE-RSSI, Ultra-Wideband en Wi-Fi RTT — en consolideert wat voorheen vier afzonderlijke API-oppervlakken vereiste.

De fotokiezer krijgt diepere aanpassings-API's waarmee ontwikkelaars het uiterlijk van de kiezer kunnen bepalen terwijl hetzelfde sandboxed beveiligingsmodel behouden blijft. Cloud media provider-zoekfunctionaliteit werd toegevoegd in Developer Preview 2.

Deze API's komen minder vaak voor in algemene Android-sollicitaties, maar zijn cruciaal voor domeinspecifieke functies in de gezondheidstechnologie, IoT of media-intensieve toepassingen.

Android 16 Sollicitatievragen en Antwoorden

Hieronder staan de vragen die het meest waarschijnlijk naar voren komen in Android-sollicitatiegesprekken in 2026, gebaseerd op de hierboven behandelde gedrags- en API-wijzigingen.

V: Wat zijn de verplichte gedragswijzigingen bij het targeten van API 36? Drie wijzigingen worden afgedwongen: edge-to-edge-rendering (geen opt-out), oriëntatie-/aanpassingsbeperkingen worden genegeerd op schermen >= 600dp, en predictive back-navigatie is systeembreed ingeschakeld. Apps moeten WindowInsets correct afhandelen, responsieve layouts ondersteunen en migreren van onBackPressed() naar OnBackInvokedCallback.

V: Hoe beïnvloedt de desktopmodus de app-architectuur? De desktopmodus creëert een onafhankelijke beeldschermsessie. Apps mogen Display-objecten niet cachen, moeten dynamische venstermetrieken ondersteunen, toetsenbord-/muisinvoer afhandelen en multi-instantiescenario's overwegen. De ActivityOptions.launchDisplayId-API maakt het programmatisch targeten van specifieke beeldschermen mogelijk.

V: Wanneer moet ProgressStyle setProgress() vervangen? ProgressStyle is bedoeld voor meerstaps-gebruikersreizen met duidelijke mijlpalen (ritdelen, bezorging, navigatie). Standaard setProgress() blijft geschikt voor enkelvoudige bewerkingen (bestandsdownload, upload). ProgressStyle krijgt gepromote zichtbaarheid in het notificatiepaneel.

V: Wat is het major/minor-SDK-releasemodel van Android 16? De major release (maart 2025) bevat gedragswijzigingen en vereist een targetSdkVersion-update. De minor release (december 2025) voegt nieuwe API's toe zonder gedragswijzigingen — geen targetSdkVersion-bump nodig. Dit ontkoppelt stabiliteit van innovatie.

V: Hoe werkt predictive back met 3-knopnavigatie? Op API 36+ activeert lang indrukken van de terugknop bij 3-knopnavigatie dezelfde predictive animatie als gebarnavigatie. Apps moeten OnBackInvokedCallback registreren met de juiste prioriteit. De prioriteit PRIORITY_SYSTEM_NAVIGATION_OBSERVER maakt observeren zonder onderscheppen mogelijk.

Begin met oefenen!

Test je kennis met onze gespreksimulatoren en technische tests.

Conclusie

  • Edge-to-edge is niet langer optioneel op API 36. Alle schermen moeten worden gecontroleerd op correcte WindowInsets-afhandeling, met name aangepaste toolbars en bottom sheets.
  • Vaste oriëntatiedeclaraties in het manifest moeten worden vervangen door responsieve layouts met Jetpack Compose en WindowSizeClass, voordat Android 17 de opt-out-mogelijkheid verwijdert.
  • De desktopmodus is productieklaar op Pixel 8+ en Samsung-vlaggenschepen. Apps moeten worden getest met externe beeldschermen, toetsenbordinvoer en multi-instantiescenario's.
  • De migratie van onBackPressed() naar OnBackInvokedCallback is noodzakelijk. PRIORITY_SYSTEM_NAVIGATION_OBSERVER is geschikt voor analytics-tracking zonder systeemanimaties te blokkeren.
  • Notification.ProgressStyle moet worden ingezet voor elke meerstaps-gebruikersreis. Notificatie-cooldown en verplichte groepering beïnvloeden alle apps ongeacht het doel-SDK.
  • Het major/minor-SDK-model betekent dat gedragswijzigingen eenmaal per jaar verschijnen. De minor-SDK brengt nieuwe API's zonder compatibiliteitsrisico — ze kunnen zonder zorgen worden ingezet.

Begin met oefenen!

Test je kennis met onze gespreksimulatoren en technische tests.

Tags

#android
#android-16
#kotlin
#mobile-development
#interview-preparation

Delen

Gerelateerde artikelen