Utilizzare Jetpack Compose su Android TV

Compose per TV è l'approccio moderno allo sviluppo di Android TV e le interfacce utente di Google Cloud. Compose per TV sblocca tutti i vantaggi di Jetpack Compose di Android per le tue app TV, rendendo molto bello lo sviluppo di UI accattivanti e funzionali per le tue app è più facile.

Ecco alcuni vantaggi specifici dell'utilizzo di Compose per la TV:

  • Flessibilità: Compose può essere utilizzata per creare qualsiasi tipo di UI, dalle semplici dai layout ad animazioni complesse. I componenti sono subito pronti all'uso, ma possono anche possono essere personalizzati e adattati alle esigenze della tua app.
  • Semplificati e Sviluppo accelerato: Compose è compatibile con codice esistente e consente agli sviluppatori di creare app in modo più efficiente meno codice.
  • Intuitiva: Compose utilizza una sintassi dichiarativa che consente di rendere modifiche alla UI, eseguire il debug, comprendere ed esaminare il codice.

Se non hai dimestichezza con l'utilizzo del toolkit di Jetpack Compose, consulta la Scrivi percorso. Molti dei principi di sviluppo per Compose per dispositivi mobili si applicano anche alla TV. Vedi Perché Scrivi per saperne di più informazioni sui vantaggi generali di un framework di UI dichiarativo. Per ulteriori informazioni vedi anche Scrivi per Repository di esempi TV su GitHub.

Compatibilità

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

Configura

Jetpack Compose su Android TV è simile a Jetpack Compose per qualsiasi in un altro progetto Android. La differenza principale è che Compose per la TV aggiunge librerie che offrono componenti ottimizzati per la TV e semplificano la creazione interfacce utente personalizzate per la TV. In alcuni casi, questi componenti hanno lo stesso nome come controparti non TV, ad esempio androidx.tv.material3.Button e androidx.compose.material3.Button.

Dipendenze del toolkit di Jetpack Compose

Per usare Compose per la TV, includi il toolkit di Jetpack Compose le dipendenze nel file build.gradle dell'app nel seguente modo:

Kotlin

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

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

   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-rc01")
}

Alla moda

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

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

   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-rc01'
}

Differenze

I componenti del materiale della TV sono progettati per il salotto, con una chiara messa a fuoco indicatori e comportamento degli input remoti. Per i dettagli su come per utilizzare questi componenti specifici, consulta le guide alla progettazione dell'interfaccia utente della TV.

. Figura 1. Componenti di esempio dalla raccolta di materiali TV.

Se possibile, utilizza la versione TV delle API per trarre vantaggio dalle queste funzionalità.

Sebbene sia tecnicamente possibile utilizzare la versione mobile di Compose Material, non è ottimizzato per lo stile unico delle interazioni su Android TV. Nella anche mescolando Compose Material con Compose Material Scrivi per la TV può causare comportamenti imprevisti. Ad esempio: poiché ogni libreria ha il proprio oggetto MaterialTheme, esiste la possibilità di colori, forme o elementi tipografici non 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 da dispositivi mobili
(androidx.compose.*)
androidx.tv:materiale-tv invece di androidx.compose.material3:material3

Risorse aggiuntive

Continua a leggere

Esplora queste guide per scoprire come creare esperienze ottimizzate per la TV in modo da: