Design & UX
Alex Walker, Jun 08

Conversational UIs, R2-D2 and Avoiding the Uncanny Valley

What was the first 'killer phone app'? I'm talking about first non-voice offering that had droves of people buying mobile phones for the first time just to use it?

Was it Google Maps? Maybe the YouTube app? Bejewelled? Facebook?

No - as important as they were, I think the original killer app has to be SMS (or texting). Sending little notes to each other doesn't sound very innovative or exciting, but from the early 90's onwards, SMS drove the adoption of cellphones and provided an obscenely lucrative revenue stream to phone network providers.

People seemed to like SMS for three reasons.

  1. It was private
  2. It was simple
  3. It felt familiar

We all probably passed notes in class and stuck them on the refrigerator door. SMS just let us pass them across the world.

Many of the first big online services for desktop computers used the same chatty approach - ICQ, Yahoo IM, AIM, and MSN Messenger.

Even today Facebook Messenger, Whatsapp Twitter, and Slack have billions of users every day tapping out short text messages to each other.

What can we say? Humans really like this format.

Birth of the Conversational User Interface

The last two years have seen the rise of a new kind of user interface. Slack were one of the first companies to realize that this 'human-to-human' chat format might work just as well for human-to-app interactions.

Instead of using a standard account creation sign-up form, Slack used their 'Slackbot' like a welcoming hotel concierge.

Slackbot sign-up

And it made so much sense. They want you to chat - why not start chatting from the first moments you use the app? The idea has been reproduced many times since.

Quartz: Chatty News App

Quartz is a new news app (currently iOS only) that takes the idea of conversational UIs to a new level.

While Slack was a chat client just expanding where it chatted, Quartz jams news events into an SMS-like format. It's a bit like having a friend SMSing you newspaper snippets to read on the train. You can ask your friend for more detail on the story or tell them to move on.

Quartz in action

While I'm not totally convinced yet that Quartz is a winner, it is a brilliantly original way to think about presenting news. It's loose and informal and easily the most clutter-free news UI you've ever seen. Each time you read a new message and make a yes/no decision - Quartz handles the rest. Interesting.

One interesting little UI touch is the 'typing' indicator that appears just before Quartz posts a new message to screen – three drumming dots inside a speech bubble (see the animation below).

We're all familiar with this idea. In real world conversations, we can signal with body language that we're about to speak. In chat apps from ICQ in 1996 to Slack today, we get a visual indicator that the other person is in the act of replying. It's a useful protocol.

But this is an app speaking to us - not a friend or colleague.

Quartz Conversational UI

Now let's be frank: We all implicitly understand that this is all 'UX theater' for our benefit. Even my 10-yo daughter immediately picked it. There's nobody banging away at a real keyboard.

So, how do we feel about that?

I'm not sure about you, but I've been surprised by my own gut reaction. My designer brain tells me I should be dismissive and snarky. "Bah! How dare you slow down my experience with such feeble parlor tricks!" (yes, my designer brain sounds like Professor Moriarty)

But my UX-self started grudgingly liking it - and I couldn't understand why at first.

Deivi Taka, Jun 08

Managing Data in iOS Apps with SQLite

Most apps will need to store data at some point. In this tutorial, Deivi Taka looks at managing data in iOS with SQLite, an easy and light storage option.
Lars Klint, Jun 08

Getting Started with Microsoft HoloLens Development

Lars Klint shows how to begin developing for mixed reality using the Microsoft HoloLens SDK and Unity 3D, even without owning a headset!
Theodhor Pandeli, Jun 07

Requesting Runtime Permissions in Android M and N

Theodhor Pandeli looks at requesting runtime permissions in Android M and N, the new permission model that gives more control to users.
Valdio Veliu, Jun 03

9 More Essential Plugins for Android Studio

Last year Valdio Veliu wrote a popular article on his favorite plugins for Android Studio, now he's back with more to streamline your development process.
Aleksander Koko, Jun 01

Dependency Management in iOS with Carthage

Developers often use code from other libraries to reduce their amount of work. Aleksander Koko looks at dependency management in iOS with Carthage.
Mark Brown, May 31

Quick Tip - Installing the Ionic Framework for HTML5 Apps

Mark Brown covers installing the ionic framework and using it for creating performant and native-like HTML Apps.
Abbas Suterwala, May 27

Managing Multiple Sound Sources in Android with Audio Focus

Abbas Suterwala looks at managing sound from multiple apps and sources in Android with audio focus.
Theodhor Pandeli, May 25

Using Android Text-to-Speech to Create a Smart Assistant

Theodhor Pandeli creates an Android app with text-to-speech that answers all of life's most important questions.
Patrick Catanzariti, May 25

Teaching Your Raspberry Pi to Speak with IBM Watson

Patrick Catanzariti explores how to pair up IBM Watson's Text to Speech service with Node-RED and IBM Bluemix on a Raspberry Pi.
Chris Ward, May 24

8 Key Announcements for Android Developers at Google IO

Chris Ward looks at the 8 most interesting announcements for Android developers from Google IO 2016.
Simon Codrington, May 24

What Can Developers Expect in Android N?

Simon Codrington looks at new features in Android N and how developers can take advantage of them in their apps.
Ariel Ben Horesh, May 23

Getting Started with Microsoft Band SDK

Ariel looks at connecting up the Microsoft Band SDK to various app platforms including iOS, Android and the Universal Windows Platform.
Jay Raj, May 20

Creating a Mobile Application with Reapp

Jay Raj introduces us to Reapp, a faster and easier way to develop cross platform mobile applications with React and JavaScript.
Aleksander Koko, May 18

A Crash Course on Networking in iOS

Aleksander Koko looks at networking in iOS, including NSURLSession and Alamofire.
Travis O'Brien, May 13

Cross-Platform Games and Applications with libGDX - Setup

Travis O'Brien starts a series on using libGDX to create high powered cross-platform applications and games.
Simon Codrington, May 10

Taking a Ride with Android Auto

Simon Codrington takes a look at Android Auto, Google's attempt to connect your phone with your car.
Patrick Catanzariti, May 09

Connecting a Raspberry Pi to IBM Watson, Bluemix and Node-RED

A guide to connecting up a Raspberry Pi to various services and platforms including the IBM Watson IoT Platform, IBM Bluemix and Node-RED.
Jay Raj, May 06

Easy App Publishing with React Native and Siphon

Jay Raj looks at Siphon, a tool that makes publishing React Native apps easy.
Petros Demetrakopoulos, May 03

A Beginners Guide to Populating and Using TableViews in iOS

Petros Demetrakopoulos presents a beginners guide to populating and using TableViews in iOS, a fundamental part of app design and layout.
Robyn Tippin, Apr 29

3 Alternative App Monetization Options to Paid Downloads

Robyn Tippin looks at three app monetization options that are an alternative to paid downloads.
Chris Ward, Apr 27

Dependency Management with the Swift Package Manager

Chris Ward looks at the Swift Package Manager, an early-days dependency management utility for Swift.
Kumar Animesh, Apr 22

How to Create an iOS Style Swipe Button for Android

In his first article for SitePoint, Kumar Animesh shows Android developers how to create an iOS style swipe button for Android Apps.
Mark Brown, Apr 20

Quick Tip - Using and Installing Cordova

Mark Brown presents a quick tip on using and installing Cordova, an excellent tool for cross-platform mobile development.