b est p ractices for u ser e xperience & ui. designing effective navigation implementing...

60
BEST PRACTICES FOR USER EXPERIENCE & UI

Upload: frank-elliott

Post on 23-Dec-2015

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: B EST P RACTICES FOR U SER E XPERIENCE & UI. Designing Effective Navigation Implementing Effective Navigation Notifying the User Adding Search Functionality

BEST PRACTICES FOR USER EXPERIENCE & UI

Page 4: B EST P RACTICES FOR U SER E XPERIENCE & UI. Designing Effective Navigation Implementing Effective Navigation Notifying the User Adding Search Functionality

PLANNING SCREENS AND THEIR RELATIONSHIPS

Using Entity-Relational Diagrams(ERD) to describe interactive relations

Page 5: B EST P RACTICES FOR U SER E XPERIENCE & UI. Designing Effective Navigation Implementing Effective Navigation Notifying the User Adding Search Functionality

CREATE A SCREEN LIST

Considering what should we use to design the user interface in order to allow users clearly understand the operating way of our applications

Home or "launchpad" screen for accessing stories and photos List of categories List of news stories for a given category Story detail view (from which we can save and share) List of photos, uncategorized Photo detail view (from which we can save and share) List of all saved items List of saved photos List of saved stories

Page 6: B EST P RACTICES FOR U SER E XPERIENCE & UI. Designing Effective Navigation Implementing Effective Navigation Notifying the User Adding Search Functionality

DIAGRAM SCREEN RELATIONSHIPS

Among all of our designed sets of screens is interfaces allowing users to change from one screen to another one,and we can express this as following example diagram.

Page 7: B EST P RACTICES FOR U SER E XPERIENCE & UI. Designing Effective Navigation Implementing Effective Navigation Notifying the User Adding Search Functionality

GO BEYOND A SIMPLISTIC DESIGN

One’s screen design better have following functions to make UI more convenient and easy operating.

Buttons leading to different sections (e.g., stories, photos, saved items)

Vertical lists representing collections (e.g., story lists, photo lists, etc.)

Detail information (e.g., story view, full-screen photo view, etc.)

Page 8: B EST P RACTICES FOR U SER E XPERIENCE & UI. Designing Effective Navigation Implementing Effective Navigation Notifying the User Adding Search Functionality

PLANNING FOR MULTIPLE TOUCHSCREEN SIZES

Although previous lesson make us understand how to design on perticular device,but there are still a lot of devices not considered,so we also needed to learn how to design application which can run on those devices.

Page 9: B EST P RACTICES FOR U SER E XPERIENCE & UI. Designing Effective Navigation Implementing Effective Navigation Notifying the User Adding Search Functionality

GROUP SCREENS WITH MULTI-PANE LAYOUTS

Page 10: B EST P RACTICES FOR U SER E XPERIENCE & UI. Designing Effective Navigation Implementing Effective Navigation Notifying the User Adding Search Functionality

GROUP SCREENS WITH MULTI-PANE LAYOUTS(CONT’D)

Page 11: B EST P RACTICES FOR U SER E XPERIENCE & UI. Designing Effective Navigation Implementing Effective Navigation Notifying the User Adding Search Functionality

DESIGN FOR MULTIPLE TABLET ORIENTATIONS

While desining UI , we also need to consider how to arrange the screen arrangement when straightly holding or horizontally holding.

Stretch Expand/Collapse

Show/Hide Stack

Page 12: B EST P RACTICES FOR U SER E XPERIENCE & UI. Designing Effective Navigation Implementing Effective Navigation Notifying the User Adding Search Functionality

GROUP SCREENS IN THE SCREEN MAP

Afterward , grouping these into larger map.

Page 13: B EST P RACTICES FOR U SER E XPERIENCE & UI. Designing Effective Navigation Implementing Effective Navigation Notifying the User Adding Search Functionality

PROVIDING DESCENDANT AND LATERAL NAVIGATION

Navigation have two types:descendant and lateral navigation

And sibings also have two types:collection and section siblings

Page 14: B EST P RACTICES FOR U SER E XPERIENCE & UI. Designing Effective Navigation Implementing Effective Navigation Notifying the User Adding Search Functionality

BUTTONS AND SIMPLE TARGETS

In section related screens, offering touchable and keyboard-focusable targets in the parent is generally the most straightforward and familiar kind of touch-based navigation interface. Which includes buttons, fixed-size list views, or text links

Page 15: B EST P RACTICES FOR U SER E XPERIENCE & UI. Designing Effective Navigation Implementing Effective Navigation Notifying the User Adding Search Functionality

LISTS, GRIDS, CAROUSELS, AND STACKS

For collection-related screens, and especially for textual information, vertically scrolling lists are often the most straightforward and familiar kind of interface. For more visual or media-rich content items such as photos or videos, vertically scrolling grids of items, horizontally scrolling lists (sometimes referred to as carousels), or stacks (sometimes referred to as cards) can be used instead.

Page 16: B EST P RACTICES FOR U SER E XPERIENCE & UI. Designing Effective Navigation Implementing Effective Navigation Notifying the User Adding Search Functionality

TABS

Using tabs is a very popular solution for lateral navigation. This pattern allows grouping of sibling screens, in that the tab content container in the parent screen can embed child screens that otherwise would be entirely separate contexts.

Page 17: B EST P RACTICES FOR U SER E XPERIENCE & UI. Designing Effective Navigation Implementing Effective Navigation Notifying the User Adding Search Functionality

HORIZONTAL PAGING (SWIPE VIEWS)

Another popular lateral navigation pattern is horizontal paging, also referred to as swipe views. This pattern applies best to collection-related sibling screens, such as a list of categories (world, business, technology, and health stories)

Page 18: B EST P RACTICES FOR U SER E XPERIENCE & UI. Designing Effective Navigation Implementing Effective Navigation Notifying the User Adding Search Functionality

PROVIDING ANCESTRAL AND TEMPORAL NAVIGATION

Now that users can navigate deep into the application's screen hierarchy, we need to provide a method for navigating up the hierarchy, to parent and ancestor screens. 

Page 19: B EST P RACTICES FOR U SER E XPERIENCE & UI. Designing Effective Navigation Implementing Effective Navigation Notifying the User Adding Search Functionality

SUPPORT TEMPORAL NAVIGATION: BACK

Temporal navigation, or navigation between historical screens, is deeply rooted in the Android system. All Android users expect the Back button to take them to the previous screen, regardless of other state. The set of historical screens is always rooted at the user's Launcher application (the phone's "home" screen).

Page 20: B EST P RACTICES FOR U SER E XPERIENCE & UI. Designing Effective Navigation Implementing Effective Navigation Notifying the User Adding Search Functionality

PROVIDE ANCESTRAL NAVIGATION: UP AND HOME

Android 3.0 introduced the Up metaphor, which is presented in the Action Bar as a substitute for the Homebutton described above. Upon tapping Up, the user should be taken to the parent screen in the hierarchy. This navigation step is usually the previous screen (as described with the Back button discussion above), but this is not universally the case. Thus, developers must ensure that Up for each screen navigates to a single, predetermined parent screen.

Page 21: B EST P RACTICES FOR U SER E XPERIENCE & UI. Designing Effective Navigation Implementing Effective Navigation Notifying the User Adding Search Functionality

PUTTING IT ALL TOGETHER: WIREFRAMING THE EXAMPLE APP

Now that we have a solid understanding of navigation patterns and screen grouping techniques, it's time to apply them to our screens.

Page 23: B EST P RACTICES FOR U SER E XPERIENCE & UI. Designing Effective Navigation Implementing Effective Navigation Notifying the User Adding Search Functionality

IMPLEMENTING LATERAL NAVIGATION

Lateral navigation is navigation between sibling screens in the application's screen hierarchy (sometimes referred to as a screen map). The most prominent lateral navigation patterns are tabs and horizontal paging (also known as swipe views). 

Page 24: B EST P RACTICES FOR U SER E XPERIENCE & UI. Designing Effective Navigation Implementing Effective Navigation Notifying the User Adding Search Functionality

IMPLEMENT TABS

Tabs allow the user to navigate between sibling screens by selecting the appropriate tab indicator available at the top of the display. In Android 3.0 and later, tabs are implemented using the ActionBar class, and are generally set up inActivity.onCreate().

Referencing related code: http://

developer.android.com/training/implementing-navigation/lateral.html

Page 25: B EST P RACTICES FOR U SER E XPERIENCE & UI. Designing Effective Navigation Implementing Effective Navigation Notifying the User Adding Search Functionality

IMPLEMENTING ANCESTRAL NAVIGATION

Ancestral navigation is up the application's information hierarchy, where the top of the hierarchy (or root) is the application's home screen.

Page 26: B EST P RACTICES FOR U SER E XPERIENCE & UI. Designing Effective Navigation Implementing Effective Navigation Notifying the User Adding Search Functionality

IMPLEMENT UP NAVIGATION

When implementing ancestral navigation, all screens in your application that aren't the home screen should offer a means of navigating to the immediate parent screen in the hierarchy via the Up button in the action bar.

Referencing related code: http://developer.android.com/training/implem

enting-navigation/ancestral.html

Page 27: B EST P RACTICES FOR U SER E XPERIENCE & UI. Designing Effective Navigation Implementing Effective Navigation Notifying the User Adding Search Functionality

IMPLEMENTING TEMPORAL NAVIGATION

Temporal navigation is navigation to previously visited screens. Users can visit previous screens by pressing the device Backbutton. This user interface pattern is described further inProviding Ancestral and Temporal Navigation in Designing Effective Navigation and in Android Design: Navigation.

Android handles basic Back navigation for you (see Tasks and Back Stack for details on this behavior).

Referencing related code: http://developer.android.com/training/impleme

nting-navigation/temporal.html

Page 28: B EST P RACTICES FOR U SER E XPERIENCE & UI. Designing Effective Navigation Implementing Effective Navigation Notifying the User Adding Search Functionality

IMPLEMENTING DESCENDANT NAVIGATION

Descendant navigation is navigation down the application's information hierarchy. This is described in Designing Effective Navigation and also covered in Android Design: Application Structure.

Descendant navigation is usually implemented using Intentobjects and startActivity(), or by adding fragments to an activity using FragmentTransaction objects.

Page 29: B EST P RACTICES FOR U SER E XPERIENCE & UI. Designing Effective Navigation Implementing Effective Navigation Notifying the User Adding Search Functionality

IMPLEMENT MASTER/DETAIL FLOWS ACROSS HANDSETS AND TABLETS

In a master/detail navigation flow, a master screen contains a list of items in a collection, and a detail screen shows detailed information about a specific item within that collection. Implementing navigation from the master screen to the detail screen is one form of descendant navigation.

Referencing related topics: http://

developer.android.com/training/implementing-navigation/descendant.html

Page 32: B EST P RACTICES FOR U SER E XPERIENCE & UI. Designing Effective Navigation Implementing Effective Navigation Notifying the User Adding Search Functionality

PRESERVING NAVIGATION WHEN STARTING AN ACTIVITY

Part of designing a notification is preserving the user's expected navigation experience. For a detailed discussion of this topic, see the Notifications API guide. There are two general situations:

Regular activityYou're starting an Activity that's part of the application's normal workflow.Special activityThe user only sees this Activity if it's started from a notification. In a sense, the Activity extends the notification by providing information that would be hard to display in the notification itself.

Code:http://developer.android.com/training/notify-user/navigation.html

Page 33: B EST P RACTICES FOR U SER E XPERIENCE & UI. Designing Effective Navigation Implementing Effective Navigation Notifying the User Adding Search Functionality

UPDATING NOTIFICATIONS

When you need to issue a notification multiple times for the same type of event, you should avoid making a completely new notification. Instead, you should consider updating a previous notification, either by changing some of its values or by adding to it, or both.

Referencing related code: http://developer.android.com/training/notify-u

ser/managing.html

Page 34: B EST P RACTICES FOR U SER E XPERIENCE & UI. Designing Effective Navigation Implementing Effective Navigation Notifying the User Adding Search Functionality

USING BIG VIEW STYLES

Notifications in the notification drawer appear in two main visual styles, normal view and big view. The big view of a notification only appears when the notification is expanded. This happens when the notification is at the top of the drawer, or the user clicks the notification.

Codes: http://

developer.android.com/training/notify-user/expanded.html

Page 35: B EST P RACTICES FOR U SER E XPERIENCE & UI. Designing Effective Navigation Implementing Effective Navigation Notifying the User Adding Search Functionality

DISPLAYING PROGRESS IN A NOTIFICATION

Notifications can include an animated progress indicator that shows users the status of an ongoing operation. If you can estimate how long the operation takes and how much of it is complete at any time, use the "determinate" form of the indicator (a progress bar). If you can't estimate the length of the operation, use the "indeterminate" form of the indicator (an activity indicator).

Referencing code: http://developer.android.com/training/notify-u

ser/display-progress.html

Page 37: B EST P RACTICES FOR U SER E XPERIENCE & UI. Designing Effective Navigation Implementing Effective Navigation Notifying the User Adding Search Functionality

SETTING UP THE SEARCH INTERFACE

Beginning in Android 3.0, using the SearchView widget as an item in the action bar is the preferred way to provide search in your app. 

Codes: http://developer.android.com/training/search/

setup.html

Page 38: B EST P RACTICES FOR U SER E XPERIENCE & UI. Designing Effective Navigation Implementing Effective Navigation Notifying the User Adding Search Functionality

STORING AND SEARCHING FOR DATA

There are many ways to store your data, such as in an online database, in a local SQLite database, or even in a text file. It is up to you to decide what is the best solution for your application. 

Code: http://

developer.android.com/training/search/search.html

Page 39: B EST P RACTICES FOR U SER E XPERIENCE & UI. Designing Effective Navigation Implementing Effective Navigation Notifying the User Adding Search Functionality

REMAINING BACKWARD COMPATIBLE

The SearchView and action bar are only available on Android 3.0 and later. To support older platforms, you can fall back to the search dialog. The search dialog is a system provided UI that overlays on top of your application when invoked.

Codes:http://developer.android.com/training/search/backward-compat.html

Page 41: B EST P RACTICES FOR U SER E XPERIENCE & UI. Designing Effective Navigation Implementing Effective Navigation Notifying the User Adding Search Functionality

SUPPORTING DIFFERENT SCREEN SIZES

Ensuring your layout can be adequately resized to fit the screen

Providing appropriate UI layout according to screen configuration

Ensuring the correct layout is applied to the correct screen

Providing bitmaps that scale correctly Codes:http

://developer.android.com/training/multiscreen/screensizes.html

Page 42: B EST P RACTICES FOR U SER E XPERIENCE & UI. Designing Effective Navigation Implementing Effective Navigation Notifying the User Adding Search Functionality

SUPPORTING DIFFERENT DENSITIES

support different screen densities by providing different resources and using resolution-independent units of measurements.

Related information:http://developer.android.com/training/multiscreen/screendensities.html

Page 43: B EST P RACTICES FOR U SER E XPERIENCE & UI. Designing Effective Navigation Implementing Effective Navigation Notifying the User Adding Search Functionality

IMPLEMENTING ADAPTATIVE UI FLOWS

Depending on the layout that your application is currently showing, the UI flow may be different. For example, if your application is in the dual-pane mode, clicking on an item on the left pane will simply display the content on the right pane; if it is in single-pane mode, the content should be displayed on its own (in a different activity).

Codes:http://developer.android.com/training/multiscreen/adaptui.html

Page 45: B EST P RACTICES FOR U SER E XPERIENCE & UI. Designing Effective Navigation Implementing Effective Navigation Notifying the User Adding Search Functionality

OPTIMIZING LAYOUTS FOR TV

When your application is running on a television set, you should assume that the user is sitting about ten feet away from the screen. This user environment is referred to as the 10-foot UI. To provide your users with a usable and enjoyable experience, you should style and lay out your UI accordingly..

Code:http://developer.android.com/training/tv/optimizing-layouts-tv.html

Page 46: B EST P RACTICES FOR U SER E XPERIENCE & UI. Designing Effective Navigation Implementing Effective Navigation Notifying the User Adding Search Functionality

OPTIMIZING NAVIGATION FOR TV

An important aspect of the user experience when operating a TV is the direct human interface: a remote control. As you optimize your Android application for TVs, you should pay special attention to how the user actually navigates around your application when using a remote control instead of a touchscreen.

Codes:http://developer.android.com/training/tv/optimizing-navigation-tv.html

Page 47: B EST P RACTICES FOR U SER E XPERIENCE & UI. Designing Effective Navigation Implementing Effective Navigation Notifying the User Adding Search Functionality

HANDLING FEATURES NOT SUPPORTED ON TV

TVs are much different from other Android-powered devices:

1.They're not mobile. 2.Out of habit, people use them for watching

media with little or no interaction. 3.People interact with them from a distance. For TVs without features of Android-power

device,how to design codes is a challenge. Codes:http://developer.android.com/training/

tv/unsupported-features-tv.html

Page 49: B EST P RACTICES FOR U SER E XPERIENCE & UI. Designing Effective Navigation Implementing Effective Navigation Notifying the User Adding Search Functionality

CREATING A VIEW CLASS

A well-designed custom view is much like any other well-designed class. It encapsulates a specific set of functionality with an easy to use interface, it uses CPU and memory efficiently, and so forth. In addition to being a well-designed class, though, a custom view should:

Conform to Android standards Provide custom styleable attributes that work

with Android XML layouts Send accessibility events Be compatible with multiple Android platforms. http://developer.android.com/training/custom-v

iews/create-view.html

Page 50: B EST P RACTICES FOR U SER E XPERIENCE & UI. Designing Effective Navigation Implementing Effective Navigation Notifying the User Adding Search Functionality

CUSTOM DRAWING

The most important part of a custom view is its appearance. Custom drawing can be easy or complex according to your application's needs.

Codes:http://developer.android.com/training/custom-views/custom-drawing.html

Page 51: B EST P RACTICES FOR U SER E XPERIENCE & UI. Designing Effective Navigation Implementing Effective Navigation Notifying the User Adding Search Functionality

MAKING THE VIEW INTERACTIVE

Drawing a UI is only one part of creating a custom view. You also need to make your view respond to user input in a way that closely resembles the real-world action you're mimicking. Objects should always act in the same way that real objects do. 

Codes:http://developer.android.com/training/custom-views/making-interactive.html

Page 52: B EST P RACTICES FOR U SER E XPERIENCE & UI. Designing Effective Navigation Implementing Effective Navigation Notifying the User Adding Search Functionality

OPTIMIZING THE VIEW

Now that you have a well-designed view that responds to gestures and transitions between states, you need to ensure that the view runs fast. To avoid a UI that feels sluggish or stutters during playback, you must ensure that your animations consistently run at 60 frames per second

Related information:http://developer.android.com/training/custom-views/optimizing-view.html

Page 54: B EST P RACTICES FOR U SER E XPERIENCE & UI. Designing Effective Navigation Implementing Effective Navigation Notifying the User Adding Search Functionality

ABSTRACTING THE NEW APIS

Suppose you want to use action bar tabs as the primary form of top-level navigation in your application. Unfortunately, theActionBar APIs are only available in Android 3.0 or later (API level 11+). Thus, if you want to distribute your application to devices running earlier versions of the platform, you need to provide an implementation that supports the newer API while providing a fallback mechanism that uses older APIs.

Related Information:http://developer.android.com/training/backward-compatible-ui/abstracting.html

Page 55: B EST P RACTICES FOR U SER E XPERIENCE & UI. Designing Effective Navigation Implementing Effective Navigation Notifying the User Adding Search Functionality

PROXYING TO THE NEW APIS

This lesson shows you how to subclass the CompatTab andTabHelper abstract classes and use new APIs. Your application can use this implementation on devices running a platform version that supports them.

Related information:http://developer.android.com/training/backward-compatible-ui/new-implementation.html

Page 56: B EST P RACTICES FOR U SER E XPERIENCE & UI. Designing Effective Navigation Implementing Effective Navigation Notifying the User Adding Search Functionality

CREATING AN IMPLEMENTATION WITH OLDER APIS

The most challenging task in using newer UI features in a backward-compatible way is deciding on and implementing an older (fallback) solution for older platform versions. In many cases, it's possible to fulfill the purpose of these newer UI components using older UI framework features.

http://developer.android.com/training/backward-compatible-ui/older-implementation.html#decide-substitute

Page 57: B EST P RACTICES FOR U SER E XPERIENCE & UI. Designing Effective Navigation Implementing Effective Navigation Notifying the User Adding Search Functionality

USING THE VERSION-AWARE COMPONENT

Now that you have two implementations of TabHelper andCompatTab—one for Android 3.0 and later and one for earlier versions of the platform—it's time to do something with these implementations. 

Codes:http://developer.android.com/training/backward-compatible-ui/using-component.html

Page 59: B EST P RACTICES FOR U SER E XPERIENCE & UI. Designing Effective Navigation Implementing Effective Navigation Notifying the User Adding Search Functionality

DEVELOPING ACCESSIBLE APPLICATIONS

Android has several accessibility-focused features baked into the platform, which make it easy to optimize your application for those with visual or physical disabilities. However, it's not always obvious what the correct optimizations are, or the easiest way to leverage the framework toward this purpose. 

Related information:http://developer.android.com/training/accessibility/accessible-app.html

Page 60: B EST P RACTICES FOR U SER E XPERIENCE & UI. Designing Effective Navigation Implementing Effective Navigation Notifying the User Adding Search Functionality

DEVELOPING AN ACCESSIBILITY SERVICE

Accessibility services are a feature of the Android framework designed to provide alternative navigation feedback to the user on behalf of applications installed on Android devices. An accessibility service can communicate to the user on the application's behalf, such as converting text to speech, or haptic feedback when a user is hovering on an important area of the screen.

Codes:http://developer.android.com/training/accessibility/service.html