Design Principles for Mobile Apps: (1) Simplicity

Mobile applications are undoubtedly different than traditional desktop applications in many ways. Mostly, we would think of the technical and/or UI limitations that mobile environments impose on application developers.

In the following weeks, I will portray three high-level principles for building successful mobile applications, not only considering their limitations but also the unique opportunities ‘mobile’ offers:

  • Simplicity for Complexity
  • Complementarity
  • Intimacy

This post discusses the first principle: Simplicity for Complexity.

Simplicity for Complexity

Doubtlessly the success of various Apple products and the associated popularity of Steve Jobs and his design values have brought the idea of simplicity at the heart of many approaches to design mobile applications. However, we sometimes forget that simplicity is indeed a two-edged sword. While some claim:

Simplicity is the ultimate sophistication

William Gaddis, Anselm, The Recognitions (1955), p. 457 or Apple Computers?!

There are also some darker views on this concept:

Simplicity is the most deceitful mistress that ever betrayed man.

Henry Adams, The Education of Henry Adams (1907)

I think us as humans naturally like simplicity. This, in most instances, is a good trait, since only though some degree of inherent or artificial simplicity can we gain some understanding of the complex and chaotic world around us. However, there is also some danger in this tendency: to make things more simple than they ought to be, or even doing so in bad intent. As one not so charming figure, Goebbles, for instance, reportedly had quite a streak for simplicity.

Given these two sides of simplicity, it is probably best put by a quote attributed to Einstein:

Make everything as simple as possible, but not simpler.

In addition, it should be added that simplicity, because of its potentially deceitful nature, should also be employed with honesty and integrity.

Finally after these moral caveats coming back to mobile applications, simplicity indeed should be a key design goal for any development. This for once is rooted in the natural limitation of mobile environments, where complex information and interactions are difficult to impossible to implement in a user-friendly fashion. Moreover, user expectations for mobile apps usually involve the app to be self-explanatory and offer quick rewards, both of which are greatly aided by simplicity.

However, of all the forms of simplicity that one could strive for, the most promising for mobile applications is that simplicity which can result in complexity.

For instance, natural numbers (1, 2, 3, …) are based on a few very simple rules (see Paeno Aximos). The application of these rules can then result in outcomes of near infinite complexity. For instance to provide a numerical representation of the current population of New Zealand: 4,405,200.

An example in the space of mobile applications would be the ever famous Angry Birds. This game is based on a (now assumed to be common knowledge) simple principle: essentially the user can only manipulate three dimensions: velocity, angle and special ability; levels are built from basic geometrical shapes in different arrangements. However, notwithstanding this simplicity, solving all levels of this game is a task of doubtless richness and complexity (why would it otherwise take so long!).

In the next post, I will speak about the next principle, Complementarity, which both draws from the first principle discussed here as well as enriches it with more guidance to build successful mobile applications.

October Links 1

Interesting Links 1st to 10th of October 2012:

Welcome to Koding. A new way for developers to get work done.

Art.sy Is Mapping the World of Art on the Web – NYTimes.com

introduction.js Jasmine BDD in JavaScript

William James on Habit | Brain Pickings Obama likes routine!!

JSONiq: The JSON Query Language

New Zealands Hobbit Trail – NYTimes.com

Simplicity – Wikiquote Great collections on quotes shedding a both a positive and possibly negative view on simplicitly.

Big Data: The Management Revolution – Harvard Business Review

Java Code Quality Tools – Overview – Java Code Geeks

Apache Stanbol – Welcome to Apache Stanbol!

Airavata in Five Minutes.

canoo/open-dolphin

TypeScript – Tutorial

APIfy Turn any web page into a JSON service!

/ – gerrit – Gerrit Code Review – Google Project Hosting JSON for GWT RPC

Raising Generation Tech: Preparing Your Children for a Media-Fueled World: Jim Taylor Ph.D.: 9781402266768: Amazon.com: Books

Follow a Career Passion? Let It Follow You – NYTimes.com

Proto.io – Silly-fast mobile prototyping.

site44 – absurdly simple web hosting

The Ph.D. Grind: Lead From Below | blog@CACM | Communications of the ACM

Assembled by Linkfest.com

Great tutorial to set up a modern Maven site to document Java projects.

akquinet AG - Blog

In recent times, Maven Sites came close to becoming extinct. Maven Plugins were still using them for the wonderful automatic documentation page (named goals), but regular projects were not using them anymore.

However, Maven Sites have some huge benefits such as keeping the documentation close to the code, and automatically providing reports, information and API docs (Javadoc). Being able to release the documentation at the same time as the code was also a great advantage.

So why was this feature not used? Several reasons:

  • The look and feel was terrible.
  • The apt syntax was terrible.
  • The customization was terrible.

Now, though, it’s possible to create much better Maven Sites using Twitter Bootstrap for the skinning and Markdown for the editing. Even better, if you use GitHub, your site can be automatically updated on your project’s GitHub page.

This blog post explains how to use all these new features.

View original post 1,020 more words