We can show the first screen before App.OnStart is complete. They are independent and can be evaluated separately.
![how to get an app started how to get an app started](https://contenthub-cdn.streamlabs.com/static/imgs/card-how-to-add-follower-emotes-twitch.png)
Your engagement and feedback is the only way this will work. And that won’t happen overnight as we need, together, to determine the best declarative alternatives.
![how to get an app started how to get an app started](https://neilpatel.com/wp-content/uploads/2021/03/Resources-to-Help-You-Build-Your-App-Appy-Pie-AppMakr-.png)
There will likely always be a few outlier reasons to use it, but we do expect that it will become the exception rather than the rule. To be clear, we have no plans to eliminate App.OnStart. Going declarative relieves a lot of the tedium of keeping state variables up to date. For example, an Excel spreadsheet describes a set of dependencies between cells ( what), it doesn’t say when they should be recalculated or in what order ( when and how), that is Excel’s job.
![how to get an app started how to get an app started](https://digimg.digieffects.com/how-to-make-a-photo-video-with-music-app-.jpg)
Declarative means that you continue to tell us what you want to happen, but you don’t need to tell us when or how. Not only will your apps load faster and give a better user experience, but it will be easier to write and debug them too. Over the course of many months we are going to provide new declarative alternatives for all the things you do in App.OnStart today. So, today, we are all embarking on a journey. Analysis found that App.OnStart was a major culprit for slow loading apps in teams, and since it is imperative, there isn’t very much the system could do to improve the performance. Having quick app load times is always important, but for Teams it is critical – apps don’t stay in memory, they are expected to load and close within a few seconds at most. The situation became acute with our Microsoft Teams integration. Because it is so specific about not only what needs to be done, but also when that work must be done based on order, it limits the reordering and deferring optimizations that could otherwise be done. It is an ordered list of work that needs to be done before the first screen is shown. It has been widely successful and we promote its use heavily in our performance optimization guidance.īut there’s a problem with this wonderful property. It is widely used for the initialization of global variables, the prefetching of data into collections, and to determine which screen should be shown first. It is an uncommon situation and there is a simple fix.Įveryone loves App.OnStart. Note: If you are here because you have an app that was created before March 2021, that is now showing an error for using Navigate in OnStart, skip ahead to the section on Older apps with new Navigate workaround.