Examples

You can find example projects demonstrating the usage of React Native Brownfield in the apps directory.

It contains the following apps:

  • RNApp - a React Native app that is packaged using React Native Brownfield to an artifact consumed in native apps, in which you can refer to an exemplar usage of the library for packaging a React Native app to a consumable artifact
  • ExpoApp54 - the Expo application that is packaged analogously to the above using React Native Brownfield Expo config plugin; this app uses Expo SDK v54, which is an important test case since pre-55 versions require additional configuration steps
  • ExpoApp55 - another Expo application similar to ExpoApp54, but using Expo SDK v55
  • AndroidApp - an Android app consuming the packaged artifact from RNApp or ExpoApp, in which you can refer to an exemplar usage of the library for integrating React Native Brownfield into a native Android app; this app comes in two flavors:
    • expo - which uses the artifact produced from ExpoApp
    • vanilla - which uses the artifact produced from RNApp
  • AppleApp - an iOS app consuming the packaged artifact from RNApp, in which you can refer to an exemplar usage of the library for integrating React Native Brownfield into a native iOS app; this app comes in two configurations:
    • expo - which uses the artifact produced from ExpoApp
    • vanilla - which uses the artifact produced from RNApp

Additional notes

There are 2 demo apps for Expo: ExpoApp55 (Expo 55 SDK) and ExpoApp54 (Expo 54 SDK). This is to test our setup works with both pre- and post-55 Expo SDK versions. It is important since the pre-55 Expo versions require additional handling, which is not applied by our Expo config plugin for Expo >= 55.

The ReactBrownfield iOS Pods project (namely ExpoHostRuntime.swift) depends on the EXPO_SDK_GTE_55 compile-time define. This define is added to the project from the Podfile, injected by the Expo config plugin for Expo SDK versions >= 55.

Need React or React Native expertise you can count on?