This document provides best practices for designing effective user interfaces and navigation in Android apps. It covers topics like designing navigation with tabs, swipe views, and navigation drawers. It provides code examples for implementing horizontal paging between tabs using ViewPager and PagerAdapter, and adding tabs to the action bar that switch the corresponding pages in ViewPager when selected. The document aims to teach developers how to engage and guide users through an app using proper interaction patterns.
Introduction to CSS3
Text Formatting
Selectors
Box Model
Links, Backgrounds
Lists, Tables
Positioning & Layout
New features of CSS3 - transition, tranform, etc.
Introduction to jQueryMobile
Hands-on exercises
Introduction to PhoneGap
Background
Setting up the environment for Android
Handling Events
Working With The Device, The Network, And Notifications
Getting Information from the Device
Determining the Connection Type
Using Notifications
Using Alerts
Using Confirmation Dialogs
Using Beeps
Using Vibrations
Accelerometer
Using the Acceleration Object
Using Accelerometer Methods
Media
The Media Object
Using Media Methods
Camera
Using The Camera Object
Using The Getpicture Method
Using Camera Options
Geolocation
Position, PositionError, Coord
Geolocation Methods
Geolocation Options
Deployment using Phonegap (Android)
Hands-on exercises
Storage
Available options
Db object
localStorage
Files
Filessystem
File read & write
Handling errors
Contacts
Creating contacts
Finding contacts
Handling errors
Capture
Video
Audio
Handling errors
Hands-on exercises
Introduction
Mobile Trends
Mobile Evolution
Top Ten Trends
Mobile Ecosystem
Smartphone Trends
Mobile Application Testing
Application Option
Approach to QA
Challenges
Implementation
Introduction to CSS3
Text Formatting
Selectors
Box Model
Links, Backgrounds
Lists, Tables
Positioning & Layout
New features of CSS3 - transition, tranform, etc.
Introduction to jQueryMobile
Hands-on exercises
Introduction to PhoneGap
Background
Setting up the environment for Android
Handling Events
Working With The Device, The Network, And Notifications
Getting Information from the Device
Determining the Connection Type
Using Notifications
Using Alerts
Using Confirmation Dialogs
Using Beeps
Using Vibrations
Accelerometer
Using the Acceleration Object
Using Accelerometer Methods
Media
The Media Object
Using Media Methods
Camera
Using The Camera Object
Using The Getpicture Method
Using Camera Options
Geolocation
Position, PositionError, Coord
Geolocation Methods
Geolocation Options
Deployment using Phonegap (Android)
Hands-on exercises
Storage
Available options
Db object
localStorage
Files
Filessystem
File read & write
Handling errors
Contacts
Creating contacts
Finding contacts
Handling errors
Capture
Video
Audio
Handling errors
Hands-on exercises
Introduction
Mobile Trends
Mobile Evolution
Top Ten Trends
Mobile Ecosystem
Smartphone Trends
Mobile Application Testing
Application Option
Approach to QA
Challenges
Implementation
HTML5 Home
HTML5 Forms
HTML5 Reference
HTML5 Tags
HTML5 Canvas
Audio And Video
HTML5 new features
New Elements
New Attributes
Full CSS3 Support
Video and Audio
2D/3D Graphics
Local Storage
Local SQL Database
Web Applications
Introduction to PhoneGap
Background
Setting up the environment for Android
Handling Events
Working With The Device, The Network, And Notifications
Getting Information from the Device
Determining the Connection Type
Using Notifications
Using Alerts
Using Confirmation Dialogs
Using Beeps
Using Vibrations
Accelerometer
Using the Acceleration Object
Using Accelerometer Methods
Media
The Media Object
Using Media Methods
Camera
Using The Camera Object
Using The Getpicture Method
Using Camera Options
Geolocation
Position, PositionError, Coord
Geolocation Methods
Geolocation Options
Deployment using Phonegap (Android)
Hands-on exercises
Storage
Available options
Db object
localStorage
Files
Filessystem
File read & write
Handling errors
Contacts
Creating contacts
Finding contacts
Handling errors
Capture
Video
Audio
Handling errors
Hands-on exercises
Mobile applications testing (challenges, tools & techniques)Rakesh Jha
Device Fragmentation is a Big Challenge
Devices Vary in Screen Size, Memory, Processing Power, Hardware Features etc.
Apple iPhone is Least Fragmented among All Mobile Platforms
Testing on All Target Handset/Devices
Almost Impractical if Number of Target Handsets is Large
Testing on All Target Operator Networks
Almost Impractical if Number of Target Operators is Large
Network Operator may Impose Certain Constraints
Introduction to jquery mobile with PhonegapRakesh Jha
Introduction to jQuery Mobile (jQM) - cont'd
Getting started with jQM
-Downloading the Most Recent Version of jQuery Mobile
-Proper Markup for Loading Framework JavaScript and CSS
jQuery Mobile Page Structure
-Page Anatomy: Header, Footer and Content Sections
-Header and Footer Toolbars
-Bundling Pages into a Single Document
-Navigating Between Pages
Applying Different Theme Swatches
Page Initialization Events
jQuery Mobile Page Components
Basic Content Formatting
List Views
-Ordered and Unordered Lists
-Inset Lists
-Lists with Links
-Nested Lists
-Lists with Icons or Thumbnail Images
-Split Button Lists
-List Dividers
-Search Filters
Form Controls - check boxes, slider, etc.
Advanced JQuery Mobile tutorial with Phonegap Rakesh Jha
Introduction to jQuery Mobile (jQM) - cont'd
Getting started with jQM
-Downloading the Most Recent Version of jQuery Mobile
-Proper Markup for Loading Framework JavaScript and CSS
jQuery Mobile Page Structure
-Page Anatomy: Header, Footer and Content Sections
-Header and Footer Toolbars
-Bundling Pages into a Single Document
-Navigating Between Pages
Applying Different Theme Swatches
Page Initialization Events
jQuery Mobile Page Components
Basic Content Formatting
List Views
-Ordered and Unordered Lists
-Inset Lists
-Lists with Links
-Nested Lists
-Lists with Icons or Thumbnail Images
-Split Button Lists
-List Dividers
-Search Filters
Form Controls - check boxes, slider, etc.
Dialogs
Buttons and Toolbars
-Ways to Make a Button
-Placing Icons on Your Buttons
-Inline Buttons
-Button Groupings
-Navigation Toolbars
Collapsible Content
Event Handling
-Responding to various events
-Page related events
Ajax & Interaction with server (REST & SOAP)
Deployment using Phonegap (e.g. Android)
Overview of Android Devt Environment
Best Practices in jQM
Hands-on exercises
Materi yang ada pada slide ini berisi :
Android version
Platform architecture
App Component
Kotlin
Struktur Project
Activity Lifecycle
Melempar Nilai
Layouting LinearLayout
Layouting RelativeLayout
Look And Feel
Custom Buttom
----------------------------------------------------------------------
Keep in touch with me in :
Email : rizkiadamunikom@gmail.com
HTML5 Home
HTML5 Forms
HTML5 Reference
HTML5 Tags
HTML5 Canvas
Audio And Video
HTML5 new features
New Elements
New Attributes
Full CSS3 Support
Video and Audio
2D/3D Graphics
Local Storage
Local SQL Database
Web Applications
Introduction to PhoneGap
Background
Setting up the environment for Android
Handling Events
Working With The Device, The Network, And Notifications
Getting Information from the Device
Determining the Connection Type
Using Notifications
Using Alerts
Using Confirmation Dialogs
Using Beeps
Using Vibrations
Accelerometer
Using the Acceleration Object
Using Accelerometer Methods
Media
The Media Object
Using Media Methods
Camera
Using The Camera Object
Using The Getpicture Method
Using Camera Options
Geolocation
Position, PositionError, Coord
Geolocation Methods
Geolocation Options
Deployment using Phonegap (Android)
Hands-on exercises
Storage
Available options
Db object
localStorage
Files
Filessystem
File read & write
Handling errors
Contacts
Creating contacts
Finding contacts
Handling errors
Capture
Video
Audio
Handling errors
Hands-on exercises
Mobile applications testing (challenges, tools & techniques)Rakesh Jha
Device Fragmentation is a Big Challenge
Devices Vary in Screen Size, Memory, Processing Power, Hardware Features etc.
Apple iPhone is Least Fragmented among All Mobile Platforms
Testing on All Target Handset/Devices
Almost Impractical if Number of Target Handsets is Large
Testing on All Target Operator Networks
Almost Impractical if Number of Target Operators is Large
Network Operator may Impose Certain Constraints
Introduction to jquery mobile with PhonegapRakesh Jha
Introduction to jQuery Mobile (jQM) - cont'd
Getting started with jQM
-Downloading the Most Recent Version of jQuery Mobile
-Proper Markup for Loading Framework JavaScript and CSS
jQuery Mobile Page Structure
-Page Anatomy: Header, Footer and Content Sections
-Header and Footer Toolbars
-Bundling Pages into a Single Document
-Navigating Between Pages
Applying Different Theme Swatches
Page Initialization Events
jQuery Mobile Page Components
Basic Content Formatting
List Views
-Ordered and Unordered Lists
-Inset Lists
-Lists with Links
-Nested Lists
-Lists with Icons or Thumbnail Images
-Split Button Lists
-List Dividers
-Search Filters
Form Controls - check boxes, slider, etc.
Advanced JQuery Mobile tutorial with Phonegap Rakesh Jha
Introduction to jQuery Mobile (jQM) - cont'd
Getting started with jQM
-Downloading the Most Recent Version of jQuery Mobile
-Proper Markup for Loading Framework JavaScript and CSS
jQuery Mobile Page Structure
-Page Anatomy: Header, Footer and Content Sections
-Header and Footer Toolbars
-Bundling Pages into a Single Document
-Navigating Between Pages
Applying Different Theme Swatches
Page Initialization Events
jQuery Mobile Page Components
Basic Content Formatting
List Views
-Ordered and Unordered Lists
-Inset Lists
-Lists with Links
-Nested Lists
-Lists with Icons or Thumbnail Images
-Split Button Lists
-List Dividers
-Search Filters
Form Controls - check boxes, slider, etc.
Dialogs
Buttons and Toolbars
-Ways to Make a Button
-Placing Icons on Your Buttons
-Inline Buttons
-Button Groupings
-Navigation Toolbars
Collapsible Content
Event Handling
-Responding to various events
-Page related events
Ajax & Interaction with server (REST & SOAP)
Deployment using Phonegap (e.g. Android)
Overview of Android Devt Environment
Best Practices in jQM
Hands-on exercises
Materi yang ada pada slide ini berisi :
Android version
Platform architecture
App Component
Kotlin
Struktur Project
Activity Lifecycle
Melempar Nilai
Layouting LinearLayout
Layouting RelativeLayout
Look And Feel
Custom Buttom
----------------------------------------------------------------------
Keep in touch with me in :
Email : rizkiadamunikom@gmail.com
Using Ajax to improve your user experience at Web Directions South 2009Peak Usability
AJAX is changing the way that users interact with websites - it has the potential to provide richer and more interactive online user experiences but also introduces its own set of usability and accessibility problems. This session presents views from leading usability experts from around the world from an experienced practitioner workshop conducted at the Usability Professionals Conference in USA.
We will also discuss key usability issues we have unveiled through our own usability testing of a range of websites using AJAX over the last 2 years. The session highlights some of the pitfalls and user frustrations with AJAX as well as how AJAX can be used to enhance the user experience. We will present usability and accessibility issues and common user behaviours with AJAX applications.
Finally we discuss interaction design guidelines for developing user friendly AJAX designs.
Navigation in flutter – how to add stack, tab, and drawer navigators to your ...Flutter Agency
If we design or develop apps, we have to focus on the type of navigation used. Of course, as a developer, it is a must to try Flutter as the best framework.
Learn basic architecture principles of React-Native, how it works and what exactly is the process of creating native mobile applications with JavaScript.
User-Centered Design
The Elements of User Experience
Navigation Model
Wireframes
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2014.
http://www.ivanomalavolta.com
Mobile Applications Development - Lecture 4
Information Architecture & UI Design:
Sitemaps & Wireframing
This presentation has been developed in the context of the Mobile Applications Development course at the Computer Science Department of the University of L’Aquila (Italy).
http://www.di.univaq.it/malavolta
The Elements of User Experience
Navigation Model
Wireframes
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2015.
http://www.ivanomalavolta.com
Similar to User experience and interactions design (20)
One of the most important factor for failure or delaying in Project deliverable is Project Manager and not having clear picture and agenda by manager.
So, question is being a good project manager, make sure that deliverable's on time, what are the key points project manager should follow.
What is mobile wallet
MW is a solution for commercial transaction across domain and geography. Such as Osaifu Keitai, Smart Wallet, Softcard, Google Wallet, Passbook, MasterPass etc. Lots of solutions is available in market but still mobile wallets are n an early stage of market.
If we defined Mobile Wallet in One line, it is equivalent to the physical wallet (wallet in pocket) and which can be used for purchasing goods, cloths, services at any time and any location. It can be in form of ID or social security card, health card, payment card, tickets for transport, or movies or events, hotel bill, gift and coupons.
Native development kit (ndk) introductionRakesh Jha
Native development kit (ndk) introduction
Topics covered include •
o What is an NDK and Why NDK? •
o Java Native Interface (JNI) •
o Using NDK •
o NDK and JNI by Example •
o NDK's Stable APIs
• Android NDK Multithreading
o Introduction To NDK Native Threading
o Creating and terminating native threads at Android NDK
Build with pthreads
Thread creation
Thread termination
o Synchronizing native threads with conditional variables at Android NDK
Initialize and destroy conditional variables
o Synchronizing native threads with semaphore at Android NDK
Initialize and destroy a semaphore
o Managing data for native threads at Android NDK
Multithreading and concurrency in androidRakesh Jha
Here you will learn -
What is Multithreading
What is concurrency
Process Vs Thread
Improvements and issues with concurrency
Limits of concurrency gains
Concurrency issues
Threads pools with the Executor Framework
AsyncTask and the UI Thread
Code
Android installation & configuration, and create HelloWorld Project
User experience and interactions design
1. User Experience and Interactions
Design
Rakesh Kumar Jha
M. Tech, MBA
Delivery Manager
2. Best Practices for Interaction and
Engagement
• These classes teach you how to engage and
retain your users by implementing the best
interaction patterns for Android.
3. Best Practices for Interaction and
Engagement
1. Designing Effective Navigation
2. Implementing Effective Navigation
3. Notifying the User
4. Adding Search Functionality
5. Making Your App Content Searchable by
Google
4. Designing Effective Navigation
1. Planning Screens and Their Relationships
2. Planning for Multiple Touchscreen Sizes
3. Providing Descendant and Lateral Navigation
4. Providing Ancestral and Temporal Navigation
5. Putting it All Together: Wireframing the
Example App
5. Implementing Effective Navigation
1. Creating Swipe Views with Tabs
2. Creating a Navigation Drawer
3. Providing Up Navigation
4. Providing Proper Back Navigation
5. Implementing Descendant Navigation
6. Notifying the User
1. Building a Notification
2. Preserving Navigation when Starting an
Activity
3. Updating Notifications
4. Using Big View Styles
5. Displaying Progress in a Notification
7. Adding Search Functionality
1. Setting up the Search Interface
2. Storing and Searching for Data
3. Remaining Backward Compatible
8. Making Your App Content Searchable
by Google
1. Enabling Deep Links for App Content
2. Specifying App Content for Indexing
10. Planning Screens and Their
Relationships
• 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.)
11. Planning for Multiple Touchscreen
Sizes
• Designing applications for television sets also
requires attention to other factors, including
interaction methods (i.e., the lack of a touch
screen), legibility of text at large reading
distances, and more.
• Although this discussion is outside the scope
of this class,
12. Planning for Multiple Touchscreen
Sizes
• Group Screens with Multi-pane Layouts
• Design for Multiple Tablet Orientations
• Group Screens in the Screen Map
• Android Design: Multi-pane Layouts
• Designing for Multiple Screens
14. Putting it All Together: Wireframing
the Example App
• Choose Patterns
• Sketch and Wireframe
• Create Digital Wireframes
15. Putting it All Together: Wireframing
the Example App
• Wireframing is the step in the design process
where you begin to lay out your screens. Get
creative and begin imagining how to arrange
UI elements to allow users to navigate your
app. Keep in mind that at this point, pixel-perfect
precision (creating high-fidelity
mockups) is not important
16. Putting it All Together: Wireframing
the Example App
• Wireframing is the step in the design process
where you begin to lay out your screens. Get
creative and begin imagining how to arrange
UI elements to allow users to navigate your
app. Keep in mind that at this point, pixel-perfect
precision (creating high-fidelity
mockups) is not important
18. Designing Effective Navigation
• how to implement the key navigation design
patterns detailed in the Designing Effective
Navigation
19. Designing Effective Navigation
• how to implement the key navigation design
patterns detailed in the Designing Effective
Navigation
• how to implement navigation patterns with
tabs, swipe views, and a navigation drawer
• Several elements require the Support
Library APIs.
20. Creating Swipe Views with Tabs
• Learn how to implement tabs in the action bar
and provide horizontal paging (swipe views) to
navigate between tabs or left navigationbar.
• wipe views provide lateral navigation between
sibling screens such as tabs with a horizontal
finger gesture (a pattern sometimes known as
horizontal paging)
21. Creating Swipe Views with Tabs
• <?xml version="1.0" encoding="utf-8"?>
<android.support.v4.view.ViewPager
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
• To insert child views that represent each page, you need to hook this
layout to a PagerAdapter. There are two kinds of adapter you can use:
22. Creating Swipe Views with Tabs
• FragmentPagerAdapter –
This is best when navigating between sibling
screens representing a fixed, small number of
pages.
• FragmentStatePagerAdapter –
This is best for paging across a collection of objects
for which the number of pages is undetermined. It
destroys fragments as the user navigates to other
pages, minimizing memory usage.
23. Creating Swipe Views with Tabs
public class CollectionDemoActivity extends FragmentActivity {
// When requested, this adapter returns a DemoObjectFragment,
// representing an object in the collection.
DemoCollectionPagerAdapter mDemoCollectionPagerAdapter;
ViewPager mViewPager;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_collection_demo);
// ViewPager and its adapters use support library
// fragments, so use getSupportFragmentManager.
mDemoCollectionPagerAdapter =
new DemoCollectionPagerAdapter(
getSupportFragmentManager());
mViewPager = (ViewPager) findViewById(R.id.pager);
mViewPager.setAdapter(mDemoCollectionPagerAdapter);
}
}
24. Creating Swipe Views with Tabs
public class DemoCollectionPagerAdapter extends FragmentStatePagerAdapter {
public DemoCollectionPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int i) {
Fragment fragment = new DemoObjectFragment();
Bundle args = new Bundle();
// Our object is just an integer :-P
args.putInt(DemoObjectFragment.ARG_OBJECT, i + 1);
fragment.setArguments(args);
return fragment;
}
@Override
public int getCount() {
return 100;
}
@Override
public CharSequence getPageTitle(int position) {
return "OBJECT " + (position + 1);
}
}
25. Creating Swipe Views with Tabs
/ Instances of this class are fragments representing a single
// object in our collection.
public static class DemoObjectFragment extends Fragment {
public static final String ARG_OBJECT = "object";
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
// The last two arguments ensure LayoutParams are inflated
// properly.
View rootView = inflater.inflate(
R.layout.fragment_collection_object, container, false);
Bundle args = getArguments();
((TextView) rootView.findViewById(android.R.id.text1)).setText(
Integer.toString(args.getInt(ARG_OBJECT)));
return rootView;
}
}
26. Add Tabs to the Action Bar
• Action bar tabs offer users a familiar interface
for navigating between and identifying sibling
screens in your app.
27. @Override
public void onCreate(Bundle savedInstanceState) {
final ActionBar actionBar = getActionBar();
...
// Specify that tabs should be displayed in the action bar.
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
// Create a tab listener that is called when the user changes tabs.
ActionBar.TabListener tabListener = new ActionBar.TabListener() {
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
// show the given tab
}
public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) {
// hide the given tab
}
public void onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) {
// probably ignore this event
}
};
// Add 3 tabs, specifying the tab's text and TabListener
for (int i = 0; i < 3; i++) {
actionBar.addTab(
actionBar.newTab()
.setText("Tab " + (i + 1))
.setTabListener(tabListener));
}
}
28. Change Tabs with Swipe Views
@Override
public void onCreate(Bundle savedInstanceState) {
...
// Create a tab listener that is called when the user changes tabs.
ActionBar.TabListener tabListener = new ActionBar.TabListener() {
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction
ft) {
// When the tab is selected, switch to the
// corresponding page in the ViewPager.
mViewPager.setCurrentItem(tab.getPosition());
}
...
};
}