Giter Site home page Giter Site logo

naturalclar / react-native-unimodules Goto Github PK

View Code? Open in Web Editor NEW

This project forked from unimodules/react-native-unimodules

0.0 2.0 0.0 115 KB

Core Unimodule infrastructure and a collection of Unimodules and interfaces that are commonly depended on by other Unimodules

License: MIT License

JavaScript 7.09% Ruby 27.33% Groovy 65.58%

react-native-unimodules's Introduction

react-native-unimodules

This library contains the core unimodule infrastructure and a collection of unimodules and interfaces that are commonly depended on by other unimodules. You only need to install react-native-unimodules once and then you will be able to use most of the packages from the Expo SDK, like expo-camera, expo-media-library and many more, in any React Native project.

The easiest way to use the library is to initialize a "bare" project with expo-cli (npm i -g expo-cli) using expo init --template bare-minimum or expo init --template expo-template-bare-typescript if you prefer TypeScript. If you have an existing project you'd like to install it into, please read the following instructions.

๐Ÿ“ฆ Installation

This project requires that you use CocoaPods on iOS, to set it up see this gist, or relevant parts of the this guide. React Native >= 0.60 ships with Cocoapods support by default, so this should be easy if you're already on that version.

npm install react-native-unimodules

Now you need to configure the library for iOS and/or Android.

๐ŸŽ Configure iOS

Advanced configuration

Need to customize node_modules path?

If you need to customize the path to node_modules, for example because you are using yarn workspaces, then you can pass in a param for this: use_unimodules!(modules_paths: ['./path/to/node_modules'])

Need to exclude some unimodules that are being automatically linked?

If you need to exclude some of the unimodules that you are not using but they got installed by your other dependencies (like expo), then you can pass in exclude param for this. For example, if you want to exclude expo-face-detector, you may want to use this: use_unimodules!(exclude: ['expo-face-detector'])

๐Ÿค– Configure Android

In android/settings.gradle

  1. At the top add apply from: '../node_modules/react-native-unimodules/gradle.groovy'
  2. Then call includeUnimodulesProjects() on the next line.

In android/app/build.gradle

  1. Add apply from: '../../node_modules/react-native-unimodules/gradle.groovy' anywhere before the dependencies {} block.
  2. Add addUnimodulesDependencies() inside dependencies {} block.
  3. We recommend you use Java 1.8, you can set this like this.

In android/build.gradle

  1. Update minSdkVersion to 21.

In MainApplication.java Make the changes outlined in the diff that correspondes to your react-native version.

Advanced configuration

Need to customize node_modules path?

If you need to customize the path to node_modules, for example because you are using yarn workspaces, then you can pass in a param modulesPaths for both of these functions: includeUnimodulesProjects([modulesPaths: ['./path/to/node_modules']]), addUnimodulesDependencies([modulesPaths: ['./path/to/node_modules']])

Need to exclude some unimodules that are being automatically linked?

If you need to exclude some of the unimodules that you are not using but they got installed by your other dependencies (like expo), then you can pass in exclude param for this. For example, if you want to exclude expo-face-detector, you may want to use this: addUnimodulesDependencies([exclude: ['expo-face-detector']])

Need to customize configuration of unimodule dependencies?

You can also customize the configuration of the unimodules dependencies (the default is implementation, if you're using Gradle older than 3.0, you will need to set configuration: "compile" in addUnimodulesDependencies, like: addUnimodulesDependencies([configuration: "compile"]))

API

It's possible that you will not have to use any of the code provided by this package directly, it may be used only by other Unimodules that you install.

But it's likely that you will want to use something like FileSystem or Permissions, and to do that you can import the following modules like so:

import {
  Asset,
  Constants,
  FileSystem,
  Permissions,
} from 'react-native-unimodules';

You can import them directly from the specific Unimodule package if you like, but your linter may complain about importing a transitive dependency.

import * as Permissions from 'expo-permissions';

react-native-unimodules's People

Contributors

bbarthec avatar brentvatne avatar esamelson avatar geovannimp avatar ide avatar iljadaderko avatar lukmccall avatar maddijoyce avatar mczernek avatar orta avatar saadq avatar sjchmiela avatar solidfox avatar tsapeta avatar wkozyra95 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.