Large screens expand the user experience. The large screens of tablets, foldables, and Chrome OS devices showcase content, facilitate multitasking, and enable user interfaces not possible on small screens.
To get started with large screen development, follow the large screen app quality guidelines. The guidelines are a comprehensive set of requirements designed to help make your app the best it can be on large screens.
The quality guidelines are organized in three tiers: Large screen ready, Large screen optimized, and Large screen differentiated. Add large screen capabilities to your app by progressively working through the tiers, starting with Large screen ready. If you have an existing app, use the testing scenarios to determine the tier your app currently supports. Then, implement features tier by tier until your app is uniquely differentiated for large screens.
Large screen ready
Your app is large screen ready when users are able to access all of your app's functionality on a large screen device. The app supports portrait and landscape orientations and multi-window mode, but the app layout and user interface might be less than optimal.
Configuration changes and continuity
Configuration changes such as device rotations, window size changes in multi-window mode, and folding or unfolding a foldable device can cause users to lose context or, even worse, data.
Make sure your app retains or restores its state during configuration changes and resumes ongoing processes such as media playback.
For more information, see the following developer guides:
Large screens make multi-window mode more usable and productive. Enable your app to run in multi-window mode alongside other apps either in split-screen mode or free-form mode.
When your app is in multi-window mode, use the
WindowMetrics API to accurately determine the size of the app window.
See Multi-window support.
As of Android 10 (API level 29), when a device is in multi-window mode, unfocused activities remain in the
RESUMED state. (Prior to Android 10, unfocused activities remained in the
STARTED, but not
Ensure your app supports multi-resume by continuing ongoing processes such as media playback or file downloads when the app is not the focused app. Your app must also handle the loss of exclusive resources such as the device camera and microphone.
If your app includes a camera preview, validate the preview for orientation and aspect ratio on large screens. Large screen foldables in portrait orientation can have a landscape aspect ratio. Multi-window mode can display apps in portrait orientation in a resizable window when the device is landscape.
See the following:
A media projection creates a virtual display based on the bounds of the real (source) display. The real display is the entire device screen, even if the device is in multi-window mode and the app creating the media projection is running in a window.
To get the correct bounds for your large screen media projection, use the
WindowMetrics API introduced in Android 11 (API level 30) or, for compatibility down to API level 14, the Jetpack WindowManager
Basic support for external input devices
Users often connect an external keyboard or mouse to tablets. Chromebooks come with built-in keyboards and trackpads. Support external input devices by enabling your app to handle keyboard, mouse, and trackpad actions such as the following:
- Clicking buttons, input fields, and navigation icons
- Selecting menu items, radio buttons, checkboxes, and text
- Scrolling vertically and horizontally in scrollable elements such as lists
Large screen optimized
When your app is optimized for large screens, the user experience is immersive, productive, and engaging—users will love your app on large screen devices.
To support screens large and small, design responsive/adaptive layouts that provide an optimal user experience on devices of all kinds.
Start by familiarizing yourself with the following:
Window size classes
Window size classes are a set of opinionated viewport breakpoints that help you implement responsive/adaptive design. Use window size classes to categorize the display area available to your app as compact, medium, or expanded, and then apply an optimized layout.
Adaptive app navigation
On small screens, a bottom navigation bar works well, but on large screens a navigation rail or navigation drawer makes better use of the increased screen space. Adapt your app navigation to changes in screen size.
Responsive UI elements
Format UI elements based on screen size. Constrain the width of buttons, cards, and text fields that are full width on small screens to a functionally appropriate size on large screens. Don't let dialog boxes and other modal windows fill the entire screen. Position context menus and other element-related pop-up displays adjacent to the element the user selected, not centered on screen.
Optimize your app for accessibility (a11y) features such as Tab and arrow key navigation. Provide keyboard shortcuts for commonly used actions such as select, copy, cut, and paste. Enable keyboard control of media playback; for example, enable the space bar to play and pause media, or the Enter key to send messages in communication apps.
Enhanced support for external input devices
Large screen optimized apps provide enhanced support for keyboard, mouse, and trackpad input. Options menus are accessible by mouse and trackpad right-click behavior. App content can be zoomed using the mouse scroll wheel and trackpad pinch gestures. UI elements have hover states.
Large screen differentiated
Large screen differentiated apps stand out from the app store crowd. Differentiated apps provide a user experience that can't be matched on small screens.
Differentiation is app specific. Implement the requirements appropriate for your application.
Large screens facilitate multitasking. Multi-window mode enables multitasking, but so do the special display modes picture-in-picture and multi-instance.
If your app plays video content, implement picture-in-picture mode so your app can continue video playback while the user interacts with another app.
Increase productivity in apps such as document editors or content managers by enabling two or more instances of the app to run at the same time.
Large screen foldable devices are like a phone and tablet in one. Folding features such as tabletop posture and book posture offer new user experience possibilities. Differentiate your app by supporting the unique features of foldable devices.
See the following:
Drag and drop
Large screens are perfect for drag and drop interactions—within an app or, on Android 7.0 (API level 24) and higher, between apps in multi-window mode.
Increase user productivity and engagement by adding drag and drop capabilities to your app.
See Drag and drop.
Differentiated support for external input devices
Provide desktop-like support for external input devices. Create a comprehensive set of customizable keyboard shortcuts. Enable keyboard and mouse or keyboard and trackpad combinations, such as Ctrl+click, Shift+click, and Ctrl+tap, Shift+tap to provide extended capabilities.
Display a scrollbar while content is being scrolled using a mouse or trackpad. Reveal hidden content elements such as fly-out menus or tooltips on mouse or trackpad hover. Include desktop-style menus and context menus. Make UI panels resizable with a mouse or trackpad. Enable multiple clicks with a mouse, multiple taps with a trackpad.
Top-tier apps support stylus-equipped large screen devices. A stylus can be used to manipulate UI elements, draw, write, erase, drag and drop—all kinds of touch and gesture interactions.
Enhanced stylus support includes pressure sensitivity, tilt detection, and palm and finger rejection (so stray touches don't register).
Provide an exceptional user experience on premium devices by fully supporting stylus input.
See the resources cited in the sections above for the features that apply to your application. Then, refer to the large screen app quality guidelines to get started building your app to be large screen ready, optimized, and differentiated.
- Building for large screens video collection