
원문: https://blog.mrinalmaheshwari.com/android-16-what-react-native-developers-need-to-know-a66530375209
안드로이드 16(API 레벨 36)이 출시되었으며, 앱의 실행과 느낌에 직접적인 영향을 미치는 다양한 변화를 가져옵니다. React Native를 사용하여 구축 중이라면 이 업데이트를 무시할 수 없습니다. Google은 사용자 경험과 앱 안정성을 형성할 새로운 동작을 시행하고 있습니다.
실제 React Native 예제를 통해 간단하게 정리해 보겠습니다.
지금까지는 간단한 플래그를 사용하여 Edge-to-Edge 레이아웃을 선택 및 해제할 수 있었습니다. 이제는 사라졌습니다. Android 16은 모든 앱을 Edge-to-Edge로 강제합니다.
safe area를 적절히 관리해야 합니다.
padding 해킹은 잊어버리고, react-native-safe-area-context를 사용해야 합니다.
import { SafeAreaView } from 'react-native-safe-area-context';
export default function Home() {
return (
<SafeAreaView style={{ flex: 1 }}>
{/* Your content safely within system bars */}
</SafeAreaView>
);
}
이 작업을 수행하지 않으면 Status Bar, 카메라 컷아웃 또는 내비게이션 제스처로 인해 앱 UI가 잘릴 수 있습니다.
Android의 'Back' 경험은 더 이상 무턱대고 종료하는 것이 아니라 이제 예측 가능하고 애니메이션화되었습니다. 사용자는 제스처를 해제하기 전에 어디에 릴리즈할지 확인할 수 있습니다.
React Navigation(최신 버전)은 정상적으로 작동하지만, 사용자 지정 흐름을 테스트해야 합니다.
네이티브 코드에서 OnBackPressed를 재정의한 경우 OnBackInvokedCallback으로 마이그레이션해야 합니다.
팁: React Navigation에 내장된 백 핸들링을 사용하고, 꼭 필요한 경우가 아니면 네이티브 오버라이드를 피하세요.
이제 WorkManager, JobScheduler, DownloadManager의 할당량이 더 엄격해집니다. Android는 사용자가 시작한 작업(업로드, 다운로드)과 백그라운드 동기화를 명확하게 구분하기를 원합니다.
오프라인 데이터를 동기화하는 경우(예: Redux + MMKV), Android 16에서 해당 동기화를 테스트해야 합니다.
긴 업로드는 백그라운드에서 자동으로 실행되는 것이 아니라 사용자 작업(버튼 클릭)을 통해 트리거되어야 합니다.
적응하지 않으면 작업이 더 공격적으로 중단되어 사용자가 업로드를 절반만 완료할 수 있습니다.
Android 16 디바이스는 기존 4KB가 아닌 16KB Page Size로 출시될 수 있습니다.
React Native는 Hermes(네이티브 엔진)를 사용합니다. Hermes 또는 기타 네이티브 모듈이 16KB를 지원하여 컴파일되지 않으면 앱이 실행되지 않을 수 있습니다.
적절한 지원이 포함된 최신 React Native(0.81 이상)로 업그레이드해야 합니다.
.so 파일(maps, analytics, audio)이 포함된 타사 SDK를 사용하는 경우 16KB로 다시 빌드해야 합니다.
Android 16에는 ProgressStyle 알림 유형이 도입되었습니다. 이는 실시간 여정(배달, 승차 또는 추적)을 보여주는 앱에 적합합니다.
PushNotification.localNotification({
channelId: "progress-channel",
title: "Your ride is on the way 🚗",
message: "Driver arriving in 5 mins",
progress: 60, // show 60% journey complete
});
이렇게 하면 사용자 지정 레이아웃 없이 기본 시스템 스타일의 진행률 알림이 생성됩니다.
단색 버전을 제공하지 않은 경우에도 Android 16 QPR(분기별 업데이트)을 통해 앱 아이콘을 자동 테마로 설정할 수 있습니다. 또한 앱에 다크 모드를 강제 적용할 수 있는 시스템 옵션도 있습니다.
앱 로고와 스플래시 화면을 테스트해야 합니다. 일부 색상은 예상치 못한 방식으로 반전될 수 있습니다.
특히 앱이 엄격한 팔레트를 사용하는 경우 브랜드 가이드라인을 확인해야 합니다.
Android 16은 사용자가 외부 디스플레이(예: DeX, Chromebooks)에 앱을 더 쉽게 투사할 수 있도록 지원합니다.
엔터프라이즈 또는 태블릿 환경에서 React Native 앱을 사용하는 경우 종횡비가 큰 레이아웃을 테스트하는 것이 좋습니다.
React Native 0.81 또는 Expo SDK 54로 업그레이드
edge-to-edge 레이아웃에 react-native-safe-area-context 사용
React Navigation으로 predictive back 테스트
긴 업로드를 사용자 시작으로 표시
모든 네이티브 라이브러리(Hermes, SDK)가 16KB page size를 지원하는지 확인
관련성이 있는 경우 ProgressStyle notifications 확인
자동 테마 및 다크 모드에서 브랜딩 테스트
Android 16은 단순한 업데이트가 아니라 수년간 의존해 온 핵심 가정(백 버튼 처리 및 edge-to-edge 옵트아웃 등)을 재구성합니다. 좋은 소식은? 리액트 네이티브는 이미 적응하고 있으므로 최신 버전을 유지하는 한 안전할 것입니다.
안드로이드 16은 현대적이고 유동적이며 사용자 중심적인 디자인을 향한 부드러운 변화라고 생각하면 됩니다. 마지막 순간에 당황하지 말고 지금 이러한 변화를 받아들이면 React Native 앱이 더 잘 보이고 더 예측 가능하게 작동할 것입니다.