Take your productivity app to the next level — basic, better, and best
Stay organized with collections
Save and categorize content based on your preferences.
This guide charts the optimal progression of a productivity app from a likely
starting place to best-in-class. It's designed to help you think about improving
your app over time, deciding what features to implement when. While every
productivity app is different, consider these recommendations to achieve a
best-in-class app.
Basic
A basic productivity app must support a subset of Android
software and hardware features so it doesn't get in the way of user
productivity.
Better
Best
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2024-12-20 UTC.
[null,null,["Last updated 2024-12-20 UTC."],[],[],null,["# Take your productivity app to the next level — basic, better, and best\n\nThis guide charts the optimal progression of a productivity app from a likely\nstarting place to best-in-class. It's designed to help you think about improving\nyour app over time, deciding what features to implement when. While every\nproductivity app is different, consider these recommendations to achieve a\nbest-in-class app.\n\nBasic\n-----\n\nA basic productivity app must support a subset of Android\nsoftware and hardware features so it doesn't get in the way of user\nproductivity.\n\n- **Accessibility** \n Follow [Material Design guidelines to design and develop\n your app for accessibility.](/guide/topics/ui/accessibility)\n- **Spellcheck** \n Implement [spell checking](/develop/ui/views/touch-and-input/spell-checker-framework#SpellCheckClient) in your app.\n- **Sharing and app interoperability** \n Use [photo picker](/training/data-storage/shared/photopicker) to access existing photos and videos \n Support copy and paste [with views](/develop/ui/views/touch-and-input/copy-paste) or [with Compose.](/develop/ui/compose/touch-input/copy-and-paste)\n- **Hardware input** \n Support keyboard navigation [with views](/develop/ui/views/touch-and-input/keyboard-input/navigation) or [with Compose.](/develop/ui/compose/touch-input/focus) \n Support alternative pointing devices such as mouse, trackpad, and stylus [with views](/develop/ui/views/touch-and-input/input-events?) or [with Compose.](/develop/ui/compose/touch-input/pointer-input))\n- **Large screens** \n Support devices with [large screens](/develop/ui/compose/layouts/adaptive/support-different-display-sizes), such as laptop and tablet devices. \n Support folding devices with [app continuity](/guide/topics/large-screens/learn-about-foldables#app_continuity) when transitioning between folded and unfolded states.\n- **Expressive text** \n Support emoji [with views](/guide/topics/large-screens/learn-about-foldables#app_continuity) or [with Compose.](/develop/ui/compose/text/emoji))\n\nBetter\n------\n\n- **Large screens** \n Support fully [adaptive layout,](/guide/topics/large-screens/multi-window-support) including window resizing.\n- **Home screen integration** \n Have an [app widget.](/develop/ui/compose/glance/create-app-widget)\n- **Hardware input** \n Support keyboard [shortcuts](/develop/ui/compose/touch-input/keyboard-input/keyboard-shortcuts-helper), either [with views](/develop/ui/views/touch-and-input/keyboard-input/commands) or [with Compose.](/develop/ui/compose/touch-input/keyboard-input/commands) \n Support hover events for mouse/trackpad/stylus [with views](/reference/android/view/View.OnHoverListener) or [with Compose.](/develop/ui/compose/touch-input/user-interactions/handling-interactions#producing-modifier))\n- **Sharing and app interoperability** \n Support drag and drop [with views](/develop/ui/views/touch-and-input/drag-drop) or [with Compose.](/develop/ui/compose/touch-input/user-interactions/drag-and-drop) \n Support image [keyboards](/develop/ui/views/receive-rich-content) and other rich content. \n Use the [Storage Access Framework](/training/data-storage/shared/documents-files) to create and open documents that can be shared.\n- **Printing and exporting to PDF** \n Support [printers](/training/printing/custom-docs) and other output devices.\n\nBest\n----\n\n- **Leverage AI** \n Use [on-device](/ai/aicore) or [cloud-based](/ai/vertex-ai-firebase) generative AI to improve user productivity.\n- **Hardware** \n Leverage [foldable postures.](/guide/topics/large-screens/make-apps-fold-aware) \n Directly support [external displays.](/reference/android/app/Presentation) \n Support drawing [using a stylus](/develop/ui/compose/touch-input/stylus-input/about-ink-api), minimizing latency. \n Support [advanced stylus features](/develop/ui/compose/touch-input/stylus-input/advanced-stylus-features) such as tilt and pressure.\n- **Multi-window** \n Support multiple [app windows with concurrent documents](https://medium.com/google-developers/dominating-the-overview-screen-eef18d2195d) for full desktop functionality."]]