Yesterday Google released a big update to their Gmail app on iOS, which brought with it some real improvements over the last version. Since the last version was released, Google acquired the Sparrow team, who was undoubtedly a big force behind the new UI. Gmail users on iOS, myself included, will likely be rather happy with the update, but that’s not really what I find most interesting about it.
Out With The Old
If you’ve followed my rants opinions at all, you are probably well aware that I’m a big advocate of the importance of providing a truly native UI in apps. As such, I tend to dislike shell/hybrid apps quite a bit. By shell apps, I’m referring to apps that are written in HTML, and simply packaged in a “native” web view for the platform. Sure, they’re often “easier” for the developer, but this ease comes at the cost of usability.
One of the problems with the old Gmail app is that much of it was clearly written as a shell app using HTML, and the usability suffered quite a bit as a result. You can make a button or a list look like a native button or list using CSS, but getting the behavior and feel right is much more difficult. Regardless of whether the user is actively aware of it or not, over time these consessions will take away from the user’s overall enjoyment of the app. Even Facebook, who originally championed their shell app approach, recently scrapped that in favor of real native apps, going so far as to call their original approach the “biggest mistake” they’d ever made.
In With The New
That brings me to what I find most interesting about the new Gmail app. It brings with it a much improved UI, better performance, smooth animations, and more adherence to the native UI metaphors. Clearly they ditched HTML in favor of going native, right? The answer seems to actually be somewhere in the middle, and that’s not necessarily a bad thing (cue the gasps in the crowd who can’t believe I would say such a thing). Stay with me.
I should preface this by saying that these are just my observations from using the app, and I have no actual insight into how different pieces of the app were made. There are many things in the app that are clearly native, and feel great to use. There is a lot of new polish added, including animations in the menus and modal views, that would not be nearly as smooth if done using HTML. In fact, I really like the animation they came up with for showing and dismissing a modal view.
There are also pieces of the app that are clearly still done using HTML inside a web view. The two main pieces I could see were the list of emails and viewing an email, which are really the two prime screens for an email app. That said, these cases are actually the least noticeable out of any hybrid app I’ve tried to date, which is very impressive. On my iPhone 4S I can notice a bit of a degraded performance that makes it obvious it is not native, but I’m told that it’s more seamless on the iPhone 5. If you tap and hold in these views you can also see the normal UIWebView magnifier, which is another indication of how it was made. It’s not a perfect implementation, however, and still falls victim to many of the usual problems that come with hybrid apps. Things like text input, button behavior, and scrolling are all decently well done, but noticeably off from the platform’s norm.
What Does This Mean?
We’re entering into an interesting time in mobile development in starting to find the right balance when building applications, and actually seeing some success. A native UI will always be the best option as far as the user experience goes, but there are clearly opportunities for selectively augmenting that with web elements without losing much in the way of usability. This is a very fine line to walk though, as can be seen in the many subpar hybrid apps in the store that use shell app frameworks as a shortcut into app stores on as many platforms as possible, and even better implementations such as Gmail.
The big question I have for Google is just how much gain they’re getting out of carefully combining native and web in the UI, which is no trivial task. As far as displaying email is concerned, taking advantage of a web view makes sense since email can contain HTML, but for views like the email list I’m not sure I see the big advantage. I suppose a case could be made for possibly sharing that markup across platforms, but I have my doubts that it would be all that portable. I’m hoping that some day they will publish their experiences in building this app so we can all get some more insight. The same goes for Facebook, who also still uses some HTML mixed in with their new native app. I still hold the opinion that native will remain the best option, and the one I will always strive for, but it will be very interesting to see where these apps go in the coming months and years.