Overview

Developing a mobile app is a major accomplishment, but it’s just the first step in a long journey. In order for your app to be successful, it’s important to not only develop the app but also to beta test it, release it, and update it after it’s released to the public. The beta testing phase is essential in identifying and fixing any bugs, before the official release. The release of the app is a significant milestone, but it is equally important to update the app after it has been released. This allows developers to address issues or bugs that may arise, add new features, and improve the overall user experience. 

In this blog post, we will guide you through the process of beta testing, releasing, and updating your mobile app to maximize its chances of success.  There are many tools out there to help you accomplish these goals, but in this guide, we’ll be focusing on the official tools provided by Apple and Google.

Beta Testing

Beta testing is a crucial step in the development of a mobile app, allowing developers to gather feedback and iron out any bugs before the official release. It can be done by distributing the app to a small group of testers or by releasing it to a wider audience through a beta testing platform.

There are two primary types of beta testing,

  • Closed beta testing – Closed beta testing is a type of beta testing that involves a limited number of participants, typically chosen by the developer or company, who are given access to test a pre-release version of a product or software. The goal of closed beta testing is to gather feedback and find bugs or issues with the product before it is released to the general public.
  • Open beta testing – Open beta testing is a type of beta testing that allows anyone to participate, as opposed to closed beta testing, where participation is limited to a select group of testers. The main goal of open beta testing is to gather feedback from a larger group of users and test the product in a real-world environment with a diverse group of testers.

It is easy, and free, to do both open and closed testing on your iOS and Android apps.

Note: One of the reasons you are using React Native is so you don’t have to worry about platform inconsistencies.  Do you really need to test both platforms? Absolutely! Although there are a lot of similarities between iOS and Android these days, there are still enough differences that you need to individually test each platform.  Are you prompting for camera permissions on android? Did you add the camera usage description to your info.plist on ios?  Does that external dependency you are using really work the same on both platforms? Some questions can only be answered by hands-on testing.

iOS

If you want to get your app into the hands of real users, you’re going to have to use App Store Connect. You will use App Store Connect to customize your app’s presence on the iOS App Store and manage beta testing builds, app releases, and updates.  Specifically, for beta testing, App Store Connect provides a tool called Testflight.  Once you upload a new build of your app (identified by the build version), wait for it to process, and answer a few simple compliance questions, it will become available in Testflight. 

Note: Testflight builds will only be available for 90 days. After that period, the build will no longer work on the user’s device.  You’ll have to upload a new build in order to keep the app available for another 90 days.

Closed Beta Testing

Through Testflight, you can do closed beta testing for a limited set of users. Testflight calls this “internal testing.”  You can create groups of users, or, add users one at a time via their email addresses. Users will get an email inviting them to download the Testflight app from the iOS App Store, which will manage your app. When you submit a new build for internal testing, users will automatically get notified of any updates.  When doing closed beta testing, your app will be available to testers as soon as you upload it to Testflight -it does not need to go through an approval process.

Open Beta Testing

Testflight also provides you the means to do open beta testing, which they call “external testing”. Once you pick an app build for external testing, you will get a public link that users can use to install Testflight and download your app. Any user with that link will be able to install Testflight and beta test your app. 

Note: It is your responsibility to advertise this public link in whatever way is best for you, whether it is in a special blog post, or through social media.

Apps submitted for open beta testing may need to go through a beta approval process. This process is not as robust as the normal App Store review process but will add a small delay to getting your app out.

Android

There are actually several ways to release your app on Android, but by far the most accessible and popular is to go through the Google Play Store.  The Google Play Console is the gateway for app owners to manage all facets of their apps presence on the app store, gives access to reporting information, and more. It also provides a means of doing open and closed beta testing.  Beta versions of your app will be distributed through the Play Store. When users go to the Play Store page for your app, they will be presented with the beta version of your app.  Beta versions of your app will be available to users for as long as you keep them in the beta channel on the Play Store. You will have to either delete or promote the version in the Play Store to remove it from beta.

Closed Beta Testing

The Google Play Store splits closed beta testing into two separate groups: internal testing and closed testing. They are similar, but there is one critical difference. With internal testing, your app builds go straight to your testers without going through an approval process. With closed testing, on the other hand, your app will still go through a beta testing approval process.  In both cases, you will upload your app build (identified by the build number) to the Google Play store and specify the email addresses of the people who will be testing, or, provide them with a link to join the test.  Once users are in the test, they will have the ability to download the app through the Play Store.

Open Beta Testing

The Google Play Store makes open beta testing easy and straightforward. Once you upload your app build and mark it as an open beta, any user will have the option to join the beta test group from the Play Store.  You can open up your test to any user, or, you can set a limit on the number of testers.

Releasing

Releasing a mobile app is a big step for any developer, as it marks the point at which users can finally download and use the app. App store developer consoles have made it easier than ever to release your apps with minimal pain.

Both iOS and Android have similar release processes and offer similar features. Before your release your app for either platform, you’ll want to have the following ready:

  • App description – Marketing messaging that will be displayed on your app’s store page. This should be a short description of what your app does, and what role it fills.
  • Keywords – A list of keywords that users can use to search for your app in the app store.
  • Support URL – A URL that users can use if they need help with the app. This URL is displayed on the app store page.
  • Version – Your app is going to have 2 versions. Your internal build number and an external version that is displayed to users.
  • Primary / Secondary categories – A list of what categories your app belongs to in the app store.
  • Large logo – You will need to provide a large marketing version of your app icon to show up in the app store. You will need to follow the guidelines (Apple, Play Store) for the app store you are releasing for.
  • Screenshots – You must provide a minimum set of screenshots, usually for a specific device, but you may also want to provide screenshots for a variety of devices, showing how your app looks on large/small phones or phones vs. tablets.

After you submit your app for release, it will have to go through an app approval process before it will show up on an app store. This approval process ensures that your app meets all of the guidelines specified by Apple / Google, does not use any private APIs, and does not do anything malicious. You will usually hear about the status of your approval within a day or two of submitting your build. If your app fails approval, you’ll be notified of the problem and given a chance to fix it and resubmit. Don’t be discouraged if your app fails approval. Sometimes this can happen over something as trivial as using the wrong icon in the wrong context (looking at you, Apple.)

If all goes well, your app is ready to be released!  Both the Apple App Store and the Google Play Store give you a few different ways to release your app.

  • At time approval – Your app will be available immediately upon approval. This will get your app on the app store as soon as possible.
  • Manually – Once the app is approved, it will be held in approved status, but not released, until you manually mark it as published. This option works well if you want to time your app release with a press release or other announcement.  You can submit your app for approval ahead of time, and only release it when you are ready.

Updating

After an app has been released, it’s important to continue updating it in order to fix bugs and add new features. These updates are released through the various app store developer consoles through a slimmed-down release process. 

At a minimum, to update your app you’ll just need to create a new version number, upload a new build, and provide a short description of what is different about the updated build. You also have the opportunity to update other aspects of your app store presence that may have changed, like updated screenshots or the app description.  Once submitted, your new app version must go through the app approval process again.  App updates generally do not take as long to get approved as the initial release.  

App updates can be configured for immediate or manual approval, just like releases, but both the Apple App Store and Google Play Store provide additional customization for app updates.

  • All at once – At the time of release, your app will be immediately available to all existing users. The app will be available to update in the app store right away.  This is a good option if you have a smaller app and are confident in your new update.
  • Rollout over time – After the release, your app will gradually appear to users in batches over time. Let’s say you have 1 million users, and you’ve unintentionally introduced an unknown bug that affects 10% of them.  If you release all at once, you will get 100,000 support requests right off the bat as people update.  If, however, you configure a rolling update of 1% of users over the first day, you will quickly see those 100 support requests come in and can rollback your release before you affect the other customers. This is a powerful tool to manage critical app updates over large audiences, but only if you closely monitor your app as it is being rolled out.

There are several risks that developers should be aware of when updating a mobile app:

Data Migrations

When you update your app, users will get an updated app binary, but all of their app data will remain intact.  If you have updated your database models, it is *your responsibility* to make sure that those models get migrated from an older version to the newer version.  To further complicate matters, you may not always be updating from the most recent version to the next. If it has been a while since the user has updated, you could be updating from a database model 3 versions back.

Device Support

When you update your app with new features, make sure to keep an eye on the number of devices supported by your update. This is particularly important for Android, where your app could be running on literally thousands of potentially different devices.

For example, if you create a new version of your app that allows users to select a photo via the camera, you may find that depending on how you’ve configured your android manifest, you may have just removed support for all Android devices that don’t have cameras.

Regression bugs or performance issues

It’s important to monitor your apps after a new update has gone out to ensure that there are no new bugs introduced in your update, or that the update is not in some other way affecting the performance of your app.

Conclusion

Beta testing, releasing, and updating mobile apps are important stages in the app development process. Beta testing, whether open or closed, allows developers to gather feedback, find and fix bugs, and improve the overall quality of the product. However, it’s important to be aware of the risks and potential issues that can arise during the process.

Releasing the mobile app and making it available to the public is a big step, and it’s crucial to ensure that the app is fully functional and that any known bugs have been fixed. Updating the app after release is an ongoing process that helps to improve the user experience, fix bugs and add new features. Developers should pay attention to the feedback from users and monitor the app’s performance to make sure that updates are released smoothly and without any major issues. Careful planning, testing, and monitoring can help to ensure that the app is successful and well-received by the users.