# Table of Contents - [Android Essentials  |  Android Developers](#android-essentials-android-developers) - [Training  |  Get started  |  Android Developers](#training-get-started-android-developers) - [Adopt Compose for Teams  |  Jetpack Compose  |  Android Developers](#adopt-compose-for-teams-jetpack-compose-android-developers) - [Android XR  |  Multidevice  |  Android Developers](#android-xr-multidevice-android-developers) - [Adaptive apps  |  Multidevice  |  Android Developers](#adaptive-apps-multidevice-android-developers) - [Kotlin and Android  |  Android Developers](#kotlin-and-android-android-developers) - [Nozioni di base su Android  |  Android Developers](#nozioni-di-base-su-android-android-developers) - [Android Jetpack Geliştirici Kaynakları - Android Geliştiricileri  |  Android Developers](#android-jetpack-geli-tirici-kaynaklar-android-geli-tiricileri-android-developers) - [AI su Android  |  Android Developers](#ai-su-android-android-developers) - [Android डिवाइस  |  Multidevice  |  Android Developers](#android-multidevice-android-developers) - [Codelab per Android  |  Get started  |  Android Developers](#codelab-per-android-get-started-android-developers) - [Thiết bị Android  |  Multidevice  |  Android Developers](#thi-t-b-android-multidevice-android-developers) - [Android Essentials  |  Android Developers](#android-essentials-android-developers) - [Kotlin dan Android  |  Android Developers](#kotlin-dan-android-android-developers) - [सर्वर की गड़बड़ी](#-) - [Errore del server](#errore-del-server) - [Cómo comenzar a ofrecer accesibilidad en Android  |  Android Developers](#c-mo-comenzar-a-ofrecer-accesibilidad-en-android-android-developers) - [Linking to Google Play  |  Branding & Marketing  |  Android Developers](#linking-to-google-play-branding-marketing-android-developers) - [Make your Android app accessible  |  Android Developers](#make-your-android-app-accessible-android-developers) - [Widgets  |  Mobile  |  Android Developers](#widgets-mobile-android-developers) - [Samples  |  TV  |  Android Developers](#samples-tv-android-developers) - [Samples | Mobile | UI Design  |  Android Developers](#samples-mobile-ui-design-android-developers) - [Getting started with Android Jetpack  |  Android Developers](#getting-started-with-android-jetpack-android-developers) - [Samples | Wear | UI Design  |  Android Developers](#samples-wear-ui-design-android-developers) - [Android Basics with Compose - Introduction to programming in Kotlin  |  Android Developers](#android-basics-with-compose-introduction-to-programming-in-kotlin-android-developers) - [Setup Android Studio  |  Android Basics Compose - First Android app  |  Android Developers](#setup-android-studio-android-basics-compose-first-android-app-android-developers) - [Productivity  |  Gallery  |  Android Developers](#productivity-gallery-android-developers) - [Build a basic layout  |  Android Basics Compose - First Android app  |  Android Developers](#build-a-basic-layout-android-basics-compose-first-android-app-android-developers) - [What to test in Android  |  Test your app on Android  |  Android Developers](#what-to-test-in-android-test-your-app-on-android-android-developers) - [Wear OS  |  Android Developers](#wear-os-android-developers) - [Design for Safety  |  App quality  |  Android Developers](#design-for-safety-app-quality-android-developers) - [Build App Actions  |  Assistant  |  Android Developers](#build-app-actions-assistant-android-developers) - [Wear | Design dell'interfaccia utente  |  Android Developers](#wear-design-dell-interfaccia-utente-android-developers) - [Improve app performance with Kotlin coroutines  |  Android Developers](#improve-app-performance-with-kotlin-coroutines-android-developers) - [Genel bakış  |  Wear  |  Android Developers](#genel-bak-wear-android-developers) - [Jetpack örnekleri | | Android Geliştiricileri  |  Android Developers](#jetpack-rnekleri-android-geli-tiricileri-android-developers) - [Duolingo refactors on Android with MVVM and Jetpack libraries  |  Developer stories  |  Android Developers](#duolingo-refactors-on-android-with-mvvm-and-jetpack-libraries-developer-stories-android-developers) - [Desain & Rencana  |  Android Developers](#desain-rencana-android-developers) - [Widget di Android | Desain UI  |  Widgets  |  Android Developers](#widget-di-android-desain-ui-widgets-android-developers) - [Wear | Desain UI  |  Android Developers](#wear-desain-ui-android-developers) - [View binding  |  Android Developers](#view-binding-android-developers) - [TopHatch unveils Concepts' immersive canvas on ChromeOS and Android  |  Developer stories  |  Android Developers](#tophatch-unveils-concepts-immersive-canvas-on-chromeos-and-android-developer-stories-android-developers) - [Widget'lar  |  Mobile  |  Android Developers](#widget-lar-mobile-android-developers) - [Algoriddim gives mobile users the full power of djay by optimizing for ChromeOS  |  Developer stories  |  Android Developers](#algoriddim-gives-mobile-users-the-full-power-of-djay-by-optimizing-for-chromeos-developer-stories-android-developers) - [Progettazione UI  |  UI Design  |  Android Developers](#progettazione-ui-ui-design-android-developers) - [کد لبه های اندروید  |  Get started  |  Android Developers](#-get-started-android-developers) - [Örnekler  |  TV  |  Android Developers](#-rnekler-tv-android-developers) - [Progettazione e pianificazione  |  Android Developers](#progettazione-e-pianificazione-android-developers) - [Kualitas  |  App quality  |  Android Developers](#kualitas-app-quality-android-developers) - [TV | Progettazione dell'interfaccia utente  |  Android Developers](#tv-progettazione-dell-interfaccia-utente-android-developers) - [ابزارک در اندروید | طراحی UI  |  Widgets  |  Android Developers](#-ui-widgets-android-developers) - [طراحی و برنامه ریزی  |  Android Developers](#-android-developers) - [Android'de mükemmel deneyimler  |  Excellent Experiences  |  Android Developers](#android-de-m-kemmel-deneyimler-excellent-experiences-android-developers) - [교육  |  Get started  |  Android Developers](#-get-started-android-developers) - [Android'de mükemmel deneyimler  |  Excellent Experiences  |  Android Developers](#android-de-m-kemmel-deneyimler-excellent-experiences-android-developers) - [Esperienze eccellenti  |  Excellent Experiences  |  Android Developers](#esperienze-eccellenti-excellent-experiences-android-developers) - [Android App Bundle frequently asked questions  |  Other Play guides  |  Android Developers](#android-app-bundle-frequently-asked-questions-other-play-guides-android-developers) - [Android'de mükemmel deneyimler  |  Excellent Experiences  |  Android Developers](#android-de-m-kemmel-deneyimler-excellent-experiences-android-developers) - [Google Assistant  |  Multidevice  |  Android Developers](#google-assistant-multidevice-android-developers) - [The Android App Bundle format  |  Other Play guides  |  Android Developers](#the-android-app-bundle-format-other-play-guides-android-developers) - [XR | UI Design  |  Android XR  |  Android Developers](#xr-ui-design-android-xr-android-developers) - [Android XR  |  Android Developers](#android-xr-android-developers) - [ChromeOS 기기  |  Multidevice  |  Android Developers](#chromeos-multidevice-android-developers) - [Tamedia increased subscriber conversion with custom alerts  |  Developer stories  |  Android Developers](#tamedia-increased-subscriber-conversion-with-custom-alerts-developer-stories-android-developers) - [Thiết bị ChromeOS  |  Multidevice  |  Android Developers](#thi-t-b-chromeos-multidevice-android-developers) - [پوشیدن | طراحی UI  |  Wear  |  Android Developers](#-ui-wear-android-developers) - [Android गेम के नमूने  |  Android game development  |  Android Developers](#android-android-game-development-android-developers) - [Dasar-dasar pengujian aplikasi Android  |  Test your app on Android  |  Android Developers](#dasar-dasar-pengujian-aplikasi-android-test-your-app-on-android-android-developers) - [Mises en page, thématisation et animation  |  Jetpack Compose for Android Developers - Layouts, theming, and animation](#mises-en-page-th-matisation-et-animation-jetpack-compose-for-android-developers-layouts-theming-and-animation) - [Seperti apa pengalaman pengguna yang hebat  |  App quality  |  Android Developers](#seperti-apa-pengalaman-pengguna-yang-hebat-app-quality-android-developers) - [Trung tâm dành cho nhà phát triển về sức khoẻ và thể hình  |  Android health & fitness  |  Android Developers](#trung-t-m-d-nh-cho-nh-ph-t-tri-n-v-s-c-kho-v-th-h-nh-android-health-fitness-android-developers) - [Android 소셜 및 메시지 앱  |  Android social  |  Android Developers](#android-android-social-android-developers) - [카메라 및 미디어 개발자 센터  |  Android media  |  Android Developers](#-android-media-android-developers) - [Oturum açma iş akışı ekleme  |  Identity  |  Android Developers](#oturum-a-ma-i-ak-ekleme-identity-android-developers) - [Principi di navigazione  |  App architecture  |  Android Developers](#principi-di-navigazione-app-architecture-android-developers) - [Developer guide  |  Android Enterprise  |  Android Developers](#developer-guide-android-enterprise-android-developers) - [Centrum dla programistów aparatów i multimediów  |  Android media  |  Android Developers](#centrum-dla-programist-w-aparat-w-i-multimedi-w-android-media-android-developers) - [API Play Integrity  |  Android Developers](#api-play-integrity-android-developers) - [Android do samochodu  |  Multidevice  |  Android Developers](#android-do-samochodu-multidevice-android-developers) - [Khả năng kết nối Android  |  Connectivity  |  Android Developers](#kh-n-ng-k-t-n-i-android-connectivity-android-developers) - [Tổng quan về lưu trữ dữ liệu và tệp  |  App data and files  |  Android Developers](#t-ng-quan-v-l-u-tr-d-li-u-v-t-p-app-data-and-files-android-developers) - [Tentang Android App Bundle  |  Other Play guides  |  Android Developers](#tentang-android-app-bundle-other-play-guides-android-developers) - [Google Play Install Referrer  |  Other Play guides  |  Android Developers](#google-play-install-referrer-other-play-guides-android-developers) - [Apps barrierefrei gestalten  |  App quality  |  Android Developers](#apps-barrierefrei-gestalten-app-quality-android-developers) - [出色的核心價值是什麼?  |  App quality  |  Android Developers](#-app-quality-android-developers) - [Updates für Android-Entwickler abonnieren  |  Android Developers](#updates-f-r-android-entwickler-abonnieren-android-developers) - [Fraud Prevention | Android 開發人員  |  App quality  |  Android Developers](#fraud-prevention-android-app-quality-android-developers) - [Consignes concernant l'interface utilisateur de Santé Connect  |  Android health & fitness  |  Android Developers](#consignes-concernant-l-interface-utilisateur-de-sant-connect-android-health-fitness-android-developers) - [XR Runtime  |  Jetpack  |  Android Developers](#xr-runtime-jetpack-android-developers) - [wear protolayout  |  Jetpack  |  Android Developers](#wear-protolayout-jetpack-android-developers) - [פיתוח נייטיב  |  Jetpack  |  Android Developers](#-jetpack-android-developers) - [Penyiapan pengujian lanjutan  |  Android Studio  |  Android Developers](#penyiapan-pengujian-lanjutan-android-studio-android-developers) - [Riduci dimensioni gioco  |  Android game development  |  Android Developers](#riduci-dimensioni-gioco-android-game-development-android-developers) - [کاشی بپوشید  |  Jetpack  |  Android Developers](#-jetpack-android-developers) - [Android 小工具 | UI 設計  |  Widgets  |  Android Developers](#android-ui-widgets-android-developers) - [photopicker  |  Jetpack  |  Android Developers](#photopicker-jetpack-android-developers) - [Wear | 使用者介面設計  |  Android Developers](#wear-android-developers) - [電視 | 使用者介面設計  |  TV  |  Android Developers](#-tv-android-developers) - [開始使用大螢幕裝置  |  Large screens  |  Android Developers](#-large-screens-android-developers) - [關於背景工作  |  Background work  |  Android Developers](#-background-work-android-developers) - [XR | UI 設計  |  Android XR  |  Android Developers](#xr-ui-android-xr-android-developers) - [車輛專用 Android  |  Multidevice  |  Android Developers](#-android-multidevice-android-developers) - [Declare access to Health Connect data types  |  Android health & fitness  |  Android Developers](#declare-access-to-health-connect-data-types-android-health-fitness-android-developers) - [Create and use functions in Kotlin  |  Android Developers](#create-and-use-functions-in-kotlin-android-developers) - [Introduction to Coroutines in Kotlin Playground  |  Android Developers](#introduction-to-coroutines-in-kotlin-playground-android-developers) - [Google Play Console  |  Android Developers](#google-play-console-android-developers) - [Introduction to Coroutines in Android Studio  |  Android Developers](#introduction-to-coroutines-in-android-studio-android-developers) - [Media  |  Gallery  |  Android Developers](#media-gallery-android-developers) - [أدوات مطوّري تطبيقات Android المتوافقة مع الأجهزة الجوّالة – مطوّرو برامج Android  |  Android Developers](#-android-android-android-developers) - [Fraud Prevention | Android-Entwickler  |  App quality  |  Android Developers](#fraud-prevention-android-entwickler-app-quality-android-developers) - [Diseño y planificación  |  Android Developers](#dise-o-y-planificaci-n-android-developers) - [Parcelables and bundles  |  App architecture  |  Android Developers](#parcelables-and-bundles-app-architecture-android-developers) - [Debug your fragments  |  App architecture  |  Android Developers](#debug-your-fragments-app-architecture-android-developers) - [Catch and handle exceptions  |  Android health & fitness  |  Android Developers](#catch-and-handle-exceptions-android-health-fitness-android-developers) - [משאבים למפתחים של Android Jetpack - מפתחי Android  |  Android Developers](#-android-jetpack-android-android-developers) - [Salvataggio dello stato con i frammenti  |  App architecture  |  Android Developers](#salvataggio-dello-stato-con-i-frammenti-app-architecture-android-developers) - [測試  |  Jetpack  |  Android Developers](#-jetpack-android-developers) - [Build your game in Unity  |  Android game development  |  Android Developers](#build-your-game-in-unity-android-game-development-android-developers) - [ประสิทธิภาพ  |  Jetpack  |  Android Developers](#-jetpack-android-developers) - [Add complications to a watch face  |  Wear OS  |  Android Developers](#add-complications-to-a-watch-face-wear-os-android-developers) - [Explorar funciones  |  Wear OS 5  |  Android Developers](#explorar-funciones-wear-os-5-android-developers) - [Material trong công cụ Compose  |  Jetpack  |  Android Developers](#material-trong-c-ng-c-compose-jetpack-android-developers) - [  |  App architecture  |  Android Developers](#-path-permission-app-architecture-android-developers) - [Input  |  Jetpack  |  Android Developers](#input-jetpack-android-developers) - [Actualizaciones integradas en la app  |  Other Play guides  |  Android Developers](#actualizaciones-integradas-en-la-app-other-play-guides-android-developers) - [Preference  |  Jetpack  |  Android Developers](#preference-jetpack-android-developers) - [พัฒนาสำหรับ Android  |  Android Developers](#-android-android-developers) - [Mendukung beberapa faktor bentuk dan ukuran layar  |  Android game development  |  Android Developers](#mendukung-beberapa-faktor-bentuk-dan-ukuran-layar-android-game-development-android-developers) - [Começar a usar a Vulkan  |  Android NDK  |  Android Developers](#come-ar-a-usar-a-vulkan-android-ndk-android-developers) - [ایجاد تست های رابط کاربری با ضبط کننده تست اسپرسو، ایجاد تست های رابط کاربری با ضبط کننده تست اسپرسو، ایجاد تست های رابط کاربری با ضبط کننده تست اسپرسو  |  Android Studio  |  Android Developers](#-android-studio-android-developers) - [Health Connect  |  Jetpack  |  Android Developers](#health-connect-jetpack-android-developers) - [Migrate to Play Games Services v2 (Unity)  |  Android game development  |  Android Developers](#migrate-to-play-games-services-v2-unity-android-game-development-android-developers) - [Submit your Google Play Games on PC game  |  Android game development  |  Android Developers](#submit-your-google-play-games-on-pc-game-android-game-development-android-developers) - [Make your Unity game great on all form factors  |  Android game development  |  Android Developers](#make-your-unity-game-great-on-all-form-factors-android-game-development-android-developers) - [System rozliczeniowy Google Play  |  Play Billing  |  Android Developers](#system-rozliczeniowy-google-play-play-billing-android-developers) - [API de Google Play In-App Reviews  |  Other Play guides  |  Android Developers](#api-de-google-play-in-app-reviews-other-play-guides-android-developers) - [สำรวจไลบรารี Jetpack ตามประเภท  |  Android Developers](#-jetpack-android-developers) - [d8  |  Android Studio  |  Android Developers](#d8-android-studio-android-developers) - [About cutouts  |  Jetpack Compose  |  Android Developers](#about-cutouts-jetpack-compose-android-developers) - [navigation3  |  Jetpack  |  Android Developers](#navigation3-jetpack-android-developers) - [Manage memory effectively in games  |  Android game development  |  Android Developers](#manage-memory-effectively-in-games-android-game-development-android-developers) - [Rakuten Viki quintuplica el tiempo de reproducción con Google Play Instant  |  Developer stories  |  Android Developers](#rakuten-viki-quintuplica-el-tiempo-de-reproducci-n-con-google-play-instant-developer-stories-android-developers) - [رویداد ناوبری  |  Jetpack  |  Android Developers](#-jetpack-android-developers) - [Entwicklungskit für Android-Spiele  |  Android game development  |  Android Developers](#entwicklungskit-f-r-android-spiele-android-game-development-android-developers) - [Wear OS 최신 버전으로 업그레이드  |  Android Developers](#wear-os-android-developers) - [Android API용 라이브러리 래퍼  |  Android game development  |  Android Developers](#android-api-android-game-development-android-developers) - [นโยบายของ Google Play  |  Android Developers](#-google-play-android-developers) - [VPN  |  Connectivity  |  Android Developers](#vpn-connectivity-android-developers) - [Sistema de faturamento do Google Play  |  Play Billing  |  Android Developers](#sistema-de-faturamento-do-google-play-play-billing-android-developers) - [Descripción general de Puntos de Play  |  Other Play guides  |  Android Developers](#descripci-n-general-de-puntos-de-play-other-play-guides-android-developers) --- # Android Essentials  |  Android Developers [Skip to main content](https://developer.android.com/get-started#main-content) [![Android Developers](https://www.gstatic.com/devrel-devsite/prod/v34fe5d0a1df120a3c24e6d73e25d1d8607836b03710a3ad508fa501ece2bdcb3/android/images/lockup.png)](https://developer.android.com/) / * English * Deutsch * Español – América Latina * Français * Indonesia * Italiano * Polski * Português – Brasil * Tiếng Việt * Türkçe * Русский * עברית * العربيّة * فارسی * हिंदी * বাংলা * ภาษาไทย * 中文 – 简体 * 中文 – 繁體 * 日本語 * 한국어 [Android Studio](https://developer.android.com/studio) Sign in * [Android Developers](https://developer.android.com/) * [Essentials](https://developer.android.com/get-started) Stay organized with collections Save and categorize content based on your preferences. ![](https://developer.android.com/static/images/cluster-illustrations/launch-app.svg) ### Android Essentials Explore documentation, training, and Codelab tutorials to grow your Android skills, whether you're brand new to the platform or a seasoned developer looking to use features in the latest release. Learn to extend your app's user experience across a multitude of devices, and how to leverage Google Play to make money with your app. [![](https://developer.android.com/static/images/picto-icons/launch.svg)](https://developer.android.com/get-started/overview) ### [Get started](https://developer.android.com/get-started/overview) Do a quick tutorial or dive deeper into a training course for an overview of key Android development topics. [Start](https://developer.android.com/get-started/overview) [![](https://developer.android.com/static/images/picto-icons/app-quality.svg)](https://developer.android.com/about/versions) ### [Find Android releases](https://developer.android.com/about/versions) Explore the current Android 14 preview release, as well as Android 13, Android 12, and legacy Android releases. [Update](https://developer.android.com/about/versions) [![](https://developer.android.com/static/images/picto-icons/play.svg)](https://play.google.com/console/about/guides/play-commerce/) ### [Monetize](https://play.google.com/console/about/guides/play-commerce/) Make money with subscriptions, financial transactions, and important purchase flows with Google Play. [Earn](https://play.google.com/console/about/guides/play-commerce/) [![](https://developer.android.com/static/images/picto-icons/earth.svg)](https://developer.android.com/multidevice) ### [Better together](https://developer.android.com/multidevice) Build elevated experiences to help your app work better together across multiple devices. [Extend](https://developer.android.com/multidevice) [![](https://developer.android.com/static/images/hero-illustrations/better-together-hero.svg)](https://developer.android.com/multidevice) ### [Support multiple devices](https://developer.android.com/multidevice) Android is built for everyone, everywhere, and to give people more choice in devices, whether it's based on the design, features, or overall value. Extend your user experience by supporting a range of devices and form factors. [Learn about multidevice support](https://developer.android.com/multidevice) [![](https://developer.android.com/static/images/cluster-illustrations/in-app-subscriptions.svg)](https://play.google.com/console/about/guides/monetize/) ### [Monetize with Google Play](https://play.google.com/console/about/guides/monetize/) Monetize and integrate a billing system into your app using Google Play. Google play offers a variety of features and support to help you make money off your app while reaching a global market. [Google Play Billing](https://play.google.com/console/about/guides/monetize/) [![](https://developer.android.com/static/images/hero-illustrations/android-ai-tools-hero.svg)](https://developer.android.com/ai) ### [AI on Android](https://developer.android.com/ai) Enable your Android apps to generate text and images, understand content, enrich information, and build engagement with users. Use Google's full suite of AI and ML tools to make your apps more useful and intuitive. [Explore AI on Android](https://developer.android.com/ai) [![](https://developer.android.com/static/images/home/productivity.svg)](https://developer.android.com/productivity) ### [Productivity](https://developer.android.com/productivity) Level up your productivity app with media, adaptive layouts, and more. [View dev center](https://developer.android.com/productivity) [![](https://developer.android.com/static/images/picto-icons/game-controller.svg)](https://developer.android.com/games) ### [Games](https://developer.android.com/games) Get everything you need to develop and deliver games on Android. [View dev center](https://developer.android.com/games) [![](https://developer.android.com/static/images/picto-icons/courses.svg)](https://developer.android.com/media) ### [Media apps](https://developer.android.com/media) Your first stop for content on developing media apps. [View dev center](https://developer.android.com/media) [![](https://developer.android.com/static/images/picto-icons/chat-bubbles-2.svg)](https://developer.android.com/social-and-messaging) ### [Social & Messaging](https://developer.android.com/social-and-messaging) Build apps that connect, communicate, and share information. [View dev center](https://developer.android.com/social-and-messaging) [![](https://developer.android.com/static/images/picto-icons/plus.svg)](https://developer.android.com/health-connect) ### [Health & Fitness](https://developer.android.com/health-connect) Health and fitness apps record valuable data. [Go to Health Connect](https://developer.android.com/health-connect) [![](https://developer.android.com/static/images/picto-icons/app-bundle.svg)](https://developer.android.com/work) ### [Enterprise apps](https://developer.android.com/work) Leverage APIs and other tools to build enterprise solutions. [View guidelines](https://developer.android.com/work) [![](https://developer.android.com/static/images/logos/android.svg)](https://developer.android.com/about/versions) ### [See the latest Android release](https://developer.android.com/about/versions) View the latest Android platform releases, including the current preview release. [![](https://developer.android.com/static/images/logos/android-jetpack.svg)](https://developer.android.com/jetpack/androidx/versions) ### [Explore the latest Jetpack libraries](https://developer.android.com/jetpack/androidx/versions) Jetpack libraries ship separately from the Android OS, so updates to the libraries can happen independently and more frequently. [![](https://developer.android.com/static/images/logos/android-studio-canary.svg)](https://developer.android.com/studio/preview) ### [Get Android Studio preview](https://developer.android.com/studio/preview) Get early access to the latest features and improvements in Android Studio. [![](https://developer.android.com/static/images/picto-icons/wear-os-development.svg)](https://developer.android.com/training/wearables/versions/4) ### [Get Wear OS Developer Preview](https://developer.android.com/training/wearables/versions/4) The next version of Wear OS is now available for testing, development, and feedback. Try it out with your apps and let us know what you think! [![](https://developer.android.com/static/images/picto-icons/lock.svg)](https://developer.android.com/design-for-safety/privacy-sandbox) ### [Privacy Sandbox on Android](https://developer.android.com/design-for-safety/privacy-sandbox) The Privacy Sandbox on Android aims to develop new technologies that improve user privacy and enable effective, personalized advertising experiences for mobile apps. [![](https://developer.android.com/static/images/distribute/stories/marvel-strike-force-icon_2880.png)](https://developer.android.com/stories/instant-apps/marvel-strike-force) ### [Marvel Strike Force improves their install rate](https://developer.android.com/stories/instant-apps/marvel-strike-force) Due to a large file size, the number of organic installs was lower than the team had hoped for such a popular franchise. Google Play Instant to the rescue! [![](https://developer.android.com/static/images/cluster-illustrations/compose-cluster.svg)](https://developer.android.com/stories/apps/cuvva-compose) ### [Cuvva adopts Jetpack Compose](https://developer.android.com/stories/apps/cuvva-compose) Learn how the Android engineers at Cuvva re-architected their app to use a unidirectional data flow and Jetpack Compose. [![](https://developer.android.com/static/images/distribute/stories/duolingo-icon_2880.png)](https://developer.android.com/stories/apps/duolingo-kotlin) ### [Duolingo reduces its line count by an average of 30%](https://developer.android.com/stories/apps/duolingo-kotlin) After seeing that their codebase's line count was growing 46% every year, Duolingo's Android developers found success in migrating from Java to Kotlin. --- # Training  |  Get started  |  Android Developers [Skip to main content](https://developer.android.com/courses#main-content) [![Android Developers](https://www.gstatic.com/devrel-devsite/prod/v34fe5d0a1df120a3c24e6d73e25d1d8607836b03710a3ad508fa501ece2bdcb3/android/images/lockup.png)](https://developer.android.com/) / * English * Deutsch * Español – América Latina * Français * Indonesia * Polski * Português – Brasil * Tiếng Việt * 中文 – 简体 * 中文 – 繁體 * 日本語 * 한국어 [Android Studio](https://developer.android.com/studio) Sign in * [Get started](https://developer.android.com/get-started/overview) * [Android Developers](https://developer.android.com/) * [Essentials](https://developer.android.com/get-started) * [Get started](https://developer.android.com/get-started/overview) * [Training](https://developer.android.com/courses) Stay organized with collections Save and categorize content based on your preferences. ![](https://developer.android.com/static/images/cluster-illustrations/play-webinar-16-9.svg) ### Training courses Whether a new developer, just new to Android, or an experienced professional, grow your skills with training created by Google's Android development experts. Then get certified as an Android developer to grow your career. course ### [Android Basics with Compose](https://developer.android.com/courses/android-basics-compose/course) This is the **recommended** course to start learning Android! Build a series of apps using Jetpack Compose, the modern toolkit for creating beautiful user interfaces on Android. You will write these apps in the Kotlin programming language and learn best practices in Material Design, app architecture, data storage, fetching data from the network, testing, and more. No programming experience required. stop _Training level: **Beginner**_ [Start course](https://developer.android.com/courses/android-basics-compose/course) * * * course ### [Jetpack Compose for Android developers](https://developer.android.com/courses/jetpack-compose/course) Get started with Jetpack Compose, a modern toolkit for building Android UI. stop _Training level: **Intermediate**_ [Start course](https://developer.android.com/courses/jetpack-compose/course) pathway ### [Android app architecture](https://developer.android.com/courses/pathways/android-architecture) Learn about best practices and recommended architecture for building robust, production-quality apps. stop _Training level: **Intermediate**_ [Start pathway](https://developer.android.com/courses/pathways/android-architecture) pathway ### [Accessibility](https://developer.android.com/courses/pathways/make-your-android-app-accessible) Learn to make your Android apps usable by everyone, including people with accessibility needs. stop _Training level: **Intermediate**_ [Start pathway](https://developer.android.com/courses/pathways/make-your-android-app-accessible) [See more Android codelabs](https://codelabs.developers.google.com/?cat=android) * * * Certification ### [Google Play Store Listing Certificate](https://play.google.com/academy/certificate/) The Google Play Store List Certificate proves foundational knowledge of digital mobile marketing best practices for those building store listings in Google Play Console. stop _Training level: **Intermediate**_ [Learn more](https://play.google.com/academy/certificate/) --- # Adopt Compose for Teams  |  Jetpack Compose  |  Android Developers [Skip to main content](https://developer.android.com/develop/ui/compose/adopt#main-content) [![Android Developers](https://www.gstatic.com/devrel-devsite/prod/v34fe5d0a1df120a3c24e6d73e25d1d8607836b03710a3ad508fa501ece2bdcb3/android/images/lockup.png)](https://developer.android.com/) / * English * Deutsch * Español – América Latina * Français * Indonesia * Italiano * Polski * Português – Brasil * Tiếng Việt * Türkçe * Русский * עברית * العربيّة * فارسی * हिंदी * বাংলা * ภาษาไทย * 中文 – 简体 * 中文 – 繁體 * 日本語 * 한국어 [Android Studio](https://developer.android.com/studio) Sign in * [Get started](https://developer.android.com/get-started/overview) * [Compose](https://developer.android.com/compose) * [Android Developers](https://developer.android.com/) * [Get started](https://developer.android.com/get-started/overview) * [Compose](https://developer.android.com/compose) * [Compose for teams](https://developer.android.com/develop/ui/compose/adopt) Stay organized with collections Save and categorize content based on your preferences. [Get started](https://developer.android.com/develop/ui/compose/adopt/for-large-teams) ### [Less code](https://developer.android.com/jetpack/compose/why-adopt#less-code) Fewer lines of code translates into code that’s easy to read and maintain, less bugs, and more time to focus on building unique app experiences. [Do more with less](https://developer.android.com/jetpack/compose/why-adopt#less-code) ### [Intuitive](https://developer.android.com/jetpack/compose/why-adopt#intuitive) Describe your UI using Compose declarative APIs, that are legible and easy to find. [See how](https://developer.android.com/jetpack/compose/why-adopt#intuitive) ### [Accelerate development](https://developer.android.com/jetpack/compose/why-adopt#accelerate-development) Iterate quickly with live previews, full tooling support, and easier theming, with small components that are easy to test. [Build faster](https://developer.android.com/jetpack/compose/why-adopt#accelerate-development) ### [Powerful](https://developer.android.com/jetpack/compose/why-adopt#powerful) Concise Kotlin DSL APIs, and out-of-the-box Material Design give your teams easier access to the best of Android. [Get started](https://developer.android.com/jetpack/compose/why-adopt#powerful) ### [Tablet and foldables](https://developer.android.com/develop/ui/compose/layouts/adaptive/support-different-display-sizes) Develop UIs that provide your users a good experience across any display size. ### [Wear OS](https://developer.android.com/training/wearables/compose) Write apps for wearables that help your users live more present, healthy, and productive lives. ### [Android TV](https://developer.android.com/training/tv/playback/compose) Build apps for TV to connect with your users in their homes. ### [Widgets](https://developer.android.com/jetpack/compose/glance) Enable your users to quickly see the most important content from your app on their home screen. ### What developers are saying See what developers like about using Jetpack Compose. [![](https://developer.android.com/static/develop/ui/compose/images/adopt/max_2880.png)](https://android-developers.googleblog.com/2024/06/max-implemented-ui-changes-faster-using-jetpack-compose.html) ### [MAX](https://android-developers.googleblog.com/2024/06/max-implemented-ui-changes-faster-using-jetpack-compose.html) “**Compose significantly reduced the time** required to implement UI changes, **solving the pain point** of maintaining a large, complex UI codebase and **making it easier to iterate** on the app's design and user experience.” [Read more](https://android-developers.googleblog.com/2024/06/max-implemented-ui-changes-faster-using-jetpack-compose.html) [![](https://developer.android.com/static/develop/ui/compose/images/adopt/soundcloud_2880.png)](https://www.youtube.com/watch?v=djsqFDCUQrk) ### [SoundCloud](https://www.youtube.com/watch?v=djsqFDCUQrk) “We were able to save up to **45% of lines of code** when migrating screens from XML views to Compose. We used Compose to prototype, and it enabled us to **iterate fast** even when we changed our design ideas daily.” [Watch video](https://www.youtube.com/watch?v=djsqFDCUQrk) [Read more](https://android-developers.googleblog.com/2024/05/soundcloud-supported-more-screens-with-jetpack-compose.html) [![](https://developer.android.com/static/develop/ui/compose/images/adopt/adidas_2880.png)](https://www.youtube.com/watch?v=C5V2MTc5Wtw) ### [adidas](https://www.youtube.com/watch?v=C5V2MTc5Wtw) “I can build the same feature with Compose about **30% faster** than with Views. **Compose's efficiency** not only **accelerated development**, but also helped us **achieve our business goals**.” [Watch video](https://www.youtube.com/watch?v=C5V2MTc5Wtw) [Read more](https://android-developers.googleblog.com/2024/06/developers-for-adidas-confirmed-build-features-faster-using-jetpack-compose.html) [![](https://developer.android.com/static/images/logos/google-drive.svg)](https://www.youtube.com/watch?v=Q_pM2SsV5n0) ### [Google Drive](https://www.youtube.com/watch?v=Q_pM2SsV5n0) “Compose, combined with architecture improvements, cut our development time nearly in half.” [Watch video](https://www.youtube.com/watch?v=Q_pM2SsV5n0) [Read more](https://android-developers.googleblog.com/2024/04/google-drive-cut-code-and-development-time-in-half-with-jetpack-compose-and-new-architecture.html) [![](https://developer.android.com/static/develop/ui/compose/images/adopt/threads-logo_2880.png)](https://www.youtube.com/watch?v=8PAZw0xhhEQ&list=PLWz5rJ2EKKc9ECua7vzYbowdn-0L8WwHL&index=6) ### [Threads](https://www.youtube.com/watch?v=8PAZw0xhhEQ&list=PLWz5rJ2EKKc9ECua7vzYbowdn-0L8WwHL&index=6) “For developers who are building new apps, I would definitely recommend using Compose. Not only is it **enjoyable**... **it sets your team up for success** in the future.” [Watch video](https://www.youtube.com/watch?v=8PAZw0xhhEQ&list=PLWz5rJ2EKKc9ECua7vzYbowdn-0L8WwHL&index=6) [Read more](https://android-developers.googleblog.com/2023/10/meta-built-threads-in-only-5-months-using-jetpack-compose.html) [![](https://developer.android.com/static/develop/ui/compose/images/adopt/reddit-logo_2880.png)](https://www.youtube.com/watch?v=Hb5vWCwPmfE&list=PLWz5rJ2EKKc9ECua7vzYbowdn-0L8WwHL&index=8) ### [Reddit](https://www.youtube.com/watch?v=Hb5vWCwPmfE&list=PLWz5rJ2EKKc9ECua7vzYbowdn-0L8WwHL&index=8) “Compose has helped us with **engineering retention**. In our developer surveys, our engineers tell us that Compose is one of the **biggest improvements to our dev experience**.” [Watch video](https://www.youtube.com/watch?v=Hb5vWCwPmfE&list=PLWz5rJ2EKKc9ECua7vzYbowdn-0L8WwHL&index=8) [Read more](https://medium.com/androiddevelopers/building-reddit-recap-with-jetpack-compose-on-android-dbe34ae4c957) [![](https://developer.android.com/static/develop/ui/compose/images/adopt/dropbox_2880.png)](https://www.youtube.com/watch?v=quY2B_6shy0) ### [Dropbox](https://www.youtube.com/watch?v=quY2B_6shy0) “We rewrote the search experience using Compose in just a matter of weeks. It took **40% less time than anticipated** to build the feature, and took **less than half the time** it took to build it on iOS.” [Watch video](https://www.youtube.com/watch?v=quY2B_6shy0) [Read more](https://android-developers.googleblog.com/2023/06/dropbox-rebuilt-search-experience-faster-with-jetpack-compose.html) [![](https://developer.android.com/static/develop/ui/compose/images/adopt/lyft_2880.png)](https://www.youtube.com/watch?v=QO6Cg9MSpE8&list=PLWz5rJ2EKKc_L3n1j4ajHjJ6QccFUvW1u&index=30) ### [Lyft](https://www.youtube.com/watch?v=QO6Cg9MSpE8&list=PLWz5rJ2EKKc_L3n1j4ajHjJ6QccFUvW1u&index=30) "Compose is clearly the future of Android development. It **requires less code**, and it's **easier to understand and maintain.**" [Watch video](https://www.youtube.com/watch?v=QO6Cg9MSpE8&list=PLWz5rJ2EKKc_L3n1j4ajHjJ6QccFUvW1u&index=30) [Read more](https://android-developers.googleblog.com/2022/10/lyft-reduced-their-code-for-ui-components-using-jetpack-compose.html) [![](https://developer.android.com/static/develop/ui/compose/images/adopt/airbnb_2880.png)](https://www.youtube.com/watch?v=23sNq-N06xU) ### [Airbnb](https://www.youtube.com/watch?v=23sNq-N06xU) “We’ve prioritized building sound technical foundations and empowering our engineers to do excellent work. Jetpack Compose enabled both of these goals and is a **critical part of our technical strategy.**” [Watch video](https://www.youtube.com/watch?v=23sNq-N06xU) [Read more](https://android-developers.googleblog.com/2022/05/airbnb-uses-jetpack-compose.html) [![](https://developer.android.com/static/develop/ui/compose/images/adopt/clue_2880.png)](https://www.youtube.com/watch?v=5XJ_uTGxmBg) ### [Clue](https://www.youtube.com/watch?v=5XJ_uTGxmBg) “We noticed a massive improvement in our productivity. Our **development speed increased up to 3X** compared to our legacy codebase.” [Watch video](https://www.youtube.com/watch?v=5XJ_uTGxmBg) [Read more](https://android-developers.googleblog.com/2023/04/clues-development-speed-improves-after-rebuilding-with-jetpack-compose.html) [![](https://developer.android.com/static/develop/ui/compose/images/adopt/x-logo_2880.png)](https://www.youtube.com/watch?v=7N9rKu7l_5U) ### [X](https://www.youtube.com/watch?v=7N9rKu7l_5U) “Compose **increased our productivity** dramatically. It’s much **easier and faster** to write a Composeable function than to create a custom view, and it’s also made it much easier to fulfill our designers’ requirements.” [Watch video](https://www.youtube.com/watch?v=7N9rKu7l_5U) [Read more](https://android-developers.googleblog.com/2022/04/twitter-going-all-in-on-jetpack-compose.html) [![](https://developer.android.com/static/develop/ui/compose/images/adopt/zepeto_2880.png)](https://www.youtube.com/watch?v=fUvct-zUfeI) ### [ZEPETO](https://www.youtube.com/watch?v=fUvct-zUfeI) "We rewrote the Character Shop feature in Compose. It was **much faster** to write it in Compose, and we **reduced the amount of code by over 10%.**" [Watch video](https://www.youtube.com/watch?v=fUvct-zUfeI) [Read more](https://android-developers.googleblog.com/2022/10/zepeto-plans-to-migrate-80-percent-of-apps-ui-to-jetpack-compose.html) [![](https://developer.android.com/static/develop/ui/compose/images/adopt/mercari_2880.png)](https://android-developers.googleblog.com/2023/03/mercari-reduces-lines-of-code-by-rebuilding-with-jetpack-compose.html) ### [Mercari](https://android-developers.googleblog.com/2023/03/mercari-reduces-lines-of-code-by-rebuilding-with-jetpack-compose.html) “It’s the same app with **way less code**. The rewritten app has about **355,000 fewer lines of code**, which is about **69% less** than what it had before.” [Read more](https://android-developers.googleblog.com/2023/03/mercari-reduces-lines-of-code-by-rebuilding-with-jetpack-compose.html) [![](https://developer.android.com/static/images/logos/google-play.svg)](https://android-developers.googleblog.com/2022/03/play-time-with-jetpack-compose.html) ### [Play Store](https://android-developers.googleblog.com/2022/03/play-time-with-jetpack-compose.html) “Compose has been a boon for our team’s developer happiness, and **a big step-up for code quality and health.**” [Read more](https://android-developers.googleblog.com/2022/03/play-time-with-jetpack-compose.html) [![](https://developer.android.com/static/develop/ui/compose/images/adopt/block_2880.png)](https://developer.android.com/stories/apps/square-compose) ### [Block](https://developer.android.com/stories/apps/square-compose) “By using Compose, **we can focus on things that are unique** to Block and our UI infrastructure, rather than solving the broader issue of building a declarative UI framework.” [Read more](https://developer.android.com/stories/apps/square-compose) [![](https://developer.android.com/static/develop/ui/compose/images/adopt/cuvva_2880.png)](https://developer.android.com/stories/apps/cuvva-compose) ### [Cuvva](https://developer.android.com/stories/apps/cuvva-compose) "The speed at which Compose allows us to put together a new feature means **we can iterate more rapidly, providing a higher-quality experience** for our customers faster than before." [Read more](https://developer.android.com/stories/apps/cuvva-compose) [![](https://developer.android.com/static/images/develop/monzo_2880.png)](https://developer.android.com/stories/apps/monzo-compose) ### [Monzo](https://developer.android.com/stories/apps/monzo-compose) "Compose allows you to build higher quality screens more quickly." [Read more](https://developer.android.com/stories/apps/monzo-compose) --- # Android XR  |  Multidevice  |  Android Developers [Skip to main content](https://developer.android.com/xr#main-content) [![Android Developers](https://www.gstatic.com/devrel-devsite/prod/v34fe5d0a1df120a3c24e6d73e25d1d8607836b03710a3ad508fa501ece2bdcb3/android/images/lockup.png)](https://developer.android.com/) / * English * Deutsch * Español – América Latina * Français * Indonesia * Italiano * Polski * Português – Brasil * Tiếng Việt * Türkçe * Русский * עברית * العربيّة * فارسی * हिंदी * বাংলা * ภาษาไทย * 中文 – 简体 * 中文 – 繁體 * 日本語 * 한국어 [Android Studio](https://developer.android.com/studio) Sign in * [Multidevice](https://developer.android.com/multidevice) * [Android Developers](https://developer.android.com/) * [Multidevice](https://developer.android.com/multidevice) * [Android XR](https://developer.android.com/xr) Stay organized with collections Save and categorize content based on your preferences. [Develop your app](https://developer.android.com/develop/xr) ### [Android Jetpack XR](https://developer.android.com/develop/xr/jetpack-xr-sdk) Most Android apps are compatible with Android XR without any additional development effort. Android XR handles device interaction and lifecycle management, so you can focus on innovation. [Develop with Jetpack XR SDK](https://developer.android.com/develop/xr/jetpack-xr-sdk) ### [Unity](https://developer.android.com/develop/xr/unity) Get full access to Unity's content production features, and easily bring apps from other platforms to Android XR. Ensure smooth development with performance optimization tools, a large asset store, and a strong community. [Develop with Unity](https://developer.android.com/develop/xr/unity) ### [OpenXR](https://developer.android.com/develop/xr/openxr) Streamline development with OpenXR's royalty-free open standard. Build anywhere using a common set of APIs to develop XR apps that work across a range of devices. [Develop with OpenXR](https://developer.android.com/develop/xr/openxr) ### [WebXR](https://developer.android.com/develop/xr/develop-with-webxr) Use the power of web technologies to build XR experiences directly in a browser. WebXR makes extended reality available to anyone with a device and a supported web browser. [Develop with WebXR](https://developer.android.com/develop/xr/develop-with-webxr) [![](https://developer.android.com/static/images/picto-icons/design.svg)](https://developer.android.com/design/ui/xr) ### [Design for Android XR](https://developer.android.com/design/ui/xr) The Android XR design guidelines include ready-to-go design systems, styles, UI scaling, components, spatial panels, 3D models, and environments. [![](https://developer.android.com/static/images/picto-icons/policy.svg)](https://developer.android.com/design/ui/xr/guides/get-started) ### [Follow XR principles](https://developer.android.com/design/ui/xr/guides/get-started) Start from where you are, make users feel comfortable, explore experiences that feel special in XR, and ensure your app is accessible. [![](https://developer.android.com/static/images/picto-icons/learn.svg)](https://developer.android.com/design/ui/xr/guides/foundations) ### [Learn XR foundations](https://developer.android.com/design/ui/xr/guides/foundations) Android XR helps you build high-quality XR apps quickly. You can spatialize an existing app's content, layouts, and UI elements using prebuilt components. [![](https://developer.android.com/static/images/picto-icons/toggle.svg)](https://developer.android.com/design/ui/xr/guides/foundations#design-multimodal) ### [Use natural interactions](https://developer.android.com/design/ui/xr/guides/foundations#design-multimodal) Android XR gives users flexibility and control. Users can interact with your app through hand and eye tracking, voice commands, and Bluetooth devices. [![](https://developer.android.com/static/images/xr/spatialize-app-environments_2880.png)](https://developer.android.com/develop/xr) ### [Android XR developer preview](https://developer.android.com/develop/xr) Be one of the first developers to build an Android XR app. [Develop with Android XR](https://developer.android.com/develop/xr) ![](https://developer.android.com/static/images/xr/hello-xr-sample_2880.jpg) ![](https://developer.android.com/static/images/picto-icons/tools-2.svg) ### Build without barriers Make your vision come to life with spatial frameworks, infinite display space, and multimodal inputs that allow for endless creativity and dynamic functionality. ![](https://developer.android.com/static/images/picto-icons/distribution.svg) ### Simplify how you create Easily bring 2D apps to XR or go all in on 3D experiences. Fuel fast development with trusted tools and industry-leading APIs. ![](https://developer.android.com/static/images/picto-icons/machine-learning.svg) ### Scale for the future with Android Expand your app's reach with Android XR's open ecosystem of device makers and the Play Store's wide user base. [![](https://developer.android.com/static/images/picto-icons/bug.svg)](https://developer.android.com/develop/xr/support) ### [Bug tracker](https://developer.android.com/develop/xr/support) Report an issue and track bugs --- # Adaptive apps  |  Multidevice  |  Android Developers [Skip to main content](https://developer.android.com/adaptive-apps#main-content) [![Android Developers](https://www.gstatic.com/devrel-devsite/prod/v34fe5d0a1df120a3c24e6d73e25d1d8607836b03710a3ad508fa501ece2bdcb3/android/images/lockup.png)](https://developer.android.com/) / * English * Deutsch * Español – América Latina * Français * Indonesia * Polski * Português – Brasil * Tiếng Việt * 中文 – 简体 * 日本語 * 한국어 [Android Studio](https://developer.android.com/studio) Sign in * [Multidevice](https://developer.android.com/multidevice) * [Android Developers](https://developer.android.com/) * [Multidevice](https://developer.android.com/multidevice) * [Adaptive apps](https://developer.android.com/adaptive-apps) Stay organized with collections Save and categorize content based on your preferences. [![](https://developer.android.com/static/images/large-screens/adaptive-apps-hero_2880.png)](https://developer.android.com/develop/ui/compose/build-adaptive-apps) [Build adaptive](https://developer.android.com/develop/ui/compose/build-adaptive-apps) [Get inspired](https://developer.android.com/large-screens/gallery) ![](https://developer.android.com/static/images/picto-icons/pencils.svg) ### Build for more devices, more users Simplify development across all types of devices. Reach the fastest growing segment of Android users on more than 300 million large screen Android devices, including premium flagship devices. ![](https://developer.android.com/static/images/picto-icons/trophy.svg) ### Rank higher on Google Play Adaptive apps rank higher and are more often selected for [Editors’ Choice on Google Play](https://android-developers.googleblog.com/2023/07/introducing-new-play-store-for-large-screens.html) . Help users find apps that resize well, aren't letterboxed, and support portrait and landscape orientations. ![](https://developer.android.com/static/images/picto-icons/graph-line.svg) ### Attract and retain users Adaptive apps have higher user satisfaction, user engagement, and time-in-app metrics on large screen form factors such as foldables, tablets, and ChromeOS devices. ### Create adaptive layouts Provide a great user experience on all device form factors, from conventional phones to tablets to cars. Adapt your app's UI to different display sizes and configurations to enhance the user experience, improve accessibility, future-proof your app for new devices, and reduce development and maintenance costs. [Learn more](https://developer.android.com/develop/ui/compose/layouts/adaptive) ### Support external input devices Increase your app's reach and accessibility. Create a truly inclusive user experience by optimizing your app for a wide range of input devices. Ensure effortless interaction with mouse, trackpad, keyboard, stylus, and accessibility tools, empowering every user to easily navigate your app and realize its full potential. [Learn more](https://developer.android.com/develop/ui/compose/touch-input) ### Showcase differentiating experiences Leverage the latest advancements in the Android ecosystem to create unique user experiences. New form factors, such as foldable devices, offer innovative device configurations, like tabletop posture, which enables users to operate their foldable device without holding it in their hands. Differentiate your app from the ordinary with exceptional capabilities. [Learn more](https://developer.android.com/guide/topics/large-screens/learn-about-foldables) [![](https://developer.android.com/static/images/large-screens/tour-the-gallery_2880.png)](https://developer.android.com/large-screens/gallery) ### [Tour the large screen gallery](https://developer.android.com/large-screens/gallery) Explore inspiring, optimized designs for large screen devices. Browse UI/UX templates for popular app categories, including media, creativity, games, and more. [View the gallery](https://developer.android.com/large-screens/gallery) [![](https://developer.android.com/static/images/large-screens/many-apps_2880.png)](https://developer.android.com/large-screens/stories) ### [Check out adaptive app success stories](https://developer.android.com/large-screens/stories) Optimize your app for screens of all sizes to provide the best experience for your users and deliver positive business results. More and more apps across all categories have been taking advantage of the opportunities presented by multiple form factors. See the experiences developers have built, learn about the implementations they've created, and find out why adaptive app development is important to their businesses. [View developer stories](https://developer.android.com/large-screens/stories) --- # Kotlin and Android  |  Android Developers [Skip to main content](https://developer.android.com/kotlin#main-content) [![Android Developers](https://www.gstatic.com/devrel-devsite/prod/v34fe5d0a1df120a3c24e6d73e25d1d8607836b03710a3ad508fa501ece2bdcb3/android/images/lockup.png)](https://developer.android.com/) / * English * Deutsch * Español – América Latina * Français * Indonesia * Italiano * Polski * Português – Brasil * Tiếng Việt * Türkçe * Русский * עברית * العربيّة * فارسی * हिंदी * বাংলা * ภาษาไทย * 中文 – 简体 * 中文 – 繁體 * 日本語 * 한국어 [Android Studio](https://developer.android.com/studio) Sign in * [Get started](https://developer.android.com/get-started/overview) * [Kotlin](https://developer.android.com/kotlin) * [Android Developers](https://developer.android.com/) * [Get started](https://developer.android.com/get-started/overview) * [Kotlin](https://developer.android.com/kotlin) Stay organized with collections Save and categorize content based on your preferences. ![](https://developer.android.com/static/images/cluster-illustrations/kotlin-hero.svg) ### Develop Android apps with Kotlin Write better Android apps faster with Kotlin. Kotlin is a modern statically typed programming language used by over 60% of professional Android developers that helps boost productivity, developer satisfaction, and code safety. [Get started](https://developer.android.com/kotlin/first) ![](https://developer.android.com/static/images/picto-icons/code.svg) ### Expressive and concise Kotlin's modern language features allow you to focus on expressing your ideas and write less boilerplate code. [Learn more](https://developer.android.com/kotlin/learn) ![](https://developer.android.com/static/images/picto-icons/actionable.svg) ### Safer code With nullability included in its type system, Kotlin helps you avoid NullPointerExceptions. Android apps that use Kotlin are 20% less likely to crash. [Learn more](https://developer.android.com/kotlin/learn#null-safety) ![](https://developer.android.com/static/images/spot-icons/jetpack-compose.svg) ### Jetpack Compose Android's modern UI toolkit is built on Kotlin, allowing you to create UI quickly with powerful and intuitive APIs. [Learn more](https://developer.android.com/jetpack/compose) ![](https://developer.android.com/static/images/picto-icons/kmp.svg) ### Kotlin Multiplatform Share code across Android, iOS, and desktop platforms with Kotlin Multiplatform. [Learn more](https://developer.android.com/kotlin/multiplatform) * * * getting started ### [Learning Android & Kotlin from scratch](https://developer.android.com/courses/android-basics-compose/course) View our guides for beginners, teaching you how to build Android apps with Kotlin and Jetpack Compose. getting started ### [Kotlin for Android Java developers](https://developer.android.com/kotlin/add-kotlin) If you already know Java, our interop guides and documentation can help you get started. getting started ### [Advanced Kotlin guides](https://developer.android.com/kotlin/coroutines) If you’re already familiar with Kotlin, read our advanced documentation to increase your skills. getting started ### [Bringing Kotlin to your team](https://developer.android.com/kotlin/adopt-for-large-teams) Learn how writing in Kotlin can boost your team’s productivity, improve app quality, and increase developer satisfaction. ![](https://developer.android.com/static/images/spot-icons/android-studio.svg) ### Android Studio Android Studio provides first-class support for Kotlin. It even has built-in tools to help you convert Java-based code to Kotlin. The Show Kotlin Bytecode tool lets you to see the equivalent Java-based code as you learn Kotlin. [Download](https://developer.android.com/studio) ![](https://developer.android.com/static/images/picto-icons/android-ktx.svg) ### Android KTX Android KTX makes Android development with Kotlin more concise, pleasant, and idiomatic by leveraging Kotlin language features. [Learn more](https://developer.android.com/kotlin/ktx) ![](https://developer.android.com/static/images/picto-icons/kotlin-friendly-sdk.svg) ### Kotlin-friendly SDK Starting with Android 9 (API level 28), the Android SDK contains nullability annotations to help avoid NullPointerExceptions. API reference documentation is also available in Kotlin. [See documentation](https://developer.android.com/reference/kotlin) ![](https://developer.android.com/static/images/picto-icons/learning-resources.svg) ### Learning resources Explore a curated set of resources in various formats to help you jumpstart learning Kotlin. [See resources](https://developer.android.com/kotlin/getting-started-resources) ![Nullable and NonNull types help reduce NullPointerExceptions, lambdas can be used for concise event handling code, template expressions can be used in strings to avoid concatenation and semicolons are optional.](https://developer.android.com/static/images/kotlin/code-samples/code-sample-newsmall.svg) ### [Apps built with Kotlin](https://developer.android.com/kotlin/stories) Many apps are already built with Kotlin—from the hottest startups to Fortune 500 companies. Learn how Kotlin has helped their teams become more productive and write higher quality apps. [See developer stories](https://developer.android.com/kotlin/stories) * [![Slack](https://developer.android.com/static/images/kotlin/apps/slack_2x.png)](https://play.google.com/store/apps/details?id=com.Slack) * [![Lyft](https://developer.android.com/static/images/kotlin/apps/lyft_2x.png)](https://play.google.com/store/apps/details?id=me.lyft.android) * [![Robinhood](https://developer.android.com/static/images/kotlin/apps/robinhood_2x.png)](https://play.google.com/store/apps/details?id=com.robinhood.android) * [![Evernote](https://developer.android.com/static/images/kotlin/apps/evernote_2x.png)](https://play.google.com/store/apps/details?id=com.evernote) * [![Square](https://developer.android.com/static/images/kotlin/apps/square_2x.png)](https://play.google.com/store/apps/details?id=com.squareup) * [![Deliveroo](https://developer.android.com/static/images/kotlin/apps/deliveroo_2x.png)](https://play.google.com/store/apps/details?id=com.deliveroo.orderapp) * [![Dropbox](https://developer.android.com/static/images/kotlin/apps/dropbox_2x.png)](https://play.google.com/store/apps/details?id=com.dropbox.android) * [![Instacart](https://developer.android.com/static/images/kotlin/apps/instacart_2x.png)](https://play.google.com/store/apps/details?id=com.instacart.client) * [![Pinterest](https://developer.android.com/static/images/kotlin/apps/pinterest_2x.png)](https://play.google.com/store/apps/details?id=com.pinterest) * [![Basecamp](https://developer.android.com/static/images/kotlin/apps/basecamp_2x.png)](https://play.google.com/store/apps/details?id=com.basecamp.bc3) * [![Pocket](https://developer.android.com/static/images/kotlin/apps/pocket_2x.png)](https://play.google.com/store/apps/details?id=com.ideashower.readitlater.pro) * [![Reddit](https://developer.android.com/static/images/kotlin/apps/reddit_2x.png)](https://play.google.com/store/apps/details?id=com.reddit.frontpage) * [![Camera360](https://developer.android.com/static/images/kotlin/apps/camera360_2x.png)](https://play.google.com/store/apps/details?id=vStudio.Android.Camera360) * [![Trello](https://developer.android.com/static/images/kotlin/apps/trello_2x.png)](https://play.google.com/store/apps/details?id=com.trello) * [![Foursquare](https://developer.android.com/static/images/kotlin/apps/foursquare_2x.png)](https://play.google.com/store/apps/details?id=com.joelapenna.foursquared) * [![Duolingo](https://developer.android.com/static/images/kotlin/apps/duolingo_2x.png)](https://play.google.com/store/apps/details?id=com.duolingo) * [![Amex](https://developer.android.com/static/images/kotlin/apps/amex_2x.png)](https://play.google.com/store/apps/details?id=com.americanexpress.android.acctsvcs.us) * [![Expedia](https://developer.android.com/static/images/kotlin/apps/expedia_2x.png)](https://play.google.com/store/apps/details?id=com.expedia.bookings) * [![Netflix](https://developer.android.com/static/images/kotlin/apps/netflix_2x.png)](https://play.google.com/store/apps/details?id=com.netflix.mediaclient) * [![Kindle](https://developer.android.com/static/images/kotlin/apps/kindle_2x.png)](https://play.google.com/store/apps/details?id=com.amazon.kindle) * [![Keepsafe](https://developer.android.com/static/images/kotlin/apps/keepsafe_2x.png)](https://play.google.com/store/apps/details?id=com.kii.safe) * [![NYTimes](https://developer.android.com/static/images/kotlin/apps/nytimes_2x.png)](https://play.google.com/store/apps/details?id=com.nytimes.android) * [![Nova Launcher](https://developer.android.com/static/images/kotlin/apps/nova-launcher_2x.png)](https://play.google.com/store/apps/details?id=com.teslacoilsw.launcher) * [![Wordpress](https://developer.android.com/static/images/kotlin/apps/wordpress_2x.png)](https://play.google.com/store/apps/details?id=org.wordpress.android) * [![Simple](https://developer.android.com/static/images/kotlin/apps/simple_2x.png)](https://play.google.com/store/apps/details?id=com.banksimple) * [![Twitter](https://developer.android.com/static/images/kotlin/apps/twitter_2x.png)](https://play.google.com/store/apps/details?id=com.twitter.android) * [![Airbnb](https://developer.android.com/static/images/kotlin/apps/airbnb_2x.png)](https://play.google.com/store/apps/details?id=com.airbnb.android) * [![Flipboard](https://developer.android.com/static/images/kotlin/apps/flipboard_2x.png)](https://play.google.com/store/apps/details?id=flipboard.app) * [![Foursquare Swarm](https://developer.android.com/static/images/kotlin/apps/foursquare-swarm_2x.png)](https://play.google.com/store/apps/details?id=com.foursquare.robin) * [![WeChat](https://developer.android.com/static/images/kotlin/apps/wechat_2x.png)](https://play.google.com/store/apps/details?id=com.tencent.mm) * [![GO-JEK](https://developer.android.com/static/images/kotlin/apps/go-jek_2x.png)](https://play.google.com/store/apps/details?id=com.gojek.app) * [![Confluence Cloud](https://developer.android.com/static/images/kotlin/apps/confluence-cloud_2x.png)](https://play.google.com/store/apps/details?id=com.atlassian.android.confluence.core) * [![Zola Sales](https://developer.android.com/static/images/kotlin/apps/zola-sales_2x.png)](https://play.google.com/store/apps/details?id=com.offgrid.electric.zola.sales) * [![Headspace](https://developer.android.com/static/images/kotlin/apps/headspace_2x.png)](https://play.google.com/store/apps/details?id=com.getsomeheadspace.android) * [![Adobe Acrobat Reader](https://developer.android.com/static/images/kotlin/apps/adobe-acrobat-reader_2x.png)](https://play.google.com/store/apps/details?id=com.adobe.reader) Developer story ### Zomato uses Kotlin to write safer, more concise code Kotlin helped Zomato reduce the number of lines of code in their app significantly, and it has also helped them find important defects in their app at compile time. Watch Zomato's Rahul, Vice President, Product Management, and Prateek Sharma, Android developer, talk about how Zomato started adopting Kotlin and about how they now use it for all new feature releases. [![](https://developer.android.com/static/images/kotlin/kotlin-logo-color.svg)](https://github.com/JetBrains/kotlin) Featured ### [Kotlin is open source](https://github.com/JetBrains/kotlin) Kotlin is an open source project available at no charge under the Apache 2.0 license. The code for the project is developed openly on GitHub primarily by the team employed at JetBrains, with contributions from Google and others. Our choice of Kotlin reaffirms our commitment to an open developer ecosystem as we evolve and grow the Android platform, and we are excited to see the language evolve. [See Kotlin on GitHub](https://github.com/JetBrains/kotlin) [![](https://developer.android.com/static/images/kotlin/icons/android-codelabs.svg)](https://codelabs.developers.google.com/codelabs/kotlin-coroutines/#0) ### [Android codelabs in Kotlin](https://codelabs.developers.google.com/codelabs/kotlin-coroutines/#0) Learn the latest best practices and APIs with Android codelabs in Kotlin. [Coroutines](https://codelabs.developers.google.com/codelabs/kotlin-coroutines/#0) [Room with a view](https://codelabs.developers.google.com/codelabs/android-room-with-a-view-kotlin/#0) [Refactoring to Kotlin](https://codelabs.developers.google.com/codelabs/java-to-kotlin/#0) [![](https://developer.android.com/static/images/logos/medium.svg)](https://medium.com/androiddevelopers/tagged/kotlin) ### [Android + Kotlin on Medium](https://medium.com/androiddevelopers/tagged/kotlin) Technical articles on Kotlin from the Android team. [Explore articles](https://medium.com/androiddevelopers/tagged/kotlin) [![](https://developer.android.com/static/images/picto-icons/courses.svg)](https://developer.android.com/courses/android-basics-compose/course) ### [Android Basics with Compose course](https://developer.android.com/courses/android-basics-compose/course) For those with no programming experience, learn the basics of the Kotlin programming language and how to build simple Android apps. [Start course](https://developer.android.com/courses/android-basics-compose/course) [![](https://developer.android.com/static/images/picto-icons/playground.svg)](https://developer.android.com/training/kotlinplayground) ### [Kotlin playground](https://developer.android.com/training/kotlinplayground) Try using Kotlin now, right in your web browser. [Try Now](https://developer.android.com/training/kotlinplayground) [![](https://developer.android.com/static/images/picto-icons/language.svg)](https://kotlinlang.org/docs/reference/) ### [Official language reference](https://kotlinlang.org/docs/reference/) Start learning Kotlin from the official language reference site. [View resource](https://kotlinlang.org/docs/reference/) --- # Nozioni di base su Android  |  Android Developers [Passa ai contenuti principali](https://developer.android.com/get-started?hl=it#main-content) [![Android Developers](https://www.gstatic.com/devrel-devsite/prod/v34fe5d0a1df120a3c24e6d73e25d1d8607836b03710a3ad508fa501ece2bdcb3/android/images/lockup.png)](https://developer.android.com/) / * English * Deutsch * Español – América Latina * Français * Indonesia * Italiano * Polski * Português – Brasil * Tiếng Việt * Türkçe * Русский * עברית * العربيّة * فارسی * हिंदी * বাংলা * ภาษาไทย * 中文 – 简体 * 中文 – 繁體 * 日本語 * 한국어 [Android Studio](https://developer.android.com/studio?hl=it) Accedi ![](https://developer.android.com/_static/images/translated.svg?hl=it) Questa pagina è stata tradotta dall'[API Cloud Translation](https://cloud.google.com/translate/?hl=it) . * [Android Developers](https://developer.android.com/?hl=it) * [Giochi essenziali](https://developer.android.com/get-started?hl=it) Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze. ![](https://developer.android.com/static/images/cluster-illustrations/launch-app.svg?hl=it) ### Nozioni di base su Android Esplora i tutorial di documentazione, formazione e codelab per sviluppare le tue competenze Android, sia per i neofiti della piattaforma che per gli sviluppatori esperti che vogliono utilizzare le funzionalità dell'ultima release. Scopri come estendere l'esperienza utente della tua app su una moltitudine di dispositivi e come sfruttare Google Play per guadagnare con la tua app. [![](https://developer.android.com/static/images/picto-icons/launch.svg?hl=it)](https://developer.android.com/get-started/overview?hl=it) ### [Per iniziare](https://developer.android.com/get-started/overview?hl=it) Segui un breve tutorial o approfondisci un corso di formazione per avere una panoramica dei principali argomenti sullo sviluppo di Android. [Inizia](https://developer.android.com/get-started/overview?hl=it) [![](https://developer.android.com/static/images/picto-icons/app-quality.svg?hl=it)](https://developer.android.com/about/versions?hl=it) ### [Trovare le release per Android](https://developer.android.com/about/versions?hl=it) Esplora la release di anteprima attuale di Android 14, Android 13, Android 12 e le release precedenti di Android. [Aggiorna](https://developer.android.com/about/versions?hl=it) [![](https://developer.android.com/static/images/picto-icons/play.svg?hl=it)](https://play.google.com/console/about/guides/play-commerce/?hl=it) ### [Monetizza](https://play.google.com/console/about/guides/play-commerce/?hl=it) Guadagna con abbonamenti, transazioni finanziarie e importanti flussi di acquisto con Google Play. [Guadagna](https://play.google.com/console/about/guides/play-commerce/?hl=it) [![](https://developer.android.com/static/images/picto-icons/earth.svg?hl=it)](https://developer.android.com/multidevice?hl=it) ### [insieme è meglio](https://developer.android.com/multidevice?hl=it) Crea esperienze avanzate per consentire alla tua app di funzionare meglio insieme su più dispositivi. [Espandi](https://developer.android.com/multidevice?hl=it) [![](https://developer.android.com/static/images/hero-illustrations/better-together-hero.svg?hl=it)](https://developer.android.com/multidevice?hl=it) ### [Supporto di più dispositivi](https://developer.android.com/multidevice?hl=it) Android è progettato per tutti, ovunque e per offrire agli utenti una scelta più ampia in merito ai dispositivi, in base al design, alle funzionalità o al valore complessivo. Estendi l'esperienza utente supportando una gamma di dispositivi e fattori di forma. [Informazioni sul supporto multidispositivo](https://developer.android.com/multidevice?hl=it) [![](https://developer.android.com/static/images/cluster-illustrations/in-app-subscriptions.svg?hl=it)](https://play.google.com/console/about/guides/monetize/?hl=it) ### [Monetizza con Google Play](https://play.google.com/console/about/guides/monetize/?hl=it) Monetizza e integra un sistema di fatturazione nella tua app utilizzando Google Play. Google Play offre una varietà di funzionalità e assistenza per aiutarti a guadagnare con la tua app raggiungendo al contempo un mercato globale. [Fatturazione Google Play](https://play.google.com/console/about/guides/monetize/?hl=it) [![](https://developer.android.com/static/images/hero-illustrations/android-ai-tools-hero.svg?hl=it)](https://developer.android.com/ai?hl=it) ### [AI su Android](https://developer.android.com/ai?hl=it) Consenti alle tue app per Android di generare testo e immagini, comprendere i contenuti, arricchire le informazioni e creare coinvolgimento con gli utenti. Utilizza la suite completa di strumenti IA e ML di Google per rendere le tue app più utili e intuitive. [Esplora l'IA su Android](https://developer.android.com/ai?hl=it) [![](https://developer.android.com/static/images/home/productivity.svg?hl=it)](https://developer.android.com/productivity?hl=it) ### [Produttività](https://developer.android.com/productivity?hl=it) Fai salire di livello la tua app di produttività con contenuti multimediali, layout adattivi e altro ancora. [Visualizza centro sviluppatori](https://developer.android.com/productivity?hl=it) [![](https://developer.android.com/static/images/picto-icons/game-controller.svg?hl=it)](https://developer.android.com/games?hl=it) ### [Giochi](https://developer.android.com/games?hl=it) Ottieni tutto il necessario per sviluppare e distribuire giochi su Android. [Visualizza centro sviluppatori](https://developer.android.com/games?hl=it) [![](https://developer.android.com/static/images/picto-icons/courses.svg?hl=it)](https://developer.android.com/media?hl=it) ### [App multimediali](https://developer.android.com/media?hl=it) La prima tappa per i contenuti sullo sviluppo di app multimediali. [Visualizza centro sviluppatori](https://developer.android.com/media?hl=it) [![](https://developer.android.com/static/images/picto-icons/chat-bubbles-2.svg?hl=it)](https://developer.android.com/social-and-messaging?hl=it) ### [Social e messaggistica](https://developer.android.com/social-and-messaging?hl=it) Crea app che collegano, comunicano e condividono informazioni. [Visualizza centro sviluppatori](https://developer.android.com/social-and-messaging?hl=it) [![](https://developer.android.com/static/images/picto-icons/plus.svg?hl=it)](https://developer.android.com/health-connect?hl=it) ### [Salute e fitness](https://developer.android.com/health-connect?hl=it) Le app per la salute e l'attività fisica registrano dati preziosi. [Vai a Connessione Salute](https://developer.android.com/health-connect?hl=it) [![](https://developer.android.com/static/images/picto-icons/app-bundle.svg?hl=it)](https://developer.android.com/work?hl=it) ### [App aziendali](https://developer.android.com/work?hl=it) Sfrutta le API e altri strumenti per creare soluzioni aziendali. [Visualizza le linee guida](https://developer.android.com/work?hl=it) [![](https://developer.android.com/static/images/logos/android.svg?hl=it)](https://developer.android.com/about/versions?hl=it) ### [Scopri la release più recente di Android](https://developer.android.com/about/versions?hl=it) Visualizzare le release più recenti della piattaforma Android, inclusa la release di anteprima corrente. [![](https://developer.android.com/static/images/logos/android-jetpack.svg?hl=it)](https://developer.android.com/jetpack/androidx/versions?hl=it) ### [Esplora le ultime librerie Jetpack](https://developer.android.com/jetpack/androidx/versions?hl=it) Le librerie Jetpack vengono fornite separatamente dal sistema operativo Android, pertanto gli aggiornamenti delle librerie possono avvenire in modo indipendente e con maggiore frequenza. [![](https://developer.android.com/static/images/logos/android-studio-canary.svg?hl=it)](https://developer.android.com/studio/preview?hl=it) ### [Scarica l'anteprima di Android Studio](https://developer.android.com/studio/preview?hl=it) Accedi in anteprima alle funzionalità e ai miglioramenti più recenti di Android Studio. [![](https://developer.android.com/static/images/picto-icons/wear-os-development.svg?hl=it)](https://developer.android.com/training/wearables/versions/4?hl=it) ### [Ricevi l'anteprima per gli sviluppatori Wear OS](https://developer.android.com/training/wearables/versions/4?hl=it) La prossima versione di Wear OS è ora disponibile per i test, lo sviluppo e i feedback. Prova questa funzionalità con le tue app e facci sapere cosa ne pensi. [![](https://developer.android.com/static/images/picto-icons/lock.svg?hl=it)](https://developer.android.com/design-for-safety/privacy-sandbox?hl=it) ### [Privacy Sandbox su Android](https://developer.android.com/design-for-safety/privacy-sandbox?hl=it) Privacy Sandbox su Android mira a sviluppare nuove tecnologie che migliorino la privacy degli utenti e consentano esperienze pubblicitarie efficaci e personalizzate per le app mobile. [![](https://developer.android.com/static/images/distribute/stories/marvel-strike-force-icon_2880.png?hl=it)](https://developer.android.com/stories/instant-apps/marvel-strike-force?hl=it) ### [Marvel Strike Force migliora il tasso di installazione](https://developer.android.com/stories/instant-apps/marvel-strike-force?hl=it) A causa delle grandi dimensioni dei file, il numero di installazioni organiche è stato inferiore a quanto il team sperava in un franchising così popolare. Google Play Instant in soccorso. [![](https://developer.android.com/static/images/cluster-illustrations/compose-cluster.svg?hl=it)](https://developer.android.com/stories/apps/cuvva-compose?hl=it) ### [Cuvva adotta Jetpack Compose](https://developer.android.com/stories/apps/cuvva-compose?hl=it) Scopri come gli ingegneri Android di Cuvva hanno riprogettato l'architettura della loro app per utilizzare un flusso di dati unidirezionale e Jetpack Compose. [![](https://developer.android.com/static/images/distribute/stories/duolingo-icon_2880.png?hl=it)](https://developer.android.com/stories/apps/duolingo-kotlin?hl=it) ### [Duolingo riduce il numero delle linee di una media del 30%](https://developer.android.com/stories/apps/duolingo-kotlin?hl=it) Dopo aver notato che il numero di righe della base di codice aumentava del 46% ogni anno, gli sviluppatori Android di Duolingo sono riusciti a eseguire la migrazione da Java a Kotlin. --- # Android Jetpack Geliştirici Kaynakları - Android Geliştiricileri  |  Android Developers [Ana içeriğe atla](https://developer.android.com/jetpack?hl=tr#main-content) [![Android Developers](https://www.gstatic.com/devrel-devsite/prod/v34fe5d0a1df120a3c24e6d73e25d1d8607836b03710a3ad508fa501ece2bdcb3/android/images/lockup.png)](https://developer.android.com/) / * English * Deutsch * Español – América Latina * Français * Indonesia * Italiano * Polski * Português – Brasil * Tiếng Việt * Türkçe * Русский * עברית * العربيّة * فارسی * हिंदी * বাংলা * ภาษาไทย * 中文 – 简体 * 中文 – 繁體 * 日本語 * 한국어 [Android Studio](https://developer.android.com/studio?hl=tr) Oturum aç * [Get started](https://developer.android.com/get-started/overview?hl=tr) * [Jetpack](https://developer.android.com/jetpack?hl=tr) ![](https://developer.android.com/_static/images/translated.svg?hl=tr) Bu sayfa, [Cloud Translation API](https://cloud.google.com/translate/?hl=tr) ile çevrilmiştir. * [Android Developers](https://developer.android.com/?hl=tr) * [Get started](https://developer.android.com/get-started/overview?hl=tr) * [Jetpack](https://developer.android.com/jetpack?hl=tr) Koleksiyonlar ile düzeninizi koruyun İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın. [![](https://developer.android.com/static/images/hero-illustrations/android-jetpack-hero.svg?hl=tr)](https://developer.android.com/jetpack/getting-started?hl=tr) ### [Android Jetpack](https://developer.android.com/jetpack/getting-started?hl=tr) Jetpack, geliştiricilerin en iyi uygulamaları takip etmesine, ortak metin kodlarını azaltmasına, ayrıca Android sürümleri ve cihazlarında tutarlı bir şekilde çalışan kodlar yazmasına yardımcı olan bir kitaplık paketidir. Böylece geliştiriciler asıl önem verdikleri şey olan koda odaklanabilirler. [Jetpack'i kullanmaya başlama](https://developer.android.com/jetpack/getting-started?hl=tr) [Videoyu izleyin](https://www.youtube.com/watch?v=LmkKFCfmnhQ&%3Bfeature=youtu.be&%3Bhl=tr&hl=tr) [![](https://developer.android.com/static/training/basics/firstapp/images/first_app.svg?hl=tr)](https://developer.android.com/jetpack/compose?hl=tr) Jetpack Compose ### [Compose ile kullanıcı arayüzü geliştirme](https://developer.android.com/jetpack/compose?hl=tr) Android'de kullanıcı arayüzü geliştirmesini basitleştirmenizi ve hızlandırmanızı sağlayan, yerel kullanıcı arayüzü oluşturmaya yönelik modern bir araç seti. [Başlama](https://developer.android.com/jetpack/compose?hl=tr) [![](https://developer.android.com/static/images/picto-icons/learn.svg?hl=tr)](https://developer.android.com/courses/android-basics-compose/course?hl=tr) ### [Temel Bilgiler Eğitimi](https://developer.android.com/courses/android-basics-compose/course?hl=tr) Compose ile Android hakkında temel bilgiler kursunda temel Jetpack kitaplıklarını öğrenin ve uygulamanızda ortak metin kullanımını azaltın [Kursu başlatopen\_in\_new](https://developer.android.com/courses/android-basics-compose/course?hl=tr) [![](https://developer.android.com/static/images/picto-icons/courses.svg?hl=tr)](https://codelabs.developers.google.com/codelabs/android-room-with-a-view-kotlin/?hl=tr#0) ### [Uygulamalı Eğitim](https://codelabs.developers.google.com/codelabs/android-room-with-a-view-kotlin/?hl=tr#0) Veri katmanınızı basitleştiren üç Jetpack kitaplığını uygulamalı olarak kullanın: LiveData, ViewModel ve Room [Eğiticiyi başlatopen\_in\_new](https://codelabs.developers.google.com/codelabs/android-room-with-a-view-kotlin/?hl=tr#0) [![](https://developer.android.com/static/images/picto-icons/code.svg?hl=tr)](https://github.com/android/nowinandroid) ### [Şimdi Android örnek uygulamasında](https://github.com/android/nowinandroid) Modern Android mimarisinin gerçek dünyadaki bir uygulamada nasıl uygulandığını keşfedin [Kodu gösteropen\_in\_new](https://github.com/android/nowinandroid) ### Jetpack kitaplıkları [Tüm kitaplıkları keşfedin](https://developer.android.com/jetpack/androidx/explorer?hl=tr) \* Popüler ve sık kullanılan kitaplıklar önce listelenir. | | | | --- | --- | | [activity \*](https://developer.android.com/jetpack/androidx/releases/activity?hl=tr) | Etkinlik üzerine kurulu birleştirilebilir API'lere erişin. | | [appcompat \*](https://developer.android.com/jetpack/androidx/releases/appcompat?hl=tr) | Platformun eski API sürümlerinde yeni API'lere (birçoğu Material Design kullanır) erişime izin verir. | | [appsearch \*](https://developer.android.com/jetpack/androidx/releases/appsearch?hl=tr) | Kullanıcılarınız için özel uygulama içi arama özellikleri oluşturun. | | [kamera \*](https://developer.android.com/jetpack/androidx/releases/camera?hl=tr) | Mobil kamera uygulamaları oluşturun. | | [compose \*](https://developer.android.com/jetpack/androidx/releases/compose?hl=tr) | Şeklini ve veri bağımlılıklarını açıklayan birleştirilebilir işlevlerle kullanıcı arayüzünüzü programatik olarak tanımlayın. | | [databinding \*](https://developer.android.com/jetpack/androidx/releases/databinding?hl=tr) | Düzenlerinizdeki kullanıcı arayüzü bileşenlerini, bildirim temelli bir biçim kullanarak uygulamanızdaki veri kaynaklarına bağlayın. | | [fragment \*](https://developer.android.com/jetpack/androidx/releases/fragment?hl=tr) | Uygulamanızı bir Etkinlik içinde barındırılan birden fazla bağımsız ekrana ayırın. | | [hilt \*](https://developer.android.com/jetpack/androidx/releases/hilt?hl=tr) | Dagger Hilt'in işlevselliğini genişleterek androidx kitaplıklarındaki belirli sınıfların bağımlılık eklenmesini sağlayın. | | [yaşam döngüsü \*](https://developer.android.com/jetpack/androidx/releases/lifecycle?hl=tr) | Etkinliğin veya parçanın mevcut yaşam döngüsü durumuna göre davranışını ayarlayabilen, yaşam döngüsüne duyarlı bileşenler oluşturun. | | [Materyal Tasarım Bileşenleri \*](https://m3.material.io/develop/android/jetpack-compose) | Android için modüler ve özelleştirilebilir Material Design kullanıcı arayüzü bileşenleri. | | [navigation \*](https://developer.android.com/jetpack/androidx/releases/navigation?hl=tr) | Uygulama içi kullanıcı arayüzünüzü oluşturup yapılandırın, derin bağlantıları yönetin ve ekranlar arasında gezinin. | | [paging \*](https://developer.android.com/jetpack/androidx/releases/paging?hl=tr) | Verileri sayfalara yükleyin ve RecyclerView'da sunun. | | [oda \*](https://developer.android.com/jetpack/androidx/releases/room?hl=tr) | SQLite veritabanı tarafından desteklenen kalıcı veriler oluşturun, depolayın ve yönetin. | | [test \*](https://developer.android.com/jetpack/androidx/releases/test?hl=tr) | Android'de test etme | | [iş \*](https://developer.android.com/jetpack/androidx/releases/work?hl=tr) | Ertelenebilir ve kısıtlamaya dayalı arka plan görevlerini planlayın ve yürütün. | | [ads](https://developer.android.com/jetpack/androidx/releases/ads?hl=tr) | Play Hizmetleri ile veya Play Hizmetleri olmadan reklam kimliği alma | | [annotation](https://developer.android.com/jetpack/androidx/releases/annotation?hl=tr) | Araçların ve diğer geliştiricilerin uygulamanızın kodunu anlamasına yardımcı olan meta verileri kullanıma sunun. | | [appfunctions](https://developer.android.com/jetpack/androidx/releases/appfunctions?hl=tr) | YAPILACAKLAR | | [arch.core](https://developer.android.com/jetpack/androidx/releases/arch-core?hl=tr) | LiveData ile kullanılabilen JUnit test kuralları da dahil olmak üzere diğer mimari bağımlılıklar için yardımcı. | | [asynclayoutinflater](https://developer.android.com/jetpack/androidx/releases/asynclayoutinflater?hl=tr) | Kullanıcı arayüzünde takılmayı önlemek için düzenleri eşzamansız olarak genişletin. | | [autofill](https://developer.android.com/jetpack/androidx/releases/autofill?hl=tr) | İpuçlarını genişleterek otomatik doldurma doğruluğunu artırın. | | [karşılaştırma](https://developer.android.com/jetpack/androidx/releases/benchmark?hl=tr) | Kodunuzun performansını Android Studio'da doğru şekilde ölçün. | | [biometric](https://developer.android.com/jetpack/androidx/releases/biometric?hl=tr) | Biyometri veya cihaz kimlik bilgileriyle kimliğinizi doğrulayın ve şifreleme işlemleri gerçekleştirin. | | [bluetooth](https://developer.android.com/jetpack/androidx/releases/bluetooth?hl=tr) | Android platformunun Bluetooth özelliklerini geriye dönük uyumlu API'lerle kullanın. | | [browser](https://developer.android.com/jetpack/androidx/releases/browser?hl=tr) | Web sayfalarını kullanıcının varsayılan tarayıcısında görüntüleme | | [camera.featurecombinationquery](https://developer.android.com/jetpack/androidx/releases/camera-featurecombinationquery?hl=tr) | YAPILACAKLAR | | [camera.media3](https://developer.android.com/jetpack/androidx/releases/camera-media3?hl=tr) | YAPILACAKLAR | | [camera.viewfinder](https://developer.android.com/jetpack/androidx/releases/camera-viewfinder?hl=tr) | Kamera için bağımsız Composable ve View tabanlı vizör" | | [car-app](https://developer.android.com/jetpack/androidx/releases/car-app?hl=tr) | Android Auto ve Android Automotive OS için şablonlu uygulamalar oluşturun. | | [cardview](https://developer.android.com/jetpack/androidx/releases/cardview?hl=tr) | Yuvarlak köşeli ve gölge efektli Materyal Tasarım kart desenini uygulayın. | | [collection](https://developer.android.com/jetpack/androidx/releases/collection?hl=tr) | Küçük olan mevcut ve yeni koleksiyonların bellek üzerindeki etkisini azaltır. | | [compose.animation](https://developer.android.com/jetpack/androidx/releases/compose-animation?hl=tr) | Kullanıcı deneyimini zenginleştirmek için Jetpack Compose uygulamalarında animasyonlar oluşturun. | | [compose.compiler](https://developer.android.com/jetpack/androidx/releases/compose-compiler?hl=tr) | @Composable işlevlerini dönüştürün ve Kotlin derleyici eklentisiyle optimizasyonları etkinleştirin. | | [compose.foundation](https://developer.android.com/jetpack/androidx/releases/compose-foundation?hl=tr) | Kullanıma hazır yapı taşlarıyla Jetpack Compose uygulamaları yazın ve kendi tasarım sistemi parçalarınızı oluşturmak için temeli genişletin. | | [compose.material](https://developer.android.com/jetpack/androidx/releases/compose-material?hl=tr) | Kullanıma hazır Materyal Tasarım bileşenleriyle Jetpack Compose kullanıcı arayüzleri oluşturun. Bu, www.material.io adresinde açıklanan bileşenleri sağlamak üzere tasarlanmış, Compose'un daha üst düzey giriş noktasıdır. | | [compose.material3](https://developer.android.com/jetpack/androidx/releases/compose-material3?hl=tr) | Materyal Tasarım'ın bir sonraki evrimi olan Materyal Tasarım 3 Bileşenleri ile Jetpack Compose kullanıcı arayüzleri oluşturun. Material 3; güncellenmiş temalar ve bileşenler ile dinamik renk gibi Material You kişiselleştirme özelliklerini içerir. Ayrıca yeni Android 12 görsel stili ve sistem kullanıcı arayüzüyle uyumlu olacak şekilde tasarlanmıştır. | | [compose.material3.adaptive](https://developer.android.com/jetpack/androidx/releases/compose-material3-adaptive?hl=tr) | Pencere boyutu sınıfları veya cihaz duruşları gibi mevcut pencere yapılandırmalarına göre otomatik olarak uyarlanacak uyarlanabilir kullanıcı arayüzleri oluşturmak için Material 3 uyarlanabilir kitaplığını kullanın. Kitaplık, hem varsayılan iskele uygulamaları hem de kendi özel deneyimlerinizi oluşturmak için gerekli yapı taşı composable'ları sağlar. | | [compose.runtime](https://developer.android.com/jetpack/androidx/releases/compose-runtime?hl=tr) | Compose'un programlama modeli ve durum yönetiminin temel yapı taşları ve Compose Compiler Plugin'in hedefleyeceği temel çalışma zamanı. | | [compose.ui](https://developer.android.com/jetpack/androidx/releases/compose-ui?hl=tr) | Düzen, çizim ve giriş dahil olmak üzere cihazla etkileşim kurmak için gereken Compose kullanıcı arayüzünün temel bileşenleri. | | [eşzamanlı](https://developer.android.com/jetpack/androidx/releases/concurrent?hl=tr)
(concurrent) | Eş yordamlarla görevleri ana ileti dizisinden taşıyın ve ListenableFuture'dan yararlanın. | | [constraintlayout](https://developer.android.com/jetpack/androidx/releases/constraintlayout?hl=tr) | Göreceli konumlandırma ile widget'ları esnek bir şekilde konumlandırın ve boyutlandırın. | | [contentpager](https://developer.android.com/jetpack/androidx/releases/contentpager?hl=tr) | ContentProvider verilerini arka plan iş parçacığında yükleme ve sayfalandırma. | | [coordinatorlayout](https://developer.android.com/jetpack/androidx/releases/coordinatorlayout?hl=tr) | AppBarLayout ve FloatingActionButton gibi üst düzey uygulama widget'larını konumlandırın. | | [core](https://developer.android.com/jetpack/androidx/releases/core?hl=tr) | Eski cihazları desteklerken en yeni platform özelliklerini ve API'lerini hedefleyin. | | [core.uwb](https://developer.android.com/jetpack/androidx/releases/core-uwb?hl=tr) | Desteklenen cihazlarda ultra geniş bant teknolojisini kullanın. | | [credentials](https://developer.android.com/jetpack/androidx/releases/credentials?hl=tr) | Bu kitaplık, kullanıcının kimlik bilgilerine birleşik erişim sağlar. Şifreler, geçiş anahtarları ve birleştirilmiş kimlik bilgileri bu kapsamda yer alabilir. Bu kitaplık, sorunsuz ve güvenli oturum açma deneyimleri sunmak için kullanılmalıdır. | | [credentials.providerevents](https://developer.android.com/jetpack/androidx/releases/credentials-providerevents?hl=tr) | YAPILACAKLAR | | [credentials.registry](https://developer.android.com/jetpack/androidx/releases/credentials-registry?hl=tr) | Bu sorunları çözmek için, uygulamaların gizliliği koruyarak dijital kimlik bilgileri sağlamasına olanak tanıyan yeni bir kayıt mekanizması ekliyoruz. Sağlayıcı uygulaması, tüm aday dijital kimlik bilgilerini Kimlik Bilgisi Yöneticisi'ne önceden kaydeder. Kimlik Bilgisi Yöneticisi, belirli bir dijital kimlik bilgisi için uygulama isteği aldığında kimlik bilgisi eşleştirme ve kullanıcı seçici kullanıcı arayüzünü bir sanal ortamda çalıştırır. | | [cursoradapter](https://developer.android.com/jetpack/androidx/releases/cursoradapter?hl=tr) | Cursor verilerini ListView widget'ına gösterme. | | [customview](https://developer.android.com/jetpack/androidx/releases/customview?hl=tr) | Özel görünümleri uygulayın. | | [datastore](https://developer.android.com/jetpack/androidx/releases/datastore?hl=tr) | Verileri eşzamansız, tutarlı ve işlemsel olarak depolayarak SharedPreferences'ın bazı dezavantajlarını ortadan kaldırır. | | [documentfile](https://developer.android.com/jetpack/androidx/releases/documentfile?hl=tr) | Dosya dokümanını görüntüleme | | [draganddrop](https://developer.android.com/jetpack/androidx/releases/draganddrop?hl=tr) | Başka bir uygulamadan veya bir uygulama içinden sürükleyip bırakılan verileri kabul edin ve tutarlı bir bırakma hedefi olanağı gösterin. | | [drawerlayout](https://developer.android.com/jetpack/androidx/releases/drawerlayout?hl=tr) | Materyal Tasarım çekmece widget'ı uygulayın. | | [dynamicanimation](https://developer.android.com/jetpack/androidx/releases/dynamicanimation?hl=tr) | Fizik tabanlı bir animasyon API'si ile sorunsuz animasyonlar oluşturun. | | [emoji](https://developer.android.com/jetpack/androidx/releases/emoji?hl=tr) | Mevcut ve eski cihazlarda emoji görüntüleme | | [emoji2](https://developer.android.com/jetpack/androidx/releases/emoji2?hl=tr) | Mevcut ve eski cihazlarda emoji görüntüleme | | [enterprise](https://developer.android.com/jetpack/androidx/releases/enterprise?hl=tr) | Kurumsal kullanıma hazır uygulamalar oluşturun. | | [exifinterface](https://developer.android.com/jetpack/androidx/releases/exifinterface?hl=tr) | Resim dosyası EXIF etiketlerini okuma ve yazma | | [oyunlar](https://developer.android.com/jetpack/androidx/releases/games?hl=tr) | Frame Pacing gibi karmaşık oyun görevlerini gerçekleştirmek için Android Game SDK'sını uygulamanızda yerel olarak kullanın. | | [glance](https://developer.android.com/jetpack/androidx/releases/glance?hl=tr) | Jetpack Compose tarzı bir API kullanarak uzak yüzeyler için düzenler oluşturun. | | [graphics](https://developer.android.com/jetpack/androidx/releases/graphics?hl=tr) | Birden fazla Android platform sürümünde grafik özelliklerinden yararlanma | | [gridlayout](https://developer.android.com/jetpack/androidx/releases/gridlayout?hl=tr) | Izgara düzeni uygulayın. | | [sağlık](https://developer.android.com/jetpack/androidx/releases/health?hl=tr) | Platformdan bağımsız bir şekilde yüksek performanslı sağlık uygulamaları oluşturun. | | [health.connect](https://developer.android.com/jetpack/androidx/releases/health-connect?hl=tr) | Geliştiricilerin, kullanıcının sağlık ve fitness kayıtlarını okumasına veya yazmasına olanak tanır. | | [heifwriter](https://developer.android.com/jetpack/androidx/releases/heifwriter?hl=tr) | Android cihazdaki kullanılabilir codec'leri kullanarak bir resmi veya resim koleksiyonunu HEIF biçiminde kodlayın. | | [ink](https://developer.android.com/jetpack/androidx/releases/ink?hl=tr) | Sınıfının en iyisi kalem uygulamaları geliştirin. Yüksek performanslı ve güzel mürekkep deneyimleri için geliştiricilerin giriş engelini azaltın. | | [input](https://developer.android.com/jetpack/androidx/releases/input?hl=tr) | Gelecekteki MotionEvent'leri tahmin ederek giriş etkileşimlerinin gecikmesini azaltma | | [interpolator](https://developer.android.com/jetpack/androidx/releases/interpolator?hl=tr) | Eski platformlarda animasyon interpolatörlerini kullanın. | | [javascriptengine](https://developer.android.com/jetpack/androidx/releases/javascriptengine?hl=tr) | Android uygulamanızın JavaScript'i değerlendirmesini sağlayın. | | [jetifier](https://developer.android.com/jetpack/androidx/releases/jetifier?hl=tr) | Kitaplığın, desteği sonlandırılan destek kitaplığına olan bağımlılıklarını eşdeğer AndroidX bağımlılıklarına taşıyan bağımsız bir araç. | | [leanback](https://developer.android.com/jetpack/androidx/releases/leanback?hl=tr) | Bu yapay nesne yerine TV için Oluştur'u kullanın. | | [legacy](https://developer.android.com/jetpack/androidx/releases/legacy?hl=tr) | Bu yapı ve sınıfları kullanımdan kaldırılmıştır. Android 8'den itibaren geçmiş kontrolü kısıtlamaları bu sınıfı artık kullanışsız hale getiriyor. | | [lint](https://developer.android.com/jetpack/androidx/releases/lint?hl=tr) | Gradle API'lerinin kullanımını doğrulamak için Lint kontrolleri | | [loader](https://developer.android.com/jetpack/androidx/releases/loader?hl=tr) | Yapılandırma değişikliklerinden etkilenmeyen kullanıcı arayüzünüz için verileri yükleyin. | | [localbroadcastmanager](https://developer.android.com/jetpack/androidx/releases/localbroadcastmanager?hl=tr) | Bu yapı ve sınıfları kullanımdan kaldırılmıştır. Bunun yerine LiveData veya reaktif akışları kullanın. | | [media](https://developer.android.com/jetpack/androidx/releases/media?hl=tr) | Medya içeriklerini ve kontrollerini diğer uygulamalarla paylaşma media3'ün yerini aldı. | | [media3 \*](https://developer.android.com/jetpack/androidx/releases/media3?hl=tr) | Medya kullanım alanları için destek kitaplıkları. | | [mediarouter](https://developer.android.com/jetpack/androidx/releases/mediarouter?hl=tr) | Ortak bir kullanıcı arayüzü kullanarak uzaktaki alıcı cihazlarda medya görüntüleme ve oynatmayı etkinleştirin. | | [multidex](https://developer.android.com/jetpack/androidx/releases/multidex?hl=tr) | Android 5 öncesi cihazlara birden fazla dex dosyası içeren uygulamalar dağıtın. | | [metrikler](https://developer.android.com/jetpack/androidx/releases/metrics?hl=tr) | Uygulamanız için çeşitli çalışma zamanı metriklerini izleme ve raporlama | | [navigation3](https://developer.android.com/jetpack/androidx/releases/navigation3?hl=tr) | Navigation 3, Compose ile çalışmak üzere tasarlanmış yeni bir gezinme kitaplığıdır. | | [navigationevent](https://developer.android.com/jetpack/androidx/releases/navigationevent?hl=tr) | Navigation Event kitaplığı, sistemde geri gitme ve \[tahmini geri gitme\](/guide/navigation/custom-back/predictive-back-gesture) işlemlerini yönetmek için KMP öncelikli bir API sağlar. | | [palette](https://developer.android.com/jetpack/androidx/releases/palette?hl=tr) | Resimlerden temsili renk paletleri çıkarın. | | [pdf](https://developer.android.com/jetpack/androidx/releases/pdf?hl=tr) | Uygulamalara PDF görüntüleme özellikleri eklemek için kullanılan bir kitaplık. | | [percentlayout](https://developer.android.com/jetpack/androidx/releases/percentlayout?hl=tr) | Bu yapı ve sınıfları kullanımdan kaldırılmıştır. Bunun yerine ConstraintLayout ve ilişkili düzenleri kullanın. | | [performans](https://developer.android.com/jetpack/androidx/releases/performance?hl=tr) | Performans optimizasyonları için kaynak ek açıklamaları sağlar. | | [photopicker](https://developer.android.com/jetpack/androidx/releases/photopicker?hl=tr) | Bu kitaplık, yerleştirilmiş fotoğraf seçici için Compose ve Android Views'i entegre etmenizi sağlar. | | [tercih](https://developer.android.com/jetpack/androidx/releases/preference?hl=tr) | Cihaz depolama alanıyla etkileşimde bulunmaya veya kullanıcı arayüzünü yönetmeye gerek kalmadan etkileşimli ayarlar ekranları oluşturun. | | [print](https://developer.android.com/jetpack/androidx/releases/print?hl=tr) | Uygulamanızdaki fotoğrafları, dokümanları ve diğer grafikleri ve resimleri yazdırın. | | [privacysandbox.activity](https://developer.android.com/jetpack/androidx/releases/privacysandbox-activity?hl=tr) | YAPILACAKLAR | | [privacysandbox.ads](https://developer.android.com/jetpack/androidx/releases/privacysandbox-ads?hl=tr) | Bu kitaplık, Android'deki Özel Korumalı Alan'ın bir parçası olan gizliliği korumaya yönelik API'lerle entegrasyonu sağlar. | | [privacysandbox.plugins](https://developer.android.com/jetpack/androidx/releases/privacysandbox-plugins?hl=tr) | Android Privacy Sandbox Sdk Library Gradle Plugin | | [privacysandbox.sdkruntime](https://developer.android.com/jetpack/androidx/releases/privacysandbox-sdkruntime?hl=tr) | Bu kitaplık, SdkRuntime'ı destekleyen tüketiciler için bileşenler sağlar. | | [privacysandbox.tools](https://developer.android.com/jetpack/androidx/releases/privacysandbox-tools?hl=tr) | Android'de Özel Korumalı Alan işlevini kullanmaya yönelik bir kitaplık | | [privacysandbox.ui](https://developer.android.com/jetpack/androidx/releases/privacysandbox-ui?hl=tr) | YAPILACAKLAR | | [profileinstaller](https://developer.android.com/jetpack/androidx/releases/profileinstaller?hl=tr) | Kitaplıkların, ART tarafından okunacak derleme izlerini önceden doldurmasını sağlar. | | [öneri](https://developer.android.com/jetpack/androidx/releases/recommendation?hl=tr) | Android TV Launcher ana ekranında içerik tanıtma | | [recyclerview](https://developer.android.com/jetpack/androidx/releases/recyclerview?hl=tr) | Bellek kullanımını en aza indirirken kullanıcı arayüzünüzde büyük veri kümelerini görüntüleyin. | | [remotecallback](https://developer.android.com/jetpack/androidx/releases/remotecallback?hl=tr) | Geliştiricilerin PendingIntent sağlamasını kolaylaştıran bir sarmalayıcı oluşturun. | | [resourceinspection](https://developer.android.com/jetpack/androidx/releases/resourceinspection?hl=tr) | Android Studio'nun Canlı Düzen Denetleyicisi'nde özel görünümlerin özelliklerini gösterin. | | [savedstate](https://developer.android.com/jetpack/androidx/releases/savedstate?hl=tr) | Bir işlem sonlandığında kullanıcı arayüzü durumunu kaydeden ve işlem yeniden başlatıldığında geri yükleyen, takılabilir bileşenler yazın. | | [security](https://developer.android.com/jetpack/androidx/releases/security?hl=tr) | Anahtarları güvenli bir şekilde yönetin, dosyaları ve sharedpreferences'ı şifreleyin. | | [sharetarget](https://developer.android.com/jetpack/androidx/releases/sharetarget?hl=tr) | Kısayolları doğrudan paylaşım hedefi olarak kullanmak için geriye dönük uyumluluk sağlar. | | [slice](https://developer.android.com/jetpack/androidx/releases/slice?hl=tr) | Uygulamanızın dışında şablonlu kullanıcı arayüzü öğeleri gösterin. | | [slidingpanelayout](https://developer.android.com/jetpack/androidx/releases/slidingpanelayout?hl=tr) | Kayan bölme kullanıcı arayüzü kalıbı uygulayın. | | [başlangıç](https://developer.android.com/jetpack/androidx/releases/startup?hl=tr) | Uygulama başlatılırken bileşenleri başlatmak için basit ve yüksek performanslı bir yöntem uygulayın. | | [sqlite](https://developer.android.com/jetpack/androidx/releases/sqlite?hl=tr) | Yerel SQLite veritabanlarıyla çalışma Mümkünse bunun yerine Room'u kullanın. | | [swiperefreshlayout](https://developer.android.com/jetpack/androidx/releases/swiperefreshlayout?hl=tr) | Yenilemek için kaydırma kullanıcı arayüzü desenini uygulayın. | | [test.uiautomator](https://developer.android.com/jetpack/androidx/releases/test-uiautomator?hl=tr) | Uygulamalar arası işlevsel kullanıcı arayüzü testi için çerçeve | | [textclassifier](https://developer.android.com/jetpack/androidx/releases/textclassifier?hl=tr) | Metindeki görüşmeleri, bağlantıları, seçimleri ve diğer benzer yapıları tanımlar. | | [izleme](https://developer.android.com/jetpack/androidx/releases/tracing?hl=tr) | İzleme etkinliklerini sistem izleme arabelleğine yazın. | | [geçiş](https://developer.android.com/jetpack/androidx/releases/transition?hl=tr) | Başlangıç ve bitiş düzenleriyle kullanıcı arayüzünde hareketi canlandırın. | | [tv](https://developer.android.com/jetpack/androidx/releases/tv?hl=tr) | Geliştiricilerin TV uygulamaları yazabilmesi için Compose ve Materyal Tasarım işlevlerini sağlar. | | [tvprovider](https://developer.android.com/jetpack/androidx/releases/tvprovider?hl=tr) | Android TV kanalları sunun. | | [xr.arcore](https://developer.android.com/jetpack/androidx/releases/xr-arcore?hl=tr) | Algılama özellikleriyle dijital içeriği gerçek dünyaya taşıyın. | | [xr.compose](https://developer.android.com/jetpack/androidx/releases/xr-compose?hl=tr) | Android XR'ın üç boyutlu özelliklerinden yararlanan üç boyutlu kullanıcı arayüzü düzenlerini bildirimsel olarak oluşturun. | | [xr.compose.material3](https://developer.android.com/jetpack/androidx/releases/xr-compose-material3?hl=tr) | XR'ye uyum sağlayan Material bileşenleri ve düzenleriyle geliştirme | | [xr.runtime](https://developer.android.com/jetpack/androidx/releases/xr-runtime?hl=tr) | Yerel çalışma zamanımızla özel AR veya 3D oturumunuzu başlatın. | | [xr.scenecore](https://developer.android.com/jetpack/androidx/releases/xr-scenecore?hl=tr) | 3D içeriklerle Android XR sahne grafiğini oluşturun ve değiştirin. | | [vectordrawable](https://developer.android.com/jetpack/androidx/releases/vectordrawable?hl=tr) | Vektörel grafikleri oluşturma. | | [versionedparcelable](https://developer.android.com/jetpack/androidx/releases/versionedparcelable?hl=tr) | İşlemler arasında aktarılabilen veya güvenli bir şekilde kalıcı hale getirilebilen kararlı ve kompakt bir ikili serileştirme biçimi sağlar. | | [viewpager](https://developer.android.com/jetpack/androidx/releases/viewpager?hl=tr) | Görüntülemeleri veya parçaları kaydırılabilir bir biçimde gösterme Mümkünse bunun yerine viewpager2'yi kullanın. | | [viewpager2](https://developer.android.com/jetpack/androidx/releases/viewpager2?hl=tr) | Görüntülemeleri veya parçaları kaydırılabilir bir biçimde gösterme | | [wear](https://developer.android.com/jetpack/androidx/releases/wear?hl=tr) | Wear OS by Google akıllı saatleri için uygulamalar oluşturun. | | [wear.compose](https://developer.android.com/jetpack/androidx/releases/wear-compose?hl=tr) | Farklı cihaz boyutlarını ve gezinme hareketlerini destekleyen işlevler sağlayarak Wear OS cihazlar için Jetpack Compose uygulamaları yazın. | | [wear.protolayout](https://developer.android.com/jetpack/androidx/releases/wear-protolayout?hl=tr) | Bu kitaplık, uzak yüzeylerde oluşturulacak/değerlendirilecek bir dizi kullanıcı arayüzü düzeninin ve kullanıcı arayüzü dışı ifadelerin tanımlanmasına olanak tanır. | | [wear.tiles](https://developer.android.com/jetpack/androidx/releases/wear-tiles?hl=tr) | Wear OS by Google akıllı saatleri için uygulamalar oluşturun. | | [wear.watchface](https://developer.android.com/jetpack/androidx/releases/wear-watchface?hl=tr) | Wear OS by Google akıllı saatleri için uygulamalar oluşturun. | | [wear.watchfacepush](https://developer.android.com/jetpack/androidx/releases/wear-watchfacepush?hl=tr) | Watch Face Push, bir Wear OS uygulamasının bir kol saatine programatik olarak saat yüzü yüklemesine olanak tanır. | | [webkit](https://developer.android.com/jetpack/androidx/releases/webkit?hl=tr) | Android 5 ve sonraki sürümlerde modern WebView API'leriyle çalışır. | | [window](https://developer.android.com/jetpack/androidx/releases/window?hl=tr) | Katlanabilir cihazlar gibi farklı cihaz form faktörlerini desteklemeye yardımcı olur. | | [window.extensions.core](https://developer.android.com/jetpack/androidx/releases/window-extensions-core?hl=tr) | Pencere Yöneticisi Kitaplığı Uzantıları için Çekirdek API'ler | [![](https://developer.android.com/static/images/picto-icons/badge.svg?hl=tr)](https://developer.android.com/stories/apps/iheartradio?hl=tr) ### [En iyi uygulamaları izleme](https://developer.android.com/stories/apps/iheartradio?hl=tr) Modern tasarım uygulamaları temel alınarak geliştirilen Android Jetpack Kitaplıkları, geriye dönük uyumlulukla birlikte daha az kilitlenme ve daha az bellek sızıntısı sağlar. [Örnek olayı inceleyin](https://developer.android.com/stories/apps/iheartradio?hl=tr) [![](https://developer.android.com/static/images/spot-icons/drag-drop.svg?hl=tr)](https://developer.android.com/stories/apps/monzo-camerax?hl=tr) ### [Ortak metin kodunu kaldırın](https://developer.android.com/stories/apps/monzo-camerax?hl=tr) Android Jetpack, arka plan görevleri, gezinme ve yaşam döngüsü yönetimi gibi sıkıcı etkinlikleri yönettiğinden uygulamanızı en iyi yapan özelliklere odaklanabilirsiniz. [Örnek olayı inceleyin](https://developer.android.com/stories/apps/monzo-camerax?hl=tr) [![](https://developer.android.com/static/images/picto-icons/reduce.svg?hl=tr)](https://developer.android.com/jetpack/testimonials?hl=tr) ### [Parçalanmayı azaltma](https://developer.android.com/jetpack/testimonials?hl=tr) Android sürümleri ve cihazlarda tutarlı şekilde çalışan kitaplıklarla karmaşıklığı azaltın. [Tavsiyeleri okuyun](https://developer.android.com/jetpack/testimonials?hl=tr) [![](https://developer.android.com/static/images/logos/stack-overflow.svg?hl=tr)](https://stackoverflow.com/questions/tagged/android-jetpack) ### [Stack Overflow](https://stackoverflow.com/questions/tagged/android-jetpack) [Stack Overflow hakkında soru sorun](https://stackoverflow.com/questions/tagged/android-jetpack) [![](https://developer.android.com/static/images/picto-icons/bug.svg?hl=tr)](https://issuetracker.google.com/?hl=tr) ### [Sorun izleyici](https://issuetracker.google.com/?hl=tr) [Sorun bildir](https://issuetracker.google.com/?hl=tr) [![](https://developer.android.com/static/images/logos/android-developers-blog.svg?hl=tr)](https://android-developers.googleblog.com/search/label/Jetpack) ### [Android Geliştiricileri Blogu](https://android-developers.googleblog.com/search/label/Jetpack) [Android Jetpack hakkında bilgi edinin](https://android-developers.googleblog.com/search/label/Jetpack) --- # AI su Android  |  Android Developers [Passa ai contenuti principali](https://developer.android.com/ai?hl=it#main-content) [![Android Developers](https://www.gstatic.com/devrel-devsite/prod/v34fe5d0a1df120a3c24e6d73e25d1d8607836b03710a3ad508fa501ece2bdcb3/android/images/lockup.png)](https://developer.android.com/) / * English * Deutsch * Español – América Latina * Français * Indonesia * Italiano * Polski * Português – Brasil * Tiếng Việt * Türkçe * Русский * עברית * العربيّة * فارسی * हिंदी * বাংলা * ภาษาไทย * 中文 – 简体 * 中文 – 繁體 * 日本語 * 한국어 [Android Studio](https://developer.android.com/studio?hl=it) Accedi * [IA](https://developer.android.com/develop?hl=it) ![](https://developer.android.com/_static/images/translated.svg?hl=it) Questa pagina è stata tradotta dall'[API Cloud Translation](https://cloud.google.com/translate/?hl=it) . * [Android Developers](https://developer.android.com/?hl=it) * [Sviluppo](https://developer.android.com/develop?hl=it) * [Panoramica](https://developer.android.com/ai?hl=it) Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze. [![](https://developer.android.com/static/images/picto-icons/gpu-hardware_dt.svg?hl=it)](https://developer.android.com/ai/gemini-nano?hl=it) ### [On-device con Gemini Nano](https://developer.android.com/ai/gemini-nano?hl=it) Accedi alla potenza dell'IA on-device con Gemini Nano e le API GenAI nell'ambito di ML Kit. [![](https://developer.android.com/static/images/logos/gemini_dt.svg?hl=it)](https://developer.android.com/ai/gemini?hl=it) ### [Sfrutta la potenza dei modelli avanzati di Gemini](https://developer.android.com/ai/gemini?hl=it) Accedi a tutta la potenza dei modelli di punta come Gemini Pro, Gemini Flash e Imagen utilizzando l'IA di Firebase. [![](https://developer.android.com/static/images/picto-icons/lightbulb-spark_dt.svg?hl=it)](https://developer.android.com/ai/overview?hl=it) ### [Scegli la soluzione di IA giusta per la tua app](https://developer.android.com/ai/overview?hl=it) Trovare la soluzione di IA e ML giusta per la tua app può sembrare difficile. Leggi la nostra panoramica per trovare lo strumento giusto per il tuo caso d'uso. [Inizia a utilizzare l'AI generativa su Android arrow\_right\_alt](https://developer.android.com/ai/overview?hl=it) Nuova funzionalità ### [API di IA generativa](https://developer.android.com/ai/gemini-nano/ml-kit-genai?hl=it) Utilizza le API di IA generativa basate su Gemini Nano per aiutare la tua app a svolgere attività comuni. [Scopri di più](https://developer.android.com/ai/gemini-nano/ml-kit-genai?hl=it) Nuova funzionalità ### [Play per l'AI on-device](https://developer.android.com/google/play/on-device-ai?hl=it) Play per l'IA on-device contribuisce a migliorare le prestazioni del modello ML e a semplificare la distribuzione utilizzando gli app bundle e la pubblicazione su Google Play. [Scopri di più](https://developer.android.com/google/play/on-device-ai?hl=it) ![](https://developer.android.com/static/images/ai/envision_2880.png?hl=it) ### Envision aiuta a riassumere i documenti Envision utilizza la funzionalità di riassunto dell'API GenAI per fornire agli utenti riepiloghi concisi e significativi dei documenti. [Scopri di più](https://android-developers.googleblog.com/2025/05/on-device-gen-ai-apis-ml-kit-gemini-nano.html) ![](https://developer.android.com/static/images/logos/firebase.svg?hl=it) ### App Android innovative che utilizzano l'IA di Firebase Scopri come gli sviluppatori Android utilizzano l'IA di Firebase per aggiungere funzionalità di IA generativa alle loro app. [Scopri di più](https://android-developers.googleblog.com/2024/10/gemini-api-showcase-of-innovative-android-apps.html) ![](https://developer.android.com/static/images/ai/talkback_2880.png?hl=it) ### TalkBack utilizza Gemini Nano per l'accessibilità delle immagini Gemini Nano con multimodalità consente a TalkBack di fornire descrizioni delle immagini chiare e dettagliate anche se il dispositivo è offline o se la connessione di rete è instabile. [Scopri di più](https://android-developers.googleblog.com/2024/09/talkback-uses-gemini-nano-to-increase-low-vision-accessibility.html) ![](https://developer.android.com/static/images/apps/recorder.svg?hl=it) ### Riassumere le registrazioni vocali L'app Registratore vocale di Google Pixel sfrutta Gemini Nano per fornire inferenza offline e sul dispositivo al fine di generare riassunti delle registrazioni vocali. [Scopri di più](https://android-developers.googleblog.com/2024/08/recorder-app-on-pixel-sees-boost-in-engagement-with-gemini-nano.html) [![](https://developer.android.com/static/images/ai/ml-kit_2880.png?hl=it)](https://developers.google.com/ml-kit?hl=it) ### [Procedure comuni per gli utenti con ML Kit](https://developers.google.com/ml-kit?hl=it) ML Kit fornisce soluzioni pronte per la produzione per attività comuni e non richiede competenze di ML. I modelli sono integrati e ottimizzati per il mobile. ML Kit è facile da usare e ti consente di concentrarti sullo sviluppo delle funzionalità anziché sull'addestramento e sull'ottimizzazione del modello. [Scopri di più](https://developers.google.com/ml-kit?hl=it) [![](https://developer.android.com/static/images/ai/lite-rt_2880.png?hl=it)](https://developer.android.com/ai/custom?hl=it) ### [Modelli personalizzati con LiteRT](https://developer.android.com/ai/custom?hl=it) Per un maggiore controllo o per eseguire il deployment dei tuoi modelli ML, Android fornisce uno stack ML personalizzato basato su LiteRT e Google Play Services che copre gli elementi essenziali necessari per eseguire il deployment di funzionalità ML ad alte prestazioni. [Scopri di più](https://developer.android.com/ai/custom?hl=it) [![](https://developer.android.com/static/images/ai/media-pipe_2880.png?hl=it)](https://ai.google.dev/edge/mediapipe/solutions/guide?hl=it) ### [Soluzioni MediaPipe](https://ai.google.dev/edge/mediapipe/solutions/guide?hl=it) MediaPipe offre soluzioni di ML personalizzabili e multipiattaforma open source per i contenuti multimediali dal vivo e in streaming. [Scopri di più](https://ai.google.dev/edge/mediapipe/solutions/guide?hl=it) [![](https://developer.android.com/static/images/logos/google-play.svg?hl=it)](https://forms.gle/udLiRgA6zFzpfxZy9) ### [Caricamento di Play sul dispositivo](https://forms.gle/udLiRgA6zFzpfxZy9) Esegui il deployment e gestisci in modo efficiente i tuoi modelli ML e di IA generativa personalizzati per le funzionalità di IA on-device con Play for On-device AI. Google Play semplifica l'implementazione del modello, aiutandoti a migliorare l'esperienza utente mantenendo ottimizzate le dimensioni dell'app. [Partecipare al programma di accesso in anteprima](https://forms.gle/udLiRgA6zFzpfxZy9) [![](https://developer.android.com/static/images/logos/android-studio-round.svg?hl=it)](https://developer.android.com/gemini-in-android?hl=it) ### [Gemini in Android Studio](https://developer.android.com/gemini-in-android?hl=it) Gemini in Android Studio è il tuo compagno di programmazione per lo sviluppo di Android. Può generare codice, trovare risorse pertinenti, apprendere best practice, risolvere errori e farti risparmiare tempo. [Scopri di più](https://developer.android.com/gemini-in-android?hl=it) [![](https://developer.android.com/static/images/ai/google-ai-studio_2880.png?hl=it)](https://aistudio.google.com/app/prompts/new_chat?hl=it) ### [Google AI Studio](https://aistudio.google.com/app/prompts/new_chat?hl=it) Il modo più rapido per iniziare a utilizzare Gemini è con Google AI Studio, uno strumento basato sul web che ti consente di prototipare ed eseguire prompt direttamente nel browser e iniziare a utilizzare l'API Gemini. [Per iniziare](https://aistudio.google.com/app/prompts/new_chat?hl=it) --- # Android डिवाइस  |  Multidevice  |  Android Developers [सीधे मुख्य कॉन्टेंट पर जाएं](https://developer.android.com/multidevice?hl=hi#main-content) [![Android Developers](https://www.gstatic.com/devrel-devsite/prod/v34fe5d0a1df120a3c24e6d73e25d1d8607836b03710a3ad508fa501ece2bdcb3/android/images/lockup.png)](https://developer.android.com/) / * English * Deutsch * Español – América Latina * Français * Indonesia * Italiano * Polski * Português – Brasil * Tiếng Việt * Türkçe * Русский * עברית * العربيّة * فارسی * हिंदी * বাংলা * ภาษาไทย * 中文 – 简体 * 中文 – 繁體 * 日本語 * 한국어 [Android Studio](https://developer.android.com/studio?hl=hi) प्रवेश करें * [Multidevice](https://developer.android.com/multidevice?hl=hi) ![](https://developer.android.com/_static/images/translated.svg?hl=hi) इस पेज का अनुवाद [Cloud Translation API](https://cloud.google.com/translate/?hl=hi) से किया गया है. * [Android Developers](https://developer.android.com/?hl=hi) * [Multidevice](https://developer.android.com/multidevice?hl=hi) संग्रह की मदद से व्यवस्थित रहें अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें. ![](https://developer.android.com/static/images/hero-illustrations/better-together-hero.svg?hl=hi) ### Android डिवाइस Android को हर जगह और हर किसी के इस्तेमाल के लिए बनाया गया है. साथ ही, इसे लोगों को डिवाइसों के ज़्यादा विकल्प देने के लिए बनाया गया है, फिर चाहे बात डिवाइस के डिज़ाइन, सुविधाओं या सुविधाओं के हिसाब से हो. अलग-अलग डिवाइसों और डिवाइसों के नाप या आकार के हिसाब से, अपना उपयोगकर्ता अनुभव बेहतर बनाएं. [मल्टी-डिवाइस ऐप्लिकेशन डेवलप करने के बारे में जानकारी](https://developer.android.com/multi-device-development?hl=hi) [![](https://developer.android.com/static/images/design/ui/xr/Spatialize_Overview_XR-Large-Screen-App_2880.jpg?hl=hi)](https://developer.android.com/xr?hl=hi) डेवलपर की झलक ### [Android XR](https://developer.android.com/xr?hl=hi) Android XR प्लैटफ़ॉर्म का इस्तेमाल करके, एक्सटेंडेड रिएलिटी (एक्सआर) डिवाइसों पर अपने उपयोगकर्ताओं को इमर्सिव अनुभव दें [ज़्यादा जानें](https://developer.android.com/xr?hl=hi) ### डिवाइसों के नाप या आकार Android, बड़े साइज़ की स्क्रीन से लेकर पहने जा सकने वाले डिवाइसों तक, अलग-अलग साइज़ और आकार के डिवाइसों पर काम करता है. [![](https://developer.android.com/static/images/hero-assets/foldables.svg?hl=hi)](https://developer.android.com/adaptive-apps?hl=hi) चुनिंदा ### [ज़रूरत के हिसाब से काम करने वाले ऐप्लिकेशन](https://developer.android.com/adaptive-apps?hl=hi) फ़ोन, टैबलेट, फ़ोल्ड किए जा सकने वाले डिवाइसों, और ChromeOS डिवाइसों के हिसाब से काम करने वाले रिस्पॉन्सिव लेआउट बनाएं. फ़िलहाल, बड़ी स्क्रीन वाले 27 करोड़ से ज़्यादा Android डिवाइसों का इस्तेमाल किया जा रहा है. [ज़्यादा जानें](https://developer.android.com/adaptive-apps?hl=hi) [प्रेरणा लें](https://developer.android.com/large-screens/gallery?hl=hi) [![](https://developer.android.com/static/images/spot-icons/watch.svg?hl=hi)](https://developer.android.com/wear?hl=hi) प्रॉडक्ट ### [Wear OS by Google](https://developer.android.com/wear?hl=hi) स्मार्टवॉच की मदद से, उपयोगकर्ता अपनी सेहत और फ़िटनेस के साथ-साथ उन लोगों और जानकारी से जुड़े रहते हैं जिनमें उनकी दिलचस्पी है. साथ ही, वे Google Assistant की मदद से भी कई काम कर पाते हैं. [ज़्यादा जानें](https://developer.android.com/wear?hl=hi) [![](https://developer.android.com/static/images/spot-icons/tv.svg?hl=hi)](https://developer.android.com/tv?hl=hi) प्रॉडक्ट ### [टीवी](https://developer.android.com/tv?hl=hi) ऐसे ऐप्लिकेशन बनाएं जिनसे उपयोगकर्ताओं को अपने होम एंटरटेनमेंट स्क्रीन पर, आपके ऐप्लिकेशन के शानदार कॉन्टेंट का अनुभव मिले. [ज़्यादा जानें](https://developer.android.com/tv?hl=hi) [![](https://developer.android.com/static/images/spot-icons/car.svg?hl=hi)](https://developer.android.com/cars?hl=hi) प्रॉडक्ट ### [कार](https://developer.android.com/cars?hl=hi) कार में इस्तेमाल करने के लिए अपने ऐप्लिकेशन लिखें. इसके लिए, आपको वाहन के हिसाब से हार्डवेयर डिज़ाइन और लेआउट में होने वाले अंतर की चिंता करने की ज़रूरत नहीं है. [ज़्यादा जानें](https://developer.android.com/cars?hl=hi) [![](https://developer.android.com/static/images/spot-icons/laptop.svg?hl=hi)](https://developer.android.com/chrome-os?hl=hi) प्रॉडक्ट ### [ChromeOS](https://developer.android.com/chrome-os?hl=hi) Google Play app Store के ज़रिए, अपने Android ऐप्लिकेशन, Chromebook जैसे Google ChromeOS डिवाइसों पर उपलब्ध कराए जा सकते हैं. [ज़्यादा जानें](https://developer.android.com/chrome-os?hl=hi) [![](https://developer.android.com/static/images/hero-illustrations/large-screens-stories-hero.svg?hl=hi)](https://developer.android.com/multi-device-development?hl=hi) चुनिंदा ### [मल्टीडिवाइस डेवलपमेंट](https://developer.android.com/multi-device-development?hl=hi) ऐसे कई डिवाइस बनाएं जो आपके उपयोगकर्ताओं को हर तरह के डिवाइस पर निजी और सार्वजनिक अनुभव देकर खुश कर दें. [ज़्यादा जानें](https://developer.android.com/multi-device-development?hl=hi) [![](https://developer.android.com/static/images/picto-icons/help.svg?hl=hi)](https://developer.android.com/develop/devices/assistant?hl=hi) प्रौद्योगिकी ### [सहायक](https://developer.android.com/develop/devices/assistant?hl=hi) Assistant के डेवलपमेंट फ़्रेमवर्क और टेस्टिंग टूल का इस्तेमाल करके, Android पर काम करने वाले प्लैटफ़ॉर्म, जैसे कि मोबाइल डिवाइस, कार, और पहने जाने वाले डिवाइसों पर, बोलकर अपने ऐप्लिकेशन आसानी से कंट्रोल करें. [ज़्यादा जानें](https://developer.android.com/develop/devices/assistant?hl=hi) [![](https://developer.android.com/static/images/picto-icons/vitals.svg?hl=hi)](https://developer.android.com/health-connect?hl=hi) प्रौद्योगिकी ### [Health Connect](https://developer.android.com/health-connect?hl=hi) अहम जानकारी पाने के लिए, सेहत और फ़िटनेस से जुड़े डेटा को जोड़कर, इसकी पूरी क्षमता का इस्तेमाल करें. [ज़्यादा जानें](https://developer.android.com/health-connect?hl=hi) --- # Codelab per Android  |  Get started  |  Android Developers [Passa ai contenuti principali](https://developer.android.com/get-started/codelabs?hl=it#main-content) [![Android Developers](https://www.gstatic.com/devrel-devsite/prod/v34fe5d0a1df120a3c24e6d73e25d1d8607836b03710a3ad508fa501ece2bdcb3/android/images/lockup.png)](https://developer.android.com/) / * English * Deutsch * Español – América Latina * Français * Indonesia * Italiano * Polski * Português – Brasil * Tiếng Việt * Türkçe * Русский * עברית * العربيّة * فارسی * हिंदी * বাংলা * ภาษาไทย * 中文 – 简体 * 中文 – 繁體 * 日本語 * 한국어 [Android Studio](https://developer.android.com/studio?hl=it) Accedi * [Get started](https://developer.android.com/get-started/overview?hl=it) ![](https://developer.android.com/_static/images/translated.svg?hl=it) Questa pagina è stata tradotta dall'[API Cloud Translation](https://cloud.google.com/translate/?hl=it) . * [Android Developers](https://developer.android.com/?hl=it) * [Giochi essenziali](https://developer.android.com/get-started?hl=it) * [Get started](https://developer.android.com/get-started/overview?hl=it) * [Tutorial](https://developer.android.com/get-started/codelabs?hl=it) Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze. ![](https://developer.android.com/static/images/hero-assets/android-codelabs.svg?hl=it) ### Codelab per Android I codelab offrono un'esperienza di programmazione guidata, tutorial e pratica. La maggior parte dei codelab ti guida nella procedura di creazione di una piccola applicazione o di aggiunta di una nuova funzionalità a un'applicazione esistente. Kotlin Multiplatform Scrivi UI (generale) ML Qualità dell'app Architettura Kotlin su Android Indossabili Dispositivi Connettività Altri argomenti Corso Sentiero --- # Thiết bị Android  |  Multidevice  |  Android Developers [Chuyển ngay đến nội dung chính](https://developer.android.com/multidevice?hl=vi#main-content) [![Android Developers](https://www.gstatic.com/devrel-devsite/prod/v34fe5d0a1df120a3c24e6d73e25d1d8607836b03710a3ad508fa501ece2bdcb3/android/images/lockup.png)](https://developer.android.com/) / * English * Deutsch * Español – América Latina * Français * Indonesia * Italiano * Polski * Português – Brasil * Tiếng Việt * Türkçe * Русский * עברית * العربيّة * فارسی * हिंदी * বাংলা * ภาษาไทย * 中文 – 简体 * 中文 – 繁體 * 日本語 * 한국어 [Android Studio](https://developer.android.com/studio?hl=vi) Đăng nhập * [Multidevice](https://developer.android.com/multidevice?hl=vi) ![](https://developer.android.com/_static/images/translated.svg?hl=vi) Trang này được dịch bởi [Cloud Translation API](https://cloud.google.com/translate/?hl=vi) . * [Android Developers](https://developer.android.com/?hl=vi) * [Multidevice](https://developer.android.com/multidevice?hl=vi) Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn. ![](https://developer.android.com/static/images/hero-illustrations/better-together-hero.svg?hl=vi) ### Thiết bị Android Android được xây dựng cho mọi người, ở mọi nơi, giúp mọi người có thêm nhiều lựa chọn về thiết bị, cho dù đó là thiết kế, tính năng hay giá trị tổng thể. Mở rộng trải nghiệm người dùng bằng cách hỗ trợ nhiều thiết bị và kiểu dáng. [Tìm hiểu về hoạt động phát triển trên nhiều thiết bị](https://developer.android.com/multi-device-development?hl=vi) [![](https://developer.android.com/static/images/design/ui/xr/Spatialize_Overview_XR-Large-Screen-App_2880.jpg?hl=vi)](https://developer.android.com/xr?hl=vi) Bản dùng thử cho nhà phát triển ### [Android XR](https://developer.android.com/xr?hl=vi) Sử dụng nền tảng Android XR để mang đến trải nghiệm sống động cho người dùng thiết bị thực tế mở rộng (XR) [Tìm hiểu thêm](https://developer.android.com/xr?hl=vi) ### Kiểu dáng thiết bị Android hỗ trợ nhiều kích thước và hình dạng thiết bị, từ màn hình lớn cho đến thiết bị đeo. [![](https://developer.android.com/static/images/hero-assets/foldables.svg?hl=vi)](https://developer.android.com/adaptive-apps?hl=vi) Nổi bật ### [Ứng dụng thích ứng](https://developer.android.com/adaptive-apps?hl=vi) Phát triển bố cục thích ứng để điều chỉnh cho vừa với điện thoại, máy tính bảng, thiết bị có thể gập lại và thiết bị ChromeOS. Hơn 270 triệu thiết bị Android màn hình lớn đang được sử dụng. [Tìm hiểu thêm](https://developer.android.com/adaptive-apps?hl=vi) [Tìm nguồn cảm hứng](https://developer.android.com/large-screens/gallery?hl=vi) [![](https://developer.android.com/static/images/spot-icons/watch.svg?hl=vi)](https://developer.android.com/wear?hl=vi) Sản phẩm ### [Wear OS by Google](https://developer.android.com/wear?hl=vi) Đồng hồ thông minh giúp người dùng kết nối với sức khoẻ và thể chất của họ, những người và thông tin mà họ quan tâm, cũng như Trợ lý Google – tất cả ngay trên cổ tay. [Tìm hiểu thêm](https://developer.android.com/wear?hl=vi) [![](https://developer.android.com/static/images/spot-icons/tv.svg?hl=vi)](https://developer.android.com/tv?hl=vi) Sản phẩm ### [TV](https://developer.android.com/tv?hl=vi) Tạo ứng dụng có nội dung sống động để người dùng thưởng thức trên màn hình giải trí tại gia. [Tìm hiểu thêm](https://developer.android.com/tv?hl=vi) [![](https://developer.android.com/static/images/spot-icons/car.svg?hl=vi)](https://developer.android.com/cars?hl=vi) Sản phẩm ### [Ô tô](https://developer.android.com/cars?hl=vi) Viết ứng dụng cho trải nghiệm trong ô tô mà không phải lo lắng về sự khác biệt giữa thiết kế và bố cục phần cứng của riêng xe. [Tìm hiểu thêm](https://developer.android.com/cars?hl=vi) [![](https://developer.android.com/static/images/spot-icons/laptop.svg?hl=vi)](https://developer.android.com/chrome-os?hl=vi) Sản phẩm ### [ChromeOS](https://developer.android.com/chrome-os?hl=vi) Bạn có thể phân phối ứng dụng Android cho các thiết bị Google ChromeOS, chẳng hạn như Chromebook, thông qua cửa hàng ứng dụng Google Play. [Tìm hiểu thêm](https://developer.android.com/chrome-os?hl=vi) [![](https://developer.android.com/static/images/hero-illustrations/large-screens-stories-hero.svg?hl=vi)](https://developer.android.com/multi-device-development?hl=vi) Nổi bật ### [Phát triển trên nhiều thiết bị](https://developer.android.com/multi-device-development?hl=vi) Xây dựng trải nghiệm trên nhiều thiết bị khiến người dùng hài lòng qua những trải nghiệm cá nhân và tập thể trên mọi loại thiết bị. [Tìm hiểu thêm](https://developer.android.com/multi-device-development?hl=vi) [![](https://developer.android.com/static/images/picto-icons/help.svg?hl=vi)](https://developer.android.com/develop/devices/assistant?hl=vi) Công nghệ ### [Trợ lý](https://developer.android.com/develop/devices/assistant?hl=vi) Sử dụng khung phát triển và các công cụ kiểm tra của Trợ lý để dễ dàng điều khiển sâu các ứng dụng của bạn bằng giọng nói trên các nền tảng chạy Android, chẳng hạn như thiết bị di động, ô tô và thiết bị đeo. [Tìm hiểu thêm](https://developer.android.com/develop/devices/assistant?hl=vi) [![](https://developer.android.com/static/images/picto-icons/vitals.svg?hl=vi)](https://developer.android.com/health-connect?hl=vi) Công nghệ ### [Health Connect](https://developer.android.com/health-connect?hl=vi) Khai thác hết tiềm năng của dữ liệu sức khoẻ và thể hình bằng cách kết hợp những dữ liệu đó để tạo ra thông tin chi tiết hữu ích. [Tìm hiểu thêm](https://developer.android.com/health-connect?hl=vi) --- # Android Essentials  |  Android Developers [رد شدن و رفتن به محتوای اصلی](https://developer.android.com/get-started?hl=fa#main-content) [![Android Developers](https://www.gstatic.com/devrel-devsite/prod/v34fe5d0a1df120a3c24e6d73e25d1d8607836b03710a3ad508fa501ece2bdcb3/android/images/lockup.png)](https://developer.android.com/) / * English * Deutsch * Español – América Latina * Français * Indonesia * Italiano * Polski * Português – Brasil * Tiếng Việt * Türkçe * Русский * עברית * العربيّة * فارسی * हिंदी * বাংলা * ภาษาไทย * 中文 – 简体 * 中文 – 繁體 * 日本語 * 한국어 [استودیو Android](https://developer.android.com/studio?hl=fa) ورود به برنامه ![](https://developer.android.com/_static/images/translated.svg?hl=fa) این صفحه به‌وسیله [‏Cloud Translation API‏](https://cloud.google.com/translate/?hl=fa) ترجمه شده است. * [Android Developers](https://developer.android.com/?hl=fa) * [ملزومات](https://developer.android.com/get-started?hl=fa) با مجموعه‌ها، منظم بمانید ذخیره و طبقه‌بندی محتوا براساس اولویت‌های شما. ![](https://developer.android.com/static/images/cluster-illustrations/launch-app.svg?hl=fa) ### Android Essentials اسناد، آموزش، و آموزش های Codelab را کاوش کنید تا مهارت های Android خود را افزایش دهید، چه تازه وارد این پلتفرم باشید و چه یک توسعه دهنده باتجربه که به دنبال استفاده از ویژگی ها در آخرین نسخه هستید. بیاموزید که تجربه کاربری برنامه خود را در بسیاری از دستگاه ها گسترش دهید و چگونه از Google Play برای کسب درآمد با برنامه خود استفاده کنید. [![](https://developer.android.com/static/images/picto-icons/launch.svg?hl=fa)](https://developer.android.com/get-started/overview?hl=fa) ### [شروع به کار](https://developer.android.com/get-started/overview?hl=fa) برای مروری بر موضوعات کلیدی توسعه اندروید، یک آموزش سریع انجام دهید یا به یک دوره آموزشی عمیق تر بروید. [شروع کنید](https://developer.android.com/get-started/overview?hl=fa) [![](https://developer.android.com/static/images/picto-icons/app-quality.svg?hl=fa)](https://developer.android.com/about/versions?hl=fa) ### [نسخه های اندروید را پیدا کنید](https://developer.android.com/about/versions?hl=fa) نسخه پیش‌نمایش Android 14 فعلی و همچنین Android 13، Android 12 و نسخه‌های قدیمی Android را کاوش کنید. [به روز رسانی](https://developer.android.com/about/versions?hl=fa) [![](https://developer.android.com/static/images/picto-icons/play.svg?hl=fa)](https://play.google.com/console/about/guides/play-commerce/?hl=fa) ### [کسب درآمد](https://play.google.com/console/about/guides/play-commerce/?hl=fa) با اشتراک‌ها، تراکنش‌های مالی و جریان‌های خرید مهم با Google Play درآمد کسب کنید. [بدست آوردن](https://play.google.com/console/about/guides/play-commerce/?hl=fa) [![](https://developer.android.com/static/images/picto-icons/earth.svg?hl=fa)](https://developer.android.com/multidevice?hl=fa) ### [با هم بهتره](https://developer.android.com/multidevice?hl=fa) برای کمک به عملکرد بهتر برنامه‌تان در چندین دستگاه، تجربه‌های عالی ایجاد کنید. [تمدید کنید](https://developer.android.com/multidevice?hl=fa) [![](https://developer.android.com/static/images/hero-illustrations/better-together-hero.svg?hl=fa)](https://developer.android.com/multidevice?hl=fa) ### [پشتیبانی از چندین دستگاه](https://developer.android.com/multidevice?hl=fa) اندروید برای همه و در همه جا ساخته شده است و به مردم امکان انتخاب بیشتر در دستگاه ها را می دهد، خواه بر اساس طراحی، ویژگی ها یا ارزش کلی باشد. با پشتیبانی از طیف وسیعی از دستگاه ها و عوامل شکل، تجربه کاربری خود را گسترش دهید. [با پشتیبانی چند دستگاهی آشنا شوید](https://developer.android.com/multidevice?hl=fa) [![](https://developer.android.com/static/images/cluster-illustrations/in-app-subscriptions.svg?hl=fa)](https://play.google.com/console/about/guides/monetize/?hl=fa) ### [با گوگل پلی کسب درآمد کنید](https://play.google.com/console/about/guides/monetize/?hl=fa) با استفاده از Google Play یک سیستم صورت‌حساب را در برنامه خود ادغام و کسب درآمد کنید. Google play ویژگی‌ها و پشتیبانی‌های مختلفی را ارائه می‌کند تا به شما کمک کند از برنامه‌تان درآمد کسب کنید و در عین حال به بازار جهانی دست پیدا کنید. [صورت‌حساب Google Play](https://play.google.com/console/about/guides/monetize/?hl=fa) [![](https://developer.android.com/static/images/hero-illustrations/android-ai-tools-hero.svg?hl=fa)](https://developer.android.com/ai?hl=fa) ### [هوش مصنوعی در اندروید](https://developer.android.com/ai?hl=fa) برنامه‌های Android خود را فعال کنید تا متن و تصویر تولید کنند، محتوا را درک کنند، اطلاعات را غنی‌سازی کنند و تعامل با کاربران ایجاد کنند. از مجموعه کامل ابزارهای هوش مصنوعی و ML گوگل استفاده کنید تا برنامه‌های خود را مفیدتر و شهودی‌تر کنید. [هوش مصنوعی را در اندروید کاوش کنید](https://developer.android.com/ai?hl=fa) [![](https://developer.android.com/static/images/home/productivity.svg?hl=fa)](https://developer.android.com/productivity?hl=fa) ### [بهره وری](https://developer.android.com/productivity?hl=fa) برنامه بهره‌وری خود را با رسانه، طرح‌بندی‌های تطبیقی ​​و موارد دیگر ارتقا دهید. [مرکز برنامه نویس را مشاهده کنید](https://developer.android.com/productivity?hl=fa) [![](https://developer.android.com/static/images/picto-icons/game-controller.svg?hl=fa)](https://developer.android.com/games?hl=fa) ### [بازی ها](https://developer.android.com/games?hl=fa) همه چیزهایی را که برای توسعه و ارائه بازی‌ها در اندروید نیاز دارید، دریافت کنید. [مرکز برنامه نویس را مشاهده کنید](https://developer.android.com/games?hl=fa) [![](https://developer.android.com/static/images/picto-icons/courses.svg?hl=fa)](https://developer.android.com/media?hl=fa) ### [برنامه های رسانه ای](https://developer.android.com/media?hl=fa) اولین توقف شما برای محتوای در حال توسعه برنامه های رسانه ای. [مرکز برنامه نویس را مشاهده کنید](https://developer.android.com/media?hl=fa) [![](https://developer.android.com/static/images/picto-icons/chat-bubbles-2.svg?hl=fa)](https://developer.android.com/social-and-messaging?hl=fa) ### [اجتماعی و پیام رسانی](https://developer.android.com/social-and-messaging?hl=fa) برنامه هایی بسازید که اطلاعات را به هم متصل می کنند، ارتباط برقرار می کنند و به اشتراک می گذارند. [مرکز برنامه نویس را مشاهده کنید](https://developer.android.com/social-and-messaging?hl=fa) [![](https://developer.android.com/static/images/picto-icons/plus.svg?hl=fa)](https://developer.android.com/health-connect?hl=fa) ### [سلامت و تناسب اندام](https://developer.android.com/health-connect?hl=fa) برنامه های سلامت و تناسب اندام داده های ارزشمندی را ثبت می کنند. [به Health Connect بروید](https://developer.android.com/health-connect?hl=fa) [![](https://developer.android.com/static/images/picto-icons/app-bundle.svg?hl=fa)](https://developer.android.com/work?hl=fa) ### [برنامه های سازمانی](https://developer.android.com/work?hl=fa) از API ها و سایر ابزارها برای ایجاد راه حل های سازمانی استفاده کنید. [مشاهده دستورالعمل ها](https://developer.android.com/work?hl=fa) [![](https://developer.android.com/static/images/logos/android.svg?hl=fa)](https://developer.android.com/about/versions?hl=fa) ### [آخرین نسخه اندروید را ببینید](https://developer.android.com/about/versions?hl=fa) آخرین نسخه های پلتفرم اندروید، از جمله نسخه پیش نمایش فعلی را مشاهده کنید. [![](https://developer.android.com/static/images/logos/android-jetpack.svg?hl=fa)](https://developer.android.com/jetpack/androidx/versions?hl=fa) ### [جدیدترین کتابخانه های Jetpack را کاوش کنید](https://developer.android.com/jetpack/androidx/versions?hl=fa) کتابخانه‌های Jetpack جدا از سیستم‌عامل اندروید ارسال می‌شوند، بنابراین به‌روزرسانی‌های کتابخانه‌ها می‌توانند به‌طور مستقل و بیشتر انجام شوند. [![](https://developer.android.com/static/images/logos/android-studio-canary.svg?hl=fa)](https://developer.android.com/studio/preview?hl=fa) ### [پیش نمایش اندروید استودیو را دریافت کنید](https://developer.android.com/studio/preview?hl=fa) دسترسی زودهنگام به جدیدترین ویژگی‌ها و پیشرفت‌ها در Android Studio داشته باشید. [![](https://developer.android.com/static/images/picto-icons/wear-os-development.svg?hl=fa)](https://developer.android.com/training/wearables/versions/4?hl=fa) ### [پیش‌نمایش برنامه‌نویس Wear OS را دریافت کنید](https://developer.android.com/training/wearables/versions/4?hl=fa) نسخه بعدی Wear OS اکنون برای آزمایش، توسعه و بازخورد در دسترس است. آن را با برنامه های خود امتحان کنید و نظر خود را به ما بگویید! [![](https://developer.android.com/static/images/picto-icons/lock.svg?hl=fa)](https://developer.android.com/design-for-safety/privacy-sandbox?hl=fa) ### [جعبه ایمنی حریم خصوصی در اندروید](https://developer.android.com/design-for-safety/privacy-sandbox?hl=fa) هدف Privacy Sandbox در Android توسعه فن‌آوری‌های جدیدی است که حریم خصوصی کاربر را بهبود می‌بخشد و تجربه‌های تبلیغاتی شخصی و مؤثر را برای برنامه‌های تلفن همراه امکان‌پذیر می‌سازد. [![](https://developer.android.com/static/images/distribute/stories/marvel-strike-force-icon_2880.png?hl=fa)](https://developer.android.com/stories/instant-apps/marvel-strike-force?hl=fa) ### [Marvel Strike Force نرخ نصب خود را بهبود می بخشد](https://developer.android.com/stories/instant-apps/marvel-strike-force?hl=fa) به دلیل حجم بالای فایل، تعداد نصب های ارگانیک کمتر از آن چیزی بود که تیم برای چنین امتیاز محبوبی امیدوار بود. Google Play Instant برای نجات! [![](https://developer.android.com/static/images/cluster-illustrations/compose-cluster.svg?hl=fa)](https://developer.android.com/stories/apps/cuvva-compose?hl=fa) ### [Cuvva از Jetpack Compose استفاده می‌کند](https://developer.android.com/stories/apps/cuvva-compose?hl=fa) بیاموزید که مهندسان اندروید در Cuvva چگونه برنامه خود را برای استفاده از جریان داده یک طرفه و Jetpack Compose بازسازی کردند. [![](https://developer.android.com/static/images/distribute/stories/duolingo-icon_2880.png?hl=fa)](https://developer.android.com/stories/apps/duolingo-kotlin?hl=fa) ### [Duolingo تعداد خطوط خود را به طور متوسط ​​30٪ کاهش می دهد.](https://developer.android.com/stories/apps/duolingo-kotlin?hl=fa) توسعه‌دهندگان اندروید Duolingo پس از مشاهده اینکه تعداد خطوط پایگاه کدشان هر سال 46 درصد افزایش می‌یابد، موفق شدند از جاوا به کاتلین مهاجرت کنند. --- # Kotlin dan Android  |  Android Developers [Langsung ke konten utama](https://developer.android.com/kotlin?hl=id#main-content) [![Android Developers](https://www.gstatic.com/devrel-devsite/prod/v34fe5d0a1df120a3c24e6d73e25d1d8607836b03710a3ad508fa501ece2bdcb3/android/images/lockup.png)](https://developer.android.com/) / * English * Deutsch * Español – América Latina * Français * Indonesia * Italiano * Polski * Português – Brasil * Tiếng Việt * Türkçe * Русский * עברית * العربيّة * فارسی * हिंदी * বাংলা * ภาษาไทย * 中文 – 简体 * 中文 – 繁體 * 日本語 * 한국어 [Android Studio](https://developer.android.com/studio?hl=id) Masuk * [Get started](https://developer.android.com/get-started/overview?hl=id) * [Kotlin](https://developer.android.com/kotlin?hl=id) ![](https://developer.android.com/_static/images/translated.svg?hl=id) Halaman ini diterjemahkan oleh [Cloud Translation API](https://cloud.google.com/translate/?hl=id) . * [Android Developers](https://developer.android.com/?hl=id) * [Get started](https://developer.android.com/get-started/overview?hl=id) * [Kotlin](https://developer.android.com/kotlin?hl=id) Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda. ![](https://developer.android.com/static/images/cluster-illustrations/kotlin-hero.svg?hl=id) ### Mengembangkan aplikasi Android dengan Kotlin Buat aplikasi Android yang lebih baik secara lebih cepat dengan Kotlin. Kotlin adalah bahasa pemrograman modern melalui pengetikan statis yang digunakan lebih dari 60% developer Android profesional untuk membantu meningkatkan produktivitas, kepuasan developer, dan keamanan kode. [Mulai](https://developer.android.com/kotlin/first?hl=id) ![](https://developer.android.com/static/images/picto-icons/code.svg?hl=id) ### Ekspresif dan ringkas Fitur bahasa modern Kotlin memungkinkan Anda fokus untuk mengekspresikan ide dan menulis lebih sedikit kode boilerplate. [Pelajari lebih lanjut](https://developer.android.com/kotlin/learn?hl=id) ![](https://developer.android.com/static/images/picto-icons/actionable.svg?hl=id) ### Kode yang lebih aman Dengan nullability yang disertakan dalam sistem jenisnya, Kotlin membantu Anda menghindari NullPointerExceptions. Aplikasi Android yang menggunakan Kotlin memiliki kemungkinan error 20% lebih rendah. [Pelajari lebih lanjut](https://developer.android.com/kotlin/learn?hl=id#null-safety) ![](https://developer.android.com/static/images/spot-icons/jetpack-compose.svg?hl=id) ### Jetpack Compose Toolkit UI modern Android dibuat di Kotlin, memungkinkan Anda membuat UI dengan cepat menggunakan API yang intuitif dan andal. [Pelajari lebih lanjut](https://developer.android.com/jetpack/compose?hl=id) ![](https://developer.android.com/static/images/picto-icons/kmp.svg?hl=id) ### Multiplatform Kotlin Bagikan kode di seluruh platform Android, iOS, dan desktop dengan Kotlin Multiplatform. [Pelajari lebih lanjut](https://developer.android.com/kotlin/multiplatform?hl=id) * * * memulai ### [Mempelajari Android & Kotlin dari nol](https://developer.android.com/courses/android-basics-compose/course?hl=id) Lihat panduan kami untuk pemula, yang mengajarkan cara mem-build aplikasi Android dengan Kotlin dan Jetpack Compose. memulai ### [Kotlin untuk developer Android Java](https://developer.android.com/kotlin/add-kotlin?hl=id) Jika Anda sudah mengenal Java, panduan dan dokumentasi interop kami dapat membantu Anda untuk memulai. memulai ### [Panduan Kotlin Lanjutan](https://developer.android.com/kotlin/coroutines?hl=id) Jika Anda sudah terbiasa dengan Kotlin, baca dokumentasi lanjutan kami untuk meningkatkan keterampilan Anda. memulai ### [Menghadirkan Kotlin ke tim Anda](https://developer.android.com/kotlin/adopt-for-large-teams?hl=id) Pelajari bagaimana menulis dalam Kotlin dapat meningkatkan produktivitas tim, kualitas aplikasi, dan kepuasan developer. ![](https://developer.android.com/static/images/spot-icons/android-studio.svg?hl=id) ### Android Studio Android Studio memberikan dukungan terbaik untuk Kotlin. Kotlin bahkan memiliki alat bawaan untuk membantu Anda mengonversi kode berbasis Java ke Kotlin. Alat Tampilkan Bytecode Kotlin memungkinkan Anda melihat kode berbasis Java yang setara saat Anda mempelajari Kotlin. [Download](https://developer.android.com/studio?hl=id) ![](https://developer.android.com/static/images/picto-icons/android-ktx.svg?hl=id) ### Android KTX Android KTX membuat pengembangan Android dengan Kotlin lebih ringkas, nyaman, dan idiomatis dengan cara memanfaatkan fitur bahasa Kotlin. [Pelajari lebih lanjut](https://developer.android.com/kotlin/ktx?hl=id) ![](https://developer.android.com/static/images/picto-icons/kotlin-friendly-sdk.svg?hl=id) ### SDK yang cocok untuk Kotlin Mulai dari Android 9 (API level 28), Android SDK menyertakan anotasi nullability untuk membantu menghindari NullPointerExceptions. Dokumentasi referensi API juga tersedia di Kotlin. [Lihat dokumentasi](https://developer.android.com/reference/kotlin?hl=id) ![](https://developer.android.com/static/images/picto-icons/learning-resources.svg?hl=id) ### Referensi pembelajaran Pelajari referensi pilihan dalam berbagai format untuk membantu Anda mulai mempelajari Kotlin. [Lihat referensi](https://developer.android.com/kotlin/getting-started-resources?hl=id) ![Jenis Nullable dan NonNull membantu mengurangi NullPointerExceptions, lambda dapat digunakan untuk kode penanganan peristiwa ringkas, ekspresi template dapat digunakan dalam string untuk menghindari penyambungan dan titik koma bersifat opsional.](https://developer.android.com/static/images/kotlin/code-samples/code-sample-newsmall.svg?hl=id) ### [Aplikasi yang dibuat dengan Kotlin](https://developer.android.com/kotlin/stories?hl=id) Banyak aplikasi dibuat dengan Kotlin—mulai dari startup yang baru terbentuk hingga perusahaan yang masuk dalam Fortune 500. Pelajari bagaimana Kotlin membantu tim mereka menjadi lebih produktif dan menulis aplikasi dengan kualitas lebih baik. [Lihat kisah developer](https://developer.android.com/kotlin/stories?hl=id) * [![Slack](https://developer.android.com/static/images/kotlin/apps/slack_2x.png?hl=id)](https://play.google.com/store/apps/details?id=com.Slack&hl=id) * [![Lyft](https://developer.android.com/static/images/kotlin/apps/lyft_2x.png?hl=id)](https://play.google.com/store/apps/details?id=me.lyft.android&hl=id) * [![Robinhood](https://developer.android.com/static/images/kotlin/apps/robinhood_2x.png?hl=id)](https://play.google.com/store/apps/details?id=com.robinhood.android&hl=id) * [![Evernote](https://developer.android.com/static/images/kotlin/apps/evernote_2x.png?hl=id)](https://play.google.com/store/apps/details?id=com.evernote&hl=id) * [![Persegi](https://developer.android.com/static/images/kotlin/apps/square_2x.png?hl=id)](https://play.google.com/store/apps/details?id=com.squareup&hl=id) * [![Deliveroo](https://developer.android.com/static/images/kotlin/apps/deliveroo_2x.png?hl=id)](https://play.google.com/store/apps/details?id=com.deliveroo.orderapp&hl=id) * [![Dropbox](https://developer.android.com/static/images/kotlin/apps/dropbox_2x.png?hl=id)](https://play.google.com/store/apps/details?id=com.dropbox.android&hl=id) * [![Instacart](https://developer.android.com/static/images/kotlin/apps/instacart_2x.png?hl=id)](https://play.google.com/store/apps/details?id=com.instacart.client&hl=id) * [![Pinterest](https://developer.android.com/static/images/kotlin/apps/pinterest_2x.png?hl=id)](https://play.google.com/store/apps/details?id=com.pinterest&hl=id) * [![Basecamp](https://developer.android.com/static/images/kotlin/apps/basecamp_2x.png?hl=id)](https://play.google.com/store/apps/details?id=com.basecamp.bc3&hl=id) * [![Pocket](https://developer.android.com/static/images/kotlin/apps/pocket_2x.png?hl=id)](https://play.google.com/store/apps/details?id=com.ideashower.readitlater.pro&hl=id) * [![Reddit](https://developer.android.com/static/images/kotlin/apps/reddit_2x.png?hl=id)](https://play.google.com/store/apps/details?id=com.reddit.frontpage&hl=id) * [![Camera360](https://developer.android.com/static/images/kotlin/apps/camera360_2x.png?hl=id)](https://play.google.com/store/apps/details?id=vStudio.Android.Camera360&hl=id) * [![Trello](https://developer.android.com/static/images/kotlin/apps/trello_2x.png?hl=id)](https://play.google.com/store/apps/details?id=com.trello&hl=id) * [![Foursquare](https://developer.android.com/static/images/kotlin/apps/foursquare_2x.png?hl=id)](https://play.google.com/store/apps/details?id=com.joelapenna.foursquared&hl=id) * [![Duolingo](https://developer.android.com/static/images/kotlin/apps/duolingo_2x.png?hl=id)](https://play.google.com/store/apps/details?id=com.duolingo&hl=id) * [![Amex](https://developer.android.com/static/images/kotlin/apps/amex_2x.png?hl=id)](https://play.google.com/store/apps/details?id=com.americanexpress.android.acctsvcs.us&hl=id) * [![Expedia](https://developer.android.com/static/images/kotlin/apps/expedia_2x.png?hl=id)](https://play.google.com/store/apps/details?id=com.expedia.bookings&hl=id) * [![Netflix](https://developer.android.com/static/images/kotlin/apps/netflix_2x.png?hl=id)](https://play.google.com/store/apps/details?id=com.netflix.mediaclient&hl=id) * [![Kindle](https://developer.android.com/static/images/kotlin/apps/kindle_2x.png?hl=id)](https://play.google.com/store/apps/details?id=com.amazon.kindle&hl=id) * [![Keepsafe](https://developer.android.com/static/images/kotlin/apps/keepsafe_2x.png?hl=id)](https://play.google.com/store/apps/details?id=com.kii.safe&hl=id) * [![NYTimes](https://developer.android.com/static/images/kotlin/apps/nytimes_2x.png?hl=id)](https://play.google.com/store/apps/details?id=com.nytimes.android&hl=id) * [![Nova Launcher](https://developer.android.com/static/images/kotlin/apps/nova-launcher_2x.png?hl=id)](https://play.google.com/store/apps/details?id=com.teslacoilsw.launcher&hl=id) * [![Wordpress](https://developer.android.com/static/images/kotlin/apps/wordpress_2x.png?hl=id)](https://play.google.com/store/apps/details?id=org.wordpress.android&hl=id) * [![Sederhana](https://developer.android.com/static/images/kotlin/apps/simple_2x.png?hl=id)](https://play.google.com/store/apps/details?id=com.banksimple&hl=id) * [![Twitter](https://developer.android.com/static/images/kotlin/apps/twitter_2x.png?hl=id)](https://play.google.com/store/apps/details?id=com.twitter.android&hl=id) * [![Airbnb](https://developer.android.com/static/images/kotlin/apps/airbnb_2x.png?hl=id)](https://play.google.com/store/apps/details?id=com.airbnb.android&hl=id) * [![Flipboard](https://developer.android.com/static/images/kotlin/apps/flipboard_2x.png?hl=id)](https://play.google.com/store/apps/details?id=flipboard.app&hl=id) * [![Foursquare Swarm](https://developer.android.com/static/images/kotlin/apps/foursquare-swarm_2x.png?hl=id)](https://play.google.com/store/apps/details?id=com.foursquare.robin&hl=id) * [![WeChat](https://developer.android.com/static/images/kotlin/apps/wechat_2x.png?hl=id)](https://play.google.com/store/apps/details?id=com.tencent.mm&hl=id) * [![GO-JEK](https://developer.android.com/static/images/kotlin/apps/go-jek_2x.png?hl=id)](https://play.google.com/store/apps/details?id=com.gojek.app&hl=id) * [![Confluence Cloud](https://developer.android.com/static/images/kotlin/apps/confluence-cloud_2x.png?hl=id)](https://play.google.com/store/apps/details?id=com.atlassian.android.confluence.core&hl=id) * [![Zola Sales](https://developer.android.com/static/images/kotlin/apps/zola-sales_2x.png?hl=id)](https://play.google.com/store/apps/details?id=com.offgrid.electric.zola.sales&hl=id) * [![Headspace](https://developer.android.com/static/images/kotlin/apps/headspace_2x.png?hl=id)](https://play.google.com/store/apps/details?id=com.getsomeheadspace.android&hl=id) * [![Adobe Acrobat Reader](https://developer.android.com/static/images/kotlin/apps/adobe-acrobat-reader_2x.png?hl=id)](https://play.google.com/store/apps/details?id=com.adobe.reader&hl=id) Kisah developer ### Zomato menggunakan Kotlin untuk menulis kode yang lebih aman dan ringkas Kotlin membantu Zomato mengurangi jumlah baris kode di aplikasinya secara signifikan. Kotlin juga membantu menemukan cacat fatal dalam aplikasi pada waktu kompilasi. Tonton video Rahul, Vice President Product Management, dan Prateek Sharma, developer Android, yang membahas bagaimana Zomato mulai menggunakan Kotlin dan bagaimana kini mereka memakainya untuk semua rilis fitur baru. [![](https://developer.android.com/static/images/kotlin/kotlin-logo-color.svg?hl=id)](https://github.com/JetBrains/kotlin) Unggulan ### [Kotlin bersifat open source](https://github.com/JetBrains/kotlin) Kotlin adalah project open source yang tersedia tanpa biaya berdasarkan lisensi Apache 2.0. Kode untuk project tersebut dikembangkan secara terbuka di GitHub, terutama oleh tim yang bekerja di JetBrains, dengan kontribusi dari Google dan lainnya. Pilihan kami untuk menggunakan Kotlin menegaskan kembali komitmen kami terhadap ekosistem developer terbuka saat kami berevolusi serta mengembangkan platform Android, dan kami senang melihat evolusi bahasa ini. [Temukan Kotlin di GitHub](https://github.com/JetBrains/kotlin) [![](https://developer.android.com/static/images/kotlin/icons/android-codelabs.svg?hl=id)](https://codelabs.developers.google.com/codelabs/kotlin-coroutines/?hl=id#0) ### [Codelab Android di Kotlin](https://codelabs.developers.google.com/codelabs/kotlin-coroutines/?hl=id#0) Pelajari praktik terbaik dan API terbaru dengan codelab Android di Kotlin. [Coroutine](https://codelabs.developers.google.com/codelabs/kotlin-coroutines/?hl=id#0) [Room dengan tampilan](https://codelabs.developers.google.com/codelabs/android-room-with-a-view-kotlin/?hl=id#0) [Pemfaktoran ulang ke Kotlin](https://codelabs.developers.google.com/codelabs/java-to-kotlin/?hl=id#0) [![](https://developer.android.com/static/images/logos/medium.svg?hl=id)](https://medium.com/androiddevelopers/tagged/kotlin) ### [Android + Kotlin di Medium](https://medium.com/androiddevelopers/tagged/kotlin) Artikel teknis tentang Kotlin dari tim Android. [Jelajahi artikel](https://medium.com/androiddevelopers/tagged/kotlin) [![](https://developer.android.com/static/images/picto-icons/courses.svg?hl=id)](https://developer.android.com/courses/android-basics-compose/course?hl=id) ### [Kursus Dasar-Dasar Android dengan Compose](https://developer.android.com/courses/android-basics-compose/course?hl=id) Bagi yang belum memiliki pengalaman pemrograman, pelajari dasar-dasar bahasa pemrograman Kotlin dan cara membuat aplikasi Android sederhana. [Mulai kursus](https://developer.android.com/courses/android-basics-compose/course?hl=id) [![](https://developer.android.com/static/images/picto-icons/playground.svg?hl=id)](https://developer.android.com/training/kotlinplayground?hl=id) ### [Playground Kotlin](https://developer.android.com/training/kotlinplayground?hl=id) Coba gunakan Kotlin sekarang, langsung di browser web Anda. [Coba Sekarang](https://developer.android.com/training/kotlinplayground?hl=id) [![](https://developer.android.com/static/images/picto-icons/language.svg?hl=id)](https://kotlinlang.org/docs/reference/) ### [Referensi resmi bahasa](https://kotlinlang.org/docs/reference/) Mulai pelajari Kotlin dari situs referensi bahasa resmi. [Lihat resource](https://kotlinlang.org/docs/reference/) --- # सर्वर की गड़बड़ी [](https://developer.android.com/) **500.** सर्वर में गड़बड़ी. आपके अनुरोध को पूरा करने की कोशिश करते समय एक गड़बड़ी हुई. हम बस इतना ही जानते हैं. --- # Errore del server [](https://developer.android.com/) **500.** Errore interno del server. Si è verificato un errore durante il tentativo di completamento della richiesta. Non abbiamo altre informazioni a riguardo. --- # Cómo comenzar a ofrecer accesibilidad en Android  |  Android Developers [Ir al contenido principal](https://developer.android.com/codelabs/starting-android-accessibility?hl=es-419#main-content) [![Android Developers](https://www.gstatic.com/devrel-devsite/prod/v34fe5d0a1df120a3c24e6d73e25d1d8607836b03710a3ad508fa501ece2bdcb3/android/images/lockup.png)](https://developer.android.com/) / * English * Deutsch * Español – América Latina * Français * Indonesia * Polski * Português – Brasil * Tiếng Việt * 中文 – 简体 * 日本語 * 한국어 [Android Studio](https://developer.android.com/studio?hl=es-419) Acceder Cómo comenzar a ofrecer accesibilidad en Android Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias. ================================================================================================================================================= 1\. Introducción ---------------- ![logo_accessibility_color_2x_web_96dp.png](https://developer.android.com/static/codelabs/starting-android-accessibility/img/bd6e392271bac146.png?hl=es-419) **Todas las personas, incluso aquellas con necesidades de accesibilidad, deberían poder usar las apps para Android**. Algunas de las condiciones más comunes que afectar la manera en que una persona usa un dispositivo Android pueden incluir la ceguera o la visión reducida, la sordera o hipoacusia, las habilidades motrices restringidas, las discapacidades cognitivas y el daltonismo. Y esta es solo una lista parcial de ellas. En este codelab, conocerás los problemas de accesibilidad que ocurren con más frecuencia en las apps. En particular, se orienta a tres problemas de ese tipo: 1. Etiquetas faltantes 2. Objetivos táctiles inadecuados 3. Contraste escaso entre el contenido en primer plano y el fondo Aprenderás sobre el modo en que afectan estos problemas a los usuarios, cómo puedes comprobar si ocurren en tus apps y sus soluciones. Este codelab está estructurado con pasos individuales y pequeños. Cada uno de ellos se enfoca en un aspecto específico de la accesibilidad. **Público y requisitos** ------------------------ Este codelab está pensado para desarrolladores de Android que deseen comprender cómo hacer que sus apps sean aptas para usuarios que tengan necesidades de accesibilidad. **Se asume que no cuentas con conocimientos previos sobre lineamientos o API de accesibilidad.** En este codelab, se supone lo siguiente: 1. Tienes conocimientos sobre la escritura de apps para Android. 2. Cuentas con acceso a un dispositivo Android que ejecuta Lollipop (nivel de API 21) o una versión posterior. 3. Puedes instalar la app de [Prueba de accesibilidad](https://play.google.com/store/apps/details?id=com.google.android.apps.accessibility.auditor&hl=es-419) desde Google Play Store. 2\. Cómo prepararte ------------------- Qué compilarás -------------- En este codelab, trabajarás con una app existente: **Counter**. Esta app permite a los usuarios registrar, aumentar y disminuir una cantidad numérica. A pesar de que la app es simple, descubrirás que tiene varios problemas de accesibilidad que dificultan que muchos usuarios puedan interactuar adecuadamente con ella. Durante la realización de este codelab, mejorarás la app y la harás más accesible. Tus mejoras ayudarán a usuarios ciegos o con visión reducida, así como a aquellos con dificultades de movilidad y destreza. Corregir los problemas de **Counter** te brindará un conocimiento básico sobre la accesibilidad que podrás usar para mejorar la de tus propias apps. Descarga el Código ------------------ Puedes obtener el [código fuente de la versión inicial](https://github.com/googlecodelabs/android-accessibility) de la app en GitHub. Clona el repositorio y abre **Counter** en Android Studio. Cada paso de este codelab está estructurado de forma tal que trabajes sobre una función implementada de una manera menos accesible. Al final de cada paso, habrás modificado el código y habrás hecho más accesible la pantalla o función. **Cómo iniciar la aplicación de demostración** ---------------------------------------------- 1. Inicia Android Studio y abre el proyecto **Counter**. Asegúrate de haber conectado un dispositivo a tu computadora. 2. Presiona el ícono verde de **Reproducir** ![Screen Shot 2016-05-11 at 8.53.21 AM.png](https://developer.android.com/static/codelabs/starting-android-accessibility/img/1fecbe8cf96f1d28.png?hl=es-419) de la barra de menú que se encuentra en la parte superior de la pantalla. Esto debería iniciar la app de **Counter**. La página de destino de la app debería verse de la siguiente manera: ![782e10ac891e76d4.png](https://developer.android.com/static/codelabs/starting-android-accessibility/img/782e10ac891e76d4.png?hl=es-419) 3. Explora la app de demo, usa los botones de aumento (**"+"**) y disminución (**"-"**) a fin de cambiar la cantidad. Para muchos usuarios, esta es una app fácil de usar. Sin embargo, los problemas de accesibilidad hacen que usarla resulte un desafío para algunos usuarios. Obtendrás más información acerca de esos desafíos en este codelab. Primero, configurarás la [Prueba de accesibilidad](https://play.google.com/store/apps/details?id=com.google.android.apps.accessibility.auditor&hl=es-419) , que es la herramienta que usarás en este codelab a fin de identificar los problemas de accesibilidad. 3\. Prueba de accesibilidad --------------------------- La **Prueba de accesibilidad** es una herramienta de Google que sugiere mejoras de accesibilidad en las apps para Android, como agrandar objetivos táctiles pequeños, aumentar el contraste y brindar descripciones de contenido, de modo que las personas con necesidades de accesibilidad puedan usar tu app con mayor facilidad. ![Prueba de accesibilidad en Play Store](https://developer.android.com/static/codelabs/starting-android-accessibility/img/80422bba6e519497.png?hl=es-419 "Prueba") Puedes descargar y configurar la **Prueba de accesibilidad** mediante los siguientes pasos: 1. [Descarga la Prueba de accesibilidad desde Google Play Store](https://play.google.com/store/apps/details?id=com.google.android.apps.accessibility.auditor&hl=es-419) . 2. Una vez que hayas instalado la **Prueba de accesibilidad**, ve a **Configuración > Accesibilidad** en tu dispositivo\*\*.\*\* Ubica y habilita la Prueba de accesibilidad (presiona "\*\*Permitir"\*\* o \*\*"Aceptar\*\*", y, luego, "\*\*Comenzar autorización\*\*" para completar el flujo de trabajo de la configuración). 3. Vuelve a la app de **Counter**. Tu pantalla debería verse de esta manera: ![e79b056386dbc742.png](https://developer.android.com/static/codelabs/starting-android-accessibility/img/e79b056386dbc742.png?hl=es-419) Notarás que la **Prueba de accesibilidad** crea un botón de acción flotante (BAF) de color azul, que aparecerá superpuesto sobre el contenido que esté en pantalla. ![fb39571ce90d713.png](https://developer.android.com/static/codelabs/starting-android-accessibility/img/fb39571ce90d713.png?hl=es-419) Puedes presionar el BAF para comenzar una prueba de accesibilidad (lo harás en unos minutos). Si deseas mover el BAF a otra zona de la pantalla, puedes mantenerlo presionado y arrastrarlo. 4\. Cómo escanear la app de Counter ----------------------------------- En esta sección, realizarás una auditoría de accesibilidad de la pantalla mediante la **Prueba de accesibilidad**: 1. Presiona el botón ![fb39571ce90d713.png](https://developer.android.com/static/codelabs/starting-android-accessibility/img/fb39571ce90d713.png?hl=es-419) para iniciar el análisis. Cuando hagas esto, la **Prueba de accesibilidad** examinará la IU de la pantalla, realizará una auditoría rápida de accesibilidad y preparará sugerencias con mejoras relacionadas con la accesibilidad. 2. Revisa el resultado del análisis. Debería ser similar a lo siguiente: ![bdd8e1ce7558eb81.png](https://developer.android.com/static/codelabs/starting-android-accessibility/img/bdd8e1ce7558eb81.png?hl=es-419) La **Prueba de accesibilidad** destacará las vistas que posiblemente tengan problemas de accesibilidad y ofrecerá sugerencias para corregir esos problemas. Cómo comprender las **sugerencias de la Prueba de accesibilidad** ----------------------------------------------------------------- La **Prueba de accesibilidad** tiene cinco sugerencias para mejorar la accesibilidad de **Counter**. ### Contraste insuficiente La **Prueba de accesibilidad** recomienda corregir el escaso contraste de color en la vista que muestra la cantidad actual. 1. Presiona el campo de cantidad, con contorno naranja en el centro de la pantalla, y consulta la sugerencia de la **Prueba**: ![fa2bf7446019bf2c.png](https://developer.android.com/static/codelabs/starting-android-accessibility/img/fa2bf7446019bf2c.png?hl=es-419) 2. Expande el error y consulta los detalles para aplicar la sugerencia de la **Prueba**. Verás que la **Prueba** te muestra los colores del contenido en primer plano y el fondo, y las relaciones de contraste existentes y sugeridas: ![b88532209a57e916.png](https://developer.android.com/static/codelabs/starting-android-accessibility/img/b88532209a57e916.png?hl=es-419) **¿Por qué el contraste de color resulta importante para la accesibilidad?** Los usuarios con visión reducida tienen una mayor dificultad a la hora de leer información en una pantalla si los colores del contenido en primer plano y el fondo no tienen el contraste suficiente. **Las relaciones bajas de contraste pueden hacer que las vistas pierdan nitidez para algunos usuarios**, mientras que las relaciones altas hacen que se destaquen con más claridad. Diferentes escenarios de iluminación pueden ampliar las dificultades generadas por relaciones bajas de contraste. ### **Etiquetas faltantes** La **Prueba** marcará las etiquetas faltantes de los `ImageButtons` **"-"** y **"+"**, lo cual dificulta que los usuarios de lectores de pantalla sepan cuál es la función de esos controles. 1. Presiona los errores asociados al botón **"-"** o **"+"**, y lee las sugerencias relacionadas con las etiquetas faltantes: ![4c8476ac798a3089.png](https://developer.android.com/static/codelabs/starting-android-accessibility/img/4c8476ac798a3089.png?hl=es-419) **¿Por qué las etiquetas faltantes resultan problemáticas para la accesibilidad?** Las personas ciegas o con discapacidad visual utilizan lectores de pantalla como [TalkBack](https://support.google.com/accessibility/android/answer/6283677?hl=es-419) para interactuar con sus dispositivos. TalkBack anuncia el contenido de la pantalla al usuario de modo que pueda interactuar con él. Cuando un elemento no tiene un texto asociado (un `ImageButton`, por ejemplo), TalkBack no sabe cómo comunicar al usuario de forma adecuada el objetivo del elemento, en cuyo caso, podría anunciar un mensaje predeterminado de "Botón sin etiquetar", lo cual no es de utilidad para el usuario. Si proporcionas una etiqueta con una descripción adecuada, TalkBack podrá anunciarla al usuario. ### **Objetivos táctiles insuficientes** Además de las etiquetas faltantes, la **Prueba** sugiere aumentar el área táctil para los botones **"-"** y **"+"**: ![4bde82d712530aaf.png](https://developer.android.com/static/codelabs/starting-android-accessibility/img/4bde82d712530aaf.png?hl=es-419) **¿Por qué los objetivos táctiles pequeños resultan problemáticos para la accesibilidad?** Muchas personas tienen dificultades a la hora de ver objetivos táctiles pequeños en la pantalla. Esto puede deberse simplemente a que tienen dedos grandes, o bien porque tienen una afección médica que tenga un impacto en sus habilidades motrices. Los objetivos táctiles pequeños también dificultan que los usuarios que emplean lectores de pantalla puedan navegar en apps moviendo un dedo por la pantalla, como cuando usan la función [Exploración táctil](https://support.google.com/accessibility/android/answer/6006598?hl=es-419) en TalkBack. ### **Resumen** Exploraste una pequeña porción de la funcionalidad que brinda la **Prueba de accesibilidad**. Las sugerencias que la **Prueba de accesibilidad** brindó (como las relacionadas con el contraste de color, las etiquetas de elementos y los objetivos táctiles) aparecen con frecuencia en las apps para Android. La implementación de estas sugerencias puede ser de utilidad para que tus apps resulten más accesibles. Además, las correcciones son, en general, bastante directas. Entonces, ¡comencemos a programar! 5\. Cómo asegurarse de que el contraste de color sea el adecuado ---------------------------------------------------------------- En **Counter**, el contraste de color es fácil de mejorar. El elemento `TextView` muestra la cantidad que usa un fondo gris claro y un texto de color gris. Puedes quitar el fondo, elegir uno de un color más claro, o bien optar por un color de texto más oscuro. En este codelab, elegirás un color de texto más oscuro. Estos son algunos colores ya definidos en **colors.xml** que puedes usar: ... #EEEEEE #999999 #666666 Abre **res/layout/activity\_main.xml** y cambia `android:textColor="@color/grey"` a `android:textColor="@color/darkGrey"`: Ahora ejecuta la app y observa el contraste modificado: | | | | --- | --- | | Antes | Después | | ![](https://developer.android.com/static/codelabs/starting-android-accessibility/img/e48af782c716ea54.png?hl=es-419) | ![](https://developer.android.com/static/codelabs/starting-android-accessibility/img/d0d90bf68ab4f5a6.png?hl=es-419) | La relación de contraste ahora es 4.94:1, mucho mejor que 2.45:1, que es la que tenías antes: | | | | | | --- | --- | --- | --- | | | **Fondo** | **Color de texto** | **Relación de contraste** | | Antes | #EEEEEE | Gris claro (#999999) | **2.45:1** | | Después | #EEEEEE | Gris oscuro (#666666) | **4.94:1** | ¿Qué constituye un contraste adecuado? En las [Pautas de accesibilidad para contenido web](https://www.w3.org/WAI/standards-guidelines/wcag/) , se recomienda una [relación de contraste mínima](http://www.w3.org/TR/UNDERSTANDING-WCAG20/visual-audio-contrast-contrast.html) de **4.5:1** para todo el texto, con una relación de contraste de **3.0:1** que se considera aceptable para texto grande o en negrita. Intenta alcanzar o superar estas relaciones de contraste en tus aplicaciones. ![fb39571ce90d713.png](https://developer.android.com/static/codelabs/starting-android-accessibility/img/fb39571ce90d713.png?hl=es-419) Presiona el BAF a fin de comenzar otro análisis mediante la **Prueba de accesibilidad** y verás que la app ya no sugiere nada en relación con el contraste de color: ![5b375bcb2af0d91d.png](https://developer.android.com/static/codelabs/starting-android-accessibility/img/5b375bcb2af0d91d.png?hl=es-419) La **Prueba de accesibilidad** todavía tiene 4 sugerencias para mejorar la accesibilidad de **Counter**, así que sigamos trabajando en la app. 6\. Cómo agregar las etiquetas faltantes ---------------------------------------- Dado que a los `ImageButtons` **"-"** y **"+"** les faltan las etiquetas, un lector de pantalla como TalkBack no podrá comunicar adecuadamente la semántica de las vistas al usuario y solo anunciará "Botón sin etiquetar" cuando un usuario enfoque alguno de ellos: ![a2b9ac2003f260cf.png](https://developer.android.com/static/codelabs/starting-android-accessibility/img/a2b9ac2003f260cf.png?hl=es-419) A fin de corregir esto, asigna una **`android:contentDescription`** a cada botón: Asegúrate de usar strings localizadas para las descripciones del contenido de modo que puedan traducirse de forma adecuada. A los efectos de este codelab, las strings ya están definidas en **res/values/strings.xml**. Un lector de pantalla ahora anunciará el valor de la `contentDescription` que proporcionaste (traducida de manera apropiada al idioma de la configuración regional) cuando el usuario se enfoque en los botones. ![fb39571ce90d713.png](https://developer.android.com/static/codelabs/starting-android-accessibility/img/fb39571ce90d713.png?hl=es-419) Ejecuta la **Prueba de accesibilidad** una vez más. Notarás que no muestra sugerencias relacionadas con etiquetas faltantes. ![ee84419e9b6b5866.png](https://developer.android.com/static/codelabs/starting-android-accessibility/img/ee84419e9b6b5866.png?hl=es-419) 7\. Cómo agrandar los objetivos táctiles ---------------------------------------- La **Prueba de accesibilidad** ahora sugiere que los botones **"-"** y **"+"** tengan un tamaño táctil más grande. En este paso, pondrás en práctica esa sugerencia. Los dos botones de **Counter** son pequeños (24 dp x 24 dp). En general, el área táctil de los elementos enfocables debería ser de, al menos, 48 dp x 48 dp. Si es más grande, mejor. Observa que cuando aumentas el área táctil de 24 dp x 24 dp a 48 dp x 48 dp, la estás cuadruplicando. Tienes varias opciones para aumentar el área táctil de los botones. Por ejemplo, puedes elegir alguna de estas dos: * Agrega padding alrededor de los íconos. * Agrega un elemento `minWidth` o un `minHeight` (esto agrandará los íconos). * Registra un objeto [TouchDelegate](https://developer.android.com/reference/android/view/TouchDelegate?hl=es-419) . Antes de realizar algún cambio, veamos la medición del área táctil de los botones. **Herramientas y límites de diseño** ------------------------------------ Para este paso, asegúrate de que habilitaste las [Opciones para desarrolladores](https://developer.android.com/studio/debug/dev-options?hl=es-419) en tu dispositivo. Ve a **Configuración > Sistema > Opciones para desarrolladores**. En la categoría **Diagrama**, habilita la opción **"Mostrar límites de diseño"**. Tu pantalla debería mostrar los límites de recorte, márgenes, etc. de cada vista visible. ![Captura de pantalla que muestra los límites de diseño en pantalla.](https://developer.android.com/static/codelabs/starting-android-accessibility/img/3538af1684a9d265.png?hl=es-419 "Límites de diseño") Ahora observa los límites de diseño de la pantalla de **Counter** y concéntrate en los dos botones\*\*:\*\* ![9dd9b146259ae346.png](https://developer.android.com/static/codelabs/starting-android-accessibility/img/9dd9b146259ae346.png?hl=es-419) El área táctil se extiende solo hasta los límites de diseño de los íconos, y la **Prueba de accesibilidad** ya te informó que el área táctil es demasiado pequeña (24 dp x 24 dp). Aumentemos el área de los dos botones. Si miras en **res/layout/activity\_main.xml**, verás las siguientes definiciones para los dos botones: Agrega un poco de padding a cada vista: El valor de `@dimen/icon_padding` está establecido en 12 dp (consulta **res/dimens.xml**). Cuando se aplica este padding, el área táctil del control pasa a ser de 48 dp x 48 dp (24 dp + 12 dp en cada dirección). Ejecuta la app otra vez a fin de confirmar los nuevos límites de diseño: | | | | --- | --- | | Antes | Después | | ![](https://developer.android.com/static/codelabs/starting-android-accessibility/img/955fe903fe7eab70.png?hl=es-419) | ![](https://developer.android.com/static/codelabs/starting-android-accessibility/img/d931e161aa1b6047.png?hl=es-419) | Vuelve a la categoría **Configuración > Opciones para desarrolladores > Diagrama** y desactiva la opción "**Mostrar límites de diseño**". ![fb39571ce90d713.png](https://developer.android.com/static/codelabs/starting-android-accessibility/img/fb39571ce90d713.png?hl=es-419) Ejecuta la **Prueba de accesibilidad** una vez más. Ahora, el análisis debería completarse sin mostrar sugerencias: ![29debb90665c4fcc.png](https://developer.android.com/static/codelabs/starting-android-accessibility/img/29debb90665c4fcc.png?hl=es-419) Felicitaciones, completaste estos pasos simples y lograste hacer tu app más accesible. 8\. Limitaciones de la Prueba de accesibilidad ---------------------------------------------- Si bien las herramientas como la **Prueba de accesibilidad** pueden ayudarte a mejorar de forma significativa la accesibilidad de tu app, estas no reemplazan las pruebas manuales. Se debe aplicar un enfoque holístico a la cuestión de la accesibilidad: la **Prueba de accesibilidad**, por ejemplo, te dirá si falta una etiqueta, pero no puede decirte si esa etiqueta tiene lógica. En general, la **Prueba de accesibilidad** no puede determinar si tu interfaz de usuario comunica información semántica de forma simple y clara. Además, la **Prueba de accesibilidad** no puede informar con qué grado de éxito una app admite distintos modos de interacción (táctil o por voz) o si los usuarios pueden completar satisfactoriamente los casos de uso más comunes de tu app. Sin embargo, la **Prueba de accesibilidad** brinda una introducción a la accesibilidad y es una herramienta invaluable de accesibilidad que deberías considerar usar con frecuencia. Cómo desactivar la Prueba de accesibilidad ------------------------------------------ Ve a **Configuración > Accesibilidad** y establece la **Prueba de accesibilidad** como **desactivada**. 9\. Vínculos y recursos ----------------------- Viste varios temas en relación con la accesibilidad en Android. A continuación, tienes algunos vínculos y recursos que puedes explorar: * Para continuar aprendiendo acerca de la accesibilidad en Android, visita [developer.android.com](https://developer.android.com/guide/topics/ui/accessibility/index.html?hl=es-419) . * Si deseas aprender más sobre los servicios de accesibilidad, visita el [Centro de ayuda de Accesibilidad de Android](https://support.google.com/accessibility/android?hl=es-419) , donde podrás encontrar documentación sobre **TalkBack**, **BrailleBack**, **Acceso por voz**, **Accesibilidad con interruptores** y otras funciones de accesibilidad de Android. * Lee acerca de la [accesibilidad y Material Design.](https://www.google.com/design/spec/usability/accessibility.html?hl=es-419) Salvo que se indique lo contrario, el contenido de esta página está sujeto a la [licencia Atribución 4.0 de Creative Commons](https://creativecommons.org/licenses/by/4.0/) , y los ejemplos de código están sujetos a la [licencia Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0) . Para obtener más información, consulta las [políticas del sitio de Google Developers](https://developers.google.com/site-policies?hl=es-419) . Java es una marca registrada de Oracle o sus afiliados. --- # Linking to Google Play  |  Branding & Marketing  |  Android Developers [Skip to main content](https://developer.android.com/distribute/marketing-tools/linking-to-google-play#main-content) [![Android Developers](https://www.gstatic.com/devrel-devsite/prod/v34fe5d0a1df120a3c24e6d73e25d1d8607836b03710a3ad508fa501ece2bdcb3/android/images/lockup.png)](https://developer.android.com/) / * English * Deutsch * Español – América Latina * Français * Indonesia * Italiano * Polski * Português – Brasil * Tiếng Việt * Türkçe * Русский * עברית * العربيّة * فارسی * हिंदी * বাংলা * ภาษาไทย * 中文 – 简体 * 中文 – 繁體 * 日本語 * 한국어 [Android Studio](https://developer.android.com/studio) Sign in * [Google Play](https://developer.android.com/distribute) * [Branding & Marketing](https://developer.android.com/distribute/marketing-tools) * [Android Developers](https://developer.android.com/) * [Google Play](https://developer.android.com/distribute) * [Branding & Marketing](https://developer.android.com/distribute/marketing-tools) Linking to Google Play Stay organized with collections Save and categorize content based on your preferences. ================================================================================================================ Google Play provides several link formats that let you bring users to your products in the way you want, from Android apps, web pages, ads, reviews, articles, social media posts, and more. The link formats let you link to the following: * An app's [store listing](https://developer.android.com/distribute/marketing-tools/linking-to-google-play#OpeningDetails) . * A [developer's page](https://developer.android.com/distribute/marketing-tools/linking-to-google-play#OpeningPublisher) . * A [search result](https://developer.android.com/distribute/marketing-tools/linking-to-google-play#PerformingSearch) of your choice. * A [collection](https://developer.android.com/distribute/marketing-tools/linking-to-google-play#OpeningCollection) . * A [Google Play Instant experience](https://developer.android.com/distribute/marketing-tools/linking-to-google-play#Instant) . Linking to a store listing -------------------------- Use the format below to deep-link directly to an app's Store listing page, where users can see the app description, screenshots, reviews and more, and then install it. To create the link, you need to know the app's fully qualified _package name_, which is declared in the app's [manifest file](https://developer.android.com/guide/topics/manifest/manifest-element#package) . The package name is also visible in the Google Play Console. https://play.google.com/store/apps/details?id= Here's an example: [http://play.google.com/store/apps/details?id=com.google.android.apps.maps](https://play.google.com/store/apps/details?id=com.google.android.apps.maps) For details on how to send the link in an Android app, see [Linking from an Android App](https://developer.android.com/distribute/marketing-tools/linking-to-google-play#android-app) . Linking to a developer page --------------------------- Use the format below to link users to your [developer page](https://support.google.com/googleplay/android-developer/answer/6226441) . On this page you can provide more details about your brand, feature an app, and provide a list of other apps you've published. To create the link, you need to know your _publisher name_, which is available from the Play Console. https://play.google.com/store/apps/dev?id= Here's an example: [https://play.google.com/store/apps/dev?id=5700313618786177705](https://play.google.com/store/apps/dev?id=5700313618786177705) For details on how to send the link in an Android app, see [Linking from an Android App](https://developer.android.com/distribute/marketing-tools/linking-to-google-play#android-app) . Linking to a search result -------------------------- Use the format below to link users to a search query result on Google Play. The search result page shows a list of apps (and optionally other content) that match the query, with ratings, badges, and an install button for each. To create the link, you just need a search query string. If you want the query to search beyond the Google Play app listings, remove the `&c=apps` part of the link URL. https://play.google.com/store/search?q=&c=apps Here's an example: [https://play.google.com/store/search?q=maps&c=apps](http://play.google.com/store/search?q=maps&c=apps) For details on how to send the link in an Android app, see [Linking from an Android App](https://developer.android.com/distribute/marketing-tools/linking-to-google-play#android-app) . Linking to a collection ----------------------- If your app is featured or appears in one of the Google Play top charts or collections, you can use the format below to link users directly to the collection. The collection shows a ranked list of apps in the collection, with ratings, short descriptions, and an install button. https://play.google.com/store/apps/collection/ Here's an example: [https://play.google.com/store/apps/collection/topselling\_free](http://play.google.com/store/apps/collection/topselling_free) For details on how to send the link in an Android app, see [Linking from an Android App](https://developer.android.com/distribute/marketing-tools/linking-to-google-play#android-app) . **Table 1.** Collections on Google Play. | Collection | collection\_name | | --- | --- | | Staff Picks (Featured) | featured | | Top Paid | topselling\_paid | | Top Free | topselling\_free | | Top New Free | topselling\_new\_free | | Top New Paid | topselling\_new\_paid | | Top Grossing | topgrossing | | Trending | movers\_shakers | Linking to Editors' Choice Pages -------------------------------- If your app is featured or appears in articles in Editors' Choice, you can use the format below to link users directly to the Editors’ Choice page. The URL for the main Editors' Choice page is: [https://play.google.com/store/apps/topic?id=editors\_choice](https://play.google.com/store/apps/topic?id=editors_choice) And you can find each page's URL from the Editors' Choice page. Here are some examples: * [**Get Motivated With These 5 Fitness Apps** \ `https://play.google.com/store/apps/topic?id=editorial_fitness_apps_us`](https://play.google.com/store/apps/topic?id=editorial_fitness_apps_us) * [**Map It Out: Navigate Anywhere With These 5 Apps** \ `https://play.google.com/store/apps/topic?id=editorial_navigation_apps_us`](https://play.google.com/store/apps/topic?id=editorial_navigation_apps_us) * [**Winning Sports Games to Enjoy Any Season** \ `https://play.google.com/store/apps/topic?id=editorial_sports_games_us`](https://play.google.com/store/apps/topic?id=editorial_sports_games_us) Linking from an Android App --------------------------- If you want to link to your products from an Android app, create an [`Intent`](https://developer.android.com/reference/android/content/Intent) that opens a URL. As you configure this intent, pass `"com.android.vending"` into `Intent.setPackage()` so that users see your app's details in the Google Play Store app instead of a [chooser](https://developer.android.com/training/basics/intents/sending#AppChooser) . The following example directs users to viewing the app containing the package name `com.example.android` in Google Play: ### Kotlin val intent \= Intent(Intent.ACTION\_VIEW).apply { data \= Uri.parse( "https://play.google.com/store/apps/details?id=com.example.android") setPackage("com.android.vending") } startActivity(intent) ### Java Intent intent \= new Intent(Intent.ACTION\_VIEW); intent.setData(Uri.parse( "https://play.google.com/store/apps/details?id=com.example.android")); intent.setPackage("com.android.vending"); startActivity(intent); Launching a Google Play Instant experience ------------------------------------------ If you have published an instant app using [Google Play Instant](https://developer.android.com/topic/google-play-instant) , you can launch the app as follows: ### Kotlin val uriBuilder \= Uri.parse("https://play.google.com/store/apps/details") .buildUpon() .appendQueryParameter("id", "com.example.android") .appendQueryParameter("launch", "true") // Optional parameters, such as referrer, are passed onto the launched // instant app. You can retrieve these parameters using Activity.intent.data. uriBuilder.appendQueryParameter("referrer", "exampleCampaignId") val intent \= Intent(Intent.ACTION\_VIEW).apply { data \= uriBuilder.build() setPackage("com.android.vending") } startActivity(intent) ### Java Intent intent \= new Intent(Intent.ACTION\_VIEW); Uri.Builder uriBuilder \= Uri.parse("market://launch") .buildUpon() .appendQueryParameter("id", "com.example.android"); // Optional parameters, such as referrer, are passed onto the launched // instant app. You can retrieve these parameters using // Activity.getIntent().getData(). uriBuilder.appendQueryParameter("referrer", "exampleCampaignId"); intent.setData(uriBuilder.build()); intent.setPackage("com.android.vending"); startActivity(intent); Summary of URL formats ---------------------- The table below provides a summary of the URIs currently supported by the Google Play (both on the web and in an Android application), as discussed in the previous sections. | For this result | Use this link | | --- | --- | | Show the store listing for a specific app | `https://play.google.com/store/apps/details?id=` | | Show the developer page for a specific publisher | `https://play.google.com/store/apps/dev?id=` | | Show the result of a search query | `https://play.google.com/store/search?q=` | | Show an app collection | `https://play.google.com/store/apps/collection/` | | Launch a Google Play Instant experience | `market://launch?id=` | Content and code samples on this page are subject to the licenses described in the [Content License](https://developer.android.com/license) . Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates. Last updated 2025-07-21 UTC. --- # Make your Android app accessible  |  Android Developers [Skip to main content](https://developer.android.com/courses/quizzes/make-your-android-app-accessible/accessibility-on-android#main-content) [![Android Developers](https://www.gstatic.com/devrel-devsite/prod/v34fe5d0a1df120a3c24e6d73e25d1d8607836b03710a3ad508fa501ece2bdcb3/android/images/lockup.png)](https://developer.android.com/) / * English * Deutsch * Español – América Latina * Français * Indonesia * Polski * Português – Brasil * Tiếng Việt * 中文 – 简体 * 中文 – 繁體 * 日本語 * 한국어 [Android Studio](https://developer.android.com/studio) Sign in Stay organized with collections Save and categorize content based on your preferences. 1. True or False? Everyone interacts with their device in the same way. -------------------------------------------------------------------- True False 2. Over 1 \_\_\_ people live with some form of disability. ------------------------------------------------------- billion million 3. \_\_\_ lets users interact with their Android devices using one or more switches instead of the touchscreen. ------------------------------------------------------------------------------------------------------------ Switch Access TalkBack Select to Speak 4. Fill-in-the-blanks ------------------ Enter one or more words to complete the sentence. Most of the time, standard views like text views and buttons are built to work with the Android framework and support accessibility out of the box. In some cases though, you need to fill in the gaps for the accessibility framework using the \_\_\_. 5. Fill-in-the-blanks ------------------ Enter one or more words to complete the sentence. For all visual elements, such as text and icons, within your app, the \_\_\_ is recommended to be above a specific threshold. 6. If selecting a button causes a 'submit' action to occur in your app, the button's description should be \_\_\_. --------------------------------------------------------------------------------------------------------------- Submit button Enter button Submit Enter 7. The Web Content Accessibility Guidelines recommends a minimum contrast ratio of \_\_\_ for all text. ---------------------------------------------------------------------------------------------------- 34:19 3.0:1 4.94:1 4.5:1 Submit answers _error\_outline_ An error occurred when grading the quiz. Please try again. --- # Widgets  |  Mobile  |  Android Developers [Skip to main content](https://developer.android.com/design/ui/mobile/guides/widgets#main-content) [![Android Developers](https://www.gstatic.com/devrel-devsite/prod/v34fe5d0a1df120a3c24e6d73e25d1d8607836b03710a3ad508fa501ece2bdcb3/android/images/lockup.png)](https://developer.android.com/) / * English * Deutsch * Español – América Latina * Français * Indonesia * Italiano * Polski * Português – Brasil * Tiếng Việt * Türkçe * Русский * עברית * العربيّة * فارسی * हिंदी * বাংলা * ภาษาไทย * 中文 – 简体 * 中文 – 繁體 * 日本語 * 한국어 [Android Studio](https://developer.android.com/studio) Sign in * [UI Design](https://developer.android.com/design/ui) * [Mobile](https://developer.android.com/design/ui/mobile) * [Android Developers](https://developer.android.com/) * [Design & Plan](https://developer.android.com/design) * [UI Design](https://developer.android.com/design/ui) * [Mobile](https://developer.android.com/design/ui/mobile) * [Guides](https://developer.android.com/design/ui/mobile/guides/foundations/accessibility) Widgets Stay organized with collections Save and categorize content based on your preferences. ================================================================================================= Widgets are customizable home screen elements that display a clear and actionable view of an app's content or actions. This content can periodically refresh. Widgets help users complete their goals, either by interacting with your app's content directly in the widget or by opening your full app experience. ![](https://developer.android.com/static/images/design/ui/mobile/widgets/GettingStarted_Header.jpg) Get started ----------- When creating your widget, complete the following steps: 1. Choose a single primary user case to highlight in your widget. 2. Check out the [Widget template examples](https://www.figma.com/community/file/1237551184114564748/android-ui-kit) on Figma. 3. Design the UI within the [sizing](https://developer.android.com/design/ui/mobile/guides/widgets/sizing) guidelines. 4. Test for multiple screen sizes. 5. Ensure your widget meets the [Widget quality guides](https://developer.android.com/docs/quality-guidelines/widget-quality) . ### Canonical widget layouts Layouts dictate how information and interactive elements are organized within your widget. Learn more about prebuilt layouts for text, list & grid-type widgets. [Learn more](https://developer.android.com/design/ui/mobile/guides/widgets/layouts) ### Sizing Learn more about designing widgets that scale seamlessly to multiple sizes. See the default widget sizes and learn how to fully use the grid space given. [Learn more](https://developer.android.com/design/ui/mobile/guides/widgets/sizing) ### Style Learn how to style your widget to enhance your widget's visual impact and to fit with the user's device theme. [Learn more](https://developer.android.com/design/ui/mobile/guides/widgets/style) ### Discovery and promotion Learn to promote your widget on the widget picker through appropriate sizing and information shown. [Learn more](https://developer.android.com/design/ui/mobile/guides/widgets/discovery-promotion) Content and code samples on this page are subject to the licenses described in the [Content License](https://developer.android.com/license) . Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates. Last updated 2025-05-13 UTC. --- # Samples  |  TV  |  Android Developers [Skip to main content](https://developer.android.com/design/ui/tv/samples/overview#main-content) [![Android Developers](https://www.gstatic.com/devrel-devsite/prod/v34fe5d0a1df120a3c24e6d73e25d1d8607836b03710a3ad508fa501ece2bdcb3/android/images/lockup.png)](https://developer.android.com/) / * English * Deutsch * Español – América Latina * Français * Indonesia * Italiano * Polski * Português – Brasil * Tiếng Việt * Türkçe * Русский * עברית * العربيّة * فارسی * हिंदी * বাংলা * ภาษาไทย * 中文 – 简体 * 中文 – 繁體 * 日本語 * 한국어 [Android Studio](https://developer.android.com/studio) Sign in * [UI Design](https://developer.android.com/design/ui) * [TV](https://developer.android.com/design/ui/tv) * [Android Developers](https://developer.android.com/) * [Design & Plan](https://developer.android.com/design) * [UI Design](https://developer.android.com/design/ui) * [TV](https://developer.android.com/design/ui/tv) * [Samples](https://developer.android.com/design/ui/tv/samples/overview) Samples Stay organized with collections Save and categorize content based on your preferences. ================================================================================================= Discover how to create engaging and unique user experiences for TV by exploring optimized UX designs. In this section, delve into some of the top UX designs for TV and learn how they foster engagement and differentiation. Whether you're a designer, developer, or just curious about UX design, take a look to gain inspiration from the best UX designs for TV. [![JetStream](https://developer.android.com/static/design/ui/tv/samples/images/overview/jet-stream.webp)](https://developer.android.com/design/ui/tv/samples/jet-stream) ### Jet Stream Elevate your TV entertainment experience with a streaming app. Access a vast library of content with simple navigation, and personalized recommendations. Enjoy seamless streaming and reliable connectivity for a smooth viewing experience. [Learn morearrow\_forward](https://developer.android.com/design/ui/tv/samples/jet-stream) [![JetFit](https://developer.android.com/static/design/ui/tv/samples/images/overview/jet-fit.webp)](https://developer.android.com/design/ui/tv/samples/jet-fit) ### Jet Fit Get fit with a TV-optimized app that offers guided workouts and routines. Choose from different levels of difficulty and duration, and track your progress with interactive features. Enjoy an immersive workout experience with a sleek and user-friendly interface. [Learn morearrow\_forward](https://developer.android.com/design/ui/tv/samples/jet-fit) Content and code samples on this page are subject to the licenses described in the [Content License](https://developer.android.com/license) . Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates. Last updated 2024-03-21 UTC. --- # Samples | Mobile | UI Design  |  Android Developers [Skip to main content](https://developer.android.com/design/ui/mobile/samples#main-content) [![Android Developers](https://www.gstatic.com/devrel-devsite/prod/v34fe5d0a1df120a3c24e6d73e25d1d8607836b03710a3ad508fa501ece2bdcb3/android/images/lockup.png)](https://developer.android.com/) / * English * Deutsch * Español – América Latina * Français * Indonesia * Italiano * Polski * Português – Brasil * Tiếng Việt * Türkçe * Русский * العربيّة * 中文 – 简体 * 中文 – 繁體 * 日本語 * 한국어 [Android Studio](https://developer.android.com/studio) Sign in * [UI Design](https://developer.android.com/design/ui) * [Mobile](https://developer.android.com/design/ui/mobile) * [Android Developers](https://developer.android.com/) * [Design & Plan](https://developer.android.com/design) * [UI Design](https://developer.android.com/design/ui) * [Mobile](https://developer.android.com/design/ui/mobile) * [Samples](https://developer.android.com/design/ui/mobile/samples) Stay organized with collections Save and categorize content based on your preferences. ### Mobile samples Get mobile samples with working code and design examples. [![](https://developer.android.com/static/images/design/ui/mobile/samples/nia_2880.png)](https://github.com/android/nowinandroid) ### [Now in Android app](https://github.com/android/nowinandroid) Learn how this app was designed and built. See the design case study, architecture learning journey, and modularization learning journey. [Go to GitHub](https://github.com/android/nowinandroid) [Go to Figma](https://www.figma.com/community/file/1164313362327941158/Now-In-Android-Case-Study) [![](https://developer.android.com/static/images/design/ui/mobile/samples/jetchat_2880.png)](https://github.com/android/compose-samples/tree/main/Jetchat) ### [Jetchat sample](https://github.com/android/compose-samples/tree/main/Jetchat) This is a messaging sample app using Jetpack Compose showcasing Material 3 , Dynamic Color and multiple types of animations and transitions. [Go to GitHub](https://github.com/android/compose-samples/tree/main/Jetchat) [![](https://developer.android.com/static/images/design/ui/mobile/samples/jetcaster_2880.png)](https://github.com/android/compose-samples/tree/main/Jetcaster) ### [Jetcaster sample](https://github.com/android/compose-samples/tree/main/Jetcaster) This is a sample podcast app, built with Jetpack Compose. [Go to GitHub](https://github.com/android/compose-samples/tree/main/Jetcaster) [![](https://developer.android.com/static/images/design/ui/mobile/samples/reply_2880.png)](https://github.com/android/compose-samples/tree/main/Reply) ### [Reply sample](https://github.com/android/compose-samples/tree/main/Reply) This sample is a Jetpack Compose implementation of Reply, a material design study for adaptive design. [Go to GitHub](https://github.com/android/compose-samples/tree/main/Reply) --- # Getting started with Android Jetpack  |  Android Developers [Skip to main content](https://developer.android.com/jetpack/getting-started#main-content) [![Android Developers](https://www.gstatic.com/devrel-devsite/prod/v34fe5d0a1df120a3c24e6d73e25d1d8607836b03710a3ad508fa501ece2bdcb3/android/images/lockup.png)](https://developer.android.com/) / * English * Deutsch * Español – América Latina * Français * Indonesia * Italiano * Polski * Português – Brasil * Tiếng Việt * Türkçe * Русский * עברית * العربيّة * فارسی * हिंदी * বাংলা * ภาษาไทย * 中文 – 简体 * 中文 – 繁體 * 日本語 * 한국어 [Android Studio](https://developer.android.com/studio) Sign in * [Get started](https://developer.android.com/get-started/overview) * [Jetpack](https://developer.android.com/jetpack) * [Android Developers](https://developer.android.com/) * [Get started](https://developer.android.com/get-started/overview) * [Jetpack](https://developer.android.com/jetpack) * [Guides](https://developer.android.com/jetpack/getting-started) Getting started with Android Jetpack Stay organized with collections Save and categorize content based on your preferences. ============================================================================================================================== Jetpack encompasses a collection of Android libraries that incorporate best practices and provide backwards compatibility in your Android apps. The [Jetpack guide to app architecture](https://developer.android.com/jetpack/guide) provides an overview of the best practices and recommended architecture to consider as you build your Android app. The following sections cover how you can get started using Jetpack components. Use a Jetpack library in your app --------------------------------- All Jetpack components are available on the [Google Maven repository](https://dl.google.com/dl/android/maven2/index.html) . Open the `settings.gradle` file add the `google()` repository in the `dependencyResolutionManagement { repositories {...}}` block as shown below: ### Groovy dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL\_ON\_PROJECT\_REPOS) repositories { **google()** jcenter() } } ### Kotlin dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL\_ON\_PROJECT\_REPOS) repositories { **google()** jcenter() } } You can then add Jetpack components, such as architecture components like [LiveData](https://developer.android.com/topic/libraries/architecture/livedata) and [ViewModel](https://developer.android.com/topic/libraries/architecture/viewmodel) , in your module's `build.gradle` file, as shown here: ### Groovy dependencies { def lifecycle\_version \= "2.2.0" implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle\_version" implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle\_version" ... } ### Kotlin dependencies { val lifecycle\_version \= "2.2.0" implementation("androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle\_version") implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle\_version") ... } Many Jetpack libraries provide [Android KTX extensions](https://developer.android.com/kotlin/ktx) as shown above with `lifecycle-livedata-ktx` and `lifecycle-viewmodel-ktx`. The KTX extensions build upon the Java-based API, taking advantage of Kotlin-specific language features. To learn of new Jetpack library releases, check out the [Releases](https://developer.android.com/jetpack/androidx/releases) page. [Kotlin-based](https://developer.android.com/reference/kotlin/androidx/packages) and [Java-based](https://developer.android.com/reference/androidx/packages) API reference pages are available for all Jetpack libraries. ### Verify Jetpack dependencies (optional) As of June 2023, the Jetpack team signs Jetpack libraries. These signatures allow developers to verify that the library artifacts are built and signed by Google. A library is eligible for signature verification once it publishes an update. If your Android project has signature verification enabled, follow these steps to verify Jetpack dependencies in the Gradle project: 1. Add Google's trusted keys to the `` section in `$PROJECT_ROOT/gradle/verification-metadata.xml`: ... ... ... ... ... 2. Add a `` entry for each library that the project is using. Here's an example for the `androidx.fragment` and `androidx.emoji2` libraries: ... For issues with dependency verification, visit Gradle's guide on [troubleshooting dependency verification](https://docs.gradle.org/current/userguide/dependency_verification.html#sub:enabling-verification) . Finally, details on our trusted key can be viewed on [Ubuntu's keyserver site](https://keyserver.ubuntu.com/pks/lookup?search=0x8461efa0e74abae010de66994eb27db2a3b88b8b&fingerprint=on&op=index) . Take advantage of Jetpack ------------------------- Jetpack libraries may be used alone or in combination to address different needs in your apps. * [WorkManager](https://developer.android.com/topic/libraries/architecture/workmanager) for your background scheduling needs. * [Room](https://developer.android.com/topic/libraries/architecture/room) for data storage persistence. * [Navigation](https://developer.android.com/guide/navigation/navigation-getting-started) to manage your application navigation flow. * [CameraX](https://developer.android.com/training/camerax) for your camera app needs. * See the [Overview](https://developer.android.com/jetpack/androidx/versions#version-table) of all the Jetpack libraries. Jetpack libraries are published in the `androidx` namespace. If your project currently uses the Android Support Library, read how to [migrate to the androidx namespace](https://developer.android.com/jetpack/androidx/migrate) . To learn more about using Jetpack, check out these pages: * [Android Architecture Components](https://developer.android.com/topic/libraries/architecture) * [Complete list of Jetpack components](https://developer.android.com/jetpack/androidx/explorer) Additional resources -------------------- ### Online training * [Developing Android Apps with Kotlin](https://www.udacity.com/course/developing-android-apps-with-kotlin--ud9012) (Udacity course) ### Sample code * The [Sunflower](https://github.com/android/sunflower) demo app uses many different Jetpack components to demonstrate Android development best practices. ### Codelabs * [Android Lifecycles](https://codelabs.developers.google.com/codelabs/android-lifecycles/index.html) * [Room with a View](https://codelabs.developers.google.com/codelabs/android-room-with-a-view-kotlin) ### Videos * [Assembling your Jetpack](https://youtu.be/2h-vuXC0SF8) Content and code samples on this page are subject to the licenses described in the [Content License](https://developer.android.com/license) . Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates. Last updated 2025-01-22 UTC. --- # Samples | Wear | UI Design  |  Android Developers [Skip to main content](https://developer.android.com/design/ui/wear/samples#main-content) [![Android Developers](https://www.gstatic.com/devrel-devsite/prod/v34fe5d0a1df120a3c24e6d73e25d1d8607836b03710a3ad508fa501ece2bdcb3/android/images/lockup.png)](https://developer.android.com/) / * English * Deutsch * Español – América Latina * Français * Indonesia * Italiano * Polski * Português – Brasil * Tiếng Việt * Türkçe * Русский * العربيّة * 中文 – 简体 * 中文 – 繁體 * 日本語 * 한국어 [Android Studio](https://developer.android.com/studio) Sign in * [UI Design](https://developer.android.com/design/ui) * [Wear](https://developer.android.com/design/ui/wear) * [Android Developers](https://developer.android.com/) * [Design & Plan](https://developer.android.com/design) * [UI Design](https://developer.android.com/design/ui) * [Wear](https://developer.android.com/design/ui/wear) * [Samples](https://developer.android.com/design/ui/wear/samples) Stay organized with collections Save and categorize content based on your preferences. ### Wear samples Explore our collection of design kits and templates for Wear OS. [![](https://developer.android.com/static/images/design/ui/wear/samples/compose-sample_2880.png)](https://github.com/android/wear-os-samples/tree/main/ComposeStarter) ### [Compose for Wear OS](https://github.com/android/wear-os-samples/tree/main/ComposeStarter) This sample demonstrates a simple "Hello, World" starter project for using Compose with Wear OS. [Go to GitHub](https://github.com/android/wear-os-samples/tree/main/ComposeStarter) [![](https://developer.android.com/static/images/design/ui/wear/samples/golden-tile_2880.png)](https://github.com/android/wear-os-samples/tree/main/WearTilesKotlin) ### [Golden tile layout](https://github.com/android/wear-os-samples/tree/main/WearTilesKotlin) This sample showcases the Golden Tile layouts and contains a sample tile built using Tiles Material Components library. [Go to GitHub](https://github.com/android/wear-os-samples/tree/main/WearTilesKotlin) [![](https://developer.android.com/static/images/design/ui/wear/samples/horologist_2880.png)](https://github.com/google/horologist) ### [Horologist library](https://github.com/google/horologist) A group of libraries that supplement Wear OS with features that are commonly required on watch apps, including the media toolkit and prebuilt composables. [Go to GitHub](https://github.com/google/horologist) --- # Android Basics with Compose - Introduction to programming in Kotlin  |  Android Developers [Skip to main content](https://developer.android.com/courses/android-basics-compose/unit-1#main-content) [![Android Developers](https://www.gstatic.com/devrel-devsite/prod/v34fe5d0a1df120a3c24e6d73e25d1d8607836b03710a3ad508fa501ece2bdcb3/android/images/lockup.png)](https://developer.android.com/) / * English * Deutsch * Español – América Latina * Français * Indonesia * Polski * Português – Brasil * Tiếng Việt * 中文 – 简体 * 中文 – 繁體 * 日本語 * 한국어 [Android Studio](https://developer.android.com/studio) Sign in * [Android Developers](https://developer.android.com/) * [Training](https://developer.android.com/courses) * [Android Basics with Compose](https://developer.android.com/courses/android-basics-compose/course) * [First Android app](https://developer.android.com/courses/android-basics-compose/unit-1) Stay organized with collections Save and categorize content based on your preferences. ![](https://developer.android.com/static/courses/android-basics-compose/images/hero-assets/unit-logo.svg) [Android Basics with Compose](https://developer.android.com/courses/android-basics-compose/course) ### Unit 1: Your first Android app Learn programming basics and create your first Android app. Pathway 1 ![](https://developers.google.com/profile/badges/playlists/android/android-basics-compose-unit-1-pathway-1/badge.svg) ### [Introduction to Kotlin](https://developer.android.com/courses/pathways/android-basics-compose-unit-1-pathway-1) Learn introductory programming concepts in Kotlin to prepare for building Android apps in Kotlin. April 2022 [Explore](https://developer.android.com/courses/pathways/android-basics-compose-unit-1-pathway-1) Pathway 2 ![](https://developers.google.com/profile/badges/playlists/android/android-basics-compose-unit-1-pathway-2/badge.svg) ### [Set up Android Studio](https://developer.android.com/courses/pathways/android-basics-compose-unit-1-pathway-2) Install and set up Android Studio, create your first project, and run it on a device or emulator. April 2022 [Explore](https://developer.android.com/courses/pathways/android-basics-compose-unit-1-pathway-2) Pathway 3 ![](https://developers.google.com/profile/badges/playlists/android/android-basics-compose-unit-1-pathway-3/badge.svg) ### [Build a basic layout](https://developer.android.com/courses/pathways/android-basics-compose-unit-1-pathway-3) Build an Android app with a simple user interface that displays text and images. April 2022 [Explore](https://developer.android.com/courses/pathways/android-basics-compose-unit-1-pathway-3) --- # Setup Android Studio  |  Android Basics Compose - First Android app  |  Android Developers [Skip to main content](https://developer.android.com/courses/pathways/android-basics-compose-unit-1-pathway-2#main-content) [![Android Developers](https://www.gstatic.com/devrel-devsite/prod/v34fe5d0a1df120a3c24e6d73e25d1d8607836b03710a3ad508fa501ece2bdcb3/android/images/lockup.png)](https://developer.android.com/) / * English * Deutsch * Español – América Latina * Français * Indonesia * Polski * Português – Brasil * Tiếng Việt * 中文 – 简体 * 中文 – 繁體 * 日本語 * 한국어 [Android Studio](https://developer.android.com/studio) Sign in * [Training](https://developer.android.com/courses) * [Android Basics with Compose](https://developer.android.com/courses/android-basics-compose/course) * [First Android app](https://developer.android.com/courses/android-basics-compose/unit-1) * [Android Studio](https://developer.android.com/courses/pathways/android-basics-compose-unit-1-pathway-2) * [Android Developers](https://developer.android.com/) * [Training](https://developer.android.com/courses) * [Android Basics with Compose](https://developer.android.com/courses/android-basics-compose/course) * [First Android app](https://developer.android.com/courses/android-basics-compose/unit-1) * [Android Studio](https://developer.android.com/courses/pathways/android-basics-compose-unit-1-pathway-2) Stay organized with collections Save and categorize content based on your preferences. Setup Android Studio ==================== Install and set up Android Studio, so that you can create your first project and run it on a device or emulator. Go back _check\_circle_ Introduction to Android Studio ------------------------------ _keyboard\_arrow\_down_ _keyboard\_arrow\_up_ _ondemand\_video_ Video _Optional_ Learn about Android Studio and how you can use it to build apps. You can find the official documentation at https://developer.android.com/studio/intro Skip _check\_circle_ Download and install Android Studio ----------------------------------- _keyboard\_arrow\_down_ _keyboard\_arrow\_up_ _emoji\_objects_ Codelab Learn how to download and install Android Studio. [Take codelab](https://developer.android.com/codelabs/basic-android-kotlin-compose-install-android-studio) _check\_circle_ Create your first Android app ----------------------------- _keyboard\_arrow\_down_ _keyboard\_arrow\_up_ _emoji\_objects_ Codelab Learn how to create your first Android app. [Take codelab](https://developer.android.com/codelabs/basic-android-kotlin-compose-first-app) _check\_circle_ Run your first app on the Android Emulator ------------------------------------------ _keyboard\_arrow\_down_ _keyboard\_arrow\_up_ _emoji\_objects_ Codelab Learn how to run an app on the Android Emulator. [Take codelab](https://developer.android.com/codelabs/basic-android-kotlin-compose-emulator) _check\_circle_ How to connect your Android device ---------------------------------- _keyboard\_arrow\_down_ _keyboard\_arrow\_up_ _emoji\_objects_ Codelab Learn how to connect your app in Android Studio to your physical Android device. [Take codelab](https://developer.android.com/codelabs/basic-android-kotlin-compose-connect-device) _check\_circle_ What's next? ------------ _keyboard\_arrow\_down_ _keyboard\_arrow\_up_ _ondemand\_video_ Video _Optional_ Great job on learning the basics of the Kotlin programming language! Learn about what comes next in the course. Skip Quiz ---- Test your knowledge of Android Studio, and earn your Android Studio badge. [Take the quiz](https://developer.android.com/courses/quizzes/android-basics-compose-unit-1-pathway-2/android-basics-compose-unit-1-pathway-2) --- # Productivity  |  Gallery  |  Android Developers [Skip to main content](https://developer.android.com/large-screens/gallery/productivity#main-content) [![Android Developers](https://www.gstatic.com/devrel-devsite/prod/v34fe5d0a1df120a3c24e6d73e25d1d8607836b03710a3ad508fa501ece2bdcb3/android/images/lockup.png)](https://developer.android.com/) / * English * Deutsch * Español – América Latina * Français * Indonesia * Italiano * Polski * Português – Brasil * Tiếng Việt * Türkçe * Русский * עברית * العربيّة * فارسی * हिंदी * বাংলা * ภาษาไทย * 中文 – 简体 * 中文 – 繁體 * 日本語 * 한국어 [Android Studio](https://developer.android.com/studio) Sign in * [UI Design](https://developer.android.com/design/ui) * [Large Screens](https://developer.android.com/design/ui/large-screens) * [Gallery](https://developer.android.com/large-screens/gallery) * [Android Developers](https://developer.android.com/) * [Design & Plan](https://developer.android.com/design) * [UI Design](https://developer.android.com/design/ui) * [Large Screens](https://developer.android.com/design/ui/large-screens) * [Gallery](https://developer.android.com/large-screens/gallery) * [Productivity](https://developer.android.com/large-screens/gallery/productivity) Stay organized with collections Save and categorize content based on your preferences. ![](https://developer.android.com/static/images/large-screens/gallery/icons/productivity.svg) ### Productivity Your phone is your go-to tool for daily tasks. For tasks big and small, go for the extended capabilities of large screens. Feed ### File browsing and filtering Display handfuls of thumbnails to enable users to filter and find documents, images, spreadsheets—any kind of file—faster. [Learn about feed layout design](https://material.io/foundations/layout/canonical-layouts/feed) [Implement a feed layout](https://developer.android.com/guide/topics/large-screens/large-screen-canonical-layouts#feed) ![](https://developer.android.com/static/images/large-screens/gallery/productivity/Items-and-overviews_2880.png) List-detail ### Items and overviews Show more details about list details on another screen, or adjacent to the list, depending on the screen size. [Learn about list-detail design](https://material.io/foundations/layout/canonical-layouts/list-detail) [Implement a list-detail layout](https://developer.android.com/guide/topics/large-screens/large-screen-canonical-layouts#list-detail) ![](https://developer.android.com/static/images/large-screens/gallery/productivity/Tool-panels-in-context_2880.png) Supporting pane ### Tools and settings Give users access to more tools, larger palettes, more settings without obscuring content or hindering workflow. [Learn about supporting pane design](https://material.io/foundations/layout/canonical-layouts/supporting-pane) [Implement a supporting pane layout](https://developer.android.com/guide/topics/large-screens/large-screen-canonical-layouts#supporting_pane) ![](https://developer.android.com/static/images/large-screens/gallery/productivity/Reviews-and-comments_2880.png) Supporting pane ### Reviews and comments Enable reviews and comments on documents directly, on the same screen without obstructing the document or disturbing the context. [Learn about supporting pane design](https://material.io/foundations/layout/canonical-layouts/supporting-pane) [Implement a supporting pane layout](https://developer.android.com/guide/topics/large-screens/large-screen-canonical-layouts#supporting_pane) ![](https://developer.android.com/static/images/large-screens/gallery/productivity/drag-and-drop_2880.png) ### Drag and drop Enable intuitive content sharing in a large, unconfined work space that makes drag and drop natural, comfortable, simple—between widespread views in the same app or, in multi-window mode, between apps. [See “Enable drag and drop”](https://developer.android.com/develop/ui/views/touch-and-input/drag-drop) ![](https://developer.android.com/static/images/large-screens/gallery/productivity/tabletop_2880.png) ### Tabletop Design tabletop layouts that enable users to drop what they're doing and focus on what’s important—a colleague’s presentation, a video conference call—while still having easy access to other content and app controls hands free. [Learn about designing for foldable devices](https://m3.material.io/foundations/layout/applying-layout/window-size-classes) [See “Make your app fold aware”](https://developer.android.com/guide/topics/large-screens/make-apps-fold-aware#tabletop_mode) ![](https://developer.android.com/static/images/large-screens/gallery/productivity/multi-window_2880.png) ### Multi-window Get apps working together side by side in multi-window mode, with space for note-taking while reading an article or watching a video. [See “Support multi-window mode”](https://developer.android.com/develop/ui/compose/layouts/adaptive/support-multi-window-mode) [See “Stylus overview”](https://developer.android.com/develop/ui/views/touch-and-input/stylus) ![](https://developer.android.com/static/images/large-screens/gallery/productivity/keyboard-mouse-trackpad_2880.png) ### Keyboard, mouse, and trackpad Accelerate productivity with keyboard, mouse, and trackpad support for speedy typing, quick keyboard shortcuts, and more nimble UI interaction and control. [See "Input compatibility on large screens"](https://developer.android.com/guide/topics/large-screens/input-compatibility-large-screens) [See "Handle keyboard actions"](https://developer.android.com/develop/ui/views/touch-and-input/keyboard-input/commands) ![](https://developer.android.com/static/images/large-screens/gallery/productivity/Chrome.gif) ![](https://developer.android.com/static/images/large-screens/gallery/logos/Chrome2x.png) ### Chrome’s multitasking usage increases 18x on large screens Chrome users requested more productivity features on tablets, foldables, and phones to better match the capabilities of Chrome on desktop. The Chrome team responded by building multitasking capabilities into the Chrome browser. [Read Android Developers Blog post](https://android-developers.googleblog.com/2022/02/chromes-multitasking-usage-increases.html) ![](https://developer.android.com/static/images/large-screens/gallery/logos/WPS2x.png) ### WPS Office: Building continuity with Android foldables Foldable devices are capable of a variety of postures and folded states, offering new possibilities for innovation in mobile office apps. Take a look at how the WPS Office team created an optimized foldable device experience. * * * ![](https://developer.android.com/static/images/large-screens/gallery/nav/shopping_2880.png) ![](https://developer.android.com/static/images/large-screens/gallery/icons/shopping.svg) ### Shopping Present users with a bigger showroom for window shopping, side-by-side comparisons, search and discovery, and sharing bargains with friends. [Learn more](https://developer.android.com/large-screens/gallery/shopping) ![](https://developer.android.com/static/images/large-screens/gallery/nav/reading_2880.png) ![](https://developer.android.com/static/images/large-screens/gallery/icons/reading.svg) ### Reading Enable users to enjoy reading at home and on the go. Improve readability. Reduce eyestrain. Make your app a must-have for bookworms and bibliophiles. [Learn more](https://developer.android.com/large-screens/gallery/reading) --- # Build a basic layout  |  Android Basics Compose - First Android app  |  Android Developers [Skip to main content](https://developer.android.com/courses/pathways/android-basics-compose-unit-1-pathway-3#main-content) [![Android Developers](https://www.gstatic.com/devrel-devsite/prod/v34fe5d0a1df120a3c24e6d73e25d1d8607836b03710a3ad508fa501ece2bdcb3/android/images/lockup.png)](https://developer.android.com/) / * English * Deutsch * Español – América Latina * Français * Indonesia * Polski * Português – Brasil * Tiếng Việt * 中文 – 简体 * 中文 – 繁體 * 日本語 * 한국어 [Android Studio](https://developer.android.com/studio) Sign in * [Training](https://developer.android.com/courses) * [Android Basics with Compose](https://developer.android.com/courses/android-basics-compose/course) * [First Android app](https://developer.android.com/courses/android-basics-compose/unit-1) * [Basic layout](https://developer.android.com/courses/pathways/android-basics-compose-unit-1-pathway-3) * [Android Developers](https://developer.android.com/) * [Training](https://developer.android.com/courses) * [Android Basics with Compose](https://developer.android.com/courses/android-basics-compose/course) * [First Android app](https://developer.android.com/courses/android-basics-compose/unit-1) * [Basic layout](https://developer.android.com/courses/pathways/android-basics-compose-unit-1-pathway-3) Stay organized with collections Save and categorize content based on your preferences. Build a basic layout ==================== Build an Android app with a simple user interface that displays text and images. Go back _check\_circle_ Intro to Jetpack Compose ------------------------ _keyboard\_arrow\_down_ _keyboard\_arrow\_up_ _ondemand\_video_ Video _Optional_ Learn more Jetpack Compose, a modern way to build User Interfaces for Android apps. Skip _check\_circle_ Design a birthday card app -------------------------- _keyboard\_arrow\_down_ _keyboard\_arrow\_up_ _ondemand\_video_ Video _Optional_ Learn about the tools you’ll use to start developing apps. Skip _check\_circle_ Build a simple app with text composables ---------------------------------------- _keyboard\_arrow\_down_ _keyboard\_arrow\_up_ _emoji\_objects_ Codelab Learn how to build a simple app with composable functions. [Take codelab](https://developer.android.com/codelabs/basic-android-kotlin-compose-text-composables) _check\_circle_ Add images to your Android app ------------------------------ _keyboard\_arrow\_down_ _keyboard\_arrow\_up_ _emoji\_objects_ Codelab Learn how to add images to your app using a composable function. [Take codelab](https://developer.android.com/codelabs/basic-android-kotlin-compose-add-images) _check\_circle_ Practice: Compose Basics ------------------------ _keyboard\_arrow\_down_ _keyboard\_arrow\_up_ _emoji\_objects_ Codelab Apply the concepts of basic UI composables to implement screens for the given problems. [Take codelab](https://developer.android.com/codelabs/basic-android-kotlin-compose-composables-practice-problems) _check\_circle_ Project: Create a business card app ----------------------------------- _keyboard\_arrow\_down_ _keyboard\_arrow\_up_ _emoji\_objects_ Codelab Learn how to create an Android app that showcases your business card. [Take codelab](https://developer.android.com/codelabs/basic-android-kotlin-compose-business-card) _check\_circle_ What's next? ------------ _keyboard\_arrow\_down_ _keyboard\_arrow\_up_ _ondemand\_video_ Video _Optional_ Congratulations on creating your first ever digital birthday card! Learn about what comes next in the course. Skip Quiz ---- Test what you’ve learned and earn your Build a basic layout badge. [Take the quiz](https://developer.android.com/courses/quizzes/android-basics-compose-unit-1-pathway-3/android-basics-compose-unit-1-pathway-3) --- # What to test in Android  |  Test your app on Android  |  Android Developers [Skip to main content](https://developer.android.com/training/testing/fundamentals/what-to-test#main-content) [![Android Developers](https://www.gstatic.com/devrel-devsite/prod/v34fe5d0a1df120a3c24e6d73e25d1d8607836b03710a3ad508fa501ece2bdcb3/android/images/lockup.png)](https://developer.android.com/) / * English * Deutsch * Español – América Latina * Français * Indonesia * Italiano * Polski * Português – Brasil * Tiếng Việt * Türkçe * Русский * עברית * العربيّة * فارسی * हिंदी * বাংলা * ภาษาไทย * 中文 – 简体 * 中文 – 繁體 * 日本語 * 한국어 [Android Studio](https://developer.android.com/studio) Sign in * [Test your app on Android](https://developer.android.com/training/testing) * [Android Developers](https://developer.android.com/) * [Develop](https://developer.android.com/develop) * [Test your app on Android](https://developer.android.com/training/testing) What to test in Android Stay organized with collections Save and categorize content based on your preferences. ================================================================================================================= What you should test depends on factors such as the type of app, the development team, the amount of legacy code, and the architecture used. The following sections outline what a beginner might want to consider when planning what to test in their app. Organization of test directories -------------------------------- A typical project in Android Studio contains two directories that hold tests depending on their execution environment. Organize your tests in the following directories as described: * The `androidTest` directory should contain the tests that run on real or virtual devices. Such tests include integration tests, end-to-end tests, and other tests where the JVM alone cannot validate your app's functionality. * The `test`directory should contain the tests that run on your local machine, such as unit tests. In contrast to the above, these can be tests that run on a local JVM. Essential unit tests -------------------- When following best practice, you should ensure you use unit tests in the following cases: * **Unit tests** for **ViewModels**, or presenters. * **Unit tests** for the **data** layer, especially repositories. Most of the data layer should be platform-independent. Doing so enables test doubles to replace database modules and remote data sources in tests. See the guide on [using test doubles in Android](https://developer.android.com/training/testing/fundamentals/test-doubles) * **Unit tests** for other platform-independent layers such as the **Domain** layer, as with use cases and interactors. * **Unit tests** for **utility classes** such as string manipulation and math. ### Testing Edge Cases Unit tests should focus on both normal and edge cases. Edge cases are uncommon scenarios that human testers and larger tests are unlikely to catch. Examples include the following: * Math operations using negative numbers, zero, and [boundary conditions](https://en.wikipedia.org/wiki/Off-by-one_error) . * All the possible network connection errors. * Corrupted data, such as malformed JSON. * Simulating full storage when saving to a file. * Object recreated in the middle of a process (such as an activity when the device is rotated). ### Unit Tests to Avoid Some unit tests should be avoided because of their low value: * Tests that verify the correct operation of the framework or a library, not your code. * Framework entry points such as _activities, fragments, or services_ should not have business logic so unit testing shouldn't be a priority. Unit tests for activities have little value, because they would cover mostly framework code and they require a more involved setup. Instrumented tests such as UI tests can cover these classes. UI tests -------- There are several types of UI tests you should employ: * **Screen UI tests** check critical user interactions in a single screen. They perform actions such as clicking on buttons, typing in forms, and checking visible states. One test class per screen is a good starting point. * **User flow tests** or **Navigation tests**, covering most common paths. These tests simulate a user moving through a navigation flow. They are simple tests, useful for checking for run-time crashes in initialization. Other tests ----------- There are more specialized tests such as screenshot tests, performance tests, and [monkey tests](https://developer.android.com/studio/test/monkey) . You can also categorize tests by purpose, such as regressions, accessibility, and compatibility. Further reading --------------- In order to test in isolation, you oftentimes need to replace the dependencies of the subject under test with fake or mock dependencies, called "Test doubles" in general. Continue reading about them in [Using test doubles in Android](https://developer.android.com/training/testing/fundamentals/test-doubles) . If you want to learn how to create unit and UI tests, check out the [Testing codelabs](https://developer.android.com/codelabs/advanced-android-kotlin-training-testing-basics) . Content and code samples on this page are subject to the licenses described in the [Content License](https://developer.android.com/license) . Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates. Last updated 2025-02-10 UTC. --- # Wear OS  |  Android Developers [Skip to main content](https://developer.android.com/courses/pathways/wear#main-content) [![Android Developers](https://www.gstatic.com/devrel-devsite/prod/v34fe5d0a1df120a3c24e6d73e25d1d8607836b03710a3ad508fa501ece2bdcb3/android/images/lockup.png)](https://developer.android.com/) / * [English](https://developer.android.com/courses/pathways/wear) * [Deutsch](https://developer.android.com/courses/pathways/wear?hl=de) * [Español – América Latina](https://developer.android.com/courses/pathways/wear?hl=es-419) * [Français](https://developer.android.com/courses/pathways/wear?hl=fr) * [Indonesia](https://developer.android.com/courses/pathways/wear?hl=id) * [Polski](https://developer.android.com/courses/pathways/wear?hl=pl) * [Português – Brasil](https://developer.android.com/courses/pathways/wear?hl=pt-br) * [Tiếng Việt](https://developer.android.com/courses/pathways/wear?hl=vi) * [中文 – 简体](https://developer.android.com/courses/pathways/wear?hl=zh-cn) * [中文 – 繁體](https://developer.android.com/courses/pathways/wear?hl=zh-tw) * [日本語](https://developer.android.com/courses/pathways/wear?hl=ja) * [한국어](https://developer.android.com/courses/pathways/wear?hl=ko) [Android Studio](https://developer.android.com/studio) [Sign in](https://developer.android.com/_d/signin?continue=https%3A%2F%2Fdeveloper.android.com%2Fcourses%2Fpathways%2Fwear&prompt=select_account) * [Android Developers](https://developer.android.com/) Wear OS bookmark\_borderbookmark Stay organized with collections Save and categorize content based on your preferences. ========================================================================================================================== Learn about Wear OS, an Android-based operating system optimized for the wrist. Go back **8 activities** 0% completed Save your progress [Sign in](https://developer.android.com/courses/pathways/wear#) 1 _check\_circle_ Principles of Wear OS development --------------------------------- _keyboard\_arrow\_down_ _keyboard\_arrow\_up_ _subject_ Article _Optional_ Learn how to tailor your app for a wearable device. Skip [Read article](https://developer.android.com/training/wearables/principles?continue=https%3A%2F%2Fdeveloper.android.com%2Fcourses%2Fpathways%2Fwear%23article-https%3A%2F%2Fdeveloper.android.com%2Ftraining%2Fwearables%2Fprinciples) 2 _check\_circle_ Wear OS user interfaces ----------------------- _keyboard\_arrow\_down_ _keyboard\_arrow\_up_ _subject_ Article _Optional_ Learn about the surfaces you can build for on Wear OS. Skip [Read article](https://developer.android.com/training/wearables/user-interfaces?continue=https%3A%2F%2Fdeveloper.android.com%2Fcourses%2Fpathways%2Fwear%23article-https%3A%2F%2Fdeveloper.android.com%2Ftraining%2Fwearables%2Fuser-interfaces) 3 _check\_circle_ Apps ---- _keyboard\_arrow\_down_ _keyboard\_arrow\_up_ _subject_ Article _Optional_ For some tasks, users need more space and more interactivity than can be provided within a complication or tile. Read more to learn how to create an app. Skip [Read article](https://developer.android.com/training/wearables/apps?continue=https%3A%2F%2Fdeveloper.android.com%2Fcourses%2Fpathways%2Fwear%23article-https%3A%2F%2Fdeveloper.android.com%2Ftraining%2Fwearables%2Fapps) 4 _check\_circle_ Watch faces ----------- _keyboard\_arrow\_down_ _keyboard\_arrow\_up_ _subject_ Article _Optional_ Learn about the Watch Face Format, the recommended way to design a watch face for Wear OS. Skip [Read article](https://developer.android.com/training/wearables/wff?continue=https%3A%2F%2Fdeveloper.android.com%2Fcourses%2Fpathways%2Fwear%23article-https%3A%2F%2Fdeveloper.android.com%2Ftraining%2Fwearables%2Fwff) 5 _check\_circle_ Tiles ----- _keyboard\_arrow\_down_ _keyboard\_arrow\_up_ _emoji\_objects_ Codelab The Tiles Jetpack library provides easy access to the app data users need in order to complete tasks. With a quick swipe from the watch face, users can scroll through their tiles to see information and actions from their favorite services. Learn how to build your first tile in this codelab. [Take codelab](https://developer.android.com/codelabs/wear-tiles?continue=https%3A%2F%2Fdeveloper.android.com%2Fcourses%2Fpathways%2Fwear%23codelab-https%3A%2F%2Fdeveloper.android.com%2Fcodelabs%2Fwear-tiles) 6 _check\_circle_ Ongoing activities ------------------ _keyboard\_arrow\_down_ _keyboard\_arrow\_up_ _emoji\_objects_ Codelab _Optional_ The Ongoing Activity API allows users to stay more enaged with long-running activities. Learn how to use it in this codelab. Skip [Take codelab](https://developer.android.com/codelabs/ongoing-activity?continue=https%3A%2F%2Fdeveloper.android.com%2Fcourses%2Fpathways%2Fwear%23codelab-https%3A%2F%2Fdeveloper.android.com%2Fcodelabs%2Fongoing-activity) 7 _check\_circle_ Wear OS versus mobile development --------------------------------- _keyboard\_arrow\_down_ _keyboard\_arrow\_up_ _subject_ Article _Optional_ Learn about the similarities and differences between mobile development and Wear OS development. Skip [Read article](https://developer.android.com/training/wearables/wear-v-mobile?continue=https%3A%2F%2Fdeveloper.android.com%2Fcourses%2Fpathways%2Fwear%23article-https%3A%2F%2Fdeveloper.android.com%2Ftraining%2Fwearables%2Fwear-v-mobile) 8 _check\_circle_ User input ---------- _keyboard\_arrow\_down_ _keyboard\_arrow\_up_ _subject_ Article _Optional_ Learn the basics of handling input from the user on their wrist. Skip [Read article](https://developer.android.com/training/wearables/user-input/physical-buttons?continue=https%3A%2F%2Fdeveloper.android.com%2Fcourses%2Fpathways%2Fwear%23article-https%3A%2F%2Fdeveloper.android.com%2Ftraining%2Fwearables%2Fuser-input%2Fphysical-buttons) Was this helpful? --- # Design for Safety  |  App quality  |  Android Developers [Skip to main content](https://developer.android.com/quality/privacy-and-security#main-content) [![Android Developers](https://www.gstatic.com/devrel-devsite/prod/v34fe5d0a1df120a3c24e6d73e25d1d8607836b03710a3ad508fa501ece2bdcb3/android/images/lockup.png)](https://developer.android.com/) / * English * Deutsch * Español – América Latina * Français * Indonesia * Italiano * Polski * Português – Brasil * Tiếng Việt * Türkçe * Русский * עברית * العربيّة * فارسی * हिंदी * বাংলা * ภาษาไทย * 中文 – 简体 * 中文 – 繁體 * 日本語 * 한국어 [Android Studio](https://developer.android.com/studio) Sign in * [App quality](https://developer.android.com/quality) * [Android Developers](https://developer.android.com/) * [Design & Plan](https://developer.android.com/design) * [App quality](https://developer.android.com/quality) * [Privacy & Security](https://developer.android.com/quality/privacy-and-security) Stay organized with collections Save and categorize content based on your preferences. ![](https://developer.android.com/static/images/quality/hero-images/privacy_security_highlighted.svg) ### Design for Safety Android is secure by default and private by design. And Google Play designs policies and guidelines to create a safe ecosystem. Design for privacy by focusing on minimization. Minimize permission requests, minimize location access, and minimize data visibility across apps. Design for security by following best practices for encryption, integrity, and authentication. Guide ### [Ensure user privacy](https://developer.android.com/privacy/best-practices) Provide transparency for users, give control over private data access, and treat data responsibly. Guide ### [Ensure app security](https://developer.android.com/topic/security/best-practices) Work with network communications, data storage, permissions, and app dependencies. Guide ### [Google Play requirements](https://developer.android.com/docs/quality-guidelines/core-app-quality#sc) Design for compliance with Google Play policies to improve the user experience and create a safer ecosystem. Guide ### [SDK best practices](https://developer.android.com/guide/practices/sdk-best-practices) Follow best practices for user safety, whether you're developing an app or creating an SDK. * * * ### [![Android 11](https://developer.android.com/static/images/quality/privacy-and-security/Android11.svg)](https://developer.android.com/about/versions/11/privacy) * Scoped storage enhancements * Separate request for background location * Data access auditing [Learn more](https://developer.android.com/about/versions/11/privacy) ### [![Android 12](https://developer.android.com/static/images/quality/privacy-and-security/Android12.svg)](https://developer.android.com/about/versions/12/behavior-changes-all#security-privacy) * Approximate location * Privacy dashboard * Bluetooth permissions [Learn more](https://developer.android.com/about/versions/12/behavior-changes-all#security-privacy) ### [![Android 13](https://developer.android.com/static/images/quality/privacy-and-security/Android13.svg)](https://developer.android.com/about/versions/13/features#privacy-security) * Notification permission * Wi-Fi and storage permissions * Photo picker [Learn more](https://developer.android.com/about/versions/13/features#privacy-security) [View cheat sheet](https://developer.android.com/privacy/cheat-sheet) [View codelab](https://developer.android.com/codelabs/android-privacy-codelab) Guide ### [Minimize your permissions](https://developer.android.com/training/permissions/evaluating) Before you declare permissions in your app, consider whether you need to do. Learn how the system can help you. Guide ### [New photos & videos](https://developer.android.com/training/permissions/evaluating#take-photo) Send a request to the device's default camera app to take photos and videos, without requesting any camera-related permissions. Guide ### [Existing photos & videos](https://developer.android.com/training/data-storage/shared/photopicker) Use the system photo picker, which allows users to choose specific media items to share with your app. Guide ### [App-specific data](https://developer.android.com/training/data-storage/app-specific) Use the system-provided folder for app-specific information. Your app doesn't need any storage permissions to access this folder. Guide ### [Nearby devices](https://developer.android.com/training/permissions/evaluating#pair-over-bluetooth) Use companion device pairing to find nearby devices without declaring location permissions. Guide ### [Permission downgrading](https://developer.android.com/training/permissions/requesting#remove-access) If your app targets Android 13 or higher, the self-revoke APIs allow your app to revoke access to already-granted permissions that your app no longer requires. Guide ### [Location accuracy](https://developer.android.com/training/location/permissions#accuracy) Wait to upgrade to precise location until the user is actively using features that require precise location. Guide ### [Background location](https://developer.android.com/training/location/background) Foreground location should fulfil most of the use cases. Only use background location when there is no alternative. Guide ### [Nearby Bluetooth devices](https://developer.android.com/guide/topics/connectivity/bluetooth/permissions) If your app targets Android 12 or higher, many APIs for nearby Bluetooth devices don't require location access. Guide ### [Nearby Wi-Fi devices](https://developer.android.com/guide/topics/connectivity/wifi-permissions) If your app targets Android 13 or higher, many APIs for nearby Wi-Fi devices don't require location access. Guide ### [Package visibility](https://developer.android.com/training/package-visibility/declaring) If your app targets Android 11 or higher, declare the set of packages that you expect your app to interact with. Guide ### [Device identifiers](https://developer.android.com/training/articles/user-data-ids#common-use-cases) Use the appropriate user-resettable identifier for your app's use case. Starting in Android 12, the system restricts the set of device identifiers that apps can use. Guide ### [In-context permission requests](https://developer.android.com/training/permissions/requesting#workflow_for_requesting_permissions) Wait until the user is about to interact with the feature that requires a permission before requesting that permission. Policy ### [Prominent disclosure](https://support.google.com/googleplay/android-developer/answer/11150561) Learn when your app must provide separate, in-app disclosures to explain the reason for accessing particularly sensitive permissions. Guide ### [Permission rationale](https://developer.android.com/training/permissions/requesting#explain) Each time you request a permission, check whether you should show an educational UI to users. Guide ### [Data access](https://developer.android.com/guide/topics/data/audit-access) Use data access auditing APIs to detect when your app, or an SDK dependency, performs operations that are associated with a permission. Guide ### [Permission denials](https://developer.android.com/training/permissions/requesting#handle-denial) If the user denies a permission, your app should still work as well as it can without the permission. Policy ### [Data collection & sharing](https://developer.android.com/guide/topics/data/collect-share) In the Google Play Console, declare the types of user data that your app collects and shares. Feature ### [Camera & microphone indicators](https://developer.android.com/training/permissions/explaining-access#indicators) Starting in Android 12, the system shows an icon when an app accesses sensors that capture sensitive information. Feature ### [Clipboard access](https://developer.android.com/develop/ui/views/touch-and-input/copy-paste#PastingSystemNotifications) Starting in Android 12, users are notified each time an app reads clipboard data that originated from a different app. Feature ### [Privacy Dashboard](https://developer.android.com/training/permissions/explaining-access#privacy-dashboard) Starting in Android 12, the system provides an timeline view of permissions accessed by apps. Feature ### [Permission auto-revoke](https://developer.android.com/topic/performance/app-hibernation) On all devices running Android 11 or higher, and on many devices that run Android 6.0 or higher, the system automatically revokes permissions from unused apps. ### Build apps to be secure by default Android’s goal is to be the safest mobile platform in the world. We consistently invest in technologies that bolster the security of the platform, its apps, and the global Android ecosystem. Guide ### [Protect against fraud and abuse](https://developer.android.com/google/play/integrity/overview) Use the Play Integrity API to detect potentially risky and fraudulent interactions, such as cheating and unauthorized access. Guide ### [Authenticate with Credential Manager](https://developer.android.com/training/sign-in/passkeys) Credential Manager is the modern Jetpack authentication library that supports passkeys, federated sign-in solutions such as Sign-in with Google, and legacy username/password authentication. Guide ### [Authenticate with biometrics](https://developer.android.com/training/sign-in/biometric-auth) Use the Jetpack Biometric library to take advantage of a device's biometric sensors when authenticating users in your app. Guide ### [Communicate securely](https://developer.android.com/training/articles/security-ssl) HTTPS and SSL provide secure protocols for transferring data between your app and servers. A number of common errors can lead to insecure data transfer. Check for these in your app. Guide ### [Encrypt your data](https://developer.android.com/topic/security/data) Where data is sensitive, encrypt it in the app's private storage to make it less accessible if the device is stolen and gets compromised. Guide ### [Be the first to know](https://developers.google.com/android/play-protect/starting-a-vdp) Set up a vulnerability disclosure program (VDP) to provide guidelines for security researchers to disclose any previously undetected vulnerabilities to you. [![](https://developer.android.com/static/images/cluster-illustrations/private-by-design-16-9.svg)](https://services.google.com/fb/forms/privacysandbox/) ### [Help us design privacy preserving APIs for advertising](https://services.google.com/fb/forms/privacysandbox/) To contribute to the Privacy Sandbox effort or just follow along, sign up to receive regular updates. [Sign up](https://services.google.com/fb/forms/privacysandbox/) [Learn more](https://developer.android.com/design-for-safety/privacy-sandbox) [![](https://developer.android.com/static/images/cluster-illustrations/quality-guidelines.svg)](https://developer.android.com/distribute/play-policies) Featured ### Google Play Policy Google Play partners with you to deliver your apps and games safely to billions of people worldwide. Learn the latest policies, timeline, and implications for your apps. [Learn more](https://developer.android.com/distribute/play-policies) Content and code samples on this page are subject to the licenses described in the [Content License](https://developer.android.com/license) . Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates. Last updated 2025-01-14 UTC. --- # Build App Actions  |  Assistant  |  Android Developers [Skip to main content](https://developer.android.com/develop/devices/assistant/get-started#main-content) [![Android Developers](https://www.gstatic.com/devrel-devsite/prod/v34fe5d0a1df120a3c24e6d73e25d1d8607836b03710a3ad508fa501ece2bdcb3/android/images/lockup.png)](https://developer.android.com/) / * English * Deutsch * Español – América Latina * Français * Indonesia * Italiano * Polski * Português – Brasil * Tiếng Việt * Türkçe * Русский * עברית * العربيّة * فارسی * हिंदी * বাংলা * ภาษาไทย * 中文 – 简体 * 中文 – 繁體 * 日本語 * 한국어 [Android Studio](https://developer.android.com/studio) Sign in * [Devices](https://developer.android.com/develop/devices) * [Assistant](https://developer.android.com/develop/devices/assistant/overview) * [Android Developers](https://developer.android.com/) * [Develop](https://developer.android.com/develop) * [Devices](https://developer.android.com/develop/devices) * [Assistant](https://developer.android.com/develop/devices/assistant/overview) Build App Actions Stay organized with collections Save and categorize content based on your preferences. =========================================================================================================== App Actions let users launch functionality in your Android app by asking Google Assistant or by using Android shortcuts suggested by Assistant. These are the primary steps to extend your Android app with App Actions: 1. Identify the in-app functionality to trigger and its matching [built-in intent (BII)](https://developer.android.com/reference/app-actions/built-in-intents) . 2. Provide fulfillment details for the BII. 3. Push shortcuts for your App Action to Assistant. 4. Preview your App Actions on a test device. 5. Create a test release of your app. 6. Request App Actions review and deployment. Optionally, you can define dynamic shortcuts to provide to Assistant so it can suggest them to your users. Create an App Action using a sample app by following the [App Actions codelab](https://codelabs.developers.google.com/codelabs/appactions/) . Requirements ------------ Before you start developing App Actions, make sure you and your app meet the following requirements: * You must have a Google Account with access to the [Google Play Console](https://play.google.com/apps/publish/) . * Your app must be published to the Google Play Store, because App Actions are only available for apps published there. Also, make sure that your app is not intended to be used in a work profile, as App Actions are not supported by Managed Google Play. * You need a physical or virtual device to test your App Actions on. * Install the latest compatible version of Android Studio supported by the [Google Assistant Plugin](https://plugins.jetbrains.com/plugin/16739-google-assistant/versions) . * You must use the same Google Account to [sign in](https://developer.android.com/studio/intro#sign-in) to Android Studio, the Google app on your test device, and the Google Play Console. * You must set up Assistant on your test device and test it by performing a touch & hold on the **Home** button. Match built-in intents with app functionality --------------------------------------------- Identify the functionality in your Android app that users might want to jump to with a spoken request and review the [built-in intent reference](https://developer.android.com/reference/app-actions/built-in-intents) to find appropriate BIIs for your use cases. BIIs model user queries for tasks they want to perform, so look for BIIs that match key functionality and user flows in your app. There are [common BIIs](https://developer.android.com/reference/app-actions/built-in-intents/common) that almost any Android app can use, such as extending your in-app search to Assistant with the [`actions.intent.GET_THING`](https://developer.android.com/reference/app-actions/built-in-intents/common/get-thing) BII or letting users launch specific app features with their voice by implementing the [`actions.intent.OPEN_APP_FEATURE`](https://developer.android.com/reference/app-actions/built-in-intents/common/open-app-feature) BII. There are also BIIs that enable _vertical_, or category-specific, use cases. For example, an exercise app might use the [`actions.intent.START_EXERCISE`](https://developer.android.com/reference/app-actions/built-in-intents/health-and-fitness/start-exercise) BII. To ensure a great user experience, and avoid possible approval delays, make sure that each BII you implement is relevant to your in-app functionality. App Actions work by starting Android intents from the Assistant app to take users directly to specific content in your app. You can define intents to launch an activity [explicitly](https://developer.android.com/guide/components/intents-filters#ExampleExplicit) by specifying the `targetClass` and `targetPackage` fields. If your app already implements [Android deep link](https://developer.android.com/training/app-links/deep-linking) URLs, you have the option to configure the intent to use a deep link for fulfillment. For more details, see the [Test your activity deep links](https://developer.android.com/develop/devices/assistant/get-started#deep-links) section. Provide fulfillment details for built-in intents ------------------------------------------------ Most of building an App Action is declaring a [capability](https://developer.android.com/guide/topics/ui/shortcuts/adding-capabilities) in the [`shortcuts.xml`](https://developer.android.com/guide/app-actions/action-schema) resource file of your Android app where you specify your selected BII and its corresponding fulfillment. A BII models the user query for a task, and a fulfillment intent provides Assistant with information on how to perform the task. In your `shortcuts.xml` file, BIIs are represented as `` elements, and each fulfillment is represented as an `` element: For most BIIs, you extract intent parameters from the user query based on [schema.org](https://schema.org/) entities. Your app then uses those BII parameters to direct users to the selected capability. For example, the preceding code maps the `exercise.name` BII parameter to the `exercise_name` Android `intent` parameter. If you are fulfilling actions using deep links, you use the `urlTemplate` field to define the deep link URL Assistant generates: For important details about adding App Actions to the `shortcuts.xml` file, refer to [Create `shortcuts.xml`](https://developer.android.com/guide/app-actions/action-schema) . That page also describes how to specify the parameter values your app expects. Implement the GET\_THING built-in intent ---------------------------------------- If your app has a search function, you are required to implement the `actions.intent.GET_THING` BII for that function. Assistant can then forward users to your app's search function for in-app results when they make queries like _"Hey Google, search for Example Thing on Example App."_ In your `shortcuts.xml` file, implement a `` for the `actions.intent.GET_THING` BII as you [implement any other BII](https://developer.android.com/guide/app-actions/intents) . You can use multiple fulfillments for `GET_THING` as long as you provide at least one fulfillment that passes the user query to your app's search function. Here's an example of adding the `actions.intent.GET_THING` BII in `shortcuts.xml`: In your search `Activity`, extract the search query from the extra data of the `intent` and pass it to your app's search function. In the preceding code, the search query, passed as the `query` key, maps to the `"thing.name"` BII parameter. Then, perform a search with the query and display the results in the user interface. Optional: Push shortcuts for your App Action to Assistant --------------------------------------------------------- Once you define a capability for your action, users can launch your action by saying something like, _"Hey Google, order a pizza on Example App."_ Assistant can suggest Android shortcuts for your actions to users at relevant times, letting them to discover and replay your actions. Assistant can suggest both dynamic and static shortcuts. To push dynamic shortcuts to Assistant, use the Google Shortcuts Integration library. This Jetpack library enables Assistant to take in your shortcuts and suggest them to users at the appropriate time. For more details, see [Push dynamic shortcuts to Assistant](https://developer.android.com/guide/app-actions/dynamic-shortcuts) . Preview your App Actions ------------------------ During development and testing, use the [Google Assistant plugin](https://developer.android.com/guide/app-actions/test-tool) for Android Studio to test that App Actions work for your app. The plugin creates a preview of your App Actions in Assistant for your Google Account. Using the test tool, you can test your fulfillments on a physical test device or emulator by providing BIIs with input parameters you expect to receive from users. While previewing your App Actions, you can trigger queries by voice on the device. This functionality is only available for queries listed in the BII reference for App Actions. Use voice triggering only for demonstration, not for regular testing. Test your app in draft mode using the developer tools for the Google Play Console before submitting the app for review. For more information on using Google Play Console to deploy a draft of your app, see [Prepare and launch a release](https://support.google.com/googleplay/android-developer/answer/9859348) . Create a test release --------------------- When you're ready to test your App Actions with additional testers, create an internal or closed [test release](https://support.google.com/googleplay/android-developer/answer/9845334) of your app. By default, your internal and closed release testers can access App Actions that have already been [reviewed and approved](https://developer.android.com/develop/devices/assistant/get-started#request-review) . To grant testing access to all App Actions, including unapproved actions, instruct your testers to join the [App Actions Development Program](https://groups.google.com/g/app-actions-development-program) Google Group. Members of this group have access to all App Actions in closed and internal test releases without having to create previews using the [app actions test tool](https://developer.android.com/guide/app-actions/test-tool) . It can take up to three hours after joining the group for access to become available. Request App Actions review and deployment ----------------------------------------- App Actions aren't available to users of your published apps or open test releases until they're reviewed and approved. The App Actions review does not affect your Android app review and deployment status in Google Play. Even if your app submission is approved and published to the Play store, your `shortcuts.xml` might be under review by Google. App Actions don't work for your end users until that review is also approved. When you deploy your app, App Actions stay activated. However, redeployed versions are subject to review by Google. If the new version is not working properly or contains policy violations, Google es the right to deactivate App Actions for your app. To submit your App Actions for review, do the following: 1. Accept the App Actions terms of service in the Google Play Console (**Advanced settings > App Actions**): ![App Actions Terms of Service in the Google Play console.](https://developer.android.com/static/guide/app-actions/images/play_app_actions_tos.png) 2. [Upload your app](https://developer.android.com/studio/publish/upload-bundle) , containing `shortcuts.xml`, to the Google Play Console as normal for publishing. 3. After you upload your app to the Play Console, Google contacts you at the email in your Play Console account with more information regarding the status of your App Actions review. You can also [contact](https://support.google.com/actions-console/contact/support) Assistant Developer Support with questions regarding your App Actions review status. In the contact form, provide your app package ID and choose **App Action review** in the **How can we help you?** selection box. Optional: Test your activity deep links --------------------------------------- To use a deep link to launch an `Activity` using an App Action, the `Activity` must be set up with deep link URLs and have a corresponding intent filter in the Android app manifest. To test that your activities are accessible and can be triggered using App Actions using deep links, run the following `adb` command: $ adb shell am start -a android.intent.action.VIEW -d "AppLinksURL" For example: $ adb shell am start -a android.intent.action.VIEW -d "https://www.example.com/deeplink" If your activity doesn't launch correctly with the `adb` command, then check the following: * In your app manifest file, the activity has `android:exported=true`, so it can be launched using intents from Google Assistant. * If using App Links URLs, follow all the steps in [Handling Android App Links](https://developer.android.com/training/app-links) . App Actions policies -------------------- App Actions must comply with specific policies to help ensure that the users who trigger them receive the intended experience. Review these policies before submitting your apps to provide the best user experience and to avoid Play Store review delays or rejections. * **Direct users to user-intended content** App Action built-in intents (BIIs) and/or parameters must only direct users to the relevant and user-intended action. This can include in-app content, website content, or information shown in slices or widgets so long as the experience was intended by the user. For example, implementations of the [`START_EXERCISE`](https://developer.android.com/reference/app-actions/built-in-intents/health-and-fitness/start-exercise) BII help users initiate an exercise of a certain type, for example, running or swimming. The only exception to this policy is when your [`OPEN_APP_FEATURE`](https://developer.android.com/reference/app-actions/built-in-intents/common/open-app-feature) BII directs users to your app's home screen. * **Implement relevant App Actions BIIs** Implemented BIIs must be directly related to the app's content and functionality. For example, if your app is in the Communications Play Store category, don't implement the [`START_EXERCISE`](https://developer.android.com/reference/app-actions/built-in-intents/health-and-fitness/start-exercise) BII, which is recommended for apps in the Heath and Fitness category. * **Implement relevant custom intents** Defined queries for [custom intents](https://developer.android.com/guide/app-actions/custom-intents) relate to the app's content and functionality. An example of a potential violation to this policy is creating the intent `custom.action.intent.GET_RECIPE` with the associated query pattern "Show me burrito recipes" for an app in the Transportation Play Store category. * * * Content and code samples on this page are subject to the licenses described in the [Content License](https://developer.android.com/license) . Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates. Last updated 2024-12-18 UTC. --- # Wear | Design dell'interfaccia utente  |  Android Developers [Passa ai contenuti principali](https://developer.android.com/design/ui/wear?hl=it#main-content) [![Android Developers](https://www.gstatic.com/devrel-devsite/prod/v34fe5d0a1df120a3c24e6d73e25d1d8607836b03710a3ad508fa501ece2bdcb3/android/images/lockup.png)](https://developer.android.com/) / * English * Deutsch * Español – América Latina * Français * Indonesia * Italiano * Polski * Português – Brasil * Tiếng Việt * Türkçe * Русский * עברית * العربيّة * فارسی * हिंदी * বাংলা * ภาษาไทย * 中文 – 简体 * 中文 – 繁體 * 日本語 * 한국어 [Android Studio](https://developer.android.com/studio?hl=it) Accedi * [UI Design](https://developer.android.com/design/ui?hl=it) * [Wear](https://developer.android.com/design/ui/wear?hl=it) ![](https://developer.android.com/_static/images/translated.svg?hl=it) Questa pagina è stata tradotta dall'[API Cloud Translation](https://cloud.google.com/translate/?hl=it) . * [Android Developers](https://developer.android.com/?hl=it) * [Progettazione e pianificazione](https://developer.android.com/design?hl=it) * [UI Design](https://developer.android.com/design/ui?hl=it) * [Wear](https://developer.android.com/design/ui/wear?hl=it) Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze. ![](https://developer.android.com/static/wear/images/design/landing-hero_2880.png?hl=it) ### Progetta per Wear OS Gli smartwatch consentono agli utenti di ottenere un'informazione a colpo d'occhio e di intervenire. Queste interazioni frequenti possono aiutare gli utenti a tornare a essere presenti nella loro vita quotidiana. Crea esperienze utente immersive e coinvolgenti su Wear OS per aumentare l'utilizzo delle app e la fedeltà al brand. [Guida introduttiva](https://developer.android.com/design/ui/wear/guides/get-started?hl=it) [![](https://developer.android.com/static/images/design/ui/wear/getting-started.svg?hl=it)](https://developer.android.com/design/ui/wear/guides/get-started?hl=it) ### [Materiale 3 espressivo](https://developer.android.com/design/ui/wear/guides/get-started?hl=it) Scopri Material 3 Expressive, il sistema di design più recente che supporta i fattori di forma di smartphone, orologi e tablet. [Scopri di più su Material 3 Expressive](https://developer.android.com/design/ui/wear/guides/get-started?hl=it) [![](https://developer.android.com/static/images/design/ui/wear/design-principles.svg?hl=it)](https://developer.android.com/design/ui/wear/guides/get-started/apply?hl=it) ### [Progetta per Wear OS](https://developer.android.com/design/ui/wear/guides/get-started/apply?hl=it) Scopri le nozioni di base per la progettazione su Wear OS. [Scopri di più sulla progettazione per Wear OS](https://developer.android.com/design/ui/wear/guides/get-started/apply?hl=it) [![](https://developer.android.com/static/images/design/ui/wear/screen-sizes.svg?hl=it)](https://developer.android.com/design/ui/wear/guides/foundations/quality-tiers?hl=it) ### [Layout reattivi e adattivi](https://developer.android.com/design/ui/wear/guides/foundations/quality-tiers?hl=it) Ottimizzare per schermi di varie dimensioni, in alta qualità. [Scopri di più su come progettare app più adattive](https://developer.android.com/design/ui/wear/guides/foundations/quality-tiers?hl=it) [![](https://developer.android.com/static/wear/images/design/landing-apps_2880.png?hl=it)](https://developer.android.com/design/ui/wear/guides/surfaces/apps?hl=it) ### [App](https://developer.android.com/design/ui/wear/guides/surfaces/apps?hl=it) Crea app per Wear OS e offri agli utenti azioni utili direttamente dal polso. [Scopri di più sulla progettazione di app](https://developer.android.com/design/ui/wear/guides/surfaces/apps?hl=it) [![](https://developer.android.com/static/wear/images/design/landing-tiles_2880.png?hl=it)](https://developer.android.com/design/ui/wear/guides/surfaces/tiles?hl=it) ### [Schede](https://developer.android.com/design/ui/wear/guides/surfaces/tiles?hl=it) Utilizza le schede per aiutare gli utenti ad accedere rapidamente ed efficacemente a contenuti utili dalle tue app. [Scopri di più sulla progettazione dei riquadri](https://developer.android.com/design/ui/wear/guides/surfaces/tiles?hl=it) [![](https://developer.android.com/static/images/design/ui/wear/components.svg?hl=it)](https://developer.android.com/design/ui/wear/guides/foundations/common-layouts?hl=it) ### [Layout di design comuni](https://developer.android.com/design/ui/wear/guides/foundations/common-layouts?hl=it) Layout delle app comprovati e versatili che offrono esperienze utente ottimali. [Scopri di più sui layout di design comuni](https://developer.android.com/design/ui/wear/guides/foundations/common-layouts?hl=it) [![](https://developer.android.com/static/images/design/ui/wear/styles.svg?hl=it)](https://developer.android.com/design/ui/wear/guides/styles/color?hl=it) ### [Stili](https://developer.android.com/design/ui/wear/guides/styles/color?hl=it) Dai vita ai tuoi design con gli ultimi stili espressivi di Material 3. [Scopri di più sugli stili](https://developer.android.com/design/ui/wear/guides/styles/color?hl=it) [![](https://developer.android.com/static/images/design/ui/wear/design-principles_2880.png?hl=it)](https://developer.android.com/design/ui/wear/guides/m2-5/foundations/wear-os-for-kids?hl=it) ### [Principi di progettazione di Wear OS per bambini](https://developer.android.com/design/ui/wear/guides/m2-5/foundations/wear-os-for-kids?hl=it) Progetta la tua app in modo che i bambini rimangano coinvolti, al sicuro e presenti. [Scopri di più](https://developer.android.com/design/ui/wear/guides/m2-5/foundations/wear-os-for-kids?hl=it) [![](https://developer.android.com/static/images/design/ui/wear/developing-kids-experiences_2880.png?hl=it)](https://developer.android.com/training/wearables/kids/develop?hl=it) ### [Sviluppare esperienze per bambini](https://developer.android.com/training/wearables/kids/develop?hl=it) Ottimizza l'esperienza della tua app per Wear OS per bambini e ragazzi. [Scopri di più](https://developer.android.com/training/wearables/kids/develop?hl=it) [![](https://developer.android.com/static/wear/images/design/design-kit-apps.svg?hl=it)](https://www.figma.com/community/file/1506418396052412186) ### [Kit di design per le app](https://www.figma.com/community/file/1506418396052412186) Utilizza il kit di design per le app per applicare i nostri stili e componenti predefiniti. Scarica il file e aprilo in Figma. [Kit di download per le app](https://www.figma.com/community/file/1506418396052412186) [![](https://developer.android.com/static/wear/images/design/design-kit-tiles.svg?hl=it)](https://www.figma.com/community/file/1507852095734722321) ### [Kit di design per riquadri](https://www.figma.com/community/file/1507852095734722321) Utilizza il kit di design per le schede per applicare i nostri stili e componenti predefiniti. Scarica il file e aprilo in Figma. [Kit di download per le schede](https://www.figma.com/community/file/1507852095734722321) [![](https://developer.android.com/static/images/design/ui/mobile/guides-developer_2880.png?hl=it)](https://developer.android.com/training/wearables/principles?hl=it) ### [Guide per gli sviluppatori](https://developer.android.com/training/wearables/principles?hl=it) Consulta le nostre guide per gli sviluppatori e il riferimento delle API per scoprire come creare app per Wear OS. [Consulta le guide per gli sviluppatori](https://developer.android.com/training/wearables/principles?hl=it) [![](https://developer.android.com/static/images/design/ui/mobile/guides-quality_2880.png?hl=it)](https://developer.android.com/docs/quality-guidelines/wear-app-quality?hl=it) ### [Guide della qualità](https://developer.android.com/docs/quality-guidelines/wear-app-quality?hl=it) Valuta la qualità della tua app utilizzando il nostro elenco di controllo. [Visualizza la qualità dell'app](https://developer.android.com/docs/quality-guidelines/wear-app-quality?hl=it) [![](https://developer.android.com/static/images/design/ui/wear/ux-research-yt_2880.png?hl=it)](https://www.youtube.com/watch?v=puGn72d86qw&%3Bhl=it&hl=it) Video di YouTube ### [Introduzione alla ricerca sull'UX e all'inclusione di prodotti su Wear OS](https://www.youtube.com/watch?v=puGn72d86qw&%3Bhl=it&hl=it) **22 maggio 2023** [![](https://developer.android.com/static/images/design/ui/wear/ux-design-wear-yt_2880.png?hl=it)](https://www.youtube.com/watch?v=fZpVlbzlvuY&%3Bhl=it&hl=it) Video di YouTube ### [Introduzione alla progettazione UX su Wear OS](https://www.youtube.com/watch?v=fZpVlbzlvuY&%3Bhl=it&hl=it) **22 maggio 2023** [![](https://developer.android.com/static/images/design/ui/wear/product-inclusion-yt_2880.png?hl=it)](https://www.youtube.com/watch?v=H24wJ6i9jk4&%3Bhl=it&hl=it) Video di YouTube ### [Introduzione all'inclusione di prodotti e all'equità](https://www.youtube.com/watch?v=H24wJ6i9jk4&%3Bhl=it&hl=it) **22 maggio 2023** --- # Improve app performance with Kotlin coroutines  |  Android Developers [Skip to main content](https://developer.android.com/kotlin/coroutines/coroutines-adv#main-content) [![Android Developers](https://www.gstatic.com/devrel-devsite/prod/v34fe5d0a1df120a3c24e6d73e25d1d8607836b03710a3ad508fa501ece2bdcb3/android/images/lockup.png)](https://developer.android.com/) / * [English](https://developer.android.com/kotlin/coroutines/coroutines-adv) * [Deutsch](https://developer.android.com/kotlin/coroutines/coroutines-adv?hl=de) * [Español – América Latina](https://developer.android.com/kotlin/coroutines/coroutines-adv?hl=es-419) * [Français](https://developer.android.com/kotlin/coroutines/coroutines-adv?hl=fr) * [Indonesia](https://developer.android.com/kotlin/coroutines/coroutines-adv?hl=id) * [Italiano](https://developer.android.com/kotlin/coroutines/coroutines-adv?hl=it) * [Polski](https://developer.android.com/kotlin/coroutines/coroutines-adv?hl=pl) * [Português – Brasil](https://developer.android.com/kotlin/coroutines/coroutines-adv?hl=pt-br) * [Tiếng Việt](https://developer.android.com/kotlin/coroutines/coroutines-adv?hl=vi) * [Türkçe](https://developer.android.com/kotlin/coroutines/coroutines-adv?hl=tr) * [Русский](https://developer.android.com/kotlin/coroutines/coroutines-adv?hl=ru) * [עברית](https://developer.android.com/kotlin/coroutines/coroutines-adv?hl=he) * [العربيّة](https://developer.android.com/kotlin/coroutines/coroutines-adv?hl=ar) * [فارسی](https://developer.android.com/kotlin/coroutines/coroutines-adv?hl=fa) * [हिंदी](https://developer.android.com/kotlin/coroutines/coroutines-adv?hl=hi) * [বাংলা](https://developer.android.com/kotlin/coroutines/coroutines-adv?hl=bn) * [ภาษาไทย](https://developer.android.com/kotlin/coroutines/coroutines-adv?hl=th) * [中文 – 简体](https://developer.android.com/kotlin/coroutines/coroutines-adv?hl=zh-cn) * [中文 – 繁體](https://developer.android.com/kotlin/coroutines/coroutines-adv?hl=zh-tw) * [日本語](https://developer.android.com/kotlin/coroutines/coroutines-adv?hl=ja) * [한국어](https://developer.android.com/kotlin/coroutines/coroutines-adv?hl=ko) [Android Studio](https://developer.android.com/studio) [Sign in](https://developer.android.com/_d/signin?continue=https%3A%2F%2Fdeveloper.android.com%2Fkotlin%2Fcoroutines%2Fcoroutines-adv&prompt=select_account) * [Get started](https://developer.android.com/get-started/overview) * [Kotlin](https://developer.android.com/kotlin) * On this page * [Manage long-running tasks](https://developer.android.com/kotlin/coroutines/coroutines-adv#manage) * [Use coroutines for main-safety](https://developer.android.com/kotlin/coroutines/coroutines-adv#main-safety) * [Performance of withContext()](https://developer.android.com/kotlin/coroutines/coroutines-adv#perf) * [Start a coroutine](https://developer.android.com/kotlin/coroutines/coroutines-adv#start) * [Parallel decomposition](https://developer.android.com/kotlin/coroutines/coroutines-adv#parallel) * [Coroutines concepts](https://developer.android.com/kotlin/coroutines/coroutines-adv#concepts) * [CoroutineScope](https://developer.android.com/kotlin/coroutines/coroutines-adv#coroutinescope) * [Job](https://developer.android.com/kotlin/coroutines/coroutines-adv#job) * [CoroutineContext](https://developer.android.com/kotlin/coroutines/coroutines-adv#coroutinecontext) * [Additional coroutines resources](https://developer.android.com/kotlin/coroutines/coroutines-adv#more) * [Android Developers](https://developer.android.com/) * [Get started](https://developer.android.com/get-started/overview) * [Kotlin](https://developer.android.com/kotlin) * [Guides](https://developer.android.com/kotlin/first) Was this helpful? Improve app performance with Kotlin coroutines bookmark\_borderbookmark Stay organized with collections Save and categorize content based on your preferences. ================================================================================================================================================================= * On this page * [Manage long-running tasks](https://developer.android.com/kotlin/coroutines/coroutines-adv#manage) * [Use coroutines for main-safety](https://developer.android.com/kotlin/coroutines/coroutines-adv#main-safety) * [Performance of withContext()](https://developer.android.com/kotlin/coroutines/coroutines-adv#perf) * [Start a coroutine](https://developer.android.com/kotlin/coroutines/coroutines-adv#start) * [Parallel decomposition](https://developer.android.com/kotlin/coroutines/coroutines-adv#parallel) * [Coroutines concepts](https://developer.android.com/kotlin/coroutines/coroutines-adv#concepts) * [CoroutineScope](https://developer.android.com/kotlin/coroutines/coroutines-adv#coroutinescope) * [Job](https://developer.android.com/kotlin/coroutines/coroutines-adv#job) * [CoroutineContext](https://developer.android.com/kotlin/coroutines/coroutines-adv#coroutinecontext) * [Additional coroutines resources](https://developer.android.com/kotlin/coroutines/coroutines-adv#more) [Kotlin coroutines](https://kotlinlang.org/docs/reference/coroutines/coroutines-guide.html) enable you to write clean, simplified asynchronous code that keeps your app responsive while managing long-running tasks such as network calls or disk operations. This topic provides a detailed look at coroutines on Android. If you're unfamiliar with coroutines, be sure to read [Kotlin coroutines on Android](https://developer.android.com/kotlin/coroutines) before reading this topic. Manage long-running tasks ------------------------- Coroutines build upon regular functions by adding two operations to handle long-running tasks. In addition to `invoke` (or `call`) and `return`, coroutines add `suspend` and `resume`: * `suspend` pauses the execution of the current coroutine, saving all local variables. * `resume` continues execution of a suspended coroutine from the place where it was suspended. You can call `suspend` functions only from other `suspend` functions or by using a coroutine builder such as `launch` to start a new coroutine. The following example shows a simple coroutine implementation for a hypothetical long-running task: suspend fun fetchDocs() { // Dispatchers.Main val result = get("https://developer.android.com") // Dispatchers.IO for `get` show(result) // Dispatchers.Main } suspend fun get(url: String) = withContext(Dispatchers.IO) { /* ... */ } In this example, `get()` still runs on the main thread, but it suspends the coroutine before it starts the network request. When the network request completes, `get` resumes the suspended coroutine instead of using a callback to notify the main thread. Kotlin uses a _stack frame_ to manage which function is running along with any local variables. When suspending a coroutine, the current stack frame is copied and saved for later. When resuming, the stack frame is copied back from where it was saved, and the function starts running again. Even though the code might look like an ordinary sequential blocking request, the coroutine ensures that the network request avoids blocking the main thread. Use coroutines for main-safety ------------------------------ Kotlin coroutines use _dispatchers_ to determine which threads are used for coroutine execution. To run code outside of the main thread, you can tell Kotlin coroutines to perform work on either the _Default_ or _IO_ dispatcher. In Kotlin, all coroutines must run in a dispatcher, even when they're running on the main thread. Coroutines can suspend themselves, and the dispatcher is responsible for resuming them. To specify where the coroutines should run, Kotlin provides three dispatchers that you can use: * **Dispatchers.Main** - Use this dispatcher to run a coroutine on the main Android thread. This should be used only for interacting with the UI and performing quick work. Examples include calling `suspend` functions, running Android UI framework operations, and updating [`LiveData`](https://developer.android.com/topic/libraries/architecture/livedata) objects. * **Dispatchers.IO** - This dispatcher is optimized to perform disk or network I/O outside of the main thread. Examples include using the [Room component](https://developer.android.com/topic/libraries/architecture/room) , reading from or writing to files, and running any network operations. * **Dispatchers.Default** - This dispatcher is optimized to perform CPU-intensive work outside of the main thread. Example use cases include sorting a list and parsing JSON. Continuing the previous example, you can use the dispatchers to re-define the `get` function. Inside the body of `get`, call `withContext(Dispatchers.IO)` to create a block that runs on the IO thread pool. Any code you put inside that block always executes via the `IO` dispatcher. Since `withContext` is itself a suspend function, the function `get` is also a suspend function. suspend fun fetchDocs() { // Dispatchers.Main val result = get("developer.android.com") // Dispatchers.Main show(result) // Dispatchers.Main } suspend fun get(url: String) = // Dispatchers.Main withContext(Dispatchers.IO) { // Dispatchers.IO (main-safety block) /* perform network IO here */ // Dispatchers.IO (main-safety block) } // Dispatchers.Main } With coroutines, you can dispatch threads with fine-grained control. Because `withContext()` lets you control the thread pool of any line of code without introducing callbacks, you can apply it to very small functions like reading from a database or performing a network request. A good practice is to use `withContext()` to make sure every function is _main-safe_, which means that you can call the function from the main thread. This way, the caller never needs to think about which thread should be used to execute the function. In the previous example, `fetchDocs()` executes on the main thread; however, it can safely call `get`, which performs a network request in the background. Because coroutines support `suspend` and `resume`, the coroutine on the main thread is resumed with the `get` result as soon as the `withContext` block is done. ### Performance of withContext() [`withContext()`](https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines/with-context.html) does not add extra overhead compared to an equivalent callback-based implementation. Furthermore, it's possible to optimize `withContext()` calls beyond an equivalent callback-based implementation in some situations. For example, if a function makes ten calls to a network, you can tell Kotlin to switch threads only once by using an outer `withContext()`. Then, even though the network library uses `withContext()` multiple times, it stays on the same dispatcher and avoids switching threads. In addition, Kotlin optimizes switching between `Dispatchers.Default` and `Dispatchers.IO` to avoid thread switches whenever possible. Start a coroutine ----------------- You can start coroutines in one of two ways: * [`launch`](https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines/launch.html) starts a new coroutine and doesn't return the result to the caller. Any work that is considered "fire and forget" can be started using `launch`. * [`async`](https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines/async.html) starts a new coroutine and allows you to return a result with a suspend function called `await`. Typically, you should `launch` a new coroutine from a regular function, as a regular function cannot call `await`. Use `async` only when inside another coroutine or when inside a suspend function and performing parallel decomposition. ### Parallel decomposition All coroutines that are started inside a `suspend` function must be stopped when that function returns, so you likely need to guarantee that those coroutines finish before returning. With _structured concurrency_ in Kotlin, you can define a `coroutineScope` that starts one or more coroutines. Then, using `await()` (for a single coroutine) or `awaitAll()` (for multiple coroutines), you can guarantee that these coroutines finish before returning from the function. As an example, let's define a `coroutineScope` that fetches two documents asynchronously. By calling `await()` on each deferred reference, we guarantee that both `async` operations finish before returning a value: suspend fun fetchTwoDocs() = coroutineScope { val deferredOne = async { fetchDoc(1) } val deferredTwo = async { fetchDoc(2) } deferredOne.await() deferredTwo.await() } You can also use `awaitAll()` on collections, as shown in the following example: suspend fun fetchTwoDocs() = // called on any Dispatcher (any thread, possibly Main) coroutineScope { val deferreds = listOf( // fetch two docs at the same time async { fetchDoc(1) }, // async returns a result for the first doc async { fetchDoc(2) } // async returns a result for the second doc ) deferreds.awaitAll() // use awaitAll to wait for both network requests } Even though `fetchTwoDocs()` launches new coroutines with `async`, the function uses `awaitAll()` to wait for those launched coroutines to finish before returning. Note, however, that even if we had not called `awaitAll()`, the `coroutineScope` builder does not resume the coroutine that called `fetchTwoDocs` until after all of the new coroutines completed. In addition, `coroutineScope` catches any exceptions that the coroutines throw and routes them back to the caller. For more information on parallel decomposition, see [Composing suspending functions](https://kotlinlang.org/docs/reference/coroutines/composing-suspending-functions.html) . Coroutines concepts ------------------- ### CoroutineScope A [`CoroutineScope`](https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines/-coroutine-scope/) keeps track of any coroutine it creates using `launch` or `async`. The ongoing work (i.e. the running coroutines) can be cancelled by calling `scope.cancel()` at any point in time. In Android, some KTX libraries provide their own `CoroutineScope` for certain lifecycle classes. For example, `ViewModel` has a [`viewModelScope`](https://developer.android.com/reference/kotlin/androidx/lifecycle/package-summary#(androidx.lifecycle.ViewModel).viewModelScope:kotlinx.coroutines.CoroutineScope) , and `Lifecycle` has [`lifecycleScope`](https://developer.android.com/reference/kotlin/androidx/lifecycle/package-summary#lifecyclescope) . Unlike a dispatcher, however, a `CoroutineScope` doesn't run the coroutines. `viewModelScope` is also used in the examples found in [Background threading on Android with Coroutines](https://developer.android.com/kotlin/coroutines) . However, if you need to create your own `CoroutineScope` to control the lifecycle of coroutines in a particular layer of your app, you can create one as follows: class ExampleClass { // Job and Dispatcher are combined into a CoroutineContext which // will be discussed shortly val scope = CoroutineScope(Job() + Dispatchers.Main) fun exampleMethod() { // Starts a new coroutine within the scope scope.launch { // New coroutine that can call suspend functions fetchDocs() } } fun cleanUp() { // Cancel the scope to cancel ongoing coroutines work scope.cancel() } } A cancelled scope cannot create more coroutines. Therefore, you should call `scope.cancel()` only when the class that controls its lifecycle is being destroyed. When using `viewModelScope`, the [`ViewModel`](https://developer.android.com/topic/libraries/architecture/viewmodel) class cancels the scope automatically for you in the ViewModel's `onCleared()` method. ### Job A [`Job`](https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines/-job/index.html) is a handle to a coroutine. Each coroutine that you create with `launch` or `async` returns a `Job` instance that uniquely identifies the coroutine and manages its lifecycle. You can also pass a `Job` to a `CoroutineScope` to further manage its lifecycle, as shown in the following example: class ExampleClass { ... fun exampleMethod() { // Handle to the coroutine, you can control its lifecycle val job = scope.launch { // New coroutine } if (...) { // Cancel the coroutine started above, this doesn't affect the scope // this coroutine was launched in job.cancel() } } } ### CoroutineContext A [`CoroutineContext`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.coroutines/-coroutine-context/index.html) defines the behavior of a coroutine using the following set of elements: * [`Job`](https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines/-job/index.html) : Controls the lifecycle of the coroutine. * [`CoroutineDispatcher`](https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines/-coroutine-dispatcher/index.html) : Dispatches work to the appropriate thread. * [`CoroutineName`](https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines/-coroutine-name/index.html) : The name of the coroutine, useful for debugging. * [`CoroutineExceptionHandler`](https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines/-coroutine-exception-handler/index.html) : Handles uncaught exceptions. For new coroutines created within a scope, a new `Job` instance is assigned to the new coroutine, and the other `CoroutineContext` elements are inherited from the containing scope. You can override the inherited elements by passing a new `CoroutineContext` to the `launch` or `async` function. Note that passing a `Job` to `launch` or `async` has no effect, as a new instance of `Job` is always assigned to a new coroutine. class ExampleClass { val scope = CoroutineScope(Job() + Dispatchers.Main) fun exampleMethod() { // Starts a new coroutine on Dispatchers.Main as it's the scope's default val job1 = scope.launch { // New coroutine with CoroutineName = "coroutine" (default) } // Starts a new coroutine on Dispatchers.Default val job2 = scope.launch(Dispatchers.Default + CoroutineName("BackgroundCoroutine")) { // New coroutine with CoroutineName = "BackgroundCoroutine" (overridden) } } } Additional coroutines resources ------------------------------- For more coroutines resources, see the following links: * [Kotlin coroutines on Android](https://developer.android.com/kotlin/coroutines) * [Additional resources for Kotlin coroutines and flow](https://developer.android.com/kotlin/coroutines/additional-resources) Was this helpful? Content and code samples on this page are subject to the licenses described in the [Content License](https://developer.android.com/license) . Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates. Last updated 2023-03-07 UTC. --- # Genel bakış  |  Wear  |  Android Developers [Ana içeriğe atla](https://developer.android.com/design/ui/wear/guides/get-started?hl=tr#main-content) [![Android Developers](https://www.gstatic.com/devrel-devsite/prod/v34fe5d0a1df120a3c24e6d73e25d1d8607836b03710a3ad508fa501ece2bdcb3/android/images/lockup.png)](https://developer.android.com/) / * English * Deutsch * Español – América Latina * Français * Indonesia * Italiano * Polski * Português – Brasil * Tiếng Việt * Türkçe * Русский * עברית * العربيّة * فارسی * हिंदी * বাংলা * ภาษาไทย * 中文 – 简体 * 中文 – 繁體 * 日本語 * 한국어 [Android Studio](https://developer.android.com/studio?hl=tr) Oturum aç * [UI Design](https://developer.android.com/design/ui?hl=tr) * [Wear](https://developer.android.com/design/ui/wear?hl=tr) ![](https://developer.android.com/_static/images/translated.svg?hl=tr) Bu sayfa, [Cloud Translation API](https://cloud.google.com/translate/?hl=tr) ile çevrilmiştir. * [Android Developers](https://developer.android.com/?hl=tr) * [Tasarım ve Planla](https://developer.android.com/design?hl=tr) * [UI Design](https://developer.android.com/design/ui?hl=tr) * [Wear](https://developer.android.com/design/ui/wear?hl=tr) * [Rehberler](https://developer.android.com/design/ui/wear/guides/get-started?hl=tr) Genel bakış Koleksiyonlar ile düzeninizi koruyun İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın. ================================================================================================================ Material 3 Expressive, en küçük ekranımız olan kol saati için en yeni tasarım sistemidir. Yuvarlak form faktörü için optimize edilen bu cihaz, premium ve daha yüksek bir ifade düzeyini vurgulayan bir tasarım güncellemesi sunuyor. Material 3 Expressive ile güzel ve etkileyici kol saati uygulamaları tasarlayıp geliştirin. Etkileyici tasarım ilkeleri --------------------------- Etkileyici tasarım, her kullanıcı arayüzü katmanını dikkatli bir şekilde uygulanmış şekil, animasyon, renk ve yazı tipleriyle geliştirir. ### Embrace turu Materyal 3 Expressive, yuvarlak ekranlar için tasarlanmış bir şekil çerçevesi sunar. Bir bakışta okunabilirliği ve görsel dengeyi optimize etmek için kanvasın tamamını kullanır. !["Alttaki onay düğmesinin alt kenarı kavisli"](https://developer.android.com/static/wear/images/design/principle-embrace-round.png?hl=tr) ### Premium hareket ve yaylar Material 3'ün etkileyici güncellemeleri, gezinmeyi doğal, premium ve tüm geçişlerde tutarlı hale getirir. Hareket artık yüzeyleri mekansal olarak birbirine bağlıyor. Kullanıcı hareketlerine daha doğru yanıt vererek gezinmeyi daha sezgisel hale getirir. ### Şekil dönüşümü Material 3 Expressive, daha premium bir deneyim için optimize edilmiş listeler ve seçim düğmeleri için şekil dönüştürme çerçevesi sunar. Listeler, yuvarlak form faktöründe sorunsuz kaydırma özelliğine sahiptir. ### Zengin renk Renk sistemi, Material 3 Expressive'e dahil edilen daha koyu ton paletlerini ve daha geniş jeton grubunu benimseyecek şekilde genişletildi. Daha fazla jeton varyantı ve daha spesifik renk rolleri ile birlikte üçüncü bir vurgu renginin eklenmesi, tasarım sistemine hem derinlik hem de çeşitlilik kazandırır. !["Üçüncü vurgu rengi, uygulamada vurgu renkleri mavi ve pembe olmasına rağmen kronometre uygulamasındaki durdur düğmesinin kırmızı görünmesine neden oluyor"](https://developer.android.com/static/wear/images/design/principle-rich-color.png?hl=tr) ### Değişken yazı tipleri Material 3 Expressive, Roboto'nun tüm örneklerini Roboto Flex ile değiştirir. Referans türü ölçeği, kol saatinin yuvarlak ekranına göre uyarlanır ve optimize edilir. Bu sayfadaki içerik ve kod örnekleri, [İçerik Lisansı](https://developer.android.com/license?hl=tr) sayfasında açıklanan lisanslara tabidir. Java ve OpenJDK, Oracle ve/veya satış ortaklarının tescilli ticari markasıdır. Son güncelleme tarihi: 2025-07-26 UTC. --- # Jetpack örnekleri | | Android Geliştiricileri  |  Android Developers [Ana içeriğe atla](https://developer.android.com/jetpack/samples?hl=tr#main-content) [![Android Developers](https://www.gstatic.com/devrel-devsite/prod/v34fe5d0a1df120a3c24e6d73e25d1d8607836b03710a3ad508fa501ece2bdcb3/android/images/lockup.png)](https://developer.android.com/) / * English * Deutsch * Español – América Latina * Français * Indonesia * Polski * Português – Brasil * Tiếng Việt * Türkçe * 中文 – 简体 * 日本語 * 한국어 [Android Studio](https://developer.android.com/studio?hl=tr) Oturum aç * [Get started](https://developer.android.com/get-started/overview?hl=tr) * [Jetpack](https://developer.android.com/jetpack?hl=tr) ![](https://developer.android.com/_static/images/translated.svg?hl=tr) Bu sayfa, [Cloud Translation API](https://cloud.google.com/translate/?hl=tr) ile çevrilmiştir. * [Android Developers](https://developer.android.com/?hl=tr) * [Get started](https://developer.android.com/get-started/overview?hl=tr) * [Jetpack](https://developer.android.com/jetpack?hl=tr) * [Örnekler](https://developer.android.com/jetpack/samples?hl=tr) Koleksiyonlar ile düzeninizi koruyun İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın. ### Jetpack numuneleri Jetpack API'lerinin nasıl kullanılacağını gösteren çalışma örnekleri. [![](https://developer.android.com/static/images/nia/nia_lined_2880.png?hl=tr)](https://github.com/android/nowinandroid) Öne Çıkanlar ### [Now in Android](https://github.com/android/nowinandroid) Artık Android'de Kotlin ve Jetpack Compose ile geliştirilmiş tüm işlevleri var. Android tasarım ve geliştirme ile ilgili en iyi uygulamaların modelini çıkarır ve geliştiriciler için yararlı bir başvuru kaynağı olarak tasarlanmıştır. [GitHub'da görüntüle](https://github.com/android/nowinandroid) Yeni başlayan Orta düzey Gelişmiş Uzman --- # Duolingo refactors on Android with MVVM and Jetpack libraries  |  Developer stories  |  Android Developers [Skip to main content](https://developer.android.com/stories/apps/duolingo-excellence#main-content) [![Android Developers](https://www.gstatic.com/devrel-devsite/prod/v34fe5d0a1df120a3c24e6d73e25d1d8607836b03710a3ad508fa501ece2bdcb3/android/images/lockup.png)](https://developer.android.com/) / * English * Deutsch * Español – América Latina * Français * Indonesia * Italiano * Polski * Português – Brasil * Tiếng Việt * Türkçe * Русский * עברית * العربيّة * فارسی * हिंदी * বাংলা * ภาษาไทย * 中文 – 简体 * 中文 – 繁體 * 日本語 * 한국어 [Android Studio](https://developer.android.com/studio) Sign in * [Developer stories](https://developer.android.com/stories) * [Android Developers](https://developer.android.com/) * [Essentials](https://developer.android.com/get-started) * [Developer stories](https://developer.android.com/stories) Duolingo refactors on Android with MVVM and Jetpack libraries Stay organized with collections Save and categorize content based on your preferences. ======================================================================================================================================================= Duolingo is the world’s most popular language learning app because it’s managed to make something people have found daunting in the past feel easy and fun. This breezy language experience requires a constant stream of new features and experiments — and a smooth-running app that can deliver all of them. To Duolingo, an unresponsive app on a device anywhere in the world could mean a potentially discouraged learner. This commits them to app excellence, particularly on the Android devices used by sixty percent of their learners, including their CEO, who keeps track of the app from an entry-level phone. And so, when Duolingo's Android development team noticed an increase in “App not Responding” errors, dropped frames — and even received hand-written complaints — they took action immediately. They soon uncovered the source of the app’s performance issues: the existing software architecture wasn’t scaling well with the growth of their team. Necessary updates were causing painful performance regressions on the app. Their developers were devoting more time to fixing bugs, and less to shipping new revenue-generating features. Their outdated software architecture was starting to become an unacceptable drag — on them, their team velocity, and, above all, on their users’ experience. They needed to rebuild their codebase from the ground up. How they did it --------------- At the beginning, the team was torn. Should this be their sole priority now? One group felt that it was more important to continue shipping new features and driving revenue, while the other believed that focusing all their attention on an Android reboot was the way forward. Eventually, they reached the consensus that the increasing effort of fighting regressions risked derailing their road map entirely. They had to go all-in. The team settled on an increasingly popular solution. They decided to rewrite their app using [Model-View-ViewModel](https://developer.android.com/jetpack/guide?gclid=Cj0KCQjw6s2IBhCnARIsAP8RfAj6I4mhRRdSqjYfPlvGET9S6mmRGJrc8Inkc-cCe1IVdTDEvlE3hFEaApHkEALw_wcB&gclsrc=aw.ds) , a software pattern supported by Google that allows developers to streamline an app’s architecture by creating clear separation of concerns. With MVVM, they could separate the development of the graphical user interface (the view) from the development of the business logic (the model). They could establish clear and agreed upon patterns, making it easier to both align their approach to new features and onboard incoming developers. Breaking each feature into its own modular piece allowed the team to quickly regain productivity, as they could assign small groups to work on each feature in parallel, increasing velocity while reducing errors. They implemented this new architecture with libraries from Android’s [Jetpack](https://developer.android.com/jetpack) , including [Dagger](https://developer.android.com/training/dependency-injection/dagger-basics) and [Hilt](https://developer.android.com/training/dependency-injection/hilt-android) , to help them write code that works consistently across Android versions and devices. These two additions enabled them to create better encapsulated features and [utilize Android’s built-in modules more efficiently](https://developer.android.com/training/dependency-injection) . Results ------- These performance gains significantly improved learners' experience on Android and in particular on entry-level devices. They also led to a more responsive app with smoother animations on flagship devices. The daily “App Not Responding” or ANR rate dropped 41%. The percentage of time that the app fell below its target frame rate decreased by 28%. Most importantly, their users experienced a 40% increase in speed when scrolling through key screens. ![](https://developer.android.com/static/images/distribute/stories/duolingo-supporting-chart.jpg) _Hands holding notes reading 41% less ANRs, 28% improved frame rate and 40% faster experience._ The whole reboot took eight weeks and made the app considerably more engaging and delightful for all Duolingo learners. In the six months since, the team has recorded no significant new performance regressions, allowing them to focus again on shipping revenue-generating features. The decision to focus the team’s efforts on quality had paid off. Duolingo’s dedication to their mission made them the world's top app in the language learning space. Their commitment to app excellence — creating cutting edge educational experiences without compromising accessibility — is what kept them there. Get started ----------- If you feel like diving into the nitty-gritty of how Duolingo integrated Jetpack’s libraries, and how Model-View-ViewModel improved their app, read our [technical case study](https://android-developers.googleblog.com/2021/08/android-app-excellence-duolingo.html) for developers. Content and code samples on this page are subject to the licenses described in the [Content License](https://developer.android.com/license) . Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates. Last updated 2021-08-19 UTC. --- # Desain & Rencana  |  Android Developers [Langsung ke konten utama](https://developer.android.com/design?hl=id#main-content) [![Android Developers](https://www.gstatic.com/devrel-devsite/prod/v34fe5d0a1df120a3c24e6d73e25d1d8607836b03710a3ad508fa501ece2bdcb3/android/images/lockup.png)](https://developer.android.com/) / * English * Deutsch * Español – América Latina * Français * Indonesia * Italiano * Polski * Português – Brasil * Tiếng Việt * Türkçe * Русский * עברית * العربيّة * فارسی * हिंदी * বাংলা * ภาษาไทย * 中文 – 简体 * 中文 – 繁體 * 日本語 * 한국어 [Android Studio](https://developer.android.com/studio?hl=id) Masuk ![](https://developer.android.com/_static/images/translated.svg?hl=id) Halaman ini diterjemahkan oleh [Cloud Translation API](https://cloud.google.com/translate/?hl=id) . * [Android Developers](https://developer.android.com/?hl=id) * [Desain & Rencana](https://developer.android.com/design?hl=id) Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda. ![](https://developer.android.com/static/images/cluster-illustrations/ui-guidelines.svg?hl=id) ### Desain & Rencana Sebelum mulai coding, kerjakan pekerjaan rumah untuk mendesain dan merencanakan aplikasi yang menarik. Ciptakan pengalaman pengguna yang luar biasa, rencanakan arsitektur aplikasi Anda dengan cermat, dan ikuti praktik keamanan dan privasi yang direkomendasikan. [![](https://developer.android.com/static/images/picto-icons/layout.svg?hl=id)](https://developer.android.com/design/ui?hl=id) ### [Desain aplikasi yang menarik](https://developer.android.com/design/ui?hl=id) Pelajari panduan dan contoh desain UI untuk menciptakan pengalaman visual yang luar biasa. Pelajari gaya dan tema Android, download kit berbasis Figma, dan banyak lagi. [Mendesain UI](https://developer.android.com/design/ui?hl=id) [![](https://developer.android.com/static/images/picto-icons/tools-3.svg?hl=id)](https://developer.android.com/topic/architecture/intro?hl=id) ### [Merencanakan arsitektur yang tangguh](https://developer.android.com/topic/architecture/intro?hl=id) Pelajari pola yang direkomendasikan untuk membangun lapisan UI dan lapisan data yang tertata dengan baik untuk aplikasi Android Anda berikutnya. [Merancang aplikasi](https://developer.android.com/topic/architecture/intro?hl=id) [![](https://developer.android.com/static/images/picto-icons/vitals.svg?hl=id)](https://developer.android.com/quality?hl=id) ### [Mendesain untuk kualitas aplikasi](https://developer.android.com/quality?hl=id) Membuat aplikasi yang mengikuti praktik terbaik privasi dan keamanan. Buat aplikasi berkualitas tinggi yang menjaga keamanan pengguna dan membangun kepercayaan. [Optimalkan kualitas](https://developer.android.com/quality?hl=id) [![](https://developer.android.com/static/images/cluster-illustrations/billions-16-9.svg?hl=id)](https://developer.android.com/build-for-billions?hl=id) ### [Rencanakan untuk miliaran pengguna berikutnya](https://developer.android.com/build-for-billions?hl=id) Derap pertumbuhan ponsel cerdas di seluruh dunia berlangsung pada tingkatan yang tidak pernah terjadi sebelumnya, dan miliaran pengguna baru akan muncul dari pasar yang membutuhkan keputusan teknis dan desain yang unik. Pastikan aplikasi Anda sudah siap. [Buka Build untuk Miliaran Pengguna](https://developer.android.com/build-for-billions?hl=id) ### Panduan desain Panduan ### [Panduan desain seluler](https://developer.android.com/design/ui/mobile/guides/foundations/accessibility?hl=id) Mulai dengan panduan desain UI Android. Ikuti panduan gaya, pelajari tema, dan buat pengalaman aplikasi Android yang menarik. Panduan ### [Panduan desain perangkat layar besar](https://developer.android.com/design/ui/large-screens?hl=id) Tablet, perangkat foldable, dan perangkat ChromeOS memperluas kemungkinan UI. Desain pengalaman pengguna yang hanya dapat diberikan oleh perangkat layar besar. Panduan ### [Panduan desain Wear OS](https://developer.android.com/design/ui/wear/guides/get-started?hl=id) Wear OS memiliki kumpulan prinsip desain yang unik. Pelajari detail mendesain aplikasi untuk Wear OS. Panduan ### [Panduan desain XR](https://developer.android.com/design/ui/xr/guides/get-started?hl=id) Buat pengalaman yang mendorong batasan dan mengubah cara orang membuat, menjelajahi, dan menikmati hiburan, yang didukung oleh Android XR. Panduan ### [Panduan desain TV](https://developer.android.com/design/ui/tv/guides/foundations/design-for-tv?hl=id) Buat aplikasi Android TV yang dinamis dan elegan. Desain untuk spesifikasi dan dimensi TV serta ikuti praktik terbaik dan rekomendasi kami. ### Panduan kualitas [![](https://developer.android.com/static/images/picto-icons/security-2.svg?hl=id)](https://developer.android.com/security?hl=id) Panduan ### [Keamanan & privasi](https://developer.android.com/security?hl=id) Lindungi keamanan dan privasi pengguna. Ikuti praktik terbaik dan panduan Android untuk membangun aplikasi dengan dasar kepercayaan dan integritas. [Buka panduan keamanan](https://developer.android.com/security?hl=id) [![](https://developer.android.com/static/images/picto-icons/graph-bar.svg?hl=id)](https://developer.android.com/quality/technical?hl=id) Panduan ### [Kualitas teknis](https://developer.android.com/quality/technical?hl=id) Kualitas teknis adalah fondasi aplikasi yang bagus. Ikuti panduan kualitas teknis kami untuk memastikan stabilitas, performa tinggi, dan pengalaman pengguna yang luar biasa untuk aplikasi Anda. [Buka panduan kualitas](https://developer.android.com/quality/technical?hl=id) --- # Widget di Android | Desain UI  |  Widgets  |  Android Developers [Langsung ke konten utama](https://developer.android.com/design/ui/widget?hl=id#main-content) [![Android Developers](https://www.gstatic.com/devrel-devsite/prod/v34fe5d0a1df120a3c24e6d73e25d1d8607836b03710a3ad508fa501ece2bdcb3/android/images/lockup.png)](https://developer.android.com/) / * English * Deutsch * Español – América Latina * Français * Indonesia * Italiano * Polski * Português – Brasil * Tiếng Việt * Türkçe * Русский * עברית * العربيّة * فارسی * हिंदी * বাংলা * ภาษาไทย * 中文 – 简体 * 中文 – 繁體 * 日本語 * 한국어 [Android Studio](https://developer.android.com/studio?hl=id) Masuk * [UI Design](https://developer.android.com/design/ui?hl=id) * [Widgets](https://developer.android.com/design/ui/widget?hl=id) ![](https://developer.android.com/_static/images/translated.svg?hl=id) Halaman ini diterjemahkan oleh [Cloud Translation API](https://cloud.google.com/translate/?hl=id) . * [Android Developers](https://developer.android.com/?hl=id) * [Desain & Rencana](https://developer.android.com/design?hl=id) * [UI Design](https://developer.android.com/design/ui?hl=id) * [Widgets](https://developer.android.com/design/ui/widget?hl=id) Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda. ![](https://developer.android.com/static/images/design/ui/widget/widget-hero_2880.png?hl=id) ### Widget di Android Tambahkan widget untuk meningkatkan pengalaman pengguna Anda. Widget adalah elemen layar utama yang dapat disesuaikan dan menampilkan tampilan konten atau tindakan aplikasi yang jelas dan dapat ditindaklanjuti. [Pergi ke fondasi desain](https://developer.android.com/design/ui/mobile/guides/widgets?hl=id) [Mendownload kit Widget Figma](https://goo.gle/android-ui-kit) [![](https://developer.android.com/static/images/design/ui/widget/layouts.svg?hl=id)](https://developer.android.com/design/ui/mobile/guides/widgets/layouts?hl=id) Panduan ### [Tata letak](https://developer.android.com/design/ui/mobile/guides/widgets/layouts?hl=id) Tata letak menentukan cara pengaturan informasi dan elemen interaktif dalam widget Anda. Pelajari lebih lanjut tata letak siap pakai untuk widget teks, daftar & jenis petak. [Lihat panduan](https://developer.android.com/design/ui/mobile/guides/widgets/layouts?hl=id) [![](https://developer.android.com/static/images/design/ui/widget/sizing.svg?hl=id)](https://developer.android.com/design/ui/mobile/guides/widgets/sizing?hl=id) Panduan ### [Pengaturan ukuran](https://developer.android.com/design/ui/mobile/guides/widgets/sizing?hl=id) Pelajari lebih lanjut cara mendesain widget yang dapat diskalakan dengan lancar ke berbagai ukuran. Lihat ukuran widget default dan pelajari cara memanfaatkan sepenuhnya ruang petak yang tersedia. [Lihat panduan](https://developer.android.com/design/ui/mobile/guides/widgets/sizing?hl=id) [![](https://developer.android.com/static/images/design/ui/widget/style.svg?hl=id)](https://developer.android.com/design/ui/mobile/guides/widgets/style?hl=id) Panduan ### [Gaya](https://developer.android.com/design/ui/mobile/guides/widgets/style?hl=id) Pelajari cara menyesuaikan gaya widget Anda untuk meningkatkan dampak visual widget dan agar sesuai dengan tema perangkat pengguna. [Lihat panduan](https://developer.android.com/design/ui/mobile/guides/widgets/style?hl=id) [![](https://developer.android.com/static/images/design/ui/widget/discovery-promotion.svg?hl=id)](https://developer.android.com/design/ui/mobile/guides/widgets/discovery-promotion?hl=id) Panduan ### [Penemuan & promosi](https://developer.android.com/design/ui/mobile/guides/widgets/discovery-promotion?hl=id) Pelajari cara mempromosikan widget Anda di alat pilih widget dengan menggunakan ukuran yang sesuai dan menampilkan konten pratinjau yang sesuai. [Lihat panduan](https://developer.android.com/design/ui/mobile/guides/widgets/discovery-promotion?hl=id) [![](https://developer.android.com/static/images/design/ui/widget/layouts-content_2880.jpg?hl=id)](https://developer.android.com/design/ui/mobile/guides/widgets?hl=id) ### [Konten](https://developer.android.com/design/ui/mobile/guides/widgets?hl=id) Sebelum menentukan tata letak, pikirkan konten yang ingin Anda tampilkan di widget. Apakah Anda ingin widget Anda kaya gambar atau penuh teks? Temukan contoh tata letak untuk berbagai jenis konten. [Pelajari lebih lanjut](https://developer.android.com/design/ui/mobile/guides/widgets?hl=id) [![](https://developer.android.com/static/images/design/ui/widget/layouts-canonical_2880.jpg?hl=id)](https://developer.android.com/design/ui/mobile/guides/widgets/layouts?hl=id) ### [Tata letak widget kanonis](https://developer.android.com/design/ui/mobile/guides/widgets/layouts?hl=id) Mulai gunakan tata letak responsif kami yang siap pakai untuk semua jenis widget yang paling umum. [Pelajari lebih lanjut](https://developer.android.com/design/ui/mobile/guides/widgets/layouts?hl=id) [![](https://developer.android.com/static/images/design/ui/widget/sizing-responsive_2880.jpg?hl=id)](https://developer.android.com/design/ui/mobile/guides/widgets/sizing?hl=id) ### [Layout responsif](https://developer.android.com/design/ui/mobile/guides/widgets/sizing?hl=id) Pastikan widget Anda fleksibel dan pertimbangkan cara mengubah ukuran widget. Bagaimana tampilannya dalam tata letak potret, persegi, atau lanskap? [Pelajari lebih lanjut](https://developer.android.com/design/ui/mobile/guides/widgets/sizing?hl=id) [![](https://developer.android.com/static/images/design/ui/widget/sizing-bounds_2880.jpg?hl=id)](https://developer.android.com/design/ui/mobile/guides/widgets/sizing?hl=id#fill_the_bounds) ### [Memenuhi batas](https://developer.android.com/design/ui/mobile/guides/widgets/sizing?hl=id#fill_the_bounds) Ruang layar beranda sangat berharga, jadi penting untuk memastikan widget Anda dibuat untuk mengoptimalkan ruang yang telah dialokasikan. [Pelajari lebih lanjut](https://developer.android.com/design/ui/mobile/guides/widgets/sizing?hl=id#fill_the_bounds) [![](https://developer.android.com/static/images/design/ui/widget/style-anatomy_2880.jpg?hl=id)](https://developer.android.com/design/ui/mobile/guides/widgets/style?hl=id) ### [Anatomi dan spesifikasi](https://developer.android.com/design/ui/mobile/guides/widgets/style?hl=id) Pahami komponen inti dan spesifikasi desain mendetail untuk memastikan widget Anda memenuhi standar kualitas kami. [Pelajari lebih lanjut](https://developer.android.com/design/ui/mobile/guides/widgets/style?hl=id) [Download kit figma](https://goo.gle/android-ui-kit) [![](https://developer.android.com/static/images/design/ui/widget/style-tokens_2880.jpg?hl=id)](https://developer.android.com/design/ui/mobile/guides/widgets/style?hl=id#color) ### [Token warna](https://developer.android.com/design/ui/mobile/guides/widgets/style?hl=id#color) Agar lebih sesuai dengan layar utama pengguna, izinkan widget Anda menyesuaikan dengan tema perangkat sistem sehingga widget Anda dapat menggunakan fitur seperti tema terang dan gelap serta setelan kontras. [Pelajari lebih lanjut](https://developer.android.com/design/ui/mobile/guides/widgets/style?hl=id#color) [![](https://developer.android.com/static/images/design/ui/widget/discovery-promotion-requirements_2880.jpg?hl=id)](https://developer.android.com/design/ui/mobile/guides/widgets/discovery-promotion?hl=id) ### [Persyaratan pemilih widget](https://developer.android.com/design/ui/mobile/guides/widgets/discovery-promotion?hl=id) Mulai dari ukuran widget yang direkomendasikan hingga pratinjau berkualitas tinggi, tinjau panduan kami untuk membantu widget Anda mendapatkan perhatian dan tampil beda di antara widget lainnya. [Pelajari lebih lanjut](https://developer.android.com/design/ui/mobile/guides/widgets/discovery-promotion?hl=id) [![](https://developer.android.com/static/images/design/ui/widget/widgets_tiers_card_2880.png?hl=id)](https://developer.android.com/docs/quality-guidelines/widget-quality?hl=id) ### [Tingkat kualitas widget](https://developer.android.com/docs/quality-guidelines/widget-quality?hl=id) Kualitas widget memengaruhi cara pengguna berinteraksi dengan atau menemukan widget Anda. Lihat tingkat kualitas untuk membantu widget Anda tampil beda dan menarik perhatian. [Pelajari lebih lanjut](https://developer.android.com/docs/quality-guidelines/widget-quality?hl=id) [![](https://developer.android.com/static/images/design/ui/widget/figma-community_2880.jpg?hl=id)](https://goo.gle/android-ui-kit) Figma ### [File Android Figma](https://goo.gle/android-ui-kit) Gunakan komponen desain kami untuk membuat widget yang indah & fungsional. Komponen dan pola ini memastikan pengalaman pengguna yang optimal dengan widget, sekaligus mempertahankan konsistensi & menampilkan merek Anda. [Gabung dengan komunitas!](https://goo.gle/android-ui-kit) --- # Wear | Desain UI  |  Android Developers [Langsung ke konten utama](https://developer.android.com/design/ui/wear?hl=id#main-content) [![Android Developers](https://www.gstatic.com/devrel-devsite/prod/v34fe5d0a1df120a3c24e6d73e25d1d8607836b03710a3ad508fa501ece2bdcb3/android/images/lockup.png)](https://developer.android.com/) / * English * Deutsch * Español – América Latina * Français * Indonesia * Italiano * Polski * Português – Brasil * Tiếng Việt * Türkçe * Русский * עברית * العربيّة * فارسی * हिंदी * বাংলা * ภาษาไทย * 中文 – 简体 * 中文 – 繁體 * 日本語 * 한국어 [Android Studio](https://developer.android.com/studio?hl=id) Masuk * [UI Design](https://developer.android.com/design/ui?hl=id) * [Wear](https://developer.android.com/design/ui/wear?hl=id) ![](https://developer.android.com/_static/images/translated.svg?hl=id) Halaman ini diterjemahkan oleh [Cloud Translation API](https://cloud.google.com/translate/?hl=id) . * [Android Developers](https://developer.android.com/?hl=id) * [Desain & Rencana](https://developer.android.com/design?hl=id) * [UI Design](https://developer.android.com/design/ui?hl=id) * [Wear](https://developer.android.com/design/ui/wear?hl=id) Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda. ![](https://developer.android.com/static/wear/images/design/landing-hero_2880.png?hl=id) ### Desain untuk Wear OS Smartwatch memungkinkan pengguna mendapatkan informasi secara sekilas, lalu mengambil tindakan. Interaksi yang sering dilakukan ini dapat membantu pengguna kembali hadir dalam kehidupan sehari-hari. Ciptakan pengalaman pengguna yang imersif dan menarik di Wear OS untuk meningkatkan penggunaan aplikasi dan loyalitas merek. [Panduan memulai](https://developer.android.com/design/ui/wear/guides/get-started?hl=id) [![](https://developer.android.com/static/images/design/ui/wear/getting-started.svg?hl=id)](https://developer.android.com/design/ui/wear/guides/get-started?hl=id) ### [Material 3 Ekspresif](https://developer.android.com/design/ui/wear/guides/get-started?hl=id) Pelajari Material 3 Expressive, sistem desain terbaru yang mencakup faktor bentuk ponsel, smartwatch, dan tablet. [Pelajari lebih lanjut Material 3 Ekspresif](https://developer.android.com/design/ui/wear/guides/get-started?hl=id) [![](https://developer.android.com/static/images/design/ui/wear/design-principles.svg?hl=id)](https://developer.android.com/design/ui/wear/guides/get-started/apply?hl=id) ### [Desain untuk Wear OS](https://developer.android.com/design/ui/wear/guides/get-started/apply?hl=id) Pelajari dasar-dasar untuk mendesain di Wear OS. [Pelajari lebih lanjut cara mendesain untuk Wear OS](https://developer.android.com/design/ui/wear/guides/get-started/apply?hl=id) [![](https://developer.android.com/static/images/design/ui/wear/screen-sizes.svg?hl=id)](https://developer.android.com/design/ui/wear/guides/foundations/quality-tiers?hl=id) ### [Tata letak responsif dan adaptif](https://developer.android.com/design/ui/wear/guides/foundations/quality-tiers?hl=id) Optimalkan untuk berbagai ukuran layar, dengan kualitas tinggi. [Pelajari lebih lanjut cara mendesain aplikasi yang lebih adaptif](https://developer.android.com/design/ui/wear/guides/foundations/quality-tiers?hl=id) [![](https://developer.android.com/static/wear/images/design/landing-apps_2880.png?hl=id)](https://developer.android.com/design/ui/wear/guides/surfaces/apps?hl=id) ### [Aplikasi](https://developer.android.com/design/ui/wear/guides/surfaces/apps?hl=id) Buat aplikasi untuk Wear OS, yang menghadirkan tindakan berguna kepada pengguna langsung dari pergelangan tangan mereka. [Pelajari lebih lanjut cara mendesain aplikasi](https://developer.android.com/design/ui/wear/guides/surfaces/apps?hl=id) [![](https://developer.android.com/static/wear/images/design/landing-tiles_2880.png?hl=id)](https://developer.android.com/design/ui/wear/guides/surfaces/tiles?hl=id) ### [Kartu](https://developer.android.com/design/ui/wear/guides/surfaces/tiles?hl=id) Gunakan kartu untuk membantu pengguna mengakses konten bermanfaat dari aplikasi Anda dengan cepat dan efektif. [Pelajari lebih lanjut cara mendesain kartu](https://developer.android.com/design/ui/wear/guides/surfaces/tiles?hl=id) [![](https://developer.android.com/static/images/design/ui/wear/components.svg?hl=id)](https://developer.android.com/design/ui/wear/guides/foundations/common-layouts?hl=id) ### [Tata letak desain umum](https://developer.android.com/design/ui/wear/guides/foundations/common-layouts?hl=id) Tata letak aplikasi serbaguna yang telah terbukti memberikan pengalaman pengguna yang optimal. [Pelajari lebih lanjut tata letak desain umum](https://developer.android.com/design/ui/wear/guides/foundations/common-layouts?hl=id) [![](https://developer.android.com/static/images/design/ui/wear/styles.svg?hl=id)](https://developer.android.com/design/ui/wear/guides/styles/color?hl=id) ### [Gaya](https://developer.android.com/design/ui/wear/guides/styles/color?hl=id) Buat desain Anda lebih hidup dengan gaya Ekspresif Material 3 terbaru. [Pelajari gaya lebih lanjut](https://developer.android.com/design/ui/wear/guides/styles/color?hl=id) [![](https://developer.android.com/static/images/design/ui/wear/design-principles_2880.png?hl=id)](https://developer.android.com/design/ui/wear/guides/m2-5/foundations/wear-os-for-kids?hl=id) ### [Prinsip desain Wear OS untuk Anak](https://developer.android.com/design/ui/wear/guides/m2-5/foundations/wear-os-for-kids?hl=id) Desain aplikasi Anda agar anak-anak tetap berinteraksi, aman, dan hadir. [Pelajari lebih lanjut](https://developer.android.com/design/ui/wear/guides/m2-5/foundations/wear-os-for-kids?hl=id) [![](https://developer.android.com/static/images/design/ui/wear/developing-kids-experiences_2880.png?hl=id)](https://developer.android.com/training/wearables/kids/develop?hl=id) ### [Mengembangkan pengalaman untuk anak-anak](https://developer.android.com/training/wearables/kids/develop?hl=id) Optimalkan pengalaman aplikasi Wear OS Anda untuk anak-anak. [Pelajari lebih lanjut](https://developer.android.com/training/wearables/kids/develop?hl=id) [![](https://developer.android.com/static/wear/images/design/design-kit-apps.svg?hl=id)](https://www.figma.com/community/file/1506418396052412186) ### [Kit desain untuk aplikasi](https://www.figma.com/community/file/1506418396052412186) Gunakan kit desain untuk aplikasi guna menerapkan gaya dan komponen bawaan kami. Download file dan buka di Figma. [Kit download untuk aplikasi](https://www.figma.com/community/file/1506418396052412186) [![](https://developer.android.com/static/wear/images/design/design-kit-tiles.svg?hl=id)](https://www.figma.com/community/file/1507852095734722321) ### [Kit desain untuk kartu](https://www.figma.com/community/file/1507852095734722321) Gunakan kit desain untuk kartu guna menerapkan gaya dan komponen bawaan kami. Download file dan buka di Figma. [Mendownload kit untuk kartu](https://www.figma.com/community/file/1507852095734722321) [![](https://developer.android.com/static/images/design/ui/mobile/guides-developer_2880.png?hl=id)](https://developer.android.com/training/wearables/principles?hl=id) ### [Panduan developer](https://developer.android.com/training/wearables/principles?hl=id) Gunakan panduan developer dan referensi API kami untuk mempelajari cara membuat aplikasi Wear OS. [Lihat panduan developer](https://developer.android.com/training/wearables/principles?hl=id) [![](https://developer.android.com/static/images/design/ui/mobile/guides-quality_2880.png?hl=id)](https://developer.android.com/docs/quality-guidelines/wear-app-quality?hl=id) ### [Panduan kualitas](https://developer.android.com/docs/quality-guidelines/wear-app-quality?hl=id) Nilai kualitas aplikasi Anda menggunakan checklist kami. [Lihat kualitas aplikasi](https://developer.android.com/docs/quality-guidelines/wear-app-quality?hl=id) [![](https://developer.android.com/static/images/design/ui/wear/ux-research-yt_2880.png?hl=id)](https://www.youtube.com/watch?v=puGn72d86qw&%3Bhl=id&hl=id) Video YouTube ### [Pengantar Riset UX & Inklusi Produk di Wear OS](https://www.youtube.com/watch?v=puGn72d86qw&%3Bhl=id&hl=id) **22 Mei 2023** [![](https://developer.android.com/static/images/design/ui/wear/ux-design-wear-yt_2880.png?hl=id)](https://www.youtube.com/watch?v=fZpVlbzlvuY&%3Bhl=id&hl=id) Video YouTube ### [Pengantar Desain UX di Wear OS](https://www.youtube.com/watch?v=fZpVlbzlvuY&%3Bhl=id&hl=id) **22 Mei 2023** [![](https://developer.android.com/static/images/design/ui/wear/product-inclusion-yt_2880.png?hl=id)](https://www.youtube.com/watch?v=H24wJ6i9jk4&%3Bhl=id&hl=id) Video YouTube ### [Pengantar Inklusi & Kesetaraan Produk](https://www.youtube.com/watch?v=H24wJ6i9jk4&%3Bhl=id&hl=id) **22 Mei 2023** --- # View binding  |  Android Developers [Langsung ke konten utama](https://developer.android.com/topic/libraries/view-binding?hl=id#main-content) [![Android Developers](https://www.gstatic.com/devrel-devsite/prod/v34fe5d0a1df120a3c24e6d73e25d1d8607836b03710a3ad508fa501ece2bdcb3/android/images/lockup.png)](https://developer.android.com/) / * English * Deutsch * Español – América Latina * Français * Indonesia * Italiano * Polski * Português – Brasil * Tiếng Việt * Türkçe * Русский * עברית * العربيّة * فارسی * हिंदी * বাংলা * ภาษาไทย * 中文 – 简体 * 中文 – 繁體 * 日本語 * 한국어 [Android Studio](https://developer.android.com/studio?hl=id) Masuk ![](https://developer.android.com/_static/images/translated.svg?hl=id) Halaman ini diterjemahkan oleh [Cloud Translation API](https://cloud.google.com/translate/?hl=id) . * [Android Developers](https://developer.android.com/?hl=id) Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda. View binding   Bagian dari [Android Jetpack](https://developer.android.com/jetpack?hl=id) . =========================================================================================== _View binding_ adalah fitur yang memudahkan penulisan kode yang berinteraksi dengan tampilan. Setelah diaktifkan dalam sebuah modul, view binding akan menghasilkan _class binding_ untuk setiap file tata letak XML yang ada dalam modul tersebut. Instance class binding berisi referensi langsung ke semua tampilan yang memiliki ID dalam tata letak yang sesuai. Pada umumnya, view binding menggantikan `findViewById`. Penyiapan --------- View binding diaktifkan di level modul. Untuk mengaktifkan view binding dalam modul, setel opsi build `viewBinding` ke `true` dalam file `build.gradle` level modul, seperti yang ditunjukkan dalam contoh berikut: ### Groovy android { ... buildFeatures { viewBinding true } } ### Kotlin android { ... buildFeatures { viewBinding \= true } } Jika Anda ingin mengabaikan file tata letak saat membuat class binding, tambahkan atribut `tools:viewBindingIgnore="true"` ke tampilan root file tata letak tersebut: ... Penggunaan ---------- Jika view binding diaktifkan untuk sebuah modul, class binding akan dihasilkan untuk setiap file tata letak XML yang ada di dalam modul. Setiap class binding berisi referensi ke tampilan root dan semua tampilan yang memiliki ID. Nama class binding dibuat dengan mengonversi nama file XML menjadi Pascal case dan menambahkan kata "Binding" ke bagian akhirnya. Misalnya, pertimbangkan file tata letak bernama `result_profile.xml` yang berisi hal berikut: