Get started with large screens

Large screens expand your app development opportunities. The large screens of tablets, foldables, and ChromeOS 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 quality guideline tests to determine the tier your app currently supports, and 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 must support portrait and landscape orientations and multi-window mode, but the app layout and user interface can be less than optimal.

Configuration 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 and restores state during configuration changes and resumes ongoing processes such as media playback.

For more information, see the following developer guides:

Multi-window mode

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.

Multi-resume

On Android 10 (API level 29) and higher, unfocused activities remain in the RESUMED state when a device is in multi-window mode. Prior to Android 10, unfocused activities remained in the STARTED, but not RESUMED, state.

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.

See Multi-window lifecycle in Multi-window support.

Camera preview

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, and multi-window mode can display apps in portrait orientation in a resizable window when the device is landscape.

See the following:

Media projection

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 WindowMetrics API.

See Media projection on large screens.

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:

  • Selecting buttons, input fields, and navigation icons
  • Selecting menu items, radio buttons, checkboxes, and text
  • Scrolling vertically and horizontally in scrollable elements, such as lists

See Input compatibility on large screens.

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.

Responsive/adaptive layouts

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.

See Window size classes in Support different screen sizes.

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.

See Component adaptation in Large screen layouts.

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.

See Components in Material Design, including Buttons, Text fields, Menus, and Dialogs.

Accessibility

Optimize your app for accessibility (a11y) features such as Tab key 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.

See Build more accessible 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.

Multitasking

Large screens facilitate multitasking. Multi-window mode enables multitasking, but so do the special display modes picture-in-picture and multi-instance.

Picture-in-picture mode

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.

See Picture-in-picture (PiP) support.

Multi-instance mode

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.

See Multi-instance in Multi-window support.

Foldables

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/Ctrl+tap and Shift+click/Shift+tap to provide extended capabilities.

Display a scrollbar while users scroll content 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 and multiple taps with a trackpad.

Stylus

Top-tier apps support stylus-equipped large screen devices. A stylus enables users to draw, write, erase, drag and drop, and perform a variety of other 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 Stylus in Input compatibility on large screens.

Next steps

See the large screen app quality guidelines to get started building your app to be large screen ready, optimized, or differentiated.

Additional resources