The mobile web splash screen antipattern

Brad Frost’s tweet yesterday reminded me that this is a request I have been presented with, and argued against, on every mobile web project I have been involved with:

First-time visitors to the mobile website should see a splash screen inviting them to download our App. They should also have an option that allows them to proceed to the mobile website.

This is symptomatic of another bad, but regrettably common practice: building your native app before you build your mobile website.

The impulse to put a splash screen in place is driven by a variety of factors and assumptions, not all of them correct (and not all of them openly acknowledged):

  • The native app has a prettier UI than the website. Users like pretty. Therefore it will drive more engagement, and more conversions.
  • The native app goes on a user’s home screen, therefore they will see it regularly, and use it more often than the web.
  • A user might prefer a native app, and they might not know that we have one.
  • If we get lots of downloads, we will rank highly in the App Store, which is good for marketing and will lead to even more downloads.
  • We just spent a lot of money building a native app! If someone just uses the website instead, then all that money and effort was wasted!

Here are the counter-arguments:

  • It’s a barrier to user engagement. A user has to click through the splash screen to get to where they were trying to go in the first place. If you know about purchase or marketing funnels, you know that every screen is another step in the funnel. You never gain users as you step through the funnel, you only ever lose them. The splash screen is a valuable opportunity for you to lose customers.
  • The idea that someone who goes to the effort of downloading your app will become a more engaged user is questionable. You should also consider the possibility that they will get distracted or just give up during the process of a) being redirected to the App Store, b) reading the app description, c) acquiring the app, d) downloading & installing the app, e) launching the app, f) figuring out how to navigate your app to get to the point you led them away from in the first place.
  • The request is usually to provide a splash screen for first-time users. If there is any category of users who should never be presented with an extra hurdle it’s first-time users. If they are visiting your site for the first time, then they almost by definition don’t know enough about your product or service to decide whether they want to carry on using it, or download an app for it. In the desktop web world, you may have come across sites that show a popup asking you to take part in a survey about the site. How do I know if I want to do that before I have experienced the site itself?
  • It’s disrespectful. If a user has arrived at your website using a web browser, very likely by following a link from another website, then maybe they were trying to use their web browser to use your website. Extend your users the courtesy of considering that they might actually know what they’re doing. Putting up a splash screen is like McDonalds putting a bouncer on the door, and telling customers who just parked their car and want to enter the restaurant that they should use the drive-through instead.

Basically, a mobile splash screen, no matter how pretty your designer has made it, is annoying and needy. You are placing your own desires above your user’s. Don’t do it.

“But how will people find out about our wonderful native app then?!” I hear you cry. There may indeed be cases where users can do things in your native app that they can’t do on your website. (Push notifications, for example.) Some people prefer to use apps than websites. For frequent-use, highly-interactive services, a native app may be a faster, lower-friction option than a website. Fortunately there are plenty of less intrusive ways to let your web customers know about it:

  • Show a notification bar at the top of the page. You can leave it visible until a user dismisses it, or until they have viewed N pages, or some other criterion. But it shouldn’t obscure the page, or require explicit action before the user can carry on interacting with the page.
  • The page footer, traditionally a place people look for additional information, can carry a link to the native app.
  • If your site involves some kind of sign up process, you can tell people about your app options at the end of the sign-up process, or in a welcome email. Signed-up users have indicated a clear level of engagement with your product or service; this is a good time to entice them further. Read Jared Spool’s 2002 article about “Seducible Moments.”
  • If your site carries advertising, consider injecting ads for your own native app into your ad stream.

But above all, don’t rely on a native app to be the only way a user with a small-screen device can interact with your business. You’ll literally be turning away customers.

There Was A Way

Back in June I wrote that Hey Everyone by Dananananayroyd was one of my favourite albums of 2010 (it was released in 2009, but I’m slow like that). This was after I’d listened to their second album, There Is A Way, but before I’d seen them live in Paradiso in July.

I remember being unsure about There Is A Way when I first listened to it, even though that seems inconceivable now: it is nothing short of brilliant. Like Hey Everyone, the first thing that strikes you are the screamed vocals. Underlying the back-and-forth yelling, though, are a set of songs that are intricately melodic and cleverly structured. The energy the band brings is more under control, with fewer tracks like “Infinity Milk” and “Some Dresses” that bounce off off the furniture in all directions like a hyperactive toddler. But when they do let themselves go, they positively soar. The climactic “Make A Fist” that closes the album is exhausting and ecstatic: an orgasm of a track.

But seeing them live was something else entirely. On 19th July, they played the small upstairs room at Paradiso in Amsterdam, and I have never seen anything like it. It was far from a capacity crowd, and I was right up at the front. They opened with “Reboot” from the new album, which has an instrumental intro lasting about a minute and a half. During the intro, the two singers John and Callum jumped down off the stage and mingled through the bemused audience giving hugs, and treating us all like best friends they hadn’t seen for years. And when they were done, they hauled themselves back up onto stage and belted out one of the best live sets I have ever seen.

Dananananaykroyd have two settings: off, and FUCK YEAH! The energy they put out was amazing. There is no barrier between the audience and the stage at Paradiso, and throughout the set they continued to jump in and out of the crowd for particularly animated screaming duels (“The Greater The Symbol And The Hash”) and guitar solos, or because they just felt like it. They looked like they were having a great time, and even though the audience was pretty small and relatively timid, they just kept on firing at top volume and top speed. And then there was the Wall Of Cuddles

The Wall Of Cuddles is what Dananananayroyd does instead of a metal Wall of Death. About half-way through “Some Dresses” they split up the crowd into two halves, and explain how on the count of four both sides should run headlong into each other and…cuddle as many strangers as they can. Because this happens at the end of the gig, everyone is all nice and sweaty and happy and ready go go along with whatever weird instructions they get. I still saw some tentative looks and “er, really?” expressions, but I certainly rushed into it with abandon.

After it was over, I emerged into the Amsterdam evening, my ears ringing, a huge grin on my face, aware that I had just experienced something really special.

Tweet: HOLY SHIT. HOLY FUCKING SHIT. DANANANANAYKROYD. Holy shit. That was FUCKING AWESOME.

I wanted more.

I knew they were playing some more dates in the UK at the end of their tour, and I had been wondering if I could justify a trip across to see them. My rule of live music is, “Never miss an opportunity to see your favourite band, because you never know when they will split up, or die.” Cases in point:

  • Back in 2003 my brother Scott and I took a trip across the Atlantic to see Toad The Wet Sprocket in Boston when they did a small reunion tour. We had never seen them while we they were still together, and it was too good an opportunity to miss. Turns out Toad are semi-back-together again now, and still gig regularly, but I couldn’t have known that back then.
  • I saw the Tragically Hip at Paradiso in November of 2009. While we’re on the subject of great live acts: The Hip are amazing. So good that I went to see them again the very next week. I was across on Scotland on business anyway; they were playing the Garage in Glasgow; I couldn’t pass it by. Who knows when they’ll be back in Europe again?

But when I learned that Dananananaykroyd were splitting up my need became much greater. Now I knew this was going to be my last chance. So I booked two tickets to see them in Glasgow, the cheapest flights I could find (hello, Skyscanner), a twin room at the Holiday Inn Express, and convinced Scott that it would be a great idea for him to come through to Glasgow for a night out.

Tweet: The best kind of madness: next Saturday I'll be flying from Amsterdam to Glasgow to see @dananananaykroy on their final tour.

And oh boy was it worth it.

The cheapest flights were crazy early. Abi kindly drove me to Schiphol at 05:30 on the morning of Saturday 29th October so that I could catch the 07:05 to Glasgow. The plane arrived in Glasgow at 07:30, and I was in town by about 08:30, well before anything interesting was open. I nursed a hot chocolate in a Starbucks for an hour or so, and checked cinema listings to see if there were any interesting matinees. No luck, so I decided to take a bit of a walk instead. I wandered down to the Science Centre and back again, then stuck my head in a few music shops to see if I could find some musicians’ earplugs — on the recommendation of Mr Grapefruitmoon. After traipsing round Merchant City and down Argyll Street, I finally found some at Biggars on Sauchiehall Street. Then met up with my parents for a late lunch before heading over to the hotel.

It’s not very rock ‘n roll, but after I had checked in and Scott had joined me a short while later, what we both really wanted to do was…have a nap.

So we were thoroughly refreshed for the gig, of course! We got the the ABC quite early, around 19:15 or so, and the place was dead quiet. We had a beer, and I went a bit mad on merch, buying three T-shirts for myself and a small pink (sabbath) girly one for Fiona. (Can you blame me? Last chance!) United Fruit came on at about 19:45 and played a blinding little set from their new album Fault Lines. Here’s a tip: this is another band you should go and see. They’re good.

I had tried out the earplugs during United Fruit, but they damped the sound a bit too much, and I wanted to positively bathe in the noise of the main event, so I left them out. We positioned ourselves close to the stage, but not quite on the front lines. This evening they kicked off with “E Numbers”…and David’s guitar promptly broke. John and Callum kept up some banter while they got things sorted out, and they carried on with a wild and wonderful hour-long set:

  1. E Numbers
  2. Reboot
  3. All Us Authors
  4. Hey Everyone + Watch This
  5. The Greater Than Symbol & The Hash
  6. Think And Feel
  7. Muscle Memory
  8. Black Wax
  9. Time Capsule
  10. Infinity Milk
  11. Pink Sabbath
  12. (encore) Some Dresses

It’s hard to say how this compared to the gig at Paradiso. The crowd, being out in support for a local band, was more energetic and appreciative. The band seemed less rehearsed, looser, more frantic. And knowing what to expect, and knowing that I was in a group of like-minded fans who were all there for a historic final gig, I took part in the Wall Of Cuddles with more gusto than my first time. I was hugging people all over the place.

And then it was over. The band left the stage, the lights came on. As I looked round, I saw that the venue was maybe half full, no more. Dananananaykroyd have received so many plaudits, have been praised to the skies as one of Britain’s best live bands, but they didn’t sell out their farewell home town concert. I wish I could have been cloned, so I could have appreciated them twice. I’m so glad I went.

It wasn’t even 22:00 when we left the venue, so Scott & I did what any right-thinking pair of brothers does in Glasgow on a Saturday night: we had a burger at McDonalds, and hit a pub. Our next move was a little less orthodox (a late-night showing of The Ides Of March at the Cineworld on Renfrew Street), but at least we weren’t in bed before midnight. Pure dead radge.

Back on an early flight the next morning. Scott was going to give me a life to the airport, so we were downstairs at reception at just before 07:00 to get me there for my 08:15 flight. As we were checking out, Scott asked the receptionist if she could validate his parking. He had parked his car at Buchanan Galleries the evening before.

“Oh,” said the receptionist, “They don’t actually open until 9 o’clock on a Sunday…”

Taxiiii!

Offline radio, a wobbly analogy

It’s 1981.

You want to listen to music while you’re at home. So you go out and buy a cheap radio with a power cord. You take it home, plug it in, and listen to some music.

But what if there’s a power cut, or if you want to listen to music while you’re away from home? You go out and buy a new radio, this one with a battery compartment. You can plug it in when you’re at home, and use batteries when there is no other power available.

But what if there’s no radio signal, or there’s interference, or none of the radio stations are playing music you want to listen to? So you go out and buy a new radio, this one with a battery compartment and a cassette recorder, so you can record your favourite music when it is available, and listen to it on those occasions when you happen to be in the middle of the Sahara with no power and no signal.

Note that the device you have ended up with is more complex, bigger, heavier, and more expensive than the one you started with. Is this a trade-off you’re happy with?

It’s 2011

You want to take your web site offline? Yes you can. But understand that you’re going to end up with something more complex (harder to design, build, and test) and more expensive than a web site that assumes and relies on a network connection. Do you need that? Are your users constantly complaining that they can’t use your site when they’re in on their yacht in the middle of the Atlantic with no 3G? Is this a trade-off you’re happy with?

Footnotes

  • The analogy is wobbly because you don’t actually need a power supply at all to make a radio receiver. The power is there for amplification.

  • This stuff won’t stay hard and expensive forever. The libraries for building (and browsers for consuming) sites that work offline will get better.

  • No points for being the first to say, “Daddy, what’s a cassette recorder?”

Whom will our leaders defend?

John P. Hussman poses the question, “An Imminent Downturn: Whom Will Our Leaders Defend?(via John Mauldin’s Thoughts from the Frontline newsletter)

The global economy is at a crossroad that demands a decision – whom will our leaders defend? One choice is to defend bondholders – existing owners of mismanaged banks, unserviceable peripheral European debt, and lenders who misallocated capital by reaching for yield and fees by making mortgage loans to anyone with a pulse. Defending bondholders will require forced austerity in government spending of already depressed economies, continued monetary distortions, and the use of public funds to recapitalize poor stewards of capital. It will do nothing for job creation, foreclosure reduction, or economic recovery.

The alternative is to defend the public by focusing on the reduction of unserviceable debt burdens by restructuring mortgages and peripheral sovereign debt, recognizing that most financial institutions have more than enough shareholder capital and debt to their own bondholders to absorb losses without hurting customers or counterparties – but also recognizing that properly restructuring debt will wipe out many existing holders of mismanaged financials and will require a transfer of ownership and recapitalization by better stewards. That alternative also requires fiscal policy that couples the willingness to accept larger deficits in the near term with significant changes in the trajectory of long-term spending.

Basically: to whom are the politicians most beholden? To their corporate backers, who give them the money to get elected, or to the voters who actually do the electing? In Western Europe, things haven’t got bad enough yet to tip the balance towards the latter, but we’re heading that way at a steady pace. The financial sector has to be shackled.

Charlie Stross uses the turbulence of the forthcoming decade as part of the background for one of his characters in Rule 34. The following paragraphs brilliantly capture the potential for some ultimate good coming out of this cascade of crises:

Dorothy’s job is an odd one: catching corporate corruption before it metastasizes and infects society at large. After Enron collapsed–while you were still in secondary school–the Americans passed the Sarbanes-Oxley Act, accounting regulations for catching corporate malfeasance. But all they were looking for was accounting irregularities: symptoms of maladministration. The unspoken ideology of capitalism didn’t admit, back then, of any corporate duty beyond making a return on investment for the shareholders while obeying the law.

Then the terrible teens hit, with a global recession followed by a stuttering shock wave of corporate scandals as rock-ribbed enterprises were exposed as hollow husks run by conscience-free predators who were even less community-minded and altruistic than gangsters. The ravenous supermarket chains had gutted the entire logistics and retail sector, replacing high-street banks and post offices as well as food stores and gas stations, recklessly destroying community infrastructure; manufacturers had outsources production to the cheapest overseas bidders, hollowing out the middle-class incomes on which consumer capitalism depended: The prison-industrial complex, higher education, and private medical sectors were intent on milking a public purse that no longer had a solid tax base with which to pay. Maximizing short-term profit worked brilliantly for sociopathic executives looking to climb the promotion ladder–but as a long-term strategy for stability, a spiralling Gini coefficient left a lot to be desired.

The European Parliament responded by focussing on corporate governance. If corporations wanted to be legal citizens, the politicians riding the backlash declared, they could damn well shoulder the responsibilities of good citizenship as well as the benefits. Social as well as financial audits were the order of the day. Directives outlining standards for corporate citizenship were drafted, and a lucrative niche for a new generation of management consultants emerged–those who could look at an organization and sound a warning if its structure rewarded pathological behaviour. And as for the newly nationalized supermarket monopolies, a flourishing future as government-owned logistics hubs beckoned. After all, with no post offices, high street banks, or independent general stores, who else could do the job?

Obscure Rails 3.1 asset pipeline feature messes with my head

For some time, I have been in the habit of appending a datestamp to my image assets whenever I update them. This is a low-tech, reliable cache-buster. For example, if I add a new icon to the sprite image “app-icons-20110901.png” (last edited 1 September 2011), I would change the name to “app-icons-20110909.png“, and change the matching CSS from

.test {
    background-image:url(/images/sprites/app-icons-20110901.png);
}

to

.test {
    background-image:url(/images/sprites/app-icons-20110909.png);
}

By changing the name of the file, I can guarantee that as soon as a browser gets the new CSS, there is no risk of it re-using an old version of the sprite file from cache. This works great on static sites that are updated rarely, and on sites where you haven’t gone to the trouble of implementing a more sophisticated system of (image) asset fingerprinting.

Rails 3.1 comes with fingerprinting baked in as part the new asset pipeline. Unfortunately, the asset pipelining breaks in the presence of my manual fingerprinting efforts. Rails refuses to serve up an image asset whose file name ends in a dash followed by more than 6 digits:

  • /app/assets/images/app-icons-2011.png is fine
  • /app/assets/images/app-icons-201109.png is fine
  • /app/assets/images/app-icons-2011090.png doesn’t work
  • /app/assets/images/app-icons-20110909.png doesn’t work

The error reported is a straightforward Routing Error:

No route matches [GET] "/assets/app-icons-20110909.png"

So code like this in a stylesheet will not work:

/* application.css.erb */
.test {
    background-image:url(<%= asset_path 'sprites/app-icons-20110909.png' %>);
}

(Also, running bundle exec rake assets:precompile will not generate a matching MD5 fingerprinted image under /public for the affected file.)

I haven’t gone into the source code to find out exactly where this happening (I think this all goes on under the hood in Sprockets rather than in Rails itself) but as the old joke goes, the solution is pretty simple:

Doctor, doctor! It hurts when I do this!

Well, stop doing that, then.

If you’re doing Rails 3.1, just let it take care of the fingerprinting, and everything will be fine.

Further reading:

The Non-Scenic Route

Brilliant article by John Lanchester in the London Review of Books: “The Non-Scenic Route to the Place We’re Going Anyway

Quarterly GDP data don’t, on the whole, tend to make the person studying them laugh out loud. The most recent set, however, are an exception, despite the fact that the general picture is of unrelieved and spreading economic gloom. Instead of the surge of rebounding growth which historically accompanies successful exit from a recession, we have the UK’s disappointing 0.2 per cent growth, the US’s anaemic 0.3 per cent and the glum eurozone average figure of 0.2 per cent. That number includes the surprising and alarming German 0.1 per cent, the desperately poor French 0 per cent and then, wait for it, the agreeably frisky Belgian 0.7 per cent. Why is that, if you’ve been following the story, laugh-aloud funny? Because Belgium doesn’t have a government. Thanks to political stalemate in Brussels, it hasn’t had one for 15 months. No government means none of the stuff all the other governments are doing: no cuts and no ‘austerity’ packages. In the absence of anyone with a mandate to slash and burn, Belgian public sector spending is puttering along much as it always was; hence the continuing growth of their economy. It turns out that from the economic point of view, in the current crisis, no government is better than any government – any existing government.