-
Notifications
You must be signed in to change notification settings - Fork 141
Description
Missing official guide for safe migration of iOS projects from Objective-C to Swift
Description
Many React Native apps that were created before RN 0.77 still use Objective-C in the iOS folder (AppDelegate, native modules, etc.).
Starting from RN 0.77+, the default iOS template switched to Swift with RCTAppDelegate, and RN 0.79 introduces Swift-friendly module registration via ios.modulesProvider.
However, there is no official documentation or migration guide that explains:
- Whether developers should migrate their existing Obj-C iOS projects to Swift at all โ is it optional, recommended for future compatibility, or required in upcoming releases?
- How to do this migration safely, for example:
- Converting
AppDelegatefrom Obj-C to Swift (usingRCTAppDelegate) - Handling projects that have a mix of Obj-C + Swift code (bridging-header best practices)
- Migrating existing native modules (written in Obj-C) to the new Swift-friendly registration
- Potential pitfalls with Pods, Xcode targets, build settings, deployment targets
- Converting
- Expected benefits vs. risks of migrating โ maintenance, future upgrades, new architecture support.
At the moment, developers have to rely on Upgrade Helper diffs and community blog posts, which donโt provide a safe, step-by-step path for this transition.
Request
It would be extremely helpful if the React Native team could:
- ๐ Publish an official migration guide in the docs or blog for transitioning iOS projects from Obj-C to Swift.
- โ Clarify if / when Obj-C support might be deprecated so teams can plan accordingly.
- ๐ป Provide sample code or templates for common scenarios:
- Swift
AppDelegateusingRCTAppDelegate - Mixed Obj-C / Swift native modules
- Bridging-header setup
- Swift
โ ๏ธ Highlight known pitfalls (Pods, build settings, deployment target changes).
Such guidance would save teams significant effort and reduce the risk of breaking changes during upgrades.
Environment
- Current project: React Native 0.78 (iOS folder mostly Obj-C)
- Target upgrade: React Native 0.79 (with Swift-friendly modules)
- Xcode 15+, iOS 15+ deployment target
- Project contains custom native modules written in Obj-C and plans to adopt Swift going forward.
Motivation
Upgrading from 0.78 โ 0.79 leaves developers without a clear path for migrating the iOS folder to Swift.
An official guide would clarify whether migration is necessary, how to do it safely, and what benefits it brings.