CyanogenMod 9 User Experience
- A companion to this is Proposed Settings Layout in CyanogenMod 9.
With the introduction of CyanogenMod 9, the CyanogenMod team would like to put more emphasis on the User Experience (UX). The UX is not necessarily just the User Interface (UI), but the ease of use. In CyanogenMod 7, pretty much all the CyanogenMod specific features were lumped into CMParts. This caused many problems; finding settings, figuring out what they actually did, altogether useless features, etc. For any normal user, it was almost impossible to find what they wanted. It has been decided that features added to AOSP with CyanogenMod 9 will attempt to be integrated into the stock Settings application as much as possible.
With these changes, features added to CyanogenMod 9 are subject to a bit more scrutiny, especially from an UX standpoint. Features that are not well designed or not very user-friendly may be rejected for inclusion, or may have to go "back to the drawing board" to fit the new standard.
For anyone who wishes to contribute to CyanogenMod 9, below are included a few guidelines on how settings should be handled, especially within the Settings application. Another good resource for design guidelines is the Android Design guideline website.
Contents |
General
- Settings should be kept at a minimal level. Five billion little tweaks is not user-friendly.
- If the preference only applies to certain types of devices, consider making a framework xml config for the devices to overlay.
Organization
- Settings should be kept organised. If a category starts to become too long, try reorganising things, e.g. new categories, preference screens or switches (with the advanced menu when clicked).
- When there is a general category in which there are two or more preferences that are different from the rest, consider making a new category for them.
- When there is an preference with many sub-preferences, consider making it a switch preference and then have the sub-preferences be inside the switch preference.
- Device specific preferences should still attempt to integrate into the pre-existing Settings structure.
Formatting
- Preference titles, summaries and switches should attempt to conform, as much as possible, to the pre-existing preferences already available.
- Don’t include a switch into the title of the preference; e.g., use USB Debugging rather than Enable USB Debugging.
- There can be an exception for certain preferences that do the opposite of normal. e.g., Don’t keep activities.
- When selecting any numbers, user either a NumberPickerPreference (big/small accurate numbers) or a SeekBarPreference (big inaccurate numbers). Do not use a ListPreference as it looks very ugly for numbers.
Summaries
- Summaries of a preference should be easy to understand. Summaries need to be short and concise. Also, summaries should try not include the title of the preference, because this typical does not help to clarify a preference.
- Summaries are only needed if the title is not self-explanatory. For very simple preferences it can be left out; e.g., Auto-rotate screen.
- Summaries used for a Check Box-style preferences should not be dynamic. When the preference is checked, the summary is true, when the preference isn’t checked, the summary is false.
- Summaries used for a Dialog preferences should be dynamic. This is so that the user doesn’t need to open the preference to see its value.