Building GroupTabs (launching on the 18th) has been a fun, challenging, and extremely interesting experience. After reading Dive Into HTML’s Geolocation chapter, we decided to focus on building a non-native app so that we could hit as many platforms as possible right out the gate. Back in late April, we started building our non-native mobile app, relying on the geo.js project. Things looked great. Tests worked on iPhones, Android phones, and Blackberries.
Jump forward to three weeks ago. We’re nearly code complete on v1. We bug our friends with iPhones (3G, 3GS, 4), Blackberries (too many models to count), and Androids (running a few different flavors of the OS) to come play with the app. Out in the real world, two realities quickly emerge: Safari on iOS, and everything else. From getting basic things to work, to UI, to user experience, Android and Blackberry are a mess. Android works flawlessly one moment and the browser renders an absolute mess the next moment. BlackBerry is a bit more consistent – some things always work, and some things never work.
The other reality? iOS. UI elements render exactly the way we want them to. The browser handles all the AJAX crap we’re doing flawlessly. The browser prompts the user for GPS and returns it with the accuracy we want. Add the web-app to your home screen and our icon is downloaded, and automatically glossed up. The next time the user taps the icon, we’ve got the full screen, no browser chrome.
Safari on iOS, 3 or 4, is the best platform for building non-native mobile apps. In our minds there is no question, no qualification.
Perhaps our experience is unique, and relying on geo.js (a great project that isn’t yet at 1.0) is the cause of some of our pains. At the end of the day pulling the phone’s GPS is just one more thing that mobile Safari does flawlessly and the respective Android and Blackberry browsers do terribly.
Granted, we’re working with geolocation and a doing a lot of AJAX, but isn’t that point – to build native-like experiences? To be able to do things that you supposedly can only do natively?
Apple doesn’t deserve the crap they get about the App Store. They can make bizarre decisions. They censor things. They’re vague. Sometimes a public rant spurs them to action; sometimes it doesn’t. Developers live and die by their whims. But at the end of the day, you can go around the app store, because Safari on iOS is an awesome platform for building non-native apps.
So what’s the upshot of all of this, for our start-up? A frenzied series of code sprints to attempt to get native Blackberry and Android apps done in time for our public launch. An iPhone native app will come later.
*GroupTabs allows you to check in for group bar and restaurant deals. You check-in. Your friends check-in. Other GroupTabs members check-in. The deal tips. Everyone gets the deal.