Skip to content
This repository was archived by the owner on Oct 29, 2024. It is now read-only.
This repository was archived by the owner on Oct 29, 2024. It is now read-only.

[Feature Request] Support for Expo Config Plugins #110

@leggomuhgreggo

Description

@leggomuhgreggo

I am on a team that's fixin to start work on a cross-platform Expo app, intended to replace our three legacy clients. Wanted to inquire whether y'all would consider adding support for Config Plugins, so this library can be used with the Expo Managed Workflow (i.e. without ejecting)

Thanks for your consideration!

Feature Context

Over the past several months Expo has introduced features which enable apps to use external native modules, without ejecting Expo's managed workflow.

The customizations to the iOS and Android code that are required by a given native module are automated, using an AST-based API that Expo provides through "Config Plugins" feature.

These automations (called "mods") are executed during a new "Prebuild" phase, in which boilerplate ios and android directories are created — and then their respective files are altered, based on the instructions in a given modules config plugin. The end result is essentially the same as if you ejected and manually changed the ios/android files.

Here's the Expo blog post announcing Config Plugins and the associated feature-set.

Overview of Proposed Implementation

The process for creating a Config Plugin is detailed here:
https://docs.expo.io/guides/config-plugins/#creating-a-plugin

There are a few different "recipes" for how to implement — but the gist of it is:

  • Create the app.plugin.js file, at the project root — which serves as a standard entrypoint where expo can resolve the plugin code. [ex: expo-camera]
  • Export a function prefixed using "with" (eg withFeature) which accepts a config object that can be used, along with @expo/config-plugins methods, to implement mods for each platform's native code. [ex: withCamera]
  • Add mods corresponding to the setup steps in your README.md
  • Celebrate!

Additional Question

Are there specific feature in the RN SDK, that aren't supported in the standard React SDK? I've been trying to parse the docs a little bit but it's not totally clear to me. Thanks!

Metadata

Metadata

Assignees

No one assigned

    Labels

    StaleenhancementNew feature or requestwaiting for feedbackIndicates LaunchDarkly is waiting for customer feedback before issue is closed due to staleness.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions