feat: upgrade react-native-expo to Expo SDK 54#216
Merged
teodorciuraru merged 13 commits intomainfrom Dec 15, 2025
Merged
Conversation
33dfdd3 to
844bcff
Compare
Upgrades Expo SDK from 53 to 54 and regenerates native folders. ## Changes - Upgrade Expo SDK: ~53 → ~54.0.25 - Upgrade React: 19.0.0 → 19.1.0 - Upgrade React Native: 0.79.5 → 0.81.5 - Update all Expo packages to SDK 54 versions - Add SafeAreaProvider from react-native-safe-area-context - Add react-native-worklets (peer dependency for reanimated) - Add Expo 54 Android config (edgeToEdgeEnabled, predictiveBackGestureEnabled) - Enable reactCompiler experiment - Add dark mode splash screen config - Regenerate ios/ and android/ folders via expo prebuild ## Files Changed - package.json: Dependency upgrades - app.json: Expo 54 config additions - App.tsx: SafeAreaProvider wrapper - .gitignore: Updated to match template - yarn.lock: Updated lockfile - ios/: Regenerated with Expo SDK 54 - android/: Regenerated with Expo SDK 54 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
844bcff to
75f81d9
Compare
Upgrades Expo SDK from 53 to 54 and regenerates native folders. ## Changes - Upgrade Expo SDK: ~53 → ~54.0.25 - Upgrade React: 19.0.0 → 19.1.0 - Upgrade React Native: 0.79.5 → 0.81.5 - Update all Expo packages to SDK 54 versions - Add SafeAreaProvider from react-native-safe-area-context - Add react-native-worklets (peer dependency for reanimated) - Add Expo 54 Android config (edgeToEdgeEnabled, predictiveBackGestureEnabled) - Enable reactCompiler experiment - Add dark mode splash screen config - Regenerate ios/ and android/ with Expo SDK 54 - Use index.js entry point (expo prebuild standard) ## Tested - ✅ iOS builds and runs - ✅ Android builds and runs - ✅ SafeAreaView working properly - ✅ Ditto sync functional 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Pull request overview
This PR upgrades the react-native-expo quickstart from Expo SDK 53 to SDK 54, updating React Native from 0.79.5 to 0.81.5 and React from 19.0.0 to 19.1.0. The upgrade includes necessary configuration changes for both iOS and Android platforms, adds SafeAreaProvider for proper edge-to-edge handling, and includes a new peer dependency (react-native-worklets) required by react-native-reanimated 4.x.
Key Changes
- Dependency upgrades to Expo SDK 54 with React Native 0.81.5 and React 19.1.0
- Added SafeAreaProvider wrapper and react-native-worklets peer dependency
- Enabled New Architecture with React Compiler experiment
- Configured edge-to-edge display and dark mode splash screens for both platforms
Reviewed changes
Copilot reviewed 19 out of 22 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| react-native-expo/package.json | Updated all dependencies to SDK 54 compatible versions, changed main entry to index.js |
| react-native-expo/index.js | New simple entry point using registerRootComponent |
| react-native-expo/app.json | Added Android edge-to-edge config, dark mode splash, and React Compiler experiment |
| react-native-expo/App.tsx | Wrapped app in SafeAreaProvider, added DQL_STRICT_MODE configuration |
| react-native-expo/ios/Podfile | Updated Podfile with SDK 54 requirements and ccache helper function |
| react-native-expo/ios/Podfile.lock | Updated all iOS dependencies to SDK 54 versions |
| react-native-expo/ios/Info.plist | Enabled New Architecture (RCTNewArchEnabled) |
| react-native-expo/ios/*.storyboard | Added dark mode splash screen support |
| react-native-expo/android/build.gradle | Removed deprecated reactNativeAndroidDir configuration |
| react-native-expo/android/gradle.properties | Enabled parallel builds and edge-to-edge mode |
| react-native-expo/android/app/build.gradle | Updated R8 configuration naming (enableProguardInReleaseBuilds → enableMinifyInReleaseBuilds) |
| react-native-expo/android/app/src/main/java/com/anonymous/reactnativeexpo/MainApplication.kt | Updated to new React Native 0.81 initialization pattern |
| react-native-expo/android/app/src/main/AndroidManifest.xml | Disabled predictive back gesture (android:enableOnBackInvokedCallback) |
| react-native-expo/android/app/src/main/res/values/styles.xml | Updated edge-to-edge theming |
| react-native-expo/android/gradle/wrapper/gradle-wrapper.properties | Upgraded Gradle from 8.13 to 8.14.3 |
| react-native-expo/.gitignore | Simplified native folder ignore patterns |
Comments suppressed due to low confidence (1)
react-native-expo/android/gradlew:1
- The CLASSPATH has been set to an empty string with escaped quotes, which will break Gradle execution. This should remain as
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar. The change on line 216 to use-jarflag is correct, but the CLASSPATH should not be emptied.
#!/bin/sh
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
pvditto
reviewed
Nov 27, 2025
teodorciuraru
commented
Dec 1, 2025
Combined duplicate React imports into single import statements in EditTaskModal and NewTaskModal components to fix ESLint import/no-duplicates warnings. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
react-native-expo to Expo SDK 54
…clean' of github.com:getditto/quickstart into teodorciuraru/sdks-2259-feat-upgrade-react-native-expo-clean
- Removed package-lock.json to avoid mixing package managers - Regenerated yarn.lock to resolve frozen-lockfile CI errors - yarn.lock now properly synced with package.json 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Added package-lock.json for npm users - Updated both yarn.lock and package-lock.json - Fixed npm security vulnerabilities with npm audit fix 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
pvditto
approved these changes
Dec 11, 2025
kristopherjohnson
approved these changes
Dec 11, 2025
234ac04 to
8448eba
Compare
Update @dittolive/ditto from 4.12.4 to 4.13.1 to match main branch. Update package-lock.json and yarn.lock accordingly. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
8448eba to
014c7db
Compare
…ative-expo-clean Resolve conflicts by: - Keeping Expo SDK 54 upgrade (package.json) - Updating lockfiles (package-lock.json, yarn.lock) - Updating iOS Podfile.lock with Ditto 4.13.1 - Merging SDK version bumps from main 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This file was accidentally added during merge and should not exist at the repository root level. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Upgrades the react-native-expo quickstart from Expo SDK 53 to SDK 54 with minimal changes.
Changes
Files Changed
Only react-native-expo/ files modified:
Testing
🤖 Generated with Claude Code