Skip to content

Conversation

@adelrodriguez
Copy link
Collaborator

@adelrodriguez adelrodriguez commented Sep 26, 2025

TL;DR

Updated React Native to 0.81.4 and upgraded Expo dependencies to their latest versions.

What changed?

  • Updated React Native from 0.81.1 to 0.81.4
  • Upgraded Expo from 54.0.0-preview.12 to 54.0.10
  • Updated various Expo packages to their latest versions
  • Added @expo/metro-runtime dependency
  • Updated React Native dependencies:
    • react-native-edge-to-edge from 1.6.2 to 1.7.0
    • react-native-nitro-modules from 0.28.1 to 0.29.6
    • react-native-reanimated from 4.0.2 to 4.1.2
    • react-native-screens from 4.15.4 to 4.16.0
    • react-native-unistyles from 3.0.10 to 3.0.13
    • react-native-worklets from 0.4.2 to 0.5.1
  • Updated dev dependencies:
    • @sentry/cli from 2.53.0 to 2.55.0
    • expo-doctor from 1.17.0 to 1.17.8
  • Added .gitignore for expo-env.d.ts
  • Added AndroidManifest.xml for debugOptimized build variant

How to test?

  1. Run bun install to update dependencies
  2. Start the app with bun start and verify it launches correctly
  3. Test basic functionality on both iOS and Android to ensure the upgrade didn't break anything
  4. Verify that development tools like Expo Dev Client still work properly

Why make this change?

This update brings the project to the latest stable versions of React Native and Expo, which includes bug fixes, performance improvements, and security patches. Keeping dependencies up-to-date ensures the app remains secure and can take advantage of the latest platform features and optimizations.

@vercel
Copy link

vercel bot commented Sep 26, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Comments Updated (UTC)
init-app Error Error Oct 2, 2025 5:12am

@coderabbitai
Copy link

coderabbitai bot commented Sep 26, 2025

Important

Review skipped

Auto reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

✨ Finishing touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix-mobile

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@adelrodriguez adelrodriguez marked this pull request as ready for review September 26, 2025 01:30
@claude
Copy link

claude bot commented Sep 26, 2025

Claude finished @adelrodriguez's task —— View job


Pull Request Review

Review Checklist:

  • Analyze dependency updates and version compatibility
  • Review new configuration files
  • Check for potential breaking changes
  • Assess security implications
  • Evaluate test coverage considerations
  • Provide comprehensive feedback

Review Summary

This PR upgrades React Native and Expo dependencies to their latest stable versions. Overall, this is a well-executed maintenance update with appropriate dependency management practices.

Positive Aspects

1. Conservative Update Strategy

  • React Native 0.81.1 → 0.81.4 (patch update - low risk)
  • Expo preview → stable release (54.0.0-preview.12 → 54.0.10)
  • Most updates are minor/patch versions, minimizing breaking change risk

2. Proper Configuration Management

  • New .gitignore entry: Correctly excludes expo-env.d.ts (auto-generated file)
  • Android debug manifest: Adds proper development permissions for SYSTEM_ALERT_WINDOW
  • Metro runtime addition: @expo/metro-runtime dependency correctly added for Expo SDK 54

3. Dependency Consistency

  • Sentry version constraint improved: 6.20.0~6.20.0 (allows patch updates)
  • All Expo packages aligned to SDK 54 versions
  • iOS Podfile.lock properly reflects Nitro Modules 0.29.6 update

⚠️ Areas of Concern

1. Missing Test Coverage

  • Critical Issue: No test files found in the mobile app (**/*.test.*, **/__tests__/**)
  • No automated testing to verify the upgrade doesn't break functionality
  • Recommendation: Add basic smoke tests for core functionality before merging

2. Nitro Modules Version Jump

  • React Native Nitro Modules: 0.28.1 → 0.29.6 (significant version jump)
  • This is a relatively new/experimental library - ensure compatibility testing
  • Recommendation: Verify all Nitro Module usage still works correctly

3. Reanimated Worklets Update

  • Worklets: 0.4.2 → 0.5.1 (minor version bump)
  • Reanimated: 4.0.2 → 4.1.1
  • These animation libraries can have subtle breaking changes
  • Recommendation: Test all animations and gesture interactions

🔒 Security Assessment

Android Manifest Changes

The new debugOptimized/AndroidManifest.xml adds:

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<application android:usesCleartextTraffic="true" />

Assessment:

  • SYSTEM_ALERT_WINDOW: Required for React Native development overlays
  • ⚠️ usesCleartextTraffic: Allows HTTP traffic (development only via build variant)
  • Recommendation: Ensure this is only applied to debug builds, not production

📋 Testing Recommendations

Since there are no automated tests, manual testing should cover:

  1. Basic App Launch: Verify app starts without crashes
  2. Navigation: Test all screen transitions
  3. Animations: Verify Reanimated/Worklets functionality
  4. Native Modules: Test any Nitro Module integrations
  5. Development Tools: Ensure Expo Dev Client works
  6. Platform Parity: Test both iOS and Android

🎯 Final Recommendation

APPROVE with the following conditions:

  1. Immediate: Add basic smoke tests before merging
  2. Short-term: Comprehensive testing of animation and native module functionality
  3. Long-term: Establish automated testing for the mobile app

The dependency updates are well-managed and follow best practices. The risk is appropriately low given the conservative version choices.

📝 Code Quality Score: 8/10

  • +2: Conservative dependency management
  • +2: Proper configuration handling
  • +2: Good commit organization
  • +1: Security-conscious Android permissions
  • +1: Appropriate gitignore updates
  • -2: Missing test coverage

Copy link
Collaborator Author

adelrodriguez commented Sep 26, 2025

@adelrodriguez adelrodriguez merged commit 86a089a into main Oct 2, 2025
5 of 8 checks passed
@adelrodriguez adelrodriguez deleted the fix-mobile branch October 2, 2025 05:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants