DEV Community

Cover image for Migrasi targetSdk 36 untuk Flutter dan React Native: Checklist Sebelum 1 November
Wahyu Andika Putra
Wahyu Andika Putra

Posted on Originally published at andikadev.com

Migrasi targetSdk 36 untuk Flutter dan React Native: Checklist Sebelum 1 November

Migrasi targetSdk 36 untuk Flutter dan React Native: Checklist Sebelum 1 November

Informasi Audit & Rilis:

  • Tanggal Terbit: 29 Oktober 2026
  • Tanggal Revisi Terakhir: 29 Oktober 2026
  • Tingkat Kompleksitas: Advanced / Production Critical
  • Sumber Primer: Google Play Console Developer Policy & Android 16 SDK Guidelines (developer.android.com)

Ringkasan Eksekutif (BLUF)

Mulai 31 Agustus 2026, Google Play memberlakukan aturan bahwa setiap update aplikasi wajib menargetkan minimal Android 16 (targetSdk 36), dengan batas toleransi perpanjangan waktu (extension window) terakhir yang akan resmi ditutup pada 1 November 2026. Aplikasi Flutter maupun React Native yang masih menargetkan targetSdk 34 atau lebih rendah akan dicekal dari penelusuran perangkat Android modern dan ditolak saat submission update di Google Play Console. Artikel ini memberikan panduan teknis langkah-demi-langkah, mitigasi breaking changes Edge-to-Edge display, serta checklist verifikasi build siap rilis.


1. Latar Belakang Kebijakan & Dampak Nyata pada Aplikasi Mobile

Google Play menerapkan siklus tahunan kepatuhan targetSdk guna menjamin keamanan memori, privasi pengguna, dan konsistensi UI di ekosistem Android. Bagi developer di Indonesia, tidak melakukan migrasi ke target API 36 sebelum 1 November membawa risiko fatal:

  1. Pencekalan Visibilitas: Pengguna perangkat Android 15 dan Android 16 tidak lagi dapat menemukan atau mendownload aplikasi Anda di Play Store.
  2. Penolakan Bundle Release: File .aab baru yang diunggah ke Google Play Console akan langsung ditolak sistem dengan error: Your app currently targets API level 34 and must target at least API level 36.
  3. Regresi UX Tampilan: Android 16 memberlakukan kebijakan Enforced Edge-to-Edge secara baku, yang menyebabkan status bar dan navigation bar menimpa elemen interaktif (floating buttons / input form) jika tidak diadaptasi dengan benar.

2. Reproduksi di Lab: Analisis Perubahan Konfigurasi Gradle

Dalam pengujian lab rekayasa kami, migrasi aplikasi Flutter (v3.24+) dan React Native (v0.76+) memerlukan pembaruan serentak pada compileSdk, targetSdk, dan dependensi NDK.

Arsitektur Alur Migrasi Android 16

[Proyek Mobile (Flutter / RN)]
       │
       ▼
[android/app/build.gradle] ──► Ubah compileSdk = 36 & targetSdk = 36
       │
       ▼
[Edge-to-Edge Enforcing]   ──► Adaptasi WindowInsets & Safe Area
       │
       ▼
[Foreground Service Check] ──► Deklarasi atribut android:foregroundServiceType
       │
       ▼
[Verifikasi via ADB / CLI] ──► Audit Bundle (.aab) & Lolos Review Play Console
Enter fullscreen mode Exit fullscreen mode

Konfigurasi build.gradle Flutter

Buka berkas android/app/build.gradle:

android {
    namespace "com.andikadev.mobileapp"
    compileSdk 36

    defaultConfig {
        applicationId "com.andikadev.mobileapp"
        minSdk 24
        targetSdk 36
        versionCode 104
        versionName "2.4.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            signingConfig signingConfigs.release
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}
Enter fullscreen mode Exit fullscreen mode

Konfigurasi build.gradle React Native

Buka berkas android/build.gradle dan sesuaikan build script variables:

buildscript {
    ext {
        buildToolsVersion = "36.0.0"
        minSdkVersion = 24
        compileSdkVersion = 36
        targetSdkVersion = 36
        ndkVersion = "26.1.10909125"
        kotlinVersion = "1.9.24"
    }
}
Enter fullscreen mode Exit fullscreen mode

3. Penanganan Breaking Change: Edge-to-Edge Enforcement

Pada Android 16 (API 36), aplikasi secara otomatis dirender dalam format Edge-to-Edge. Konten aplikasi Anda akan berada di balik status bar dan navigation bar transparan.

Solusi di Flutter

Pastikan seluruh root view Anda dibungkus dengan widget SafeArea dan atur System UI Overlay:

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

void main() {
  WidgetsFlutterBinding.ensureInitialized();
  SystemChrome.setEnabledSystemUIMode(SystemUiMode.edgeToEdge);
  runApp(const ProductionMobileApp());
}

class ProductionMobileApp extends StatelessWidget {
  const ProductionMobileApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: ThemeData(
        useMaterial3: true,
        scaffoldBackgroundColor: const Color(0xFFF8FAFC),
      ),
      home: const Scaffold(
        body: SafeArea(
          top: true,
          bottom: true,
          child: DashboardScreen(),
        ),
      ),
    );
  }
}
Enter fullscreen mode Exit fullscreen mode

Solusi di React Native

Gunakan pustaka resmi react-native-safe-area-context:

import React from 'react';
import { StyleSheet, View, Text } from 'react-native';
import { SafeAreaProvider, useSafeAreaInsets } from 'react-native-safe-area-context';

export default function App() {
  return (
    <SafeAreaProvider>
      <MainContainer />
    </SafeAreaProvider>
  );
}

function MainContainer() {
  const insets = useSafeAreaInsets();
  return (
    <View style={[styles.container, { paddingTop: insets.top, paddingBottom: insets.bottom }]}>
      <Text style={styles.heading}>Target API 36 Production Ready</Text>
    </View>
  );
}

const styles = StyleSheet.create({
  container: { flex: 1, backgroundColor: '#0f172a', paddingHorizontal: 16 },
  heading: { color: '#f8fafc', fontSize: 20, fontWeight: '700' }
});
Enter fullscreen mode Exit fullscreen mode

4. Perintah Verifikasi di Terminal & Audit Keamanan

Jalankan perintah-perintah berikut di terminal developer Anda sebelum melakukan upload ke Google Play Console:

# 1. Bersihkan cache build lama
cd android && ./gradlew clean

# 2. Periksa apakah terdapat library usang yang mengunci targetSdk lama
./gradlew app:dependencies --configuration releaseRuntimeClasspath | grep -i "compileSdk"

# 3. Build Android App Bundle (.aab) siap rilis
./gradlew bundleRelease

# 4. Verifikasi targetSdk menggunakan alat resmi Google aapt
aapt dump badging app/build/outputs/bundle/release/app-release.aab | grep -E "targetSdkVersion|compileSdkVersion"

# 5. Output yang valid dan wajib muncul:
# targetSdkVersion:'36'
# compileSdkVersion:'36'
Enter fullscreen mode Exit fullscreen mode

Jika Anda ingin memeriksa aplikasi yang sudah terpasang di perangkat uji atau emulator Android 16:

adb shell dumpsys package com.andikadev.mobileapp | grep targetSdk
# Hasil yang diharapkan: targetSdk=36
Enter fullscreen mode Exit fullscreen mode

5. Tabel Komparasi Dampak Kepatuhan targetSdk

Kriteria targetSdk <= 34 targetSdk 35 targetSdk 36 (Android 16)
Status Play Store Pasca 1 Nov 2026 ❌ Ditolak / Dibatasi ⚠️ Masa Transisi ✅ 100% Lolos Kepatuhan
Tampilan UI System Bar Klasik (Letterbox) Opsi Edge-to-Edge Wajib Edge-to-Edge Native
Foreground Service Policy Fleksibel Wajib Deklarasi Tipe Validasi Ketat Runtime Type
Prediktif Back Gesture Parsial Didukung Standar Default Sistem
Performa Thread Rendering Standar Dioptimalkan Peningkatan Refresh 120Hz

6. Checklist Eksekusi Sebelum 1 November 2026

  • [x] Ubah compileSdk dan targetSdk menjadi 36 di berkas build.gradle.
  • [x] Perbarui Android Gradle Plugin (AGP) minimal ke versi 8.5.0 atau terbaru.
  • [x] Uji tampilan UI di seluruh layar untuk memastikan tidak ada tombol yang tertutup navbar Edge-to-Edge.
  • [x] Validasi manifest untuk seluruh deklarasi android:foregroundServiceType.
  • [x] Buat build .aab release bertanda tangan (signed).
  • [x] Unggah ke track Internal Testing di Google Play Console untuk memverifikasi laporan pre-launch tanpa warning.

7. Kesimpulan & Layanan Rilis Play Store

Migrasi ke target API 36 bukan sekadar formalitas kepatuhan, melainkan jaminan agar aplikasi bisnis Anda tetap dapat diakses oleh jutaan pengguna Android modern. Jangan biarkan aplikasi Anda kehilangan traksi pasar hanya karena kelalaian konfigurasi teknis.

Bagi Anda pengembang, startup, atau korporasi yang membutuhkan bantuan audit teknis, migrasi arsitektur mobile, maupun asistensi jasa upload Google Play Store, tim Andika Putra Dev siap mendampingi proses rilis aplikasi Anda hingga live secara profesional.


Catatan Hak Cipta & Sumber Orisinal: Artikel teknis ini dipublikasikan secara orisinal di Andika Putra Dev. Kunjungi andikadev.com untuk konsultasi kebutuhan rekayasa perangkat lunak, jasa pembuatan website, pengembangan aplikasi mobile, maupun jasa upload Play Store.

Top comments (0)