SMASHING ANDROID UI: RESPONSIVE ANDROID UI AND DESIGN PATTERNS FOR PHONES AND TABLETS
ABOUT THE AUTHOR
AUTHOR’S ACKNOWLEDGMENTS
TABLE OF CONTENTS
INTRODUCTION
INTRODUCTION TO ANDROID DESIGN
CHAPTER 1: INTRODUCTION TO USABILITY AND USER INTERFACE DESIGN
CONSIDERING TECHNOLOGY VERSUS DESIGN
UNDERSTANDING THE MENTAL MODEL
DESIGNING FOR USERS
NO APP WILL DO EVERYTHING; PICK YOUR BATTLES
YOU ARE THE EXPERT; USERS ARE NOT DESIGNERS
KNOW YOUR USERS; DESIGN FOR REAL PEOPLE
SUMMARY
CHAPTER 2: DON’T START CODING JUST YET
PROTOTYPING
TOOLS FOR DESIGN
USER TESTING
SUMMARY
CHAPTER 3: CONSIDERATIONS IN DESIGNING FOR MOBILE AND TOUCH DEVICES
DESIGNING FOR MOBILE
DESIGNING FOR TOUCH INTERFACES
SUMMARY
CHAPTER 4: EXPLORING THE ANDROID PLATFORM
CHALLENGES OF THE ANDROID PLATFORM
ANDROID VERSIONS
ANDROID APP DISTRIBUTION
WHAT DOES OPEN SOURCE MEAN?
SUMMARY
PART II: ANDROID PLATFORM FEATURES AND UI COMPONENTS
CHAPTER 5: ANDROID APP STRUCTURE AND ONLINE GUIDELINES
ANDROID APP STRUCTURE OVERVIEW
ANDROID PROJECT STRUCTURE OVERVIEW
OFFICIAL ANDROID GUIDELINES
SUMMARY
CHAPTER 6: ANDROID INTENTS
INTENTS ALLOW APPS TO WORK TOGETHER
USING SOCIAL NETWORKS AND SHARING
WORKING WITH BROWSERS
HOW DO ANDROID INTENTS WORK?
CREATING YOUR OWN ACTIONS
INTENTS ARE EVERYWHERE
INTENTS VERSUS THIRD-PARTY APIS
SUMMARY
CHAPTER 7: ANDROID APP NAVIGATION STRUCTURE
COMPONENTS OF ANDROID NAVIGATION, ACTIVITIES, AND INTENTS
ANDROID NAVIGATION CONTROLS
SUMMARY
CHAPTER 8: HOME SCREEN APP WIDGETS
USES OF HOME SCREEN APP WIDGETS
UPDATING APP WIDGET DATA
APP WIDGET LAYOUT AND FUNCTIONALITY
IMPLEMENTING AN APP WIDGET
SUMMARY
CHAPTER 9: NOTIFYING AND INFORMING USERS
ANDROID NOTIFICATION METHODS
WHEN TO NOTIFY USERS
WHEN NOT TO NOTIFY USERS
AVOIDING POP-UPS
GETTING THE MOST FROM STATUS BAR NOTIFICATIONS
SUMMARY
CHAPTER 10: DESIGNING FOR HARDWARE BUTTONS, INPUT METHODS, AND SENSORS
DESIGNING FOR THE TOUCH SCREEN
DESIGNING PHONE HARDWARE BUTTONS
DESIGNING FOR THE ON-SCREEN KEYBOARD
DESIGNING FOR HARDWARE KEYBOARDS
DESIGNING FOR D-PADS AND TRACKBALLS
DESIGNING FOR THE STYLUS
DESIGNING FOR VOICE CONTROL
DESIGNING FOR EXTERNAL KEYBOARDS, MICE, AND TOUCHPADS
DESIGNING FOR CONNECTED SMART ACCESSORIES
DESIGNING FOR SENSORS
DESIGNING FOR A SECOND SCREEN
SUMMARY
CHAPTER 11: DESIGNING PLATFORM USER INTERFACE COMPONENTS
USING USER INTERFACE WIDGETS
CUSTOMIZING USER INTERFACE WIDGETS
ADJUSTING THE TYPOGRAPHY
USING ICONS
USING ANIMATIONS AND TRANSITIONS
SUMMARY
PART III: SCALABLE ANDROID DESIGN
CHAPTER 12: MANAGING ANDROID RESOURCES
USING ANDROID RESOURCES
DESIGNING FOR SCREEN DENSITY
DESIGNING FOR SCREEN SIZE AND FORM
DESIGNING FOR LANGUAGE AND REGION
DESIGNING FOR DEVICE CONTROLS
DESIGNING FOR PLATFORM VERSIONS
DESIGNING FOR DEVICE MODES
SUMMARY
CHAPTER 13: ANDROID APP LAYOUTS
ANDROID LAYOUT STRATEGY
LAYOUTS FROM XML AND CODE
LAYOUT MANAGERS
DEFINING A LAYOUT SIZE
SCROLLING
Z AXIS, LAYOUT ORDER
PADDING AND MARGIN
IMPORT AND MERGE LAYOUT FILES
CUSTOM LAYOUTS
ANDROID DEVELOPMENT TOOLS USER INTERFACE BUILDER
DEBUGGING LAYOUTS
SUMMARY
CHAPTER 14: SCALABLE GRAPHICS
NINE-PATCHING
DRAWABLE XML
DRAWING FROM CODE
SUMMARY
CHAPTER 15: BEYOND SCALABLE – RESPONSIVE DESIGN
MORE ANDROID DEVICES THAN JUST PHONES
UNDERSTANDING RESPONSIVE DESIGN
COMMON WAYS TO CREATE RESPONSIVE USER INTERFACES
SUMMARY
CHAPTER 16: IMPLEMENTING RESPONSIVE USER INTERFACES
INTRODUCTION TO FRAGMENTS
FRAGMENT AND ACTIVITY ARCHITECTURE
MIGRATING EXISTING APPS
LOOKING AT AN EXAMPLE APP
SUMMARY
PART IV: ANDROID UI DESIGN PATTERNS
CHAPTER 17: INTRODUCTION TO USER INTERFACE DESIGN PATTERNS
USER INTERFACE DESIGN PATTERNS
BENEFITS OF USING UI DESIGN PATTERNS
DESIGN PATTERNS IN ANDROID DESIGN GUIDELINES
USER INTERFACE DESIGN PATTERNS FOUND IN THIS BOOK
SUMMARY
CHAPTER 18: USER ACTION DESIGN PATTERNS
USING THE ACTION BAR PATTERN
USING THE QUICK ACTIONS DESIGN PATTERN
USING THE ACTION DRAWER DESIGN PATTERN
USING THE PULL-TO-REFRESH DESIGN PATTERN
USING THE SWIPE-TO-DISMISS GESTURE
SUMMARY
CHAPTER 19: NAVIGATION AND LAYOUT DESIGN PATTERNS
USING STACKED GALLERIES
USING THE DASHBOARD
USING WORKSPACES
USING SPLIT VIEW
USING THE EXPAND-IN-CONTEXT PATTERN
USING SIDE NAVIGATION
SUMMARY
CHAPTER 20: DATA DESIGN PATTERNS
USING DYNAMIC LISTS
USING THE IMAGE PLACEHOLDER PATTERN
USING THE NON-FORCED LOGIN PATTERN
USING THE DRAG-TO-REORDER HANDLE PATTERN
SUMMARY
CHAPTER 21: USER INTERFACE DESIGN ANTI-PATTERNS
AVOID USING THE SPLASH SCREEN
AVOID USING THE TUTORIAL SCREEN
AVOID USING THE CONFIRMATION WINDOW
AVOID USING THE ON-SCREEN BACK BUTTON
AVOID USING THE MENU BUTTON
AVOID HIDING THE STATUS BAR
AVOID USING SWIPE OVERLAY FOR QUICK ACTIONS
AVOID USING NON-ANDROID DESIGNS
SUMMARY
INDEX