1. Knowledge Base
  2. Platform features

How do I maintain app state between sessions?

Each run of your app in Appetize is a fresh install of your app on a fresh "factory reset" device. This is beneficial in many ways, so that each launch is completely independent and reproducible.

Each run of your app in Appetize is a fresh install of your app on a fresh "factory reset" device. This is beneficial in many ways, so that each launch is completely independent and reproducible. 

However, you may have a user login, an onboarding flow, or other steps you follow when your app launches, and you'd like to somehow persist this state between app launches. 

We do not support this type of "snapshotting" feature on our side, but we do have a few features which enable our customers to achieve a similar (and many ways better!) result.

Launch Params

You may specify key/value launch params to send to your app at launch. Your app can read these values when it launches, and take some automatic action. 

For example you could send:

{ "skipOnboarding" : true, "userToken" : "xyz" }

Then, when your app launches, it knows to skip the onboarding, and automatically authenticate the user with the provided userToken. Of course your app will need to support this logic, so this may require changes to your app. 

However, many clients find that their apps already support some launch params, which can easily be re-used in Appetize. These are the same launch params that are used with automated testing, and other internal CI/CD pipelines. 

More info in our documentation at Launch Params.

Deep links

Similar to launch params, you can use deep links to accomplish much the same. Many apps already to support deep links, and you can re-use the same in Appetize. 

One advantage of deep links is that you can also send them dynamically while your app is running, via our  JavaScript SDK. 

More info in our documentation at Deep Links.

AppRecorder

Finally, we do have a method in "beta" called the AppRecorder, where you can record a set of steps such as a user login, and have those steps played back automatically when your app launches. 

Currently, using AppRecorder requires some JavaScript development on your side, but we do have several customers using AppRecorder at scale in production today. 

We will be continuing to develop our AppRecorder technology in the future. 

More info in our documentation at AppRecorder