Skip to content

infinitered/react-native-mlkit

Repository files navigation

IR MLKit Logo

RN MLKit Wrapper for Expo

All Contributors

RNMLKit provides Expo modules that allow developers to use MLKit native libraries in their Expo apps.

Here are some previews in action:

Face Detection Object Detection
IR MLKit Face Detection Preview IR MLKit Face Object Detection

Quickstart: Running the example app

1. Clone the project

git clone git@github.com:infinitered/react-native-mlkit.git

2. Install dependencies

yarn

3. Build native modules

yarn build

4. Create a development build of the app

iOS

Note: MLKit is not supported in the iOS simulator. You will need to use a hardware device.

Via Terminal
cd apps/ExampleApp

npx expo run:ios -d
Via XCode
  1. Create the native project folders
cd apps/ExampleApp

npx expo prebuild
  1. Open apps/ExampleApp/ios/ExampleApp.xcworkspace in XCode
  2. Select the ExampleApp target, and select a Team on the "Signing & Capabilities" tab
  3. Select your target hardware device (MLKit is not supported in the simulator at this time)
  4. Click the play button to build the app

Android

Note: Android support is currently under active development, some modules may not function as intended

cd apps/ExampleApp

# run on hardware device
npx expo run:android -d

Organization

The monorepo is organized into the following sections:

  • Apps -- holds the example app (ExampleApp) that demonstrates how to use the modules.
  • Modules -- holds the modules themselves. Each module is a separate npm package, and they are published to npm under the name @infinitered/[module name].
  • Packages -- holds internal packages that are only used by the modules and are not published to npm. Things like the linter config.

Usage

For usage instructions see the readme in each module's directory.

Building

Use yarn build at the root level to compile typescript in all workspaces. You will need to do this when you make changes before other modules to be able to see the changes. (The packages have a main field that points to the compiled code.)

Running yarn build inside of an expo module workspace will start watch mode for files inside of that module.

Compatibility

Expo SDK MLKit
^49.0.0 <= 0.7.7
^50.0.0 ^1.0.0
^51.0.0 ^1.0.0

Contributors

This project follows the all-contributors specification. Contributions of any kind welcome!