Git Product home page Git Product logo

react-native-devmenu's Introduction

react-native-devmenu

npm

Open developer menu using touches instead of shaking your device.

Installation

Install the library from npm:

npm i --save @terrysahaidak/react-native-devmenu

or

yarn add @terrysahaidak/react-native-devmenu

Build configuration on iOS

You don't need to do somethings because DevMenu package is already included in React Native on iOS.

Build configuration on Android

If you need Android support and you're using React Native 60 and later, you don't need to do anything. But if React Native version is above 60, it's recommended to use react-native link to link Android's native module:

react-native link @terrysahaidak/react-native-devmenu

Or you can link it manually:

Ensure your build files match the following requirements:

  1. Define the react-native-devmenu project in android/settings.gradle:
...
include ':react-native-devmenu'
project(':react-native-devmenu').projectDir = new File(rootProject.projectDir, '../node_modules/@terrysahaidak/react-native-devmenu/android')
  1. Add the react-native-devmenu as an dependency of your app in android/app/build.gradle:
...
dependencies {
  ...
  implementation project(':react-native-devmenu')
}
  1. Add import com.mands.reactnativedevmenu.DevMenuPackage; and new DevMenuPackage(this) in your MainApplication.java, but make sure you pass this to DevMenuPackage:
import com.mands.reactnativedevmenu.DevMenuPackage;
...
    @Override
    protected List<ReactPackage> getPackages() {
        return Arrays.<ReactPackage>asList(
                new MainReactPackage(),
                new DevMenuPackage(this) // make sure you pass `this`
        );
    }

Usage

Wrap your root any any other component you want to recognize you touches to open the dev menu. Pass numberOfTouches prop to change number of taps (by default it's 3).

It renders children without any wrapper in production.

import DevMenu from '@terrysahaidak/react-native-devmenu';

const App = () => (
  <DevMenu numberOfTouches={4}>
    {/* your app stuff such as providers, navigators etc */}
  </DevMenu>
);

AppRegistry.registerComponent('myApp', () => App);

License

MIT © Terry Sahaidak/Oleh Mryhlod 2019

react-native-devmenu's People

Contributors

dependabot[bot] avatar markrickert avatar oleh-mryhlod avatar pie6k avatar terrysahaidak avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

alex-rentlyz

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.