Saturday, July 12, 2014

Android and iOS Utility Apps - Part 1

Getting to grips with utility apps

Utility apps are software programs that perform a task beyond pure entertainment. In other words, just about everything in the app world that is not a game. You might develop a utility app to increase a user’s productivity or, less delightfully, you might make one to enhance awareness of a brand, or to increase customer loyalty. The apps we’re looking at are: A movie app, a magazine app, a social networking app and a photo app.

Flixster







This is a great app to learn from. We recommend you download it right away – it’s free! Flixster lets you check movie reviews and figure out which films are playing in a theatre near your current location – triangulated via WiFi. The app can be integrated with Facebook and Netflix; so you can rate movies, see your friends’ ratings for movies, or add movies directly into a Netflix queue of movies to be watched.

In Flixster, you can also see which movies are the most popular at theaters: The app pulls movie review data from RottenTomatoes.com – which Flixster bought in 2010 – and allows you to cross-reference your movie choice with reviews from movie critics and RottenTomatoes.com users. These ratings are aggregated into an easy to read percentage of people who liked the movie. Through Flixster you can get the showtimes and watch movie trailers. Have a play about with the app, you’ll enjoy how slick and obvious the interface is. This is not, however, to say that it was easy to design. Making things simple is usually hard.

When Flixster started, it was a shadow of what the app has become today. Wisely, the company started
off with some basic features to their app and added features as they grew. This is a good strategy for your own utility app: Start with some basic features and expand upon them as the user-base grows and you begin to get a sense of how people are using the software.

The engine behind Flixster relies on databases and servers. A database is effectively a huge spreadsheet that stores information. A server, as you likely know, is a computer connected to the internet that allows you to access information. Flixster accesses many different databases, and servers, to provide cinema information. These are:

The database for the theatre locations;
The database that shows the movie dates and times for each theater;
The database for recently released DVDs;
The databases for information retrieved from Facebook and Netflix;
The database for information for each movie.

And, finally, there is the database for RottenTomatoes.com reviews.

All of the information included in Flixster is retrieved from different locations. Some bits are retrieved from radically different databases, on different servers across the world, while some are retrieved from different tables in the same database. What’s important is that all of the pieces of information are put together in such a way that Flixter creates a totally new service out of existing information. This is a great way to frame ideas for your own utility apps:

How can you combine existing services or data to create a novel and useful experience?

One technique that’s used to assist in Flixter’s organization process is localization. Flixster can use your current location to show information for theaters that are close to you. This is done either through manually entering in a location or by the user allowing their GPS or Network location to be used by the app. By making the content relevant to the user, the user experience becomes personal. Another technique that’s used to enhance the user experience is to organize different types of information into tabs. Most mobile devices today have small screens. So screen “real estate” is at a premium. One strategy for dealing with this is to only show the user what they need to see, when they need to see it. This is done is by giving the user different view options to choose from. When the user clicks on a specific option, then a more specific type of interface is revealed. In this way, there exists a tree of different possibilities for what the user can choose.

It may take a few steps to get to any specific leaf on the tree; but each leaf is accessible from anywhere.

This strategy allows the user to get the specific detail they consider relevant. In our broad overview of how Flixster works, the two most important things to remember are:
1) Utility apps can, and likely should, gather information from many sources.
2) Utility apps should display that information in a way that makes it simple to navigate for the user.

Now we’re going to look under the hood of a magazine app.

Google Currents


Google Currents is an app that aggregates newspaper, magazine and blog articles. A publisher signs up to be included via Google’s website, then Google makes a e-magazine from the content provided by the publisher. The end user chooses the publishers that they would like to subscribe to. It’s then possible to read the articles and share them with their friends.

The first step in this process is for Google to get permission to use the articles. If you are going to use someone’s content in your app, you should get permission from the original publisher. Publishers are willing to give Google permission to use their articles because they can still control their content. Publishers can limit how much of their content they want to include and give users a taste of their work. In some cases, for example, users will give their email address to the publisher as “payment” to read beyond a minimum amount.

After Google has permission to use the publisher’s content, the company needs access to the actual content. Publishers can push this content through many types of RSS feeds or through manual uploads. The publisher can determine how their content is displayed through Google’s website. Then when the user choses their e-magazine, the content is displayed. Google runs a website to generate content for this app, and the website also defines how the content is displayed. After the content is created, the information is stored on a database and accessed by the app when it is needed.

As a general note, it’s worth observing that, in order to keep utility apps small, many apps are connected to a server “backend.” It would be completely impractical for the Google Currents app to update itself every time a new article is published. It would also be impractical to include all of the information for each periodical on the mobile device. Instead, the app talks to the server over an internet connection, requesting the information that is needed, when it’s needed.

This leads us to an important tip for mobile app design and development: Keep your apps small by storing most of the data the app will use on a server. Then, when a user requests information, transfer and cache (temporarily store) the information needed for that page on the local device. That way, if the user wants to look at the page again, the app doesn’t have to reload the information from the internet (which can be slow). This process can be a careful balancing act. As an app designer, you must make sure that each call to a server requests enough information (and also saves that information for possible reuse) to enable a solid user experience, while not requesting too much information at any one time – which might cause the app to become unresponsive.

The next app we’re looking at is a social networking app.

Read Next - Android and iOS Utility Apps - Part 2

No comments: