Designing for Mobile Apps: Overall Principles, Common Patterns, and Interface Guidelines
As part of Intuit’s core initiatives to further cultivate mobile first thinking and accelerate growth into global markets, the Intuit Small Business Group’s Design Org has shifted from a model of designing and shipping prioritized features to a model where every designer is responsible for end-to-end, cross-device experiences, which includes designing for our products and services on desktop web, mobile web, desktop client apps, and native mobile apps.
As a design lead for our ecosystem of native mobile products over the past few years, I started getting a lot of questions around guidance and principles for mobile design. I noticed many of the designers, product managers, and engineers who are new to mobile app design or don’t live and breathe mobile app development on an everyday basis didn’t fully understand the nature of designing for native platforms and device capabilities. To reinforce the notion that “cross-device” and “mobile first” isn’t just about designing for smaller screens and scaling across multiple device sizes, I collaborated with the Design Systems Team to establish a set of mobile patterns and guidelines so that designers can hit the ground running, or run even faster, with mobile design. We recently published some guidelines, tools, and resources on our internal design toolkit that I thought would be great to share some key points and takeaways with a wider audience as the documentation addresses many frequently asked questions around mobile patterns.
Firstly, I want to start off by saying that what I write here is simply for guidance. Our mantra for any kind of pattern guidelines documentation we provide is, “Give me guidance, but let me drive.” We don’t want to be prescriptive, and we don’t want to tell you how to design, but this is a good starting point to get you going on native mobile designs. Why are we calling out native mobile? As we continue to design device-agnostic, end-to-end experiences and features for products and services, we must remember not to neglect the different platforms (i.e. our mobile products are currently offered on both iOS and Android).
1. Respect the platform
We documented patterns and components based on native operating systems that we have apps on: iOS and Android. When designing for native platforms, you should consistently refer to the native OS design guidelines first for maximum quality. Keep in mind that native platform guidelines constantly evolve, so it’s always good practice to stay on top of these guidelines and refresh your memory and knowledge often.
Apple’s Human Interface Guidelines: https://developer.apple.com/ios/human-interface-guidelines/
Google’s Material Design Guidelines: https://material.io/guidelines/
2. Focus on the customer benefit
Always design for the customer benefit first. No use case is the same, and many use cases have exceptions. Do not design something simply because you can reuse a pattern or component for another feature. Design patterns help ground us as a system and unify an experience across an ecosystem of products, but they should by no means be the first or last stop in the design process. Always question yourself: How will this benefit the customer?
3. Think device first
Push your thinking beyond “mobile first.” Start thinking about leveraging device capabilities first. The native mobile device has a lot to offer: touch, voice, pressure, location tracking, accelerometer, notifications, etc. You are designing around the device, the platform, the user experience. How can these device features be utilized in our products? How can the mobile device benefit users beyond the screen interface in front of them?
4. Keep scalability in mind
Growing from the previous principle, do remember that a mobile device isn’t just a phone. Scalability across devices, more specifically between a phone and tablet, is a common challenge among designers. When we think of mobile devices, we know there are tablets, phones, phablets (not small enough to be a phone, not big enough to be a tablet). Some of the recurring questions I get asked are: Should there be parity between web and tablet designs? Can we translate the phone patterns to be the same on tablets? How do we design for phablets (not small enough to be a phone, not big enough to be a tablet)? To answer these questions, we researched with users, took an in-depth look at device interfaces and screen sizes, and set some standards. While the phone and tablet share many similarities, users use them very differently.
Mobile interfaces LESS THAN 7 inches width should be treated as a phone. Syntax and layout should be aligned across these devices as much as possible, but we also want to leverage native platform guidelines and capabilities first and foremost.
A fundamental design principle for mobile phones is to include only necessary information. Do not overload the user with more than they need to know or take action on. The phone is a convenient way to consume information on the go. Small business owners use a phone to complete quick actions while they are not in the office, capture data, view content, then perhaps close it out and come back to take a look later.
Mobile interfaces GREATER THAN 7 inches width should be treated as a tablet. Syntax and layout should be aligned across these devices as much as possible, and by no means should they need to align exactly the same as the less than 7-inch interfaces.
Tablet designs should look and feel like desktop web, but they should function like the phone (with tap/swipe/hold gestures, transitions, etc.). Many users view the tablet as a hybrid device. We’ve encountered many small business owners that don’t own a computer, but they own a tablet, and those users treat the tablet as a reliable device they can do work on.
To scale for the future or additional digital interfaces, you should also think about non-mobile touchscreens like TV displays, interactive table displays, automobile displays, laptop displays that you can touch, etc. You want to make sure you can scale for multiple screen sizes, large and small, and not limit yourself to thinking only about the devices your products are being supported by.
Patterns and Guidelines
This list is a small subset of patterns and guidelines that I’ve found designers have been commonly asking around best practices for our mobile products.
One of the major aspects that make navigating content on native mobile platforms so delightful is the transitions between screens. Two questions I get asked a lot are: When should a push (screen pushed in leftward from the right) be used? When should a modal (screen pushed upward from the bottom) be used? We’ve established the following best practices:
A push is essentially the fundamental screen transition to view a new screen that is stacked on top of the previous screen. There is typically a Back button so user can view the last viewed screen. For screens that are primarily for viewing, such as transaction detail screens or lists, we use a push.
A modal is typically used when we are requiring the user to select, edit content, or input data. All of our transaction forms use full screen modals as it requires more user thought due to several form fields on one screen. The titles bars for these screens typically have Cancel and Save or Cancel and Done actions. Then, when you tap Save, you get a push screen because you are viewing (not editing) the saved content.
Call to Actions
This section highlights a question I often get: “Should this call to action be a button or a text link?” In both iOS’ and Android’s design guidelines, text as buttons is the norm and recommendation. However, I feel when we use text, especially with a system font against a dark or light background, we lose out on a major opportunity to incorporate brand elements, such as our ecosystem green color or line iconography. So, we’ve deliberately moved away from using text as call to actions, and instead use buttons with high contrast, which also makes it very clear that it is a call to action and not just part of the screen content.
Our empty state screens provides a first impression to users who are new to our products. It usually consists of an illustration, a brief description, and a clear call to action. A common and current design trend is the usage of gray text on a light background. If you decide to follow that trend, make sure the text is readable and accessible by analyzing the foreground and background colors to meet the WCAG 2.0 color contrast ratio requirements.
Firstly, yes, it’s spelled caret, not carat or carrot. :) Carets are used to promote discoverability. Historically, we try to use carets for every instance we want to indicate that the user should tap into the row to view more. However, in our forms, we are working toward to moving away from using carets and instead utilize the extra real estate by creating visual cues and conversational content design to indicate tap targets to view more. After some user testing with different design treatments, we’ve found that discoverability isn’t as much of an issue as we thought. Users will naturally tap on rows, whether there’s more information provided to them or not. We only want to use carets when absolutely necessary.
General rule of thumb for native mobile design: Use action sheets whenever there are multiple actions associated with a single call to action (that is not a system blocker). Apple iOS guidelines calls these action sheets. Google Android calls these bottom sheets. Use action sheets/bottom sheets whenever there are multiple actions associated with a single call to action.
Cards or Tiles
A card (or tile as other teams may call it) is a component acting as a rectangular container for a certain amount of information: visual elements, instructional text, diagrams, and action triggers. There are two types of cards based on appearance and usage: action card and info card.
We use native system dialogs for critical alerts, permissions related alerts, system blocker alerts, etc. The key word is “alert.” Note that for actions that aren’t related to these things, we try to use action sheets.
The general rule for native mobile design is to use system fonts as much as possible. However, we needed to incorporate our brand and voice and tone to create what we call “QuickBooks Ownable Moments.” For large headlines and sub-headlines, we use our brand fonts. For body text, we use system fonts. For fonts within buttons, we use system fonts.
Toggle switches are used to trigger a binary operation (i.e. turning something on and off). It is used often to replace a web checkbox metaphor. We have a lot of checkboxes in our web products so when we design for native mobile, we want to make sure we are only looking to replace binary checkboxes that allows for things like enabling or disabling content, show/hide content or fields, turn on/off tax, track returns for customers, instead of checkboxes used for selecting multiple items.
Again, these are just a few guidelines to get you started or to accelerate your mobile first design process, especially for native mobile. You are the driver and designer with creative license to define the end-to-end user experience for your products and services. Trust your gut, follow your instincts, but always remember to respect the platforms, focus on the customer benefit, think device first, and keep scalability in mind!
Yvonne So is a Principal UX Designer @Intuit currently crafting meaningful experiences for small businesses around the world. With a passion and mission for making technology more inclusive of everyone, she regularly speaks and writes about mobile UX, accessibility, innovation, and empathic design.