AppDelegate.mm in react-native
AppDelegate.mm is a core iOS entry file in React Native iOS projects (and some native iOS apps) that acts as the bridge between iOS and your React Native app.
1. What is AppDelegate.mm?
AppDelegate.mm is the application lifecycle manager for the iOS app.
2. Why .mm and not .m?
.mm means Objective-C++
React Native iOS now uses C++ internally (Fabric, TurboModules, JSI).
👉 That’s why modern RN projects use AppDelegate.mm.
3. Role of AppDelegate.mm in React Native
In a React Native app, AppDelegate.mm:
4. Push Notifications & Deep Linking
Push Notifications
AppDelegate.mm is required for:
5. When Do You Modify AppDelegate.mm?
You usually touch it when:
One-Line Summary
AppDelegate.mm is the iOS entry point that initializes React Native, loads the JavaScript bundle, and connects native iOS with your React Native UI.
✅ Swift equivalent of AppDelegate.mm is:
👉 AppDelegate.swift
Why React Native Can’t Use Swift AppDelegate Directly
That’s why RN sticks with AppDelegate.mm.
In a Swift iOS project, AppDelegate.swift (or @main App in SwiftUI) plays the same role as AppDelegate.mm in React Native, but without JavaScript bootstrapping or C++ integration.
A pure Swift iOS project does NOT need AppDelegate.mm.If you see AppDelegate.mm, the project is either React Native, Objective-C++, or incorrectly configured.