ammarahm-ed / react-native-jsi-template

Template library and blog that explain how JSI modules are built from scratch in React Native
https://blog.notesnook.com/getting-started-react-native-jsi/
MIT License
163 stars 24 forks source link
android ios jsi-modules native-modules react-native reactnative

react-native-jsi-template

This is an example library that explains how anyone can build jsi modules from scratch in React Native. This code is written as a support project for my blog.

Installation

npm install react-native-simple-jsi

For iOS also run pod install in /ios folder.

Prerequisites

You must have Android NDK and CMake installed on android to build the library.

Methods

The following methods are implemented.

Platfom agnostic

The relevant code is present in cpp/example.cpp file.

    helloWorld():string;

    multiplyWithCallback(x:number,y:number,callback:(z:number) => void):void

    multiply(x:number,y:number):number

Platform specific

The relevant code on android is in android/cpp-adapter.cpp and ios/SimpleJsi.mm on iOS.

    getDeviceName():string

    setItem(key:string,value:string):boolean

    getItem(key:string):string

Basic usage example

import simpleJsiModule from "react-native-jsi-template";

simpleJsiModule.helloWorld() // returns helloworld.

Run the example app for more.

Thanks to these libraries & their authors:

The initial work done by authors of the following libraries has helped a lot in writing the blog and keeping this repo updated.

Contributing

See the contributing guide to learn how to contribute to the repository and the development workflow.

License

MIT