Today we are opening up an internal research project called EvolutionUI, which is an experimental gamified UI for the smartphone, where the UI gets more advanced as you learn how to use it. In this article, Software Developer Pál Szász tells you all about it, and how to access it.
Hi! My name is Pál Szász, and I work as a Software Developer at Sony. One of my true passions is to work with open source software, and therefore I’m really happy to tell you about the experimental research project EvolutionUI, our newest contribution to the open source community.
The main goal of EvolutionUI is to introduce gamification in the smartphone UI. Wikipedia defines gamification as “the use of game mechanics and game design techniques in non-game contexts”. This topic is getting more and more popular, and it’s no surprise – people learn how to play games much more easily than they learn to use applications. Today several popular applications and services have already integrated gamification into their user experience. Just think about examples such as Stack Overflow’s and Foursquares’ badges.
If we look at games, many of them start with a simplified gameplay, which over time becomes more and more complex. For example, the main character may start with a single stick as his or her only tool or weapon, but during gameplay the character will learn spells, find new weapons and armours. This is something we started to think about for smartphones as well, since many end users have problems with the complexity of their smartphone. When an end user starts a smartphone for the first time, he or she is faced with hundreds of features immediately. This is where the idea of the EvolutionUI started.
The EvolutionUI concept explained
In the EvolutionUI project, our main idea was to isolate advanced features and disable them at start. For example, when a user starts an Android device for the first time, one desktop panel will probably be enough for a while. Also there is no need to be able to create folders or shortcuts for applications, since there won’t be too many applications installed in the first couple of days. To have a lot of widgets on the desktop might also be confusing.
So why not simplify the smartphone UI? With EvolutionUI, the user starts with a very simple setup on the phone:
- There is only one desktop panel.
- There is only a clock widget on the desktop.
- There are only 4 application shortcuts on the desktop, the really core applications: dialer, messages, browser and camera.
- The desktop layout is locked, so the user won’t remove items by mistake.
As the user gets familiar with the basic functionality and learns how to use it, more features are unlocked and the phone gets more and more advanced. When the user performs certain actions, for example when he or she has started five applications after having started the phone, the user will get an “Achievement”.
As a result, a new “Feature” will be enabled. This new feature could be to allow editing of the application shortcuts on the desktop. This achievement system has two main advantages:
- The “Achievement” itself will give a positive feedback to the user.
- The features of the phone are unlocked step by step, in the same pace as the user learns how to use the phone. This makes the learning of the phone much easier, and a lot more fun as well.
The project’s title – EvolutionUI – also refers to this process. The user starts with a very simple-to-use phone, which slowly evolves into a really powerful and personal smartphone.
The following diagram shows the basic concepts of our approach:
- The EvolutionUI monitors phone usage by tracking “Experiences”. Every time the user performs an action, for example makes a call or starts an application, he or she gains experience.
- As the user gains experience, he or she also gains a certain amount of points. For example starting an application could result in 1 experience point (XP), while making a call could result in 10 XP.
- Each achievement has a condition, usually in the form: “if experience X has been obtained N times” and a cause, usually enabling of a feature.
- When an achievement is obtained, features are only enabled, but not activated. This means that the phone software behavior is not changed yet, it’s up to the user to activate it, since maybe the user is not interested at all in the new feature. New features are activated through the status bar.
- The experience points are used to “level up”. The user starts at level 1, but after obtaining, lets say, 100 experience points, the user will reach level 2. As a result the user will get a “Coin”, which can also be used to enable new features. In addition, the user level can be used to compare experiences with friends.
When developing the project, we of course thought about the more advanced users as well, so we introduced the concept of profiles. Each feature is connected to a profile level, where it’s activated by default. In EvolutionUI, we currently have four profile levels: Beginner, Easy, Medium and Advanced.
As an example of how this can work, in EvolutionUI we have disabled the possibility to send MMS messages by default on the Beginner level (until the user sends enough SMS messages to gain experience), but it is enabled on the Medium level. On the Advanced level all the features are activated, but the user can still collect the achievements just for fun.
How does EvolutionUI work?
The main component of EvolutionUI is a core service, called “EvolutionUIService”, which keeps track of the phone usage, for example how many applications that have been started. In EvolutionUI, each application which intends to use this service can publish its own set of experiences, features and achievements by using an XML resource. This way, the experiences, features and achievements are tracked.
The EvolutionUIService will then aggregate all the features and achievements from all the applications and keep track of the user’s overall progress. It’s up to all connected applications to notify the EvolutionUIService about actions performed by the user.
Each application that is connected to the EvolutionUI concept then reports its experiences to the EvolutionUIService. The core service keeps count of these experiences.
The central EvolutionUIService will calculate when the achievements are triggered and when to enable new features. It will notify the user about these by using standard Android Toast messages. Also, there is always an ongoing Android notification available through the status bar at the top of the screen, from which the user can launch the status screen. This is where the user can check his or her progress as well as activate the unlocked features.
Get started experimenting with EvolutionUI
We encourage you to try out this concept, and we’ve released the complete source code of the central EvolutionUI service (including the status screen).
If you want to experiment with EvolutionUI, just head over to GitHub and install both the EvolutionUI application as well as the sample Launcher application on your Android device. You can either install the precompiled binaries or build it yourself from the EvolutionUI source code. After installing them on your device, press the HOME key and pick the new launcher as the default one.
We’ve also included some example patches so that you can see how you can adapt your applications in order to integrate them with the EvolutionUIService. We based our example on a launcher from CyanogenMod, which is in turn very similar to the launcher of the Android Open Source Project (AOSP).
Testing EvolutionUI with the open source XAppDbg tool
To debug and test a complex setup like the EvolutionUI might be complicated, as there are many applications and services involved. In our research, we used one of our own open source tools, XAppDbg, to be able to see the state of the EvolutionUI service while it’s running.
Thanks to XAppDbg, it is possible to check the current state of the experience, features and achievements at any time, simulate experiences from a PC, or even enable and disable features manually, during runtime. If you want to learn more about this tool, and download it for free, you should read our XAppDbgblog post.
So what do you think developers? Can gamified UIs hit it big among consumers? Drop us a comment below and share your thoughts!