Home     Windows Phone     Nokia Belle     Nokia N8     Asha Series     Phones     Apps     Unboxings

Saturday, January 21, 2012

Gravity vs fMobi vs Facial - user interface technical comparison

My job is Java programming, and my main expertise is user interface. I've been working in programing for 8 years, so I can say I've been there. Today I will start a series of posts where I will try to "shrink" mobile applications. I will try to objectively analyze those apps' user experience and the user interface design and concepts behind that user experience. So, I'm gonna kick this off with a comparison between paid Facebook clients.

Before we go on to the comparison and video demonstrations I have to define some terms so you can better understand what I mean in the video demos.

Applications are usually composed of a number of threads or subprocesses. Each of those threads do something. One loads data from Facebook, another builds the user interface components that are about to be displayed, while a third one checks your paid license. This is just an example. These threads run in parallel. Well, not really, because Symbian phones have only one CPU, instead the CPU runs each of those threads by giving them priorities, and assigning different priorities for each thread during time, so the user perceives it as if those threads run in parallel.

The priority of a thread decides how much CPU power that thread can access when running. The highest priority means that while that thread with the highest priority runs, no other thread or process will access CPU power.

I chose those three apps because each of them has a different approach when it comes to handling data and user interface, and they lead to totally different user experiences.

Let's start with fMobi. When starting up, fMobi loads you stream from Facebook, and that then shows you the feed. The images contained in the feed are loaded while the user interface is displayed and that generates some choppy scrolling until all those images are loaded.

Next is Facial. Much in the same way as fMobi, Facial loads the feed at startup, but it also loads the images from the feeds, before actually showing the feed. The result is a longer waiting time before showing the feed, and a much faster and smoother scrolling. That is because the app can focus on scrolling alone, having nothing else to load.

The last one, Gravity takes another approach. It loads the feed, but not the images. As long as something happens to the feed(scrolling up and down, expanding items) the images are not loaded. When the user stops and the application is idle, only then are the images loaded and shown. Furthermore, Gravity only loads images for the items that are visible, hence optimizing images load time and RAM consumption as well.

Check the video below for more user interface comparison details:

Next I want to show you how each of those apps handle data and Internet connectivity. Facial and fMobi both load the Facebook feed each time they are opened, hence the pretty long wait each time those apps start. However, Gravity takes a different approach, called caching. Gravity creates a cache of previously retrieved feeds, and shows them to the user, and only gets the new ones when the user issues a refresh command(Update now). How different are these approaches? Well, pretty different. First approach uses your Internet connection each time, and most times it may retrieve the same data again, hence draining your data plan without getting anything new. Second approach, gets only new items, and only once, hence keeping your data consumptions to as low as possible. Another issue is the battery life, the more times the Internet is accessed, the faster you battery drains.

Check the video below for more details on how each app handles data loading:

So the overall winner of this battle, which took both chapters of UX and Data handling is Gravity. That does not mean the other two are not worthy apps. fMobi is the most mature of them and has the most features, while Facial is the one who's the most RAM friendly. Keep all aspects in mind when you make your choice.