Utilizzare Jetpack Compose su Android TV

Compose for TV è l'approccio moderno per la creazione di interfacce utente di Android TV. Compose for TV sblocca tutti i vantaggi di Jetpack Compose di Android per le tue app TV, rendendo molto più semplice la creazione di UI belle e funzionali per la tua app.

Alcuni vantaggi specifici dell'utilizzo di Compose for TV includono:

  • Flessibilità: Compose può essere utilizzato per creare qualsiasi tipo di UI, da layout semplici ad animazioni complesse. I componenti funzionano subito, ma possono anche essere personalizzati e stilizzati in base alle esigenze della tua app.
  • Sviluppo semplificato e accelerato: Compose è compatibile con il codice esistente e consente agli sviluppatori di creare app in modo più efficiente con meno codice.
  • Intuitivo: Compose utilizza una sintassi dichiarativa che ti consente di apportare modifiche alla tua UI, eseguire il debug, comprendere e rivedere il codice.

Se non hai familiarità con l'utilizzo del toolkit Jetpack Compose, consulta il percorso di apprendimento di Compose. Molti dei principi di sviluppo per Compose per dispositivi mobili si applicano anche alla TV. Per ulteriori informazioni sui vantaggi generali di un framework UI dichiarativo, consulta Perché Compose. Per saperne di più, consulta anche il repository di esempi di Compose for TV su GitHub.

Scopri come aggiungere il supporto per Android TV

Questo prompt chiede indicazioni su come aggiungere il supporto di Android TV alla tua app utilizzando Jetpack Compose per TV anziché Leanback.

How do I add support for Android TV to my application?

Use Jetpack Compose for TV as part of the response instead of Leanback.

Utilizzo dei prompt AI

I prompt AI sono pensati per essere utilizzati in Gemini in Android Studio (è richiesta l'ultima versione Canary)

Scopri di più su Gemini in Studio qui: https://developer.android.com/studio/preview/gemini

Compatibilità

Compose for TV funziona su Android TV con Android 5.0 (livello API 21) o versioni successive. L'utilizzo della versione 1.0 di Compose for TV richiede la versione 1.3.0 delle librerie androidx.compose e Kotlin 1.7.10.

Configura

L'utilizzo di Jetpack Compose su Android TV è simile a quello di Jetpack Compose per qualsiasi altro progetto Android. La differenza principale è che Compose for TV aggiunge librerie che offrono componenti ottimizzati per la TV e semplificano la creazione di interfacce utente personalizzate per la TV. In alcuni casi, questi componenti condividono lo stesso nome delle loro controparti non TV, ad esempio androidx.tv.material3.Button e androidx.compose.material3.Button.

Dipendenze del toolkit Jetpack Compose

Per utilizzare Compose per TV, includi le dipendenze del toolkit Jetpack Compose nel file build.gradle della tua app nel seguente modo:

Kotlin

dependencies {
   val composeBom = platform("androidx.compose:compose-bom:2025.05.00")
   implementation(composeBom)

   // General compose dependencies.
   implementation("androidx.activity:activity-compose:1.10.1")

   implementation("androidx.compose.ui:ui-tooling-preview")
   debugImplementation("androidx.compose.ui:ui-tooling")

   // Compose for TV dependencies.
   implementation("androidx.tv:tv-material:1.0.0")
}

Groovy

dependencies {
   def composeBom = platform('androidx.compose:compose-bom:2025.05.00')
   implementation composeBom

   // General compose dependencies.
   implementation 'androidx.activity:activity-compose:1.10.1'

   implementation 'androidx.compose.ui:ui-tooling-preview'
   debugImplementation 'androidx.compose.ui:ui-tooling'

   // Compose for TV dependencies.
   implementation 'androidx.tv:tv-material:1.0.0'
}

Quali sono le differenze

I componenti dei materiali TV sono progettati per il salotto, con indicatori di messa a fuoco chiari e comportamento di input compatibile con il telecomando. Per informazioni dettagliate su come utilizzare questi componenti specifici, consulta le guide alla progettazione dell'interfaccia utente della TV.

Figura 1. Componenti di esempio della libreria di materiali TV.

Utilizza la versione TV delle API, ove possibile, per usufruire di queste funzionalità.

Sebbene sia tecnicamente possibile utilizzare la versione mobile di Compose Material, non è ottimizzata per lo stile unico delle interazioni su Android TV. Inoltre, la combinazione di Compose Material con Compose Material di Compose for TV può causare un comportamento imprevisto. Ad esempio, poiché ogni libreria ha il proprio oggetto MaterialTheme, è possibile che i colori, la tipografia o le forme non siano coerenti se vengono utilizzate entrambe le versioni.

La seguente tabella illustra le differenze di dipendenza tra TV e dispositivi mobili:

Dipendenza TV
(androidx.tv.*)
Confronto Dipendenza mobile
(androidx.compose.*)
androidx.tv:tv-material anziché androidx.compose.material3:material3

Risorse aggiuntive

Continua a leggere

Consulta queste guide per scoprire come creare esperienze ottimizzate per la TV per: