An Android application takes a little amount of time to start up , especially during the cold start i.e. the first time it runs on the device.
The very idea of splash screen irritates me. I mean they just waste your time and show you a highly crafted logo. As an Android Developer, just kidding I am just a beginner, when I see splash screen I just imagine that some poor developer had to add a three second delay to the code, just under the society's pressure.
Every time I open an application I have to just stare to a random picture for 3 seconds without any reason. I mean I just know which application I have opened and what it does, just let me use the app.
According to the Google Recommendation :
Google advocates that one should use a Splash Screen according to the Material Design Specs.
It’s still not a good idea to use a splash screen that wastes a user’s time. Please don’t do that.
Doing It The Right Way! :
However Android app do take some time to start up , especially on a cold start. There is a delay that you may not able to avoid . Instead of just leaving the blank screen why not just show user something nice. This is the approach Google is advocating. Don't waste user's time , but also don't show them blank section of the app, the first time it loads.
If you look at recent updates to Google apps, you’ll see appropriate uses of the splash screen. Take a look at the YouTube app, for example.
The amount of time you just spent looking the splash screen was just the time it took to configure the application.This is on a cold launch, too, which means this is the slowest launch possible. If the app is cached, the splash screen will go away almost immediately.
Implementing Splash Screen:
Implementing a splash screen the right way is a little different than you might imagine. Its not like loading an activity and add a 3 second delay and then load the Main/Home activity. The splash view that you see has to be ready immediately, even before you can inflate a layout file in your splash activity.
So you will not use a layout file. Instead, specify your splash screen’s background as the activity’s theme background. To do this, first create an XML drawable in res/drawable.
Here, I’ve set up a background image.
Next, I will set this as my splash activity’s background in the theme. Now just navigate to your styles.xml file and add a new theme for your splash activity:
The very idea of splash screen irritates me. I mean they just waste your time and show you a highly crafted logo. As an Android Developer, just kidding I am just a beginner, when I see splash screen I just imagine that some poor developer had to add a three second delay to the code, just under the society's pressure.
Every time I open an application I have to just stare to a random picture for 3 seconds without any reason. I mean I just know which application I have opened and what it does, just let me use the app.
According to the Google Recommendation :
Google advocates that one should use a Splash Screen according to the Material Design Specs.
It’s still not a good idea to use a splash screen that wastes a user’s time. Please don’t do that.
Doing It The Right Way! :
However Android app do take some time to start up , especially on a cold start. There is a delay that you may not able to avoid . Instead of just leaving the blank screen why not just show user something nice. This is the approach Google is advocating. Don't waste user's time , but also don't show them blank section of the app, the first time it loads.
If you look at recent updates to Google apps, you’ll see appropriate uses of the splash screen. Take a look at the YouTube app, for example.
The amount of time you just spent looking the splash screen was just the time it took to configure the application.This is on a cold launch, too, which means this is the slowest launch possible. If the app is cached, the splash screen will go away almost immediately.
Implementing Splash Screen:
Implementing a splash screen the right way is a little different than you might imagine. Its not like loading an activity and add a 3 second delay and then load the Main/Home activity. The splash view that you see has to be ready immediately, even before you can inflate a layout file in your splash activity.
So you will not use a layout file. Instead, specify your splash screen’s background as the activity’s theme background. To do this, first create an XML drawable in res/drawable.
Here, I’ve set up a background image.
Next, I will set this as my splash activity’s background in the theme. Now just navigate to your styles.xml file and add a new theme for your splash activity:
In your new
SplashScreen
, set the window background attribute to your XML drawable. Configure this as your splash activity’s theme in your AndroidManifest.xml
:Finally,
MainActivity (which is supposed to be SplashActivity)
class should just forward you along to your main activity:Notice that you don’t even set up a view for this
MainActivity
. The view comes from the theme. When you set up the UI for your splash activity in the theme, it is available immediately.If you did have a layout file for your splash activity, that layout file would be visible to the user only after your app has been fully initialized, which is too late. You want the splash to be displayed only in that small amount of time before the app is initialized.
Armed with this knowledge, make your splash screen work the right way. Don’t waste the user’s time, but give them something nice to look at while they wait.
Comments
Post a Comment