SKIP THE SHIPPING
Use code NOSHIP during checkout to save 40% on eligible eBooks, now through January 5. Shop now.
Register your product to gain access to bonus material or receive a coupon.
This eBook includes the following formats, accessible from your Account page after purchase:
EPUB The open industry format known for its reflowable content and usability on supported mobile devices.
PDF The popular standard, used most often with the free Acrobat® Reader® software.
This eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.
Build Android 6 Material Design Apps That Are Stunningly Attractive, Functional, and Intuitive
As Android development has matured and grown increasingly competitive, developers have recognized the crucial importance of good design. With Material Design, Google introduced its most radical visual changes ever, and made effective design even more essential. Android 6 and the design support library continue to push mobile design forward.
In Android User Interface Design, Second Edition, leading Android developer and user experience (UX) advocate Ian G. Clifton shows how to combine exceptional usability and outstanding visual appeal. Clifton helps you build apps that new users can succeed with instantly: apps that leverage users’ previous experience previous experience, reflect platform conventions, and never test their patience.
You won’t need any design experience: Clifton walks you through the entire process, from wireframes and flowcharts to finished apps with polished animations and advanced compositing. You’ll find hands-on case studies and extensive downloadable sample code, including complete finished apps.
• Integrate Material Design into backward compatible Android 6 apps
• Understand views, the building blocks of Android user interfaces
• Make the most of wireframes and conceptual prototypes
• Apply user-centered design throughout
• Master the essentials of typography and iconography
• Use custom themes and styles for consistent visuals
• Handle inputs and scrolling
• Create beautiful transition animations
• Use advanced components like spans and image caches
• Work with the canvas, color filters, shaders, and image compositing
• Combine multiple views into efficient custom components
• Customize views to meet unique drawing or interaction requirements
• Maximize downloads by designing compelling app store assets
Step by step, this guide bridges the gap between Android developers and designers, so you can collaborate on world-class app designs...or do it all yourself!
“This well-presented, easy-to-grasp book gets to the heart of Android User Interface Design. Well worth the reading time!”
--Dr. Adam Porter, University of Maryland, Fraunhofer Center for Experimental Software Engineering
"Ian's grasp of Android is fantastic, and this book is a great read for any developer or designer. I've personally worked on 30+ Android applications, and I was learning new tips with every chapter."
--Cameron Banga, Lead Designer, 9magnets, LLC
Please visit the companion website to download the code from this book here. This repository will have the source code from each of the examples throughout the book, organized by chapter and project.
Using Advanced Techniques in Android User Interface Design
Download the sample pages (includes Chapter 10 and Index)
Introduction 1
Audience for This Book 1
Organization of This Book 1
How to Use This Book 2
This Book’s Website 2
Conventions Used in This Book 2
PART I: THE BASICS OF ANDROID USER INTERFACES
Chapter 1 Android UI and Material Design 5
A Brief History of Android Design 6
Material Design 8
The Android Design Website 13
Core Principles 14
Standard Components 20
Supporting Multiple Devices 23
Avoiding Painful Mistakes 24
Summary 26
Chapter 2 Understanding Views—The UI Building Blocks 27
What Is a View? 28
Displaying Text 34
Displaying Images 39
Views for Gathering User Input 42
Other Notable Views 45
Listening to Events 47
Other Listeners 48
Summary 49
Chapter 3 Creating Full Layouts With View Groups and Fragments 51
Understanding ViewGroup and the Common
Implementations 52
Encapsulating View Logic with Fragments 64
The Support Library 70
Summary 74
Chapter 4 Adding App Graphics and Resources 75
Introduction to Resources in Android 76
Resource Qualifiers 76
Understanding Density 81
Supported Image Files 83
Nine-Patch Images 84
XML Drawables 86
Other Resources 101
Summary 106
PART II: THE FULL DESIGN AND DEVELOPMENT PROCESS
Chapter 5 Starting A New App 107
Design Methods 108
Defining Goals 110
High-Level Flow 114
Wireframes 117
Continuing with Content Pieces 122
Summary 128
Chapter 6 Prototyping and Developing the App Foundation 129
Organizing into Activities and Fragments 130
Creating the First Prototype 131
Evaluating the First Prototype 160
Summary 165
Chapter 7 Designing the Visuals 167
Wireframes and Graphical Design 168
Tools 168
Styles 169
Lighting 171
Colors 171
Text Considerations 178
Other Considerations 183
Designing Step-by-Step 185
Summary 189
Chapter 8 Applying the Design 191
Working with the Designer 192
Slicing the Graphics Assets 193
Themes and Styles 199
Breaking Comps into Views 200
Developing the Woodworking App 201
Basic Testing Across Device Types 228
Summary 229
Chapter 9 Polishing with Animations 231
Purpose of Animations 232
View Animations 232
Property Animations 233
Property Animation Control 235
ViewPropertyAnimator 241
Animating Form Errors 242
Animating Icons 246
Simple Transitions 252
Summary 262
PART III: ADVANCED TOPICS FOR ANDROID USER INTERFACES
Chapter 10 Using Advanced Techniques 263
Identifying Jank 264
Using Systrace to Understand Jank 265
Optimizing Images 272
Additional Performance Improvements 283
Hierarchy Viewer 289
Custom Fonts 293
Complex TextViews 295
RecyclerView 299
Summary 300
Chapter 11 Working with the Canvas and Advanced Drawing 303
Creating Custom Drawables 304
Paint 305
Canvas 305
Working with Text 306
Working with Images 310
Color Filters 313
Shaders 325
Summary 330
Chapter 12 Developing Custom Views 331
General Concepts 332
Measurement 332
Layout 333
Drawing 333
Saving and Restoring State 334
Creating a Custom View 334
Summary 347
Chapter 13 Handling Input and Scrolling 349
Touch Input 350
Other Forms of Input 351
Creating a Custom View 352
Summary 385
Appendix A Google Play Assets 387
Application Description 388
The Change Log 389
Application Icon 389
Screenshots 395
Feature Graphic 397
Promotional Graphic 399
Video (YouTube) 400
Promoting Your App 400
Amazon Appstore 401
Appendix B Common Task Reference 403
Dismissing the Software Keyboard 404
Using Full Screen Mode 404
Keeping the Screen On 405
Determining the Device’s Physical Screen Size 406
Determining the Device’s Screen Size in Pixels 406
Determining the Device DPI 407
Checking for a Network Connection 408
Checking if the Current Thread Is the UI Thread 408
Custom View Attributes 409
Index 417