Last week I was fortunate to attend Facebook’s London Mobile Forum 2.0. This gathering of top London mobile developers and designers was a great chance to swap ideas and listen to a number of talks by Facebook, Big Nerd Ranch, Yammer, Bloom and Mozilla to name a few. The event was tiny with only 60 people in the room but it had many big players and it was great to talk to as many of them as possible, particularly at the free bar Facebook had laid on in the evening! So what mobile development secrets did we talk about?
Physics and Interactions
Well the first talk I attended was to do with creating playful interfaces, which was a popular one. With iOS 7, Apple has drawn the focus to playful animations and novel interactions that are based on physics and even have gone as far as embed that into UIKit. You only have to play around with the lock screen on an iPhone to see juicy physics in action. Try sliding the camera icon up half way and then slam it back down and watch it bounce back up like a rubber ballet hitting a stubborn tent pole. It’s easy to see how this can create more intuitive interfaces and importantly add familiar personality to an app. However I could have told you this when I went to WWDC last year at the unveiling of iOS 7 as UIKit Dynamics featured heavily in presentations, what’s interesting is that now these interactions are getting more and more complex and designers are finding it hard to convey these to developers, particularly custom bespoke interactions. Some designers and developers talked about the tension created with trying to recreate the exact “feel” of something a designer had created in After Effects. The outcome of the group was that it would be great if physics interactions could be prototyped in something similar to Interface Builder and used directly within code much like the gaming developer community has with Unity or other game tools.
One of the main reasons for using physics in your interface is that it make elements seem alive and give them more depth, detail and personality, almost like they can jump out of the screen; that users will instantly recognise it from a physical object and interact with it the same way. Something to think about is that is this just the interactive version of skeuomorphic design? When Steve Jobs stood on the stage to announce the iPad, he was a big proponent for gorgeous rich textures that made a shelf in iBooks come alive, drop shadows that added depth and visual cues that make you want to interact with it and turn the page. The reasons for adding “playful” physics sound suspiciously the same, however in the Q+A session it was mentioned that it’s more abstract and more natural for an interface to mimic physical objects as finger gestures impart their movement into an interface but I suppose there needs to be a careful balance between playful and over the top, to let it enhance rather than become the main feature much like drop shadows – if you notice it, it’s probably too much! If you make it behave too much like a physical object and it has buttons it’s probably skeuomorphic.
The second talk I attended was more of a insightful presentation from Facebook engineers on asynchronous UIKit. As you might be aware you should only implement the user interface on the main thread. Much of UIKit just isn’t built to work in a separate thread and will often crash if you try it but with advanced on-the-fly graphics, custom physics animations being part of most applications these days wouldn’t it be good if we could create parts of the interface in a separate thread taking advantage of the many cores now available on Apple devices? If we could it would potentially make an app much snappier and this is what Facebook has been experimenting with – chucking away much of the height-weight UIView’s (heavy as in UIResponder chain, layout method hooks, etc) in an app and replacing them with lighter nodes. The nodes are still backed with CALayers but composited together in separate threads. Slides from the event detailing this should be posted online by Facebook soon.
The London Mobile Forum 2.0 was a great event. There were many other talks and presentations packed into a day such as talks on API generation, hiring top talent and designing UI across platforms. I’ll try to post a link here when the talks are made available online.