Self Organizing Menus for Mobile Applications

Customer Experience and usability are important aspects of Mobile Applications and need to be improved continuously.In this blog I will explain how mobile applications can learn about the user behavior and adapt itself according to it. This concept is explained for the Application menus here and I have named it as Self Organizing Menus.

Problem Statement: How to effectively use the Mobile Screen for showing the relevant menu options and creating a better Customer experience.

Problem Description: Mobile Applications are becoming richer in the content and provide increasing number of options for user interaction and customization. Unlike desktop/laptop/tablet, Mobile phones can-not show fixed menu items all the time at the top or the side panel because of limited size. With the advent of Android Navigation Drawer (or Sliding horizontal menu/drawer on Iphone/Windows_Phone) the menu is visible only when the user swipe from left end to right horizontally and vice versa or when user click on the small icon at the top for opening the menu drawer. This allows user to get a full screen experience as the screen is free of menus except for one small icon on the top. After swiping and opening the drawer, everything is fine if all menu items are visible on the screen, but it gets tricky when the number of options are more or screen size is small and user has to scroll down to see the more options. So it is important to have more relevant option on the first screen when the menu is opened so that user does not have to scroll down to get the desired menu option in most of the cases.

Self-Organizing Menu Solution: This solution keep track of the clicks done by the user for selecting the desired menu items. Based on the analytics of the Menu click count on each Item, It reorganize the Menu Items automatically.e.g. If we configure that reorganization will be done based on every 20 user Menu items click, Then after 20 clicks, This solution will analyze the clicks count for every individual menu items and reconfigures the positioning of menu items based on it. The number of clicks after which reorganization takes place and the logic for deciding the order of Menu Items need to be decided by the application developer. The simplest logic is to order the Menu in descending order of Clicks count.

Here are some implementation notes for the concept:-

Implementation will vary based on the desired Use Cases. Here is one sample implementation logic.Following counters need to be maintained in the Mobile Application Persistent Storage

  • IndMenuItemClickCount: A counter to be maintained for each menu item.
  • totalMenuItemClickCount: A single counter to be maintained for an application drawer.
  • numClicksForSelfOrganization: This is a configurable parameter which indicates after how many clicks Self Organization will take place. This can be decided by the application developer or an option can be provided to user for configuration.


Whenever any menu item is selected by user by clicking on it, An Onclick event is generated by the mobile platform with the id/information of the menu item clicked. Once application gets this event, it will first highlight the selected menu item and then hide the navigation drawer, and show the content based on the selected item. Now during this processing, these additional steps need to be performed:-

  • Increment IndMenuItemClickCount  by 1 corresponding to the selected item
  • Increment totalMenuItemClickCount by 1
  • If totalMenuItemClickCount is greater than or equal to numClicksForSelfOrganization
    • call the Self Organizing Procedure.
    • In Self Organizing Procedure, Based on the number of clicks re-arrange the menu items so that user gets the menu based on user usage pattern next time drawer is opened. In case of nested menus, You might want to move set of related menus up the order.
    • Reset  IndMenuItemClickCount  for all menu items and totalMenuItemClickCount to 0
  • Do the processing related to the clicked Menu Item.

Alternatives and Additional Points:

  • It’s not always the top of the menu items which are easily accessible. E.g. on a smartphone with a bigger screen if you are accessing it with single hand then the menu items at the middle and bottom will be more accessible than those items at the top.
  • If organizing the menu delays in the opening of the content selected by the user, then an alternative will be to delay the reorganization till the next time when application is started.
  •  One Alternative is to provide the fixed number of menu slots for showing the recently used menu options and update it after every click.
  • In Self Organizing procedure, Some KPIs from the Application provider can also be used based on past association of user.e.g. An E-Commerce application provider can send list of Important menu items which need to be prioritized based on the purchase history of the user along with the normal organizing procedure based on the Click count.
  •  For more information on how Android Navigation drawer works refer  and .
  • Google, Facebook and Linkedin Mobile Applications use the navigation drawer menu extensively.

Related Posts

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>