Monday, March 7, 2016

Activity response, startup times



I'm interested in what is a reasonable start up time or behavior for applications on smart phones.


This is simply when you click an icon on the launcher (as it may be called on Android) to the moment you get the first animation / update suggesting something is happening, to finally when the UI is completely ready.


I wonder how much difference a person can see in these scenarios? Is it worth optimizing start up of an application to gain 100ms, or say 250ms?


Is it better to have a progressive start up decorated with animations compared to a simple best effort start? Any suggestions on where in time this break point lies?


I'm mostly interested in numbers possibly backed from experimental studies.



Answer



Great question. The closest answer I found was in this infographic which states that the maximum users are willing to wait is 5 seconds after which they will exit the app.


enter image description here


A snippet from the screenshot which pertains to loads times for apps


Also do note that the different app stores do enforce an limit on the load time for an app. To quote this article




All mobile operating systems – iOS, Android, and even Windows – enforce a maximum app startup time. For iOS, the limit is about 15 seconds, and if your app isn’t running by then the operating system will kill it.



With regards how to optimize your performance and how to keep the user engaged, I strongly recommend reading this excellent article from smashing magazine which has this to say:



Speed up perceived performance


The designer cannot control performance all of the time. The network might be slow; the device might be running other tasks in the background; certain operations might require a lot of calculation. If the user at least perceives that they are not losing time, then the app will make a solid impression. Design can help communicate this, even during unexpected delays.


The first step is to identify flows that will likely have delays (fetching back-end data, performing a lot of calculations, etc.). The second step is to guide users through these delays by introducing additional steps that they would perceive as being necessary (showing loading animations, displaying useful tips, etc.).


The following set of images shows possible steps in a content search:


enter image description here



The user here experiences four steps:



  • Hits the search button.

  • Sees a loading animation.

  • Sees the first part of the list, with textual content and placeholder images (which could be stored in the app itself).

  • Sees the actual thumbnail images appear.


The user experiences short steps, rather than jumping directly from step one to four, and so perceives progress rather than delay.



Another example which is recommended is doing partial loads as shown below:




Another example is when an app starts loading up. By first displaying a picture that matches the application’s layout, the user gets the impression that the app is loading more quickly. The screenshot below illustrates this; however, the perceived performance could be sped up even more by adding a simple progress notification in the blank space of the first screen. This would avoid the impression that something is waiting to be loaded. (In case of a slow connection the app does show a loading notification, thereby communicating progress to the user for that situation).


enter image description here



The article also has two other recommendations namely smart loading and background loading which can help create an illusion of faster loading



Smart loading


Smart-loading mechanisms, such as lazy loading, first load visible content and then move on to content below the fold. This technique reduces the user’s waiting time and thus makes for a smoother experience.


Background loading


This is another well-known example. Performance depends on whether the background is one large image, an amalgamation of small tiles (say, to create a texture) or a pure algorithm. The best solution depends on the situation.




I also recommend reading this research paper Fast App Launching for Mobile Devices Using Predictive User Context which talks about using cache and proactive content updates to quickly load apps


No comments:

Post a Comment

technique - How credible is wikipedia?

I understand that this question relates more to wikipedia than it does writing but... If I was going to use wikipedia for a source for a res...