Maciej Stasiełuk, 16.04.19
With full CI/CD process!
Without Expo / CRNA!
(for your development environment, not the project itself)
What you're going to need:
iOS:
Android:
The full process is described pretty well at
https://facebook.github.io/react-native/docs/getting-started
(the non-expo path)
$ react-native init MyProject
Don't use expo or create-react-native-app CLI, instead use pure react-native CLI.
- android/
- ios/
- app/
- index.js
- package.json
(for local development)
React Native app usually consists of three things:
Used to assemble the JS bundle, keep it running in the background during development.
$ react-native start
Gradle is used to assemble the app.
Most of the build configuration process is defined in:
You can execute Gradle commands in a few ways:
Xcode is responsible for assembling the iOS app.
The app can be built using:
You need to modify Gradle's build scripts, sometimes also Java files.
You need to add package files to libraries in your Xcode project.
CocoaPods is a dependency manager for Objective-C and Swift, written in Ruby (you can think of it as npm for obj-c)
Before you can use it, you should also modify the project so that React Native itself uses CocoaPods for module resolution.
The easiest and recommended way.
Under the hood, link command is running for you steps mentioned above.
$ react-native link react-native-device-info
Good writeup in official docs: https://facebook.github.io/react-native/docs/debugging
However, missing the most interesting and convenient way to debug RN apps.
A standalone app that is a mix of regular React Native remote debugger, React Inspector, Redux DevTools and Apollo DevTools.
Signing apps may be a very complicated and intimidating process in the beginning.
It requires a different approach to Android and iOS.
Requires a paid Apple Developer Program subscription.
Then all you have to do is to set up Certificate Signing Requests, iOS Development certificates, iOS Distribution certificates, correct iOS App IDs, iOS Development and Distribution Provisioning Profiles and mix everything to get a p12 signing cert.
Of course only if you don't need any special privileges for your app, then you are going to need extra certificates for everything...
Moreover, you need different certificates for each of your developers.
Xcode helps to manage certificates to some extent, especially for the Development part.
Can be done in different ways,
but must be done on OS X to support iOS.
Once the app is built and signed, it must be delivered somehow to testers and end users.
Once the application is configured in the Google Play Store, you can push new releases that will be delivered to your users.
Apple App Store is the only way to distribute iOS apps.
You can upload builds the same way as in TestFlight, but they must go through a rigorous review process by Apple employees, before being approved and available in the App Store.
Right now we just need to write the app and features :)