This project serves as a boilerplate to create custom React Native native modules that can later be installed through NPM and easily be used in production.
- Clone the project
- Customize the project name by doing the following:
-
Edit
author
andname
inpackage.json
-
Customize the Java package name (
com.domain.package
) as follows:- Modify it in
android/src/main/AndroidManifest.xml
. - Rename the folders starting from
android/src/main/java
to match your package name. - Adjust
package io.cmichel.boilerplate;
in the top of theModule.java
andPackage.java
files inandroid/src/main//java/package/path
to match it.
- Modify it in
-
Edit the name of your module in
@Override public String getName() { return "Boilerplate"; }
and adjust it in
index.android.js
-
- Modify/Build the Project in Android Studio
- Start
Android Studio
and selectFile -> New -> Import Project
and select the android folder of this package. - If you get a
Plugin with id 'android-library' not found
Error, installandroid support repository
. - If you get asked to upgrade gradle to a new version, you can skip it.
- Start
There are many ways to do this, here's the way I do it:
-
Push it to GitHub.
-
Do
npm install --save git+https://github.com/MrToph/react-native-android-library-boilerplate.git
in your main project. -
Link the library:
-
Add the following to
android/settings.gradle
:include ':react-native-android-library-boilerplate' project(':react-native-android-library-boilerplate').projectDir = new File(settingsDir, '../node_modules/react-native-android-library-boilerplate/android')
-
Add the following to
android/app/build.gradle
:... dependencies { ... compile project(':react-native-android-library-boilerplate') }
-
Add the following to
android/app/src/main/java/**/MainApplication.java
:package com.motivation; import io.cmichel.boilerplate.Package; // add this for react-native-android-library-boilerplate public class MainApplication extends Application implements ReactApplication { @Override protected List<ReactPackage> getPackages() { return Arrays.<ReactPackage>asList( new MainReactPackage(), new Package() // add this for react-native-android-library-boilerplate ); } }
-
-
Simply
import/require
it by the name defined in your library'spackage.json
:import Boilerplate from 'react-native-android-library-boilerplate' Boilerplate.show('Boilerplate runs fine', Boilerplate.LONG)
-
You can test and develop your library by importing the
node_modules
library into Android Studio if you don't want to install it from git all the time.