[Android Software Development] pal.szasz:
That's only one of the main ideas. Another important idea is to make it fun, to make a positive feedback to the user. I understand that some users don't need, but some do, some like an extra little bit of challenge, or simply a reward. For example my parents were very happy when they managed to find out how to merge two word documents, and they were eager to tell everybody :)

I don't think this is possible. There is no way to make a user interface, which is easy to use both for beginner users and contains all the features required for advanced users. You mention the hidden developer options as an example. For me that's a good example why it doesn't work: it took me some time to find out what happened with the developer menu. The same with the offline map support in google maps. They removed the feature from the menu (to make it easier to use for the beginner users), and they added it as a hidden feature (type "ok maps" in the search?!). I also used an iPhone for 2 weeks, but didn't liked. And I liked the UI of the old UIQ phones. I also think the new trend of using more hidden gestures is also confusing for some users (especially the new swipe-sideways-to-delete-but-sometimes-to-show-more-options thingy).

Btw, we thought about advanced users, they can switch profile and disable the achievement system. Or switch profile only, but keep the achievement notifications just for fun. In many comments I saw people look at this as something they HAVE TO do. That's not the case. The point is to track what they are doing, and enable more and more. And of course there are not and there will never be microtransactions involved.

Like I mentioned before, this is not something the user HAS TO do. You can skip it by changing profiles.

We actually thought about this as well (but was not mentioned in the article for time/size reason) ;)

We actually think this can help the user to switch to a different phone even if he used a smartphone already. Smartphones have new features compared to the previous one, so there is always something new to learn. The idea is the following:

* if switching from a phone which already supported EvolutionUI, we can copy the state (experiences, features, achievements obtained) and continue from the same point. This is rather easy to do, we already store this information locally (obviously, in case the user reboots the phone), so the only thing we need to do is transfer it to another device (probably via a cloud service). (NOTE: this is still in the concept phase, not implemented yet).

* if switching from a phone which did not support EvolutionUI, we can have a small builtin database, which maps the previous phone to an achievement state. For example if the previous user had an iPhone, we can set the medium profile instead of the beginner profile. It would be possible to even have customized profiles for certain phones (i.e. a small xml file describing all the features which needs to be enabled by start, since it was available in the previous phone)

NOTE: the following is just my personal opinion:

Of course we cannot guarantee complete consistency, since we control the Sony phones only. But to be honest, I don't think consistency is that important: imagine, if all android phones would look and behave like the iPhone. Of course it would be nice for many users, they could switch to android easily. But what should those users who don't like the iPhone UI do? They could not buy any phone. And I also want to mention again, that IMHO there is no such thing as perfect UI. UIs evolved a lot, but it's still a matter a fashion: a couple of years ago everybody liked the real-life-looking apps on the iPhone. Now they like the new modern, simplified look. It's always changing, and just like with fashion, not everybody has the same taste.

Thank you, and I appreciate it!