Looking for an old documentation? As from now, it lives here: https://flatlogic.gitbook.io/react-native-starter/v/master/โ
We love building apps with React Native, because it helps us create high quality products for both major mobile platforms quickly and cost-effectively.
Getting started on a new app just takes too long. Most apps need the same basic building blocks and developer infrastructure, and we are bored of reinventing the wheel time and time again.
This Starter Kit reflects the best practices of React Native development we have discovered while building real-world applications for our customers. It is opinionated about tooling, patterns and development practices. It might not be a one-size-fits-all solution for everyone, but feel free to customize it for your needs, or just take inspiration from it.
More information about React Native Starter and downloads: https://reactnativestarter.com/โ
Always up-to-date React Native scaffolding
UI/UX Design from industry experts
Modular and well-documented structure for application code
Redux for state management
React Navigation for simple navigation
Disk-persisted application state caching
More than 16 Ready-to-use Pages
1. Clone and Install
# Clone the repogit clone https://github.com/flatlogic/react-native-starter.gitโ# Install dependenciesyarn installโ# Install native ios modulescd ios && pod install
2. Open RNS in your simulator
Then you can start the project by going to the project's folder and running there:
yarn startโyarn run:ios
or, if you want to open it on Android:
yarn run:android
If you don't see images here is the fix that will help you until React Native package didn't add this on their end. Open node_modules folder and find this file Libraries/Image/RCTUIImageViewAnimated.m scroll to the line 270 and you'll find this pice of code:
- (void)displayLayer:(CALayer *)layer{if (_currentFrame) {layer.contentsScale = self.animatedImageScale;layer.contents = (__bridge id)_currentFrame.CGImage;}}
change it to what you see below. Then restart project and clear cache, you may also try to build on different device.
- (void)displayLayer:(CALayer *)layer{if (_currentFrame) {layer.contentsScale = self.animatedImageScale;layer.contents = (__bridge id)_currentFrame.CGImage;} else {[super displayLayer:layer];}}
1. Clone and Install
# Clone the repogit clone https://github.com/flatlogic/react-native-starter.gitโ# Install dependenciesyarn install
2. Look through official guide
3. If project is not running correctly
unable to load script make sure you are either running a metro server ....
Go to your root folder of the project > node_modules > metro-config >src > defaults >blacklist.js
.
Open said file (VS Code, etc) and on the top you will see a var called SharedBlacklist. Change that var from what it is to what attached code says
FROMโvar sharedBlacklist = [/node_modules[/\\]react[/\\]dist[/\\].*/,/website\/node_modules\/.*/,/heapCapture\/bundle\.js/,/.*\/__tests__\/.*/];โTOโvar sharedBlacklist = [/node_modules[\/\\]react[\/\\]dist[\/\\].*/,/website\/node_modules\/.*/,/heapCapture\/bundle\.js/,/.*\/__tests__\/.*/];
That's it! Cool, right?
You can generate a private signing key using keytool
. On Windows keytool
must be run from C:\Program Files\Java\jdkx.x.x_x\bin
.
keytool -genkeypair -v -keystore my-upload-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000
Place the my-upload-key.keystore
file under the android/app
directory in your project folder.
Edit the file ~/.gradle/gradle.properties
or android/gradle.properties
, and add the following (replace *****
with the correct keystore password, alias and key password),
MYAPP_UPLOAD_STORE_FILE=my-upload-key.keystoreMYAPP_UPLOAD_KEY_ALIAS=my-key-aliasMYAPP_UPLOAD_STORE_PASSWORD=*****MYAPP_UPLOAD_KEY_PASSWORD=*****
These are going to be global Gradle variables, which we can later use in our Gradle config to sign our app.
Note about security: If you are not keen on storing your passwords in plaintext, and you are running OSX, you can also store your credentials in the Keychain Access app. Then you can skip the two last rows in ~/.gradle/gradle.properties
.
The last configuration step that needs to be done is to setup release builds to be signed using upload key. Edit the file android/app/build.gradle
in your project folder, and add the signing config,
...android {...defaultConfig { ... }signingConfigs {release {if (project.hasProperty('MYAPP_UPLOAD_STORE_FILE')) {storeFile file(MYAPP_UPLOAD_STORE_FILE)storePassword MYAPP_UPLOAD_STORE_PASSWORDkeyAlias MYAPP_UPLOAD_KEY_ALIASkeyPassword MYAPP_UPLOAD_KEY_PASSWORD}}}buildTypes {release {...signingConfig signingConfigs.release}}}...
Run the following in a terminal:
$ cd android$ ./gradlew assembleRelease
Also don't forget to run after you saved .apk file
./gradlew clean
check out official docs https://reactnative.dev/docs/signed-apk-androidโ
If you cloned free version and started it locally, then bought full version and launched it on the same virtual device you may face the issue with set up, it may be caused by the naming collision, please update you virtual device or start brand new VD and run RNS on the new device.