Shared publicly  - 
 
Yet another reason why branded launch screen suck

A few months ago, Material Design guidelines added a new section entitled "Launch screens" [0]. In this section, Google advocates how branded launch screen (aka splash screens) enhance the user experience when having a "cold" launch.

It's no secret that I've always been against branded launch[1] but clearly pushing towards placeholder UIs or previews instead[2].

What happened to me this morning is another reason why splash screen should be avoided at all costs in favour of 1) an optimised launch time and 2) a placeholder UI. Here is what happened : I was using Google Maps and looked at the help inside the app. After looking at it, I pressed [HOME] and stopped using my phone. After a few hours, I had to have a look at a place so I opened Google Maps once again, closed the restored "Help" screen and BOOM : a branded launch screen displayed for half a second … Such a painful experience :(. For the quick tests I have made, this bug also affects Google+.

[0]: https://www.google.com/design/spec/patterns/launch-screens.html
[1]: http://cyrilmottier.com/2012/05/03/splash-screens-are-evil-dont-use-them/
[2]: http://cyrilmottier.com/2013/01/23/android-app-launching-made-gorgeous/
99
11
Jonathan Salamon's profile photoWattanakarn Vladimirova's profile photoCyril Mottier's profile photoThomas Bruyelle's profile photo
16 comments
Kiran Rao
+
1
2
3
2
 
I would be interested in a study that gauges which of the following has a greater impact on brand loyalty:

1. A service/app that does the job for the user
2. Constantly, repeatedly, tirelessly reminding the user of the brand
 
It is like in jingles in the radio stations telling me what radio station I am listening to... every few minutes. Because I might have forgotten that already...
 
+Cyril Mottier​ yes I noticed this with G+ some time back too. I have implemented this for my app but now am having second thoughts. Good that I have not released that update yet.
 
But that sounds more like a bug or misconception!? I mean a splash screen is okay when launching an app, but not when switching between activities ... ;-)
 
+Paul Burke OH NO! ;-)

Thanks for link by the way. The Material Design specs are a bit vague in terms of implementing a splash screen, though.

"Launch screens should be used for initial, cold launch from the home screen, and should not displayed if the application is running, or if the launch comes from another application."

You could argue that Google Maps is not entirely following these "rules" ;-)

A splash screen on cold launch would be fine - if recreating a "paused" activity doesn't count as cold launch :-)
 
+Cyril Mottier​ I gave it a bit more thought and I think my implementation would be OK. I use a launcher activity that is only called by the system. I do my init and launch the real home activity. The launcher theme is only associated with this launcher activity that can only be created by the system. Code is on github nhasan/airports.
 
Hangouts does the same. It sucks.
 
Thank you +Cyril Mottier​ while it might be a place holder with virtually no performance impact it is VERY jarring.. Especially on fast devices where it just flashes.. Thank you for speaking out, I feel that you have more clout in the Android community to pull this off. .

 
For years, Google said : NO SPLASHSCREEN PLEASE.
And every brand added a SplashScreen because most Android applications at this time were only iOS applications ported to Android (and you had always a splashscreen on iOS apps).
Now, SplashScreen are part of the new design guidelines but the OS has never been designed for dealing with this "things" and it's always a terrible user experience..
So, I agree with you +Cyril Mottier  : no SplashScreen at all, never !
 
As part of the new runtime permissions, I found splashscreens usefull for asking critical permissions. If the user deny, the app stays on the splash screen and explain why the app needs the permissions.

 
+Thomas Bruyelle I agree but this is not really a "launch screen" but rather a "waiting screen". Anyway, your usecase is correct.
 
+Cyril Mottier I'm glad you agree. Unfortunately the official pattern (override `android:windowBackground` and immediately invoke `setTheme()` before `super.onCreate()` [1]) isn't very compliant with that.

I'm fighting against the framework since days to implement a splash/wait screen without too much nasty tricks, and I have to admit I'm agree with this article from Android UI Patterns : "Trying to do a splash screen right is like polishing a turd." [2]

[1] https://plus.google.com/+IanLake/posts/SW7F2CJvAmU
[2] http://www.androiduipatterns.com/2015/08/splash-screen-with-any-other-name-is.html
Add a comment...