Created
April 28, 2020 06:11
-
-
Save samithaf/9a434d0e0feee6babdc35861d454c458 to your computer and use it in GitHub Desktop.
React Native 62.2 and Expo updates
This file contains 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
#import <UIKit/UIKit.h> | |
#import <UMReactNativeAdapter/UMModuleRegistryAdapter.h> | |
#import <UMCore/UMAppDelegateWrapper.h> | |
#import <React/RCTBridgeDelegate.h> | |
#import <EXUpdates/EXUpdatesAppController.h> | |
@interface AppDelegate : UMAppDelegateWrapper <RCTBridgeDelegate, EXUpdatesAppControllerDelegate> | |
@property (nonatomic, strong) UMModuleRegistryAdapter *moduleRegistryAdapter; | |
@property (nonatomic, strong) UIWindow *window; | |
@end |
This file contains 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
#import "AppDelegate.h" | |
#import <React/RCTBridge.h> | |
#import <React/RCTBundleURLProvider.h> | |
#import <React/RCTRootView.h> | |
#import <UMCore/UMModuleRegistry.h> | |
#import <UMReactNativeAdapter/UMNativeModulesProxy.h> | |
#import <UMReactNativeAdapter/UMModuleRegistryAdapter.h> | |
#if DEBUG | |
#import <FlipperKit/FlipperClient.h> | |
#import <FlipperKitLayoutPlugin/FlipperKitLayoutPlugin.h> | |
#import <FlipperKitUserDefaultsPlugin/FKUserDefaultsPlugin.h> | |
#import <FlipperKitNetworkPlugin/FlipperKitNetworkPlugin.h> | |
#import <SKIOSNetworkPlugin/SKIOSNetworkAdapter.h> | |
#import <FlipperKitReactPlugin/FlipperKitReactPlugin.h> | |
#endif | |
@interface AppDelegate () | |
@property (nonatomic, strong) NSDictionary *launchOptions; | |
@end | |
@implementation AppDelegate | |
@synthesize window = _window; | |
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions | |
{ | |
self.moduleRegistryAdapter = [[UMModuleRegistryAdapter alloc] initWithModuleRegistryProvider:[[UMModuleRegistryProvider alloc] init]]; | |
self.launchOptions = launchOptions; | |
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; | |
#if DEBUG | |
[self initializeReactNativeApp]; | |
#else | |
EXUpdatesAppController *controller = [EXUpdatesAppController sharedInstance]; | |
controller.delegate = self; | |
[controller startAndShowLaunchScreen:self.window]; | |
#endif | |
[super application:application didFinishLaunchingWithOptions:launchOptions]; | |
return YES; | |
} | |
- (RCTBridge *)initializeReactNativeApp | |
{ | |
#if DEBUG | |
FlipperClient *client = [FlipperClient sharedClient]; | |
SKDescriptorMapper *layoutDescriptorMapper = [[SKDescriptorMapper alloc] initWithDefaults]; | |
[client addPlugin:[[FlipperKitLayoutPlugin alloc] initWithRootNode:[UIApplication sharedApplication] withDescriptorMapper:layoutDescriptorMapper]]; | |
[client addPlugin:[[FKUserDefaultsPlugin alloc] initWithSuiteName:nil]]; | |
[client addPlugin:[FlipperKitReactPlugin new]]; | |
[client addPlugin:[[FlipperKitNetworkPlugin alloc] initWithNetworkAdapter:[SKIOSNetworkAdapter new]]]; | |
[client start]; | |
#endif | |
RCTBridge *bridge = [[RCTBridge alloc] initWithDelegate:self launchOptions:self.launchOptions]; | |
RCTRootView *rootView = [[RCTRootView alloc] initWithBridge:bridge | |
moduleName:@"MyRNApp" | |
initialProperties:nil]; | |
rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1]; | |
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; | |
UIViewController *rootViewController = [UIViewController new]; | |
rootViewController.view = rootView; | |
self.window.rootViewController = rootViewController; | |
[self.window makeKeyAndVisible]; | |
return bridge; | |
} | |
- (NSArray<id<RCTBridgeModule>> *)extraModulesForBridge:(RCTBridge *)bridge | |
{ | |
NSArray<id<RCTBridgeModule>> *extraModules = [_moduleRegistryAdapter extraModulesForBridge:bridge]; | |
// You can inject any extra modules that you would like here, more information at: | |
// https://facebook.github.io/react-native/docs/native-modules-ios.html#dependency-injection | |
return extraModules; | |
} | |
- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge | |
{ | |
#if DEBUG | |
return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index" fallbackResource:nil]; | |
#else | |
return [[EXUpdatesAppController sharedInstance] launchAssetUrl]; | |
#endif | |
} | |
- (void)appController:(EXUpdatesAppController *)appController didStartWithSuccess:(BOOL)success | |
{ | |
appController.bridge = [self initializeReactNativeApp]; | |
} | |
@end |
This file contains 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
{ | |
"name": "MyRNApp", | |
"version": "0.0.1", | |
"private": true, | |
"scripts": { | |
"android": "react-native run-android", | |
"ios": "react-native run-ios", | |
"start": "react-native start", | |
"test": "jest", | |
"lint": "eslint ." | |
}, | |
"dependencies": { | |
"expo": "^37.0.8", | |
"expo-asset": "^8.1.4", | |
"expo-updates": "^0.1.2", | |
"react": "16.11.0", | |
"react-native": "0.62.2", | |
"react-native-unimodules": "^0.9.0" | |
}, | |
"devDependencies": { | |
"@babel/core": "^7.9.0", | |
"@babel/runtime": "^7.9.2", | |
"@react-native-community/eslint-config": "^1.1.0", | |
"babel-jest": "^25.4.0", | |
"eslint": "^6.8.0", | |
"jest": "^25.4.0", | |
"metro-react-native-babel-preset": "^0.59.0", | |
"react-test-renderer": "16.11.0" | |
}, | |
"jest": { | |
"preset": "react-native" | |
} | |
} |
This file contains 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
platform :ios, '10.0' | |
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules' | |
require_relative '../node_modules/react-native-unimodules/cocoapods.rb' | |
def add_flipper_pods!(versions = {}) | |
versions['Flipper'] ||= '~> 0.33.1' | |
versions['DoubleConversion'] ||= '1.1.7' | |
versions['Flipper-Folly'] ||= '~> 2.1' | |
versions['Flipper-Glog'] ||= '0.3.6' | |
versions['Flipper-PeerTalk'] ||= '~> 0.0.4' | |
versions['Flipper-RSocket'] ||= '~> 1.0' | |
pod 'FlipperKit', versions['Flipper'], :configuration => 'Debug' | |
pod 'FlipperKit/FlipperKitLayoutPlugin', versions['Flipper'], :configuration => 'Debug' | |
pod 'FlipperKit/SKIOSNetworkPlugin', versions['Flipper'], :configuration => 'Debug' | |
pod 'FlipperKit/FlipperKitUserDefaultsPlugin', versions['Flipper'], :configuration => 'Debug' | |
pod 'FlipperKit/FlipperKitReactPlugin', versions['Flipper'], :configuration => 'Debug' | |
# List all transitive dependencies for FlipperKit pods | |
# to avoid them being linked in Release builds | |
pod 'Flipper', versions['Flipper'], :configuration => 'Debug' | |
pod 'Flipper-DoubleConversion', versions['DoubleConversion'], :configuration => 'Debug' | |
pod 'Flipper-Folly', versions['Flipper-Folly'], :configuration => 'Debug' | |
pod 'Flipper-Glog', versions['Flipper-Glog'], :configuration => 'Debug' | |
pod 'Flipper-PeerTalk', versions['Flipper-PeerTalk'], :configuration => 'Debug' | |
pod 'Flipper-RSocket', versions['Flipper-RSocket'], :configuration => 'Debug' | |
pod 'FlipperKit/Core', versions['Flipper'], :configuration => 'Debug' | |
pod 'FlipperKit/CppBridge', versions['Flipper'], :configuration => 'Debug' | |
pod 'FlipperKit/FBCxxFollyDynamicConvert', versions['Flipper'], :configuration => 'Debug' | |
pod 'FlipperKit/FBDefines', versions['Flipper'], :configuration => 'Debug' | |
pod 'FlipperKit/FKPortForwarding', versions['Flipper'], :configuration => 'Debug' | |
pod 'FlipperKit/FlipperKitHighlightOverlay', versions['Flipper'], :configuration => 'Debug' | |
pod 'FlipperKit/FlipperKitLayoutTextSearchable', versions['Flipper'], :configuration => 'Debug' | |
pod 'FlipperKit/FlipperKitNetworkPlugin', versions['Flipper'], :configuration => 'Debug' | |
end | |
# Post Install processing for Flipper | |
def flipper_post_install(installer) | |
installer.pods_project.targets.each do |target| | |
if target.name == 'YogaKit' | |
target.build_configurations.each do |config| | |
config.build_settings['SWIFT_VERSION'] = '4.1' | |
end | |
end | |
end | |
end | |
target 'MyRNApp' do | |
# Pods for MyRNApp | |
pod 'FBLazyVector', :path => "../node_modules/react-native/Libraries/FBLazyVector" | |
pod 'FBReactNativeSpec', :path => "../node_modules/react-native/Libraries/FBReactNativeSpec" | |
pod 'RCTRequired', :path => "../node_modules/react-native/Libraries/RCTRequired" | |
pod 'RCTTypeSafety', :path => "../node_modules/react-native/Libraries/TypeSafety" | |
pod 'React', :path => '../node_modules/react-native/' | |
pod 'React-Core', :path => '../node_modules/react-native/' | |
pod 'React-CoreModules', :path => '../node_modules/react-native/React/CoreModules' | |
pod 'React-Core/DevSupport', :path => '../node_modules/react-native/' | |
pod 'React-RCTActionSheet', :path => '../node_modules/react-native/Libraries/ActionSheetIOS' | |
pod 'React-RCTAnimation', :path => '../node_modules/react-native/Libraries/NativeAnimation' | |
pod 'React-RCTBlob', :path => '../node_modules/react-native/Libraries/Blob' | |
pod 'React-RCTImage', :path => '../node_modules/react-native/Libraries/Image' | |
pod 'React-RCTLinking', :path => '../node_modules/react-native/Libraries/LinkingIOS' | |
pod 'React-RCTNetwork', :path => '../node_modules/react-native/Libraries/Network' | |
pod 'React-RCTSettings', :path => '../node_modules/react-native/Libraries/Settings' | |
pod 'React-RCTText', :path => '../node_modules/react-native/Libraries/Text' | |
pod 'React-RCTVibration', :path => '../node_modules/react-native/Libraries/Vibration' | |
pod 'React-Core/RCTWebSocket', :path => '../node_modules/react-native/' | |
pod 'React-cxxreact', :path => '../node_modules/react-native/ReactCommon/cxxreact' | |
pod 'React-jsi', :path => '../node_modules/react-native/ReactCommon/jsi' | |
pod 'React-jsiexecutor', :path => '../node_modules/react-native/ReactCommon/jsiexecutor' | |
pod 'React-jsinspector', :path => '../node_modules/react-native/ReactCommon/jsinspector' | |
pod 'ReactCommon/callinvoker', :path => "../node_modules/react-native/ReactCommon" | |
pod 'ReactCommon/turbomodule/core', :path => "../node_modules/react-native/ReactCommon" | |
pod 'Yoga', :path => '../node_modules/react-native/ReactCommon/yoga', :modular_headers => true | |
pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec' | |
pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec' | |
pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec' | |
target 'MyRNAppTests' do | |
inherit! :complete | |
# Pods for testing | |
end | |
use_native_modules! | |
use_unimodules! | |
# Enables Flipper. | |
# | |
# Note that if you have use_frameworks! enabled, Flipper will not work and | |
# you should disable these next few lines. | |
add_flipper_pods! | |
post_install do |installer| | |
flipper_post_install(installer) | |
end | |
end | |
target 'MyRNApp-tvOS' do | |
# Pods for MyRNApp-tvOS | |
target 'MyRNApp-tvOSTests' do | |
inherit! :search_paths | |
# Pods for testing | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment