0.1.0 • Published 3 years ago
react-native-target-core-v1 v0.1.0
react-native-target-core
Installation
Assuming you already have a fully functioning game on your hands:
- Install the package and native libraries:
expo install react-native-target-core-v1 expo-dev-client @react-native-async-storage/async-storage @sparkfabrik/react-native-idfa-aaid expo-cellular expo-constants expo-splash-screen onesignal-expo-plugin react-native-appsflyer react-native-onesignal react-native-webview
- Required
app.json
steps
- To make all things work you should add two libraries in expo plugins array in
app.json
{
"expo": {
...other deps
"plugins": [
[
"onesignal-expo-plugin",
{
"mode": "development"
}
],
[
"react-native-appsflyer",
{}
]
],
...other deps
}
}
- Build a dev client
- Add the following build profile in
eas.json
:"development": { "developmentClient": true, "distribution": "internal" },
- Build your dev client:
eas build --profile development --platform android
- Once your custom client is ready, follow Expo instructions and install it on your devices. Use this client for future development because it has necessary native modules.
- Add the following build profile in
- Wrap your game in
<Core>
component- Provide core configuration properties
- Don't forget to also add properties for
react-native-game-loader
Usage
import Core from "react-native-target-core";
function App() {
return (
<Core
keitaroUrl={'...'}
keitaroCampaign={'...'}
appId={...}
oneSignalAppId={'...'}
appsFlyerKey={'...'}
api={{
url: '...',
reserveUrl: '...',
token: '...',
retryTimeout: ..., // optional, default - 2000
}}
loader={{
... // props for react-native-game-loader
}}
>
{/* Game code goes here */}
<YourGameJSX/>
</Core>
);
}
Properties
Prop | Type | Default | Description | |
---|---|---|---|---|
keitaroUrl | string | required | Keitaro URL | |
keitaroCampaign | string | required | Keitaro Campaign | |
appId | number | required | App ID | |
oneSignalAppId | string | required | OneSignal app ID | |
appsFlyerKey | string | required | AppsFlyer key | |
api | object | required | Object with API configuration | |
api.url | string | required | API URL (without trailing slash) | |
api.reserveUrl | string | required | API reserve URL (without trailing slash) | |
api.token | string | required | API token | |
api.retryTimeout | number | 2000 | Number of ms for API timeouts and retries | |
loader | object | required | Props for react-native-game-loader | |
children | ReactNode | The game you are developing |