The early versions of the This Is Nowhere mobile app were single web pages with HTML and JavaScript. This was a great way to start:
A single-page web app looked like the ideal solution for this project. We wouldn’t have to build separate native apps for each platform, wrestling with multiple codebases, or even have to deal with all the arbitrary vagaries of the various App Stores out there.
But then we started field testing.
Installation was a breeze. Late breaking changes were “installed” by simply reloading the web page. Data feeds worked like a charm. The UI was smooth and remarkably consistent across all the different devices we were using.
But permissions for location services and GPS killed us.
The basic idea is sound: if your device’s browser lands on a page that has JavaScript that asks to use GPS and location information, it simply asks you if you’d like to allow that, and if you say yes everything works fine.
BUT:
So even during our early tests with only four or five people, half or more needed hands-on technical support to get the app working properly on their phones. This clearly wasn’t going to scale to the hundreds of people who were going to be using the app during the show. This needed to be a completely no-fuss experience of installing and starting with all the functionality working immediately.
We were going to need actual native apps.
Native apps still ask for permission to use location services, but people are much more used to saying yes to an app they’ve downloaded than to a website they’re visiting, no matter how app-like that site may be.
So I started working on an iOS version. Android we would figure out down the line.
Doing the first versions in plain HTML and JavaScript wasn’t a loss though. It allowed fast iterations and prototyping, and let us really figure out what was needed and how it would work, while working with a familiar set of tools. It just wasn’t going to be the solution for the final product. At least when it came time to build native apps, I could focus on the “how” since the “what” had already been mostly worked out.