Upgrading React Native

Presented by Oleg Polyakov

About me

Full Stack Engineer at Citadel with particular passion for mobile and JavaScript

opolyo01@yahoo.com, @opolyo01

Why to upgrade?

  • Android 64-bit support
  • Fix devices that have notch with save-area-view
  • Newer versions of your software not compatible with old RN version
  • Deprecated UIs FlatList vs ListView
  • Adding 3rd party libraries that not working with old RN version
  • Performance Improvements
  • New APIs that comes with new OS release

Official React Native Upgrade Guide

iOS Upgrade Gotchas

  • The Version of macOs and Xcode
  • AppDelegate.h and AppDelegate.m
  • project.pbxproj

AppDelegate

A delegate object is an object that gets notified when the object to which it is connected reaches certain events or states. The main purpose of AppDelegate is handling special UIApplication states:

  • application:supportedInterfaceOrientationsForWindow
  • application:didFinishLaunchingWithOptions
  • sourceURLForBridge:
  • application:didRegisterUserNotificationSettings
  • application:didRegisterForRemoteNotificationsWithDeviceToken
  • application:didReceiveRemoteNotification
  • application:didFailToRegisterForRemoteNotificationsWithError

project.pbxproj

project.pbxproj is an important file in the Xcode configuration bundle. It is responsible for maintaining references to all of the linked files and their groupings, linked frameworks, and most importantly, the project's build settings.

Easy to upgrade 0.57.1 to 0.59.8

Hard Upgrade 0.57.1 to 0.61.2

Android Upgrade Gotchas

Android App Gotchas
  • AndroidManifest.xml
  • MainApplication.java
Android Build Gotchas
  • BUCK
  • build.gradle
  • gradle-wrapper.properties
  • settings.gradle
Lab
git clone git@github.com:opolyo01/codeCampSample.git
(0.57.8 bootstap App)
git checkout -b step1
(0.57.8 AsyncStorage App)
git checkout -b step2
(0.59.8 iOS App)
git checkout -b step3
(0.59.8 Android App)
git checkout -b step4
(0.59.8 fixes warnings)