native-store
v1.0.0
Published
Native store for react-native
Readme
native-store
Native store for react-native
Requirements
iOS
- Xcode 8+
- iOS 9+
Android
- Minimum SDK 16
Installation
Run npm install --save native-store to add the package to your app's dependencies.
iOS
react-native cli
Run react-native link native-store so your project is linked against your Xcode project and all CocoaPods dependencies are installed.
CocoaPods
- Open your project in Xcode workspace.
- Drag the following folder into your project:
node_modules/native-store/ios/TPSStore/
Manual
- Open your project in Xcode, right click on Libraries and click
Add Files to "Your Project Name". - Look under
node_modules/native-store/iosand addTPSStore.xcodeproj. - Add
libTPSStore.atoBuild Phases->Link Binary With Libraries. - Click on
TPSStore.xcodeprojin Libraries and go the Build Settings tab. Double click the text to the right ofHeader Search Pathsand verify that it has$(SRCROOT)/../../react-native/React- if they aren't, then add them. This is so Xcode is able to find the headers that theTPSStoresource files are referring to by pointing to the header files installed within thereact-nativenode_modulesdirectory. - Whenever you want to use it within React code now you can:
import Storage from 'native-store'
Android
react-native cli
Run react-native link native-store so your project is linked against your Android project
Manual
In your app build.gradle add:
...
dependencies {
...
compile project(':native-store')
}In your settings.gradle add:
...
include ':native-store'
project(':native-store').projectDir = new File(rootProject.projectDir, '../node_modules/native-store/android')Usage
Let's require native-store module:
import Storage from 'native-store'To change store state from React use:
Storage.setState({...})To get the current state of native store use:
const state = await Storage.getState()To subscribe on store state changes use:
this.unsubscribe = Storage.subscribe(this.yourFunction)As a result you will get unsubscribe function.
Don't forget to unsubscribe, typically you can do it in componentWillUnmount
componentWillUnmount() {
this.unsubscribe()
}Tests
Local CI
To run native-store unit tests and example app e2e tests for all platforms you can use npm run ci command.
Manual
- Go to example folder
cd example - Install npm dependencies
npm install - Build project:
npm run build:ios- for iOSnpm run build:android- for Androidnpm run build- for both iOS and Android
- Open Appium in other tab
npm run appium - Run tests:
npm run test:ios- for iOSnpm run test:android- for Androidnpm run test- for both iOS and Android
Troubleshooting
You might encounter the following error while trying to run tests:
An unknown server-side error occurred while processing the command. Original error: Command \'/bin/bash Scripts/bootstrap.sh -d\' exited with code 1
You can fix it by installing Carthage:
brew install carthageExample
To see more of the native-store in action, you can check out the source in example folder.
License
native-store is available under the MIT license. See the LICENSE file for more info.
