Nicoară Talpeș

data scientist and machine learning engineer

Checklist at App Store launch for React Native app

I recently launched a React Native app called Origin Spots on both App Stores. This post represents a checklist for appstore launch or at a new release.

Ahead of time

Think about adding localization ahead of time. Adding Localization after the app is already written is more complicated: it takes a day's work to add one language for a dozen screens.

Make sure the app is GDPR compliant. Getting feedback from a lawyer on GDPR related contracts like Privacy Policy, End User Legal Agreement screens takes 2-4 weeks. I don’t think one can launch an app without them, so think about this ahead of time.

Before launch

Make sure the iOS permissions explain very well what they ask for, otherwise the app will be rejected. An additional text for NSCameraUsageDescription could be: 'This will enable you to take photos with the camera to use in the app.' Android does not require further exlaining.

Show somewhere in the app UI, maybe in the settings section, the build and release version of the user's current app version. So if a user reports a bug, you would know what version they have problems on.

Double check and if it's the case, change the release version. The place to do this in Android Studio is in the file android/app/build.gradle inside the tag android / default config; in Xcode is in Settings.

Add 'force-cache' parameter in Image tags, they will save in cache images in iOS so the user does not downlead multiple times an image.

Add Splash Screen / Launch Screen.

If the app has login with Facebook, make sure the app is in Live mode on the facebook developer website. This will not be detected in the app release in iOS, but only in release mode in Android. You don't want to hear from users that the login is not working!

Test the app works on multiple device sizes and operating systems. On iOS this can be done in the simulator, on Android you would need to ask friends for devices. There is also the Firebase Test Lab . I have encountered problems on only some devices than my own.

UI Test that the app behaves correctly if a user does not allow any of the requested permissions.

User test with other users the app first for a couple days - a week. Errors will appear that you as a developer did not catch.

Test the release version on the app for Android, before sending the signed apk to the store. Errors will appear only at running the app - like missing signed key.

To obtain the APK for the Google Play store, run the command './gradlew assembleRelease' from terminal. Do not obtain the apk from Android Studio UI - this apk will seem ok but will actually be an older version of the app without the new files added by the javascript server, this will be hard to detect unless you install the app on a device which few developers do.

Add Crashlytics from Fabric to detect crashes.

Add analytics. Example solutions are Firebase or Fabric (for both Android and iOS).

Make sure on Google Play Store the app is not running on tablets if it is not designed to do so.

Back up the database.

Post launch

Export Compliance Information to Apple by end of year.

Verify login with Facebook works.

Let me know if you think a future post with changes at new releases would be useful.

Posted on August 30, 2018