Migrate to Expo SDK 56 with bun — Matchimals 2.0.0#66
Open
chrisheninger wants to merge 4 commits into
Open
Conversation
Replace the bare react-native-cli setup with Expo's continuous native generation: ios/ is now generated from app.json via `expo prebuild` and no longer checked in. All native customizations (Firebase, Dimbo font, orientations, universal links, ATS, AdId-free analytics) are expressed as config plugins, including a local withFirebaseNoAdId Podfile plugin. - Expo SDK 56 / React Native 0.85 / React 19.2 (New Architecture) - bun replaces yarn 4 as package manager - expo-audio replaces react-native-video for music and sound effects - Expo Metro web replaces react-scripts; public/index.html kept as template - fastlane removed; releases are built locally (prebuild + Xcode archive or `eas build --local`) - Drop unused deps: react-art, react-native-gesture-handler, babel-polyfill - Rewrite Card/Table drag with Animated translate transforms; the old setNativeProps left/top mutation breaks on Fabric (card vanished while dragging). Key deck cards by position from bottom so the next top card doesn't reuse the dragged instance. - Version bumped to 2.0.0 to mark the Expo era Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
7162c04 to
6b83044
Compare
…nsform react-native-web's measure() reads offsetTop/Left and ignores CSS transforms, so the translate-based drag introduced in the SDK 56 migration made every drop map back to the deck cell (always illegal -> snap back). measureInWindow uses getBoundingClientRect, which includes transforms on web and returns transform-inclusive coords on native. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 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
Replaces the bare react-native-cli setup with Expo SDK 56 (React Native 0.85, React 19.2, New Architecture) using continuous native generation —
ios/is now generated fromapp.jsonviaexpo prebuildand no longer checked in. bun replaces yarn 4 as the package manager, and version is bumped to 2.0.0 to mark the Expo era.Toolchain
bun.lock(yarn 4 artifacts removed); all 21 expo-doctor checks passNative config → app.json
All previous Xcode/Podfile customizations are reproduced as config: bundle ID, build number, Apple team, all four orientations, hidden status bar, Dimbo font, ATS local networking, encryption-exempt flag, universal links,
GoogleService-Info.plist, and Firebase static frameworks. A small local plugin (plugins/withFirebaseNoAdId.js) keeps$RNFirebaseAnalyticsWithoutAdIdSupport=truein the generated Podfile.Code changes
src/Musicmigrated from react-native-video (v5, audio-only usage) to expo-audioregisterRootComponent;src/index.jsand the Android babel-polyfill branch removedCardandTablepreviously dragged/panned by mutatingleft/toplayout props viasetNativeProps, which breaks on the new renderer (cards vanished mid-drag). Rewritten withAnimated.ValueXY+ translate transforms.Decknow keys cards by position-from-bottom so the next top card doesn't reuse the dragged component instance (index keys made the new card never render).Web
react-scripts 4 replaced by Expo's Metro web (
bun run web/bun run build:web);public/index.htmlkept as the HTML template with OG meta and webfonts intact.Releases (fastlane removed)
Builds stay local:
bun run prebuild+ Xcode archive, oreas build -p ios --local. Build number is tracked viaios.buildNumberin app.json. Documented in the README.Test plan
bunx expo-doctor— 21/21 checks passbunx expo prebuildoutput verified (Podfile vars, Info.plist, entitlements, Firebase plist)bunx expo export -p web— bundle + public assets exported with custom template🤖 Generated with Claude Code