Served Online Studio
About Projects Now Blog Contact TenderNest
← All posts
26 July 2026 · 2 min

Three bugs, one splash screen

I want to talk about the splash screen, because it's a good example of a bug that isn't really one bug. It's three, stacked on top of each other, each one hiding the next until you actually fix the one in front of it.

Fix one: the logo animation was barely playing. It's a five-second loop, and it was getting cut off after less than half a second every single time. Turned out there was an old delay(400) sitting in the code from way before the animation existed, back when the splash screen was just plain text and the delay was there so it didn't flash rudely on screen. Nobody removed it when the actual animation went in on top. Classic case of a leftover value quietly outliving the thing it was written for. Bumped it to match the animation's real length and, for a moment, I thought that was that.

It wasn't. Fix two: right after the animation finished, there was a second, briefer flash of the app icon before the real app appeared. Chasing that down, I found the app was firing off a notifications-permission request the instant it launched, which was colliding with Android's own mandatory startup screen. Moved that request later, so it happens quietly after the splash rather than fighting it for screen time.

And the flash still happened.

At that point I had a hunch about what was actually going on, and it turned out to be right: Android itself draws its own splash screen before your app even gets a chance to show anything, a system-level one, separate from whatever you build. My custom splash wasn't broken. It was just sitting on top of an invisible second splash screen the OS was drawing underneath it the whole time, and my two "fixes" so far had only ever been rearranging deck chairs on that.

The actual fix meant properly adopting Android's own splash screen system rather than working around it: telling the OS "I'm handling this," instead of trying to time my own splash to sneak past it. Once that was in, the first two fixes I'd already made weren't wasted, they just needed the third piece to actually matter.

It's a good reminder that "I fixed it" and "I fixed the bug I could currently see" aren't always the same sentence.

tendernest bugs
Get in touch
contact@servedonlinestudio.co.uk
LinkedIn