Skip to content

Missing official guide for safe migration of iOS projects from Objective-C to Swiftย #944

@coldSeattle

Description

@coldSeattle

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:

  1. 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?
  2. How to do this migration safely, for example:
    • Converting AppDelegate from Obj-C to Swift (using RCTAppDelegate)
    • 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
  3. 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 AppDelegate using RCTAppDelegate
    • Mixed Obj-C / Swift native modules
    • Bridging-header setup
  • โš ๏ธ 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions