React Native 0.77 — new styling features, Android 16KB support, Swift iOS template
Key Points
- New CSS props for richer layouts (New Architecture only)
- Android 16KB page support + Android 15 edge-to-edge note
- Swift iOS template; react-native init deprecated
Summary
React Native 0.77 adds several new styling capabilities (display: contents, boxSizing, mixBlendMode, outline props), Android compatibility updates (forced edge-to-edge on Android 15 and 16KB memory page support), and community tooling/template changes (Swift iOS template, completion of react-native init deprecation). Several changes affect developer workflows and upgrades — read the Key Points and Migration Guidance below.
Key Points
- New styling props (available only with the New Architecture):
- display: contents — flattens wrapper views out of the layout box while still receiving pointer events.
- boxSizing — supports border-box (default) and content-box for width/height calculations.
- mixBlendMode and isolation — control blending between views with standard blend modes.
- outlineWidth/Style/Spread/Color — draw outlines around border boxes without affecting layout.
- Android updates:
- Forced edge-to-edge behavior on Android 15 when targeting SDK 35 — verify safe-area handling (react-native-safe-area-context already handles this).
- 16KB memory page size is now supported in RN 0.77 — test and verify native dependencies for 16KB devices.
- Community tooling & template updates:
- react-native init is fully deprecated; use frameworks (e.g.
npx create-expo-app) or the Community CLI (npx @react-native-community/cli init). - Metro removed ‘a’/’i’ key handlers (run-android/run-ios) and stopped streaming console.log() — update any scripts or workflows that relied on these shortcuts/behaviors.
- iOS community template now defaults to Swift (AppDelegate.swift). Objective-C++ variant remains supported; Objective-C++ is recommended if your app registers C++ local modules.
- New template includes RCTAppDependencyProvider — add the equivalent dependencyProvider line to avoid runtime issues.
- react-native init is fully deprecated; use frameworks (e.g.
Migration guidance (practical steps)
- If you want to use the new CSS props, enable and test under the New Architecture; otherwise these props are not available.
- Verify native modules and third-party libraries against 16KB page-size devices; ensure native builds run on target devices.
- Update project creation flows to use Expo or the Community CLI; remove reliance on
react-native init. - Search codebase/CI for any automation that relied on Metro
a/ishortcuts or console.log streaming and adjust to explicit CLI commands. - When upgrading to the Swift template:
- You can keep using Objective-C++ if you register C++ modules (Swift/C++ interop is not yet stable).
- Ensure AppDelegate includes RCTAppDependencyProvider (or equivalent) to load third-party dependencies.
Breaking changes to watch
- console.log() streaming removed from Metro (affects some debugger/console workflows).
- react-native init removed.
References
- Test on Android 15/16KB hardware or Android docs for page-size behavior.
- RN migration/upgrade helper will show the AppDelegate language change and RCTAppDependencyProvider addition.