Skip to content

Flagship 9

Benjamin Hanes edited this page Mar 27, 2020 · 18 revisions

Please note that this article references an upcoming Flagship release and should not be considered final or complete.

Flagship 9 introduces the following major changes:

  • React Native upgraded from version 0.59 to version 0.61
  • React Native Navigation upgraded from version 1 to version 4

React Native 0.60 & 0.61

For a comprehensive list of changes to React Native, please refer to the official release notes: https://github.com/react-native-community/releases/blob/master/CHANGELOG.md

React Native Navigation 4

React Native Navigation v2 introduced a brand new API that will break apps using v1. One of the biggest changes is that Navigation can be imported directly from react-native-navigation instead of being passed through as a prop of screen-level components.

Please refer to their Screen documentation: https://wix.github.io/react-native-navigation/#/docs/screen-api

Flagship has created its own Navigator object that offers similar functionality to the previous one, along with compatibility with web. The main difference is that when you push or do similar screen transitions, it should look like:

navigator.push({
  component: {
    name: 'Home'
  }
});

when before it was

navigator.push({
  screen: 'Home'
});

Navigator should be imported from @brandingbrand/fsapp instead of react-native-navigation. A number of functions have been converted to work with react-native-navigation 3, but will give deprecation warnings instructing you how to use the updated syntax.

handleDeepLink and setOnNavigator event no longer are part of react-native-navigation, so you'll need to handle those transitions some other way and use the new events: https://wix.github.io/react-native-navigation/#/docs/events

iOS Launch Screens: XIB to Storyboard

Due to changes in React Native Navigation, .xib launch screens need to be converted to storyboards. If this has not been completed, Flagship will throw a warning and use the generic Flagship launch screen. This must be performed in Xcode; you may be able to copy and paste assets between your XIB and new Storyboard depending on the complexity of the file.

TypeScript

TypeScript has been updated to 3.7.2. While this shouldn't introduce breaking changes, due to improved checks it may throw errors if types have not been properly implemented in your project.