Usability Matters: Six Dimensions Of App Design

Usability Matters: Six Dimensions Of App Design

by Matt Lacey
Usability Matters: Six Dimensions Of App Design

Usability Matters: Six Dimensions Of App Design

by Matt Lacey

Paperback(1st Edition)

$44.99 
  • SHIP THIS ITEM
    Qualifies for Free Shipping
  • PICK UP IN STORE
    Check Availability at Nearby Stores

Related collections and offers


Overview

Summary

Usability Matters: Mobile-first UX for developers and other accidental designers gives you practical advice and guidance on how to create attractive, elegant, and useful user interfaces for native and web-based mobile apps.

Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.

About the Technology

Just because a mobile app works doesn't mean real people are going to like it. Usability matters! Most mobile developers wind up being part-time designers, and mastering a few core principles of mobile UI can make the difference between app and crap.

About the Book

Usability Matters is a guide for developers wrestling with the subtle art of mobile design. With each expertly presented example, app developer and designer Matt Lacey provides easy-to-implement techniques that instantly boost your design IQ. Skipping highbrow design theory, he addresses topics like gracefully handling network dropouts and creating intuitive data inputs. Read this book and your apps will look better, your users will be happier, and you might even get some high-fives at the next design review.

What's Inside

  • Understanding your users
  • Optimizing input and output
  • Creating fast, responsive experiences
  • Coping with poor network conditions
  • Managing power and resources

About the Reader

This book is for mobile developers working on native or web-based apps.

About the Author

Matt Lacey is an independent mobile developer and consultant and a Microsoft MVP. He's built, advised on, and contributed to apps for social networks, film and TV broadcasters, travel companies, banks and financial institutions, sports companies, news organizations, music-streaming services, device manufacturers, and electronics retailers. These apps have an installed base of more than 500,000,000 users and are used every day around the world.

Matt previously worked at a broad range of companies, doing many types of development. He has worked at startups, small ISVs, national enterprises, and global consultancies, and written software for servers, desktops, devices, and industrial hardware in more languages than he can remember. He lives in the UK with his wife and two children.

Table of Contents

  1. Introduction
  2. Who's using the app?
  3. Where and when is the app used?
  4. What device is the app running on?
  5. How people interact with the app
  6. User-entered data
  7. Data not from a user
  8. Displaying items in the app
  9. Non-visible output
  10. Understanding the perception of time
  11. Making your app start fast
  12. Making your app run fast
  13. Coping with varying network conditions
  14. Managing power and resources

Product Details

ISBN-13: 9781617293931
Publisher: Manning
Publication date: 08/17/2018
Edition description: 1st Edition
Pages: 392
Sales rank: 612,538
Product dimensions: 7.30(w) x 9.10(h) x 0.60(d)

About the Author

Matt Lacey is an independent mobile developer and consultant and a Microsoft MVP. He's built, advised on, and contributed to apps for social networks, film and TV broadcasters, travel companies, banks and financial institutions, sports companies, news organizations, music-streaming services, device manufacturers, and electronics retailers. These apps have an installed base of more than 500,000,000 users and are used every day around the world. Matt previously worked at a broad range of companies, doing many types of development. He has worked at startups, small ISVs, national enterprises, and global consultancies, and written software for servers, desktops, devices, and industrial hardware in more languages than he can remember. He lives in the UK with his wife and two children.

Table of Contents

Preface xvii

Acknowledgments xviii

About this book xix

1 Introduction 1

1.1 What's usability, and why does it matter? 1

Usability matters to everyone 2

Usability, UX, and design 2

The formula for app success 3

Great usability experiences are intuitive 5

1.2 Six components of great app experiences 6

Context of use underpins everything in an app 6

Input includes all ways data and information get into the app 7

Output includes and goes beyond what is shown onscreen 8

Responsiveness: how output is perceived 8

Connectivity changes and isn't always guaranteed 9

Resources are finite and must be managed 10

1.3 How considering all six components can make apps better 10

Example 1 An email client 11

Example 2 A nexus app 13

Example 3 A tower defense game 15

1.4 Why you need to consider the six components in your apps 17

Experience is an important differentiator 17

Meet the expectations of those who'll use your app 20

Planning for success 21

Part 1 Context 25

2 Who's using the app? 27

2.1 You aren't your users 28

How you're different from your users 28

You're not an average user 31

Be aware of the effects on your thinking 32

2.2 Who's the app for? 33

Who'll get value from your app? 34

Understanding the potential user base 35

Are there enough people who want the app? 36

Targeting groups of individuals 39

Putting on a persona, or several 40

Enterprise app usage 42

2.3 People aren't all the same 43

Consider people's differing abilities 44

Consider people's differing expectations 45

Consider people's differing goals 47

2.4 What are people doing? 49

What are people doing with the app? 49

What else are people doing? 53

3 Where and when is the app used? 57

3.1 Where is the app used? 57

App usage at a macro-geographic level 58

App usage at a micro-geographic level 60

3.2 The regional impact on an app 61

Considering support, for multiple languages 61

How culture and locale can impact an app 65

3.3 When is the app used? 70

Consider the time of day 70

Consider the day of the week 72

Consider the time of year 73

How long is the app used? 74

3.4 What activities are being undertaken while using the app? 78

Is the person using the app moving or stationary? 78

Is the user dedicated or distracted? 79

Is use isolated or in conjunction with something else? 80

Are they-standing, sitting, or lying down? 81

4 What device is the app running on? 83

4.1 Write once, run everywhere? 84

4.2 Supporting multiple operating systems 86

OS-imposed restrictions 86

Looking like you belong on the OS 87

Belonging on a version of the OS 89

Belonging in the enterprise 89

4.3 Maintaining brand identity and differentiation 90

Branding vs. visual identity 91

Separating your brand from the OS 91

Maintaining OS conventions while still reflecting a brand 93

4.4 Supporting different device capabilities 93

Handling multiple physical device sizes 94

Variations in internal hardware capability 97

Accounting for software variations 100

Part 2 Input 103

5 How people interact with the app 105

5.1 Supporting different pointing devices 106

Providing input with a finger 107

Providing input with a stylus 112

Providing input with a mouse and the keyboard 114

5.2 Using a pointing device to provide input 116

Supporting gesture-based input 116

Supporting multi-touch input 119

5.3 When pointing and touch input become difficult 121

Touch events don't always do what the user wants 121

Raw input events need special attention 123

6 User-entered data 126

6.1 The goals of the people using the app 127

Improve tasks by minimizing input 128

Improve tasks with defaults and suggestions 134

Improve tasks with alternative inputs 136

6.2 How to ask for data to be entered in forms 138

Optimizing how the form is arranged 138

Simplify how text is entered 143

Password entry requires special consideration 146

Simplifying entry from a fixed set of options 149

Validation and required fields 151

7 Data not from a user 155

7.1 Data from web-based resources 156

Dealing with the data you directly request 156

Dealing with data pushed to the app 158

7.2 Getting data from the device 161

Input from the operating system 162

Data from, the filesystem 163

Data from, other apps 164

7.3 Getting data from sensors 166

Transparency and permission when using sensor data 166

Allow for variations in sensor input 168

7.4 Using heuristics and inferring input 171

Enhancing the app experience based on an individual's usage 171

Enhancing the app experience based on the usage of all people 172

Part 3 Output 175

8 Displaying items in the app 177

8.1 The fundamentals of good visual output 178

Focus on the person using the app and their goals 178

Meet the expectations of the people using the app 178

Account for the specific device being used 179

Respect standards and conventions 180

8.2 Laying out controls on a screen 181

Implying meaning and relationships through alignment and hierarchy 182

Implying meaning and relationships through consistency 183

Implying meaning and relationships through proximity 184

8.3 Navigating within the app 186

Common navigation patterns 186

Special navigation considerations 188

8.4 Avoiding discrimination with what you display 191

Ensure your UI works for everybody 191

Saying Ike same thing to everybody who uses the app 192

8.5 Many factors affect the display of images 193

One size doesn't fit all 193

Physical size isn't everything: consider formats and formatting too 196

Customizing image placeholders 198

8.6 Use distinct icons with specific meanings 200

8.7 Allow for extremes of connectivity and content 202

Content that loads slowly or doesn't load at all 202

When content isn't available 203

Avoiding empty states 203

9 Non-visible output 207

9.1 Physical and audio output support changes onscreen 208

Give your app a voice 208

Haptic feedback starts with vibration 210

9.2 Output to other apps and devices 212

9.3 Communicating from your backend 214

Allowing for multichannel communication 215

Sending effective push notifications 216

Using badges with push notifications 219

9.4 Communication via channels beyond the app 221

Using email to communicate with your users 221

Using SMS to communicate with your users 223

Using third-party messaging services to communicate with your users 223

Part 4 Responsiveness 227

10 Understanding the perception of time 229

10.1 How people perceive mobile time 230

Context influences the perception of responsiveness 230

Perception is about feelings, opinions, and comparisons 231

Being responsive with notifications 233

Meet expectations, don't just be as fast as possible 234

10.2 Influencing the perception of responsiveness 236

Answer questions about what the app is doing 236

Show appropriate progress when something's happening 240

Animation can hide delays 240

Usable isn't the same as finished 241

10.3 Perceptions associated with the age of your app 243

11 Making your app start fast 248

11.1 Doing the minimum to start the app 249

Deciding what to do on startup 249

Displaying a splash screen when launching the app 252

11.2 Preloading content to make the app faster 254

Preloading content to distribute with the app 254

Preloading content for the app's next use 255

11.3 Preformatting content retrieved by the app 257

11.4 Caching content to save time and money 259

Using in-memory and disk-based caches 260

Checking for new versions of cached items 262

When to invalidate and delete cached items 264

12 Making your app run fast 268

12.1 Using eager loading so people don't have to wait 269

Eager loading complements preloading content 270

Beware of being too eager 272

Knowing what to load eagerly 272

12.2 Parallel operations take less time 273

Synchronous and asynchronous operations 275

Advice when working in parallel 276

12.3 Combining requests for improved speed and control 279

Controlling the server your app connects to 279

Getting faster responses by combining requests 280

Simplifying the client by combining requests 281

Combining requests and local files 282

Part 5 Connectivity 285

13 Coping with varying network conditions 287

13.1 Not all connections are the same 288

Securing your connection 288

Connection-speed can vary 289

Connection cost can vary 290

13.2 Occasionally connected is the norm 292

Connections may not be possible 292

Connections may be lost 294

Connections may change 294

13.3 Optimizing for subprime conditions 296

Caching improves the experience in subprime conditions 296

Compression improves the experience in subprime conditions 296

Deferring actions increases what's possible in subprime conditions 297

Batch operations in subprime conditions 297

Automatic retries improve the experience in subprime conditions 298

13.4 Balancing usability and a poor connection 299

Prioritizing important activities in poor conditions 300

Adjusting network usage based on network conditions 301

13.5 Keeping the user in control when conditions are poor 302

Part 6 Resources 307

14 Managing power and resources 309

14.1 When it's gone, it's gone 310

14.2 Do you really need it? 313

Lazy loading reduces wasted effort 314

Using alternatives to save resources 315

14.3 How often are you going to use it? 318

Managing resources that are only used once 318

Managing resources that are used repeatedly 319

14.4 Do you still need it? 320

Turning off resources when finished 321

Responding to changing circumstances 322

Appendix A Exercise answers 324

Appendix B Put it into practice 335

Appendix C Recommended reading 348

Appendix D Bibliography 350

Index 357

From the B&N Reads Blog

Customer Reviews