Monday, September 27, 2010

What's the Point of Tablets Anyway?

A couple of weeks ago I was fortunate enough to come into possession of a Samsung Galaxy Tab. It's fair to say that I've been eager to get my hands on a PADD tablet since some time around 1987.

While the utility of a portable, touch-screen, connected device was never in question on the Enterprise, their utility in the 21st century is still being determined.

So what, exactly, are tablets good for?

The Shared Communal Device

I've already found the Galaxy Tab to be the go-to device in the living room. It's perfect for shared photo-viewing, checking actors in IMDB, and adding something to the shopping basket. The large, bright screen and long battery life make it a much better viewing experience than a mobile, and simpler and more convenient than passing around a laptop.

Modern smartphones are intensely personal. They hold more private information than most people would ever willingly share. Would you hand over your phone to a friend for 30mins? What about your wife / husband / girlfriend / boyfriend?

I've created a new shared Gmail account, specifically for my Galaxy Tab (and potentially my GoogleTV), to make it easier to share. As prices come down I see a bunch of these around the house - probably replacing laptops and TVs.

The Ultimate Gaming Device

Games on tablets look incredible. A bright, sharp screen with a ton of screen real estate work superbly with touch controlled games.

The bigger screens could have been designed specifically to support multiplayer gaming. Games like Scrabble would work great with the screen becoming the game board, but that's just the start.

I grew up playing RPGs and CCGs. Imagine playing them when everyone has a tablet. Each player would have their card deck (or character sheet) on their tablet. Another device (probably at least 10") sits in the middle of the table and displays the cards in play (or character positions on a map).

The Multi-Media Entertainment Center and eBook Reader

Back in the day, I owned an Archos 320. 20Gb of audio and video on a 2.5" drive with a 4" screen. With no SSDs in sight, moving it while playing video let you feel the torque!

Today's tablets have up to 64Gb of solid-state storage, with many also including SD card slots letting you double that. A 7", 16:10 aspect ratio screen is the perfect surface for watching movies on the move, and HDMI output will let you plug your library into your giant flat screen TV.

Add an eBook reader app and you've got one device with all you music, movies, and books. That makes for an epic entertainment center.

While you'll need to pry my hardcover books out of my cold, dead, hands - I still think that within the next 5 years, most people will access all their movies, music, pictures, and books from the cloud. When that happens tablets will be the perfect portable screen on which to consume any kind of entertainment media.

The Laptop Replacement

Is the tablet set to replace the laptop? I've noticed a few iPads in meetings as people leave their laptops behind, preferring tablets for their portable computing needs. Typing on a fast, responsive 10" touch screen is actually a workable exercise, and it's the perfect platform for presenting an impromptu slide-show pitch or showing off your app / website.

I don't see tablets replacing the laptops we use at work for tasks that require significant typing (like writing code), but the future of netbooks might have just gotten a little grim.

So what's the real deal?

My gut says tablets will become increasingly popular as shareable devices that double as personal entertainment centers. The big screen and wide viewing angle of tablets makes them less private than phones. Still personal but not inherently private.

As app developers, we are uniquely positioned to both influence, and be influenced by, how people will use these new devices, so what do you think?
  1. Communal Internet Portal
  2. Ultimate Gaming Device
  3. Multi-Media Entertainment Center and eBook Reader
  4. Laptop Replacement
  5. All of the above
Any of them sound about right or am I full of it? Let me know in the comments!

Wednesday, September 15, 2010


There's something familiar about the drive from Jomo Kenyatta International in to Nairobi. The landscape of scrubland and bougainvillea reminds me of driving down Horrie Miller Drive on the way to my hometown of Perth, in Western Australia.


As we head down Mombasa Road and into the city the similarities to fade. Most striking are the birds -  gliding on the thermals, the size of small donkeys. Butterflies the size of birds complete the impression of Gulliver visiting Brobdingnag.

I didn't have the opportunity to venture outside of Nairobi, so I'm in no position to describe what it's like outside the capital - but Nairobi struck me as a city of contrasts. It was certainly chaotic, unlike many Australian and American cities that have transformed into hubs for well ordered suburbia. If you pan out from where I used to live, you'll quickly notice the grids and arterials that make up a planned, ordered city.

Nairobi isn't like that. In many ways it reminded me of organic cities like Rome and Paris - cities where you can get most of what you need by foot (and traffic bad enough to force you to do so). Along every road there's people going about their business. Walking to work, coming back from the shops, heading to see a movie. Similar to the crepes in Paris and pizza in Rome, ambulatory commuters are tempted with roasted corn-on-the-cob as well as with streetside markets overflowing with fresh fruit that tastes like fruit (note: In London fruit does not taste like fruit, it is merely fruit flavoured).

While the city's infrastructure is still some way behind that of most European capitals, there are signs of modernization. The country has a new constitution to go along with the air-conditioned malls and shiny high-rises that have started to appear. The 3G data plans are cheap and plentiful and smartphones, while still scarce, are starting to make an appearance. There's also a fat cable pipe now to provides the bandwidth vital for local technologists to participate in the Internet economy.

I was in town for G-Kenya, a 3 day Google conference aimed at sharing Google developer technologies with the student, developer, and entraupeneurial communities. If you're interested, I'll detail more about my experiences on the Android Developer Blog later this week.

Tuesday, September 07, 2010

Why You Might Want A WYSIWYG Layout Editor for Android

When I read "Why You Don't Really Want A WYSIWYG Layout Editor for Android" by my friend and colleague Roman Nurik and my initial reaction was - hmm, actually you know, I really think I might. We discussed it via email briefly, but figured you guys might enjoy reading both sides of our discussion.

Roman makes a lot of really good points - particularly on the importance of designing a coherent model for user interaction. This must not be underestimated. His ideas for UX templates sound awesome, and I totally agree that there is no silver bullet to solve the difficulties around creating great UIs.

Where we disagree is on the effect that visual layout editor could have on the quality of Android app UIs. My experience tells me that a good visual editor would have a positive effect on the quality of Android UIs, while also making it easier for beginners to get started.

Fine tuning by hand is always going to be a necessity - but getting started visually can make life a lot easier.

Visual layout editors for native platforms can make assumptions that HTML editors can't

Before joining the world of Android, I spent 10 years writing winforms apps - 5 years of Delphi followed by nearly the same of C# .NET. I've spent a lot of time with the UI tools from Borland and Microsoft.

Using web / HTML design tools to evaluate the usefulness of native layout editors is a little misleading - the reason you don't use Frontpage or Word to build webpages is because the HTML they produce is a thing born of hate - there's no reason an Android layout editor can't produce beautiful XML.

It's also worth noting that the disappearance of WYSIWYG web-dev tools coincided with the rise of Web 2.0 - when HTML made way for Javascript and CSS. I haven't seen anyone who hates themselves enough to try and create a WYSIWYG Javascript layout editor.

If we're going to compare the success and potential of visual layout editors we should be looking at native tools like Microsoft's Visual Studio and Expression Blend.

Whenever I design a new UI I start with pen and paper

Like Roman, I always start by sketching. It's the easiest way to get a feel for the the user experience workflow I'm after. This works because brain-pen-paper is the shortest path to visualizing my ideas.

Moving from pen to PC creates a barrier, but it's a price worth paying to see how my design actually works in right context.

I'm not so attuned to the Matrix that looking at XML lets me see UI, so having to turn my sketches into XML requires an additional context switch: from visual design to writing code and then back to visual layout. By using a layout designer I can continue to think visually and adapt my design without having to translate back and forth from code to images.

Witness the popularity of AppInventor

If you're not familiar with the classes and UI metaphors of a development language this context switch is brutal. You're constantly interrupting yourself by searching the docs for the name (and attributes) of the class you need.

With a visual designer you can browse the available controls and glance at their properties. The barrier to getting started and creating your first UI is significantly reduced, and your ability to experiment, test, and discover are enhanced.

It's important to remember that the built in controls are just a first step. I think of them as stencils, many of which will be replaced with better, customized solutions as the app develops. At my first job they remarked that I was "not just building the car from scratch, but engineering every nut and bolt." They seemed surprised that I took this as a compliment.

Native Visual Designers are designed for variable hardware

The size of application windows in Windows have never been fixed. WinForms layout editors are used to develop for an environment where different screen sizes are assumed. In fact your windows are expected to be dynamically resizable.

One of the beauties of WYSIWYG is that you can make changes to the presentation context and instantly see it's effect on your code. In Winforms that meant dragging your form around to make it bigger and smaller and see how your UI reacted. Having that ability in Android would be great - particularly as you can witness the changes in layout and assets as you modify the screen size and resolution without the context switching.

Users will use your app if it solves a problem. They will stay loyal if using them brings then joy

Roman suggests that "Visual layout editors arguably also place a lot of emphasis on the aesthetics". I don't think that's true. If anything, traditional WYSIWYG UI tools have done the opposite - resulting in uniformly depressing, drab UIs.

Not that this is better.

No matter what though, you are going to need to get your hands dirty in amongst the XML to get your layout right - and it's likely to be pretty early on in the process.

A rich visual layout editor is neither necessary nor sufficient to guarantee a great UI

Lazy developers will create rubbish user interfaces. If you want to use a visual designer because it's faster to drag-and-drop than to write out XML then you're doing it wrong. I believe that a good UI designer can make it easy to dynamically modify the look and feel of each component beyond being a simple drag and drop layout tool. By baking in some of the best-practices for UI development you can help codify successful UX.

Creating a compelling user experience is about more than just laying out controls on an Activity. You need to spend a lot of time thinking about what workflow you're trying to support, and how to make the user journey pleasant if not an outright joy.