Demoing our UI technology today at MobileDevCamp

February 27th, 2010


My company Huikea Experience released our first game Facetap last week. It’s a fun casual game about faces of your Facebook friends. Get it to your iPhone from the App Store.
However, Facetap is not the only thing we’ve been doing, today we are demoing our underlying technology at MobileDevCamp.

We have build a domain-specific language on top of C++ to easily define, control and mix animations, music, asynchronous events like user input and network requests. It allows rapid development of visually rich networked applications.

Implementing quality user interfaces is time-consuming process, usually taking a major portion of development time of any service or application. In game development, which is a creative iterative process, this is even more true. Server-side technologies and practices have been developing very fast and allow you to do amazing things quickly, but progress in user interface programming technologies has been much slower. Our technology tries to help with that pain point.

MobileDevCamp 2010Currently our technology runs on iPhone OS, but it’s written in a platform independent way and we will be porting it to other major smartphone platforms in the future.

Come to MobileDevCamp today to discuss with us!

The new era of user interface design: iPhone and touch UIs

January 27th, 2010

I was visiting a friend a couple of weeks ago and saw a one-and-half-year-old girl using an iPhone and it got me thinking. Touch interfaces are going to change modern graphical user interfaces more than anything in the past 25 years.

The smart young lady wasn’t the first toddler I have seen using an iPhone or a mobile phone in general. It’s only a natural part of their development that children imitate things that their parents do. Many seem to figure out TV remote controls almost on their own. However, I haven’t seen any kid experimenting and playing with a more traditional mobile phone with the same ease as an iPhone. They know how to unlock it with a swipe; they find their favourite visually appealing app, be it a simple game or an interactive toy; they spend inordinate amounts of time playing with it and they figure out a Home button to exit and try something else. They are really using iPhone’s interface.

iPhone UI has a certain sense of physicality to it. It feels very natural, touchable. Touch is the main component of this experience, but it isn’t the only necessary ingredient. In my opinion three other aspects play important roles to give that sense of naturalness and ease of use: animations, response times and overall simplicity of UI.

Animations

People used to think of animations as eye candy for UI. They are not: quite on the contrary, they are one of the most effective means to show causation in UI design.

For touch UIs, animations are a fundamental ingredient. Think about photo browsing on iPhone. Without an accompanying animation, the swipe gesture would feel totally unnatural – your mind would have a hard time connecting the gesture to the state change of UI. But with the animation, you don’t ever think about it, it just feels right.

iPhone really shines on animations. Now that I’m developing games, I have learned how delicate an art animation design is. You need to try out different timings, different kinds of ease-in and ease-out, and different movement patterns to get that natural feeling for even simple animation. iPhone SDK is offering powerful APIs to implement animations, but they are still quite clumsy to use. As animation design is a creative trial-and-error process, we need much more convenient tools for it. I bet that in coming years we will see a lot of innovation in both design and programming of animations.

Responsiveness

With any kind of user interface, if you press anything, something should happen immediately. If there’s a delay of even a few hundred milliseconds, the illusion of realness is broken.

Why would anyone make an unresponsive application? Any UI programmer knows that without careful programming, keeping your application responsive is one of the toughest aspects of UI programming. The truth is that modern UI libraries offer poor abstractions and tools to program responsive applications. They don’t support convenient asynchronous programming models or easily multithreading your application code without stumbling into all the dangers of traditional multithreading.

iPhone is not an exception in this case. Its libraries are good, but don’t really push the boundaries of UI programming. It’s just that OS and most of the apps seem to be carefully programmed and stay responsive better than their competitors. For example, Nokia’s flagship touch UI phone N97 has very sporadic responsiveness, which totally kills the experience.

Simplicity of the UI design

When iPhone was released, its UI design was outrageously simple compared with competing smartphone UIs. For example, the application menu, or SpringBoard as it’s called, was a super-simple flat representation of your apps without folders or other hierarchies.

The curse of desktop interfaces is their menus. Menus basically offer unlimited slots to dump functionality. Menus are common in many smartphone platforms and in my opinion the main culprit of bad UI design. iPhone doesn’t really have menus of unlimited items; you can usually just have max 4 items on a menu-like popup. This is wonderful as it forces every average designer and developer to think in terms of less, not more. If you add a new feature to your application, on iPhone you really need to think about how to surface it on the UI as there aren’t any functionality dump yards like menus.

Touch UIs that are operated with fingers have an inherent character that drives UI design towards simplicity: your finger can hit only large-enough areas. Although screen resolutions will increase with advances in technology, you still need to be able to operate UIs with your finger. On a mobile phone screen, this means that there are usually fewer than 10 possible selections visible at a time. This drives all designs towards simplicity.

Apple’s new device

Apple is going to release a new device today. Rumours are indicating that it’s a tablet device for casual computing. I’m not personally super-excited about something that sits between a phone and a laptop. A phone I can carry anywhere in my pocket and use for casual computing, and as a programmer I’m going to need a full-powered laptop for work-related tasks. But I’m super-excited that whatever Apple is announcing today is probably a new step towards the next generation of computer UIs. Laptops as we know them are going to change and touch interfaces will play a central role in this revolution.

Insights from Facebook Mobile Usage

November 17th, 2009

Search versus socializing

We don’t carry our mobile phones for a search of information, but to communicate with people.

It seems that Facebook has become one of the major drivers for growth of mobile internet usage. It was last year when mobile operator ads in London Tube started to highlight Facebook instead of Google search as a reason to use mobile internet. During 2009 Facebook’s mobile usage has grown from 20 million to 65 million monthly active users.

Google has reported 5-fold mobile search volume growth during the last two years. In contrast, if Facebook’s mobile usage continued it’s stellar growth, Facebook would have 420 million mobile users at the end of 2010, 23-fold increase in two years. Of course, this won’t happen. Growth has to slow down, as the total amount of Facebook users just flew past 325 million monthly actives.

Facebook Mobile Usage by Platform

It’s interesting to see if Facebook’s mobile usage gives any
insights about internet use on different mobile platforms. Following
graph shows above mentioned 65 million active users, split by the platform.

Facebook Mobile Usage by Platform

The highest bar of 27M users is shared between Facebook’s two mobile-optimized web interfaces (m.facebook.com – the standard mobile-optimized site and x.facebook.com for touch-enabled phones) and a few platforms that doesn’t show up as a separate apps, mainly Nokia’s S60 and Windows Mobile.

Facebook for iPhone has over 16M monthly active users, a formiddable number as it means that about 30% of all iPhone and iPod Touch owners (56M) use the application actively. iPhone-owning Facebook users starts to be an interesting market segment of it’s own.

Facebook for Blackberry has about 10M monthly active users. Given that there are about 50 million Blackberries sold, 20% of penetration of Facebook app tells about a thriving mobile platform.

The Java-based Facebook Mobile has around 10 million monthly actives – a small number of over 1 billion Java-enabled phones, but it’s still one of the most downloaded Java applications ever. GetJar reports about 20 million downloads in total for it. In comparison the other top applications, super-popular chat and browser apps eBuddy, Opera Mini and mig33 are around 30M, 22M and 17M downloads, respectively.

Use of Facebook for Android is ridiculously small, under 10000 monthly actives. I haven’t tried the application myself, but I’ve got the impression that it’s rather limited compared to other implementations. Am I correct assuming that Android users typically use Facebook via Android’s web browser? Or are third-party apps like Asurion’s Addressbook popular?

It would be the most interesting to see how the highest bar is further split between mobile web interfaces and Nokia and Windows Mobile. Unfortunately both QuantCast and Compete report suspiciously low numbers of monthly unique visitors for m.facebook.com (between 300K and 1.2M) and x.facebook.com (between 100K and 200K) so further analysis would likely to be incorrect.

Part 2: The future of Facebook Mobile

This introduction to Facebook Mobile stats was the first part of my look into Facebook Mobile. I’m going to post my thoughts about the future of Facebook Mobile and mobile web soon. So if you are interested on the topic, please subscribe to my blog feed here or follow me on Twitter here.

Programmer-friendly virtual private server hosts

September 22nd, 2009

I did a quick research of virtual private server hosts that would suit Huikea’s needs. What we wanted at this point is a VPS slice host, that offers an easy and fast way to get new slices with standard Linux distro. No bells and whistles. Transparent pricing.

We decided that we don’t go for Amazon EC2. As we are focusing on mobile, we will likely not get web-scale load-spikes even in a case of surprising success. Using Amazon S3 – or any other truly scalable data storage – for a data backend sets certain hurdles for programming. It’s good to keep those restrictions in mind, but we decided to go for flexibility at this point.

However, we wanted to something that can be scaled both horizontally and vertically based on our needs. Simple, cheap, programmer-friendly VPS host seems like a perfect fit.

Following three hosts seemed to have a right attitude and pricing.

  • slicehost – “Built for Developers.”
    Praised for their support and the community. Excellent articles on set up. Was acquired by Rackspace and servers run in data centers owned by Rackspace.
  • Linode – “Develop. Deploy. Scale.”
    Prices are between slicehost and prgrm.com. Seems that they don’t have on-site personel in all of their data centers.
  • prgmr.com – “We don’t assume you are stupid.”
    Cheap prices. Targeting a lower end hobby market although apparently they have very skilled personel.



Pricing

Host RAM $/MB/month Disk $/GB/month Bandwidth $/GB/month
slicehost 0.08-0.05 2.00-1.30 0.40-0.16
Linode 0.06 1.25 0.10
prgmr.com 0.08-0.02 3.33-0.71 0.50-0.11



Our choice – for now
We ended up choosing Slicehost, because of the positive opinion of their support and great articles. We will evaluate again when pricing starts to matter. If you know about other good VPS hosts in this category, please leave a comment and I’ll extend this article.

P.S. In case you decide to use Slicehost based on this post, here is a referral link that you can use to sign up and give us extra credit.

Getting married today

June 27th, 2009

We

To share my earthly wandering – the only stroll that I have – with someone so different from me that her mystery fills the journey with thrill and excitement; and so alike me that every day I feel at home; makes me the happiest wanderer in the world.