Gamify the UI of the smartphone with the EvolutionUI research project [open source + video]

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.

Pál Szász, Software Developer at Sony.

Pál Szász, Software Developer at Sony.

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.
The initial state of the home screen with EvolutionUI.

The initial state of the home screen with EvolutionUI.

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:

Evolution UI’s basic concepts.

Evolution UI’s basic concepts.

  • 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.
By reaching achievements, new features are unlocked in the EvolutionUI.

By reaching achievements, new features are unlocked in the EvolutionUI.

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.

Applications connect to the EvolutionUIService, sends usage information, and gets notified about feature unlocks.

Applications connect to the EvolutionUIService, sends usage information, and gets notified about feature unlocks.

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.

The profile selection screen.

The profile selection screen.

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.

Debugging the EvolutionUI service using XAppDbg.

Debugging the EvolutionUI service using XAppDbg.

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!

More information

Comments 21

Sort by: Newest | Oldest | Most popular

  1. By Samuel Ebhohon


    I don’t think the evolutionui will be a welcomed project especially to the sony users cos i would not buy a phone that allows me to access just a few app until i have unlocked the other that are useful to me.It frustrating enough with games.Not every body like challenges like that.So if i want to use a particular options in my phone urgently that happens to be the last piece to unlock i will have to wait for a 100 years.Sony that is sick ok. I will never get to use the device to the fullest before you guys release an upgrade with cooler options and performance. i rather you guys make the project optional to should be included in the start up menu where you can activate it if and only if u want it.

    • By Anna Aleryd


      Hi Samuel,

      Thank you for your comment! Keep in mind that this is an experimental research project, and not a new UI of the Xperia smartphones. Also, the Evolution UI already has four different profiles, so that you can choose what level to start from. On the Advanced level all the features are activated, but the user can still collect the achievements just for fun.

      Best regards,
      Anna from Developer World

  2. By Luka Lešić


    Guys, please help, I don’t know how to download the launcher but I really want it. When I open Github there is Evolutionuiapi and Evolutionuiservice. When I try to open those a lot of other files appear and I have no idea where to find the launcher. How do I do it? 😀

  3. By harri schulz


    Ich finde das Projekt insgesamt eine Tolle Sache. So kann verhindert werden das absolut unerfahrene Nutzer grobe Fehler machen.

  4. By خالد العواضي


    متا سيتم ارسال التحديث كت كات الي Z

  5. By Aravind K


    im not sure..i see this as getting in the way..what if a user needs quick access to something but has not ‘unlocked’ the feature yet. too many scenarios or use cases to consider.
    Why not just have a simplified interface option that can be turned on and off?
    Overall good stuff Sony. thx

  6. By Mohanad Adel


    Will the sony launcher be like that in the video??

    Is the app drawer icon and the app drawer itself going to be like that CM App drawer??

    Where is Sony premium home launcher?

    If you are going to do that?? So R.I.P Sony

    • By Anna Aleryd


      Hi Mohanad,

      Thank you for your feedback! This is an experimental research project, which is why the look-and-feel is not aligned with the UI of Xperia devices. It will not be part of our devices in this form, so no reason to worry 🙂

      Best regards,
      Anna from Developer World

  7. By Dante Anzilotti


    As a worker in the Tech Support business, this would be amazing for preventing those users who have no business changing settings they know nothing about from accessing those settings in the first place. The principle of least privilege, I like it!

    • By Anna Aleryd


      Hi Dante,

      Great to hear that you like the idea!

      Best regards,
      Anna from Developer World

  8. By Charles Braswell Jr.


    I would like to know is this only for the Z2? Because I have the Z1s, and would like to try it too (~:

    • By Anna Aleryd


      Hi Charles,

      This works for most Android smartphones, so go ahead and try it out on your Xperia Z1.

      Best regards,
      Anna from Developer World

  9. By Mario Herger


    Fantastic! I think this is the right way to go. Like being onboarded in a game without having to read the manual, that can really help inexperienced users to overcome initial fears and learn. This is a great project and will change the job descriptions of trainers. Instead of coming after the fact with writing manuals and creating training, trainers wil become part of the design team and create the onboarding.

    Wonderful. That’s what I have been pitching to training organizations! And we shouldn’t stop there, many other (enterprise) systems need the same approach. Let youself not get discouraged from the other posters, this is the future!

    • By Anna Aleryd


      Thank you Mario, good to hear that you also had this idea!

      Best regards,
      Anna from Developer World

  10. By Harkishan Singh


    Regarding your 1st question (So what do you think developers?) I think this idea should be dropped off with immediate effect..its terrible,please cancel this project

    On the 2nd question (Can gamified UIs hit it big among consumers?) I think that most consumers know how to use all kinds of OSes…especially Android,which is the easiest…please dony make it hard for both developers and consumers

  11. By Jan Moren


    I’ve seen new smartphone users struggle with the initial setup and trying to come to grips with the new, completely unfamiliar environment. This might make a lot of sense for such cases.

    The challenge is to not get in the way at inappropriate times. What should happen if a user tried to respond to an MMS from a friend when they’ve yet to unlock the function for instance?

  12. By Billy De Fretes


    if you had time, try to improve camera post processing first, faster update…

  13. By Craig Miller


    First of all, really Sony? have you ever even read the Android design guidelines? some of those windows looked like they were from Gingerbread for god sakes.

    Secondly, what is the point of this? Maybe it’s because I’m an advanced user already, but I feel like this would piss me off more than anything else.

  14. By Vuyo Ncube


    No No No No No No No No No No No No No No No No No No No No No No

1-21 of 21 comments.