Android Platform Has Provided Computer Science Essay

Published: Last Edited:

This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.

Android platform has provided a comprehensive set of guidelines in the form of UI framework to create an application. Some of the important aspects to keep in mind while designing an application are: Screen Experience, Device Navigation and Notifications which are discussed in brief below [1]. Furthermore, any and every app built should be consistent and compatible with the current user interface of the Android OS [1].


Home Screen:

Instead of a single restrictive screen, there are multiple home screens in this case which can be navigated by a user by swiping across them. These screens are customizable to facilitate personalized disposition and organization of the contents across the screens. The bottom panel of the screen contains a "Favorites Tray" which harbors the most important and most used apps of the user. An "All Apps" button is also provided which contains all the widgets and apps that the OS contains [1].

All Apps Screen:

This is an umbrella screen which shows up all the applications installed on that particular OS, including all the widgets. Any app can be moved to the Home screen by just a simple drag and drop action [1].

Recent Screen:

As the name suggests, this screen shows all the apps being 'in use' by the user [1]. Their placement might vary across different versions which could be either a horizontal alignment or a vertical one. However, they are arranged in 'reverse chronology' i.e. the most recently used app will be shown first. This screen becomes empty when the phone is restarted.


The navigation aspect is handled with the usage of "System Bars" [1]. It is the area, usually on the top and bottom of the screen with a sole purpose of displaying notifications, for the navigation and showing the current status of the device [1]. Any normal app will be displayed along with the system bar except multimedia apps like a game application or an audio/video application whose contents are displayed on entire screen for better user experience. Usually System Bars can be in various forms:

Status Bar:

It is generally placed on the top of the screen in which notifications are displayed on the left side and phone related status such as current time, network signal strength or battery level indicator on the right side. The bar can be dragged down to view the notifications.

Navigation Bar:

Its sole purpose is to navigate between the screens. Many-a-times, phones themselves contain the navigation keys which make the bar unnecessary. This bar is only present only on those devices which are devoid of such keys.

Combined Bar:

This is combined version of the status bar and the navigation bar. This may be present on the tablets.


These are usually some type of messages, updates, reminders or some information. This shows as an icon in the status bar. A user has to drag down the status bar to see the notifications. As per the Android UI Guidelines, a notification should ideally be of 2 lines. Tapping on the notification, opens an app which relates to that notification.

Design Principles:

As per the Android UI Guidelines discussed in [2], following are the design principles which must be adopted to provide a better UI experience to the user. These are listed below:

The screen should be beautifully designed with appropriate colors and animations should be rightfully placed accompanied by a proper sound effect. This is a good way to make the user experience enjoyable and joyful.

A user should be allowed to access objects directly instead of buttons and menus which make the usage of the app more interactive and enjoyable.

Different people have different flavors. Hence, an app should have "sensible, beautiful defaults" with an option to customize it without hindering the primary functionality of the app.

A user's preference should be adaptively learned by an app. A choice previously chosen by the user should be remembered and shouldn't be asked again. Moreover, during the display, these choices should appear first to the user out of the other choices.

'Simple words' and 'short phrases' should be used in place of sentences.

Using images instead of text provides a better understanding to the user.

Instead of asking the user again and again about his/her choices, an app should take the default action first and an option to trace back to the previous state should be allowed, in case the user dislikes it.

All the options are not simultaneously required by the user at any given time. Concurrent appearance of all of them can create difficulties for the user. Instead, options should be hidden under small icons and should only pop out whenever necessary at each step.

A user should know how far he is from the main screen. To achieve this, each screen on the app should be different and appropriate transitions should be there to navigate between the screens.

It should be possible to save user's personal creations and settings and make them accessible from anywhere across different devices.

A user should be able to visually discriminate between the functionalities of each app.

A user should not be constantly bugged by a notification unless and until absolutely essential.

An app should be made in a manner that helps in easy learning through previous experience of 'visual patterns' from other apps. For an instance, 'the swipe gesture' can be used as a 'navigational shortcut'.

App should try to fix problems without being noticed by the user. Still, if some critical error occurs, then user should be given lucid directions to recover from the error, instead of displaying inexplicable technical jargons on the screen.

Divide and go approach should be followed for task accomplishment. Every user action should follow feedback (visual/verbal) to assure task completion.

Allow users "to do things they never thought they could". This may increase user liking towards that app.

The most important actions of an app should be placed in such a way that user can easily find and use it. For example, the send button on a message composer and pause button of a video player.

UI Design Patterns:

The Android UI Design Patterns were released by Google in May, 2010. According to this release [3], there were five UI patterns which are as follows:


This section of the screen shows the common sections of the application, what's new or some updates and news. It basically answers two questions:

"What can I do with this app?"

"What's new?"

Action Bar:

This section of the screen is dedicated to show commonly used functionalities of the app and navigation options. This is a place, where one can find "Search", "Refresh" or "Compose". It is used in place of the Title Bar. It basically answers the question:

"How can I do common actions quickly?"

Quick Actions:

It is a "popup" which comes out by tapping on any compressed menu button. It saves space and to provide multiple options for a single object. It answers the question:

"What can I do with this thing?"

Search Bar:

It is located on the top of the screen. It supports the display of suggestions when user keys in keywords. It completely replaces the Action Bar. It answers the question:

"How can I find something?"

Companion Widget:

It displays the content of the app on the home screen. It is a means by which you can make an app feel more 'custom and personalized'. It answers the question:

"Can I make this app fun part of my Home screen?"

Design Philosophy & Considerations:

Design Philosophies are accepted and proven techniques for designing any application. According to the document [3] released by Richard Fulcher, Chris Nesladek, Jim Palmer and Christian Robertson on Android Design Patterns, these are outlined as follows:

Clear vs. Simple

Simplicity is the key factor for any design. Yet, a design should be clear, in a sense that the functionalities of the app should be easily conveyable to the user. A clear and clean design would automatically result into a simple app to handle.

Content vs. Chrome

The design should be clean and content-driven. One should focus on the content and not chrome, while designing an application. Keeping the app content-oriented will focus most relevant elements on the screen by removing the unnecessary elements.

Consistent yet Engaging

Every screen of an app should be similar in style. Still, each screen should differ from each other in such a way that, they should keep user engrossed into it.

Enhanced by cloud

The user's context should be preserved across various platforms like desktops, mobiles and tablets.

There are few aspects that should be kept in mind while designing an application. They are as follows:

Screen size: What is the size of the screen? Whether the app will be for a tablet or a phone?

Screen density: What color scheme does the screen support? How much resolution is supported by the screen?

Orientations: How will an app behave for both the orientations i.e. Portrait and Landscape?

Way of Interaction: What will be used to interact with an app? Whether it will be a touchpad? Whether it will be the direction keys? Or whether it will be a trackball?

Method of Input: How will be the characters entered? Whether it will be a physical keyboard itself on the device or a soft keyboard on the app itself?

Do's & Dont's:

According to the presentation [4] on Android UI Design Tips presented at Google IO Event - 2010, some general precautions were presented while designing an interface. They were presented under the header- Do's & Dont's.

Don't borrow the interface design "from other platforms".

Don't show the application progress by showing confirmation dialogs at each step. The use of dialogs should be minimal and should only be used where necessary.

Don't develop the static layout for an interface. An interface should adopt its size based on the screen size of the device.

Don't use "px units", go for "dp (or sp for text)".

Don't use such a font size that makes content readability difficult for the user.

Do give a support for "high density screens" for your design by creating "versions".

Do create target objects pretty large, which make user tapping easy.

Do create and use icons as per the specifications provided by "Android Icon Guidelines".

Do use appropriate "margins and padding" wherever required.

Do give various navigation supports.

Do "manage the activity stack" properly.

Do support change in orientation by handling it properly.

Do give look and feel change with a proper usage of "colors", "styles" and "themes" for minimal "redundancy"

Do try to "work with visual and interaction designers".


In gross terms, compatibility deals with a functionality support for new application/OS upgrades over older devices and vice-versa (i.e. support for previous application versions over new devices). To support the above statement, an example of is provided dealing with the compatibility issues over older and new android devices. From Android 3.0, the hardware navigation support was eradicated by introducing virtual navigation keys. Since all the actions cannot be accommodated in the action bar, action overflow tab was introduced in the devices with virtual navigation control. This option contained various less significant actions in the form of a drop-down menu which for the devices with actual hardware navigation keys, was provided as a functionality of the menu button [5].


Any application should be developed keeping in mind the target user group. A user can befall into various categories such as an expert, a novice or with any form physical disability like color blindness, night blindness, low vision, hearing deficiency or limited mobility. Hence, to expand the user-base and address every user's specific requirements, Android adopted the principle of "Universal Design" which enforces accessibility of an application to all type of users despite of their ability/disability. For this, Android also accoutered additional accessibility tools like "Talk Back" and some inbuilt features like "Explore by Touch". Moreover, the accessibility related concerns are handled by Android's one of the design principle i.e. "I should always know where I am" [6].

There are certain guidelines provided in [6] to follow this principle. These guidelines are enlisted below:

"Make navigation intuitive"

"Use recommended touch target sizes"

"Label visual UI elements meaningfully"

"Provide alternatives to affordances that time out"

"Use standard framework controls or enable Talkback for custom controls"

"Try it out yourself"