How would you want to interact with an app?
When we think about the traditional way of interacting with computers, the object that comes to our mind is the mouse, a pointing device that lets you click on icons and menus in a graphical user interface. Then as smartphones came along, you had to get used to another pointing device, your fingers that let you interact with menus. Even though it was a clear step forward towards a more natural user interface, the premise of navigation stayed the same, you click through into pages and you click the back button to go back.
But that paradigm has slowly but surely began to change. With iOS 7, apple included a feature that most of have gotten so used to, it has become second nature, swipe from the edge to go back. Now instead of hunting around the screen for a close, cancel or back button, you can just swipe from the right and it does what seems logical, slides the current page so you see the page behind it. With the iPhone 6s and the Apple Watch, Apple has included yet another tool to the gesture toolkit, 3D touch or force touch. This lets you “press into” apps on the home screen to jump into a specific part of an app quickly, or peek into images, mail or links.
So when it came to UX design for conversations, I knew gestures were the way to go. So work began with a simple goal in mind, in order to send any kind of message, you would touch the screen, maybe move around for a couple of options or to cancel sending the message and as you lifted the finger off the screen, the message is either sent or deleted. Programming something like this was a little harder than expected cause there are no API’s for carrying a touch from one view controller to another but it could be done using the view hitTest method. The real problem came when testing the gestures with actual users.
Since gestural apps are so few and far apart, the natural tendency for a user is to click anything that looks like a button and if it didn’t look like a button, it’s just ignored. So we had to include a way for users to get used to the gestural interface in the onboarding process of the app, which is pretty trivial. Another thing to keep in mind while designing a gestural user interface is to make sure the gestures are consistent. You don’t want the user to have to remember the loads of different gestures it takes to navigate your user interface. This is quite a problem in most gesture based apps that require you to learn at least 5 different gestures without which the app is practically unusable. Also, click based navigation works, so don’t try reinventing the wheel and try to do everything with gestures, only use gestures where it makes sense and improves the user experience.