Blog Alphorm Logo de blog informatique spécialisé en technologie et solutions IT
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
En cours de lecture : Jetpack Compose: Navigation et Scaffold
Agrandisseur de policeAa
Blog AlphormBlog Alphorm
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
Search
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
Suivez-nous
© Alphorm 2024 - Tous droits réservés
Développement

Jetpack Compose: Navigation et Scaffold

L'Équipe Alphorm Par L'Équipe Alphorm 18 janvier 2025
Partager
Partager

La création d’interfaces utilisateur modernes et réactives pour Android peut être complexe sans les bons outils.

Sans une approche structurée, la gestion de la navigation et de la structure d’interface peut devenir confuse et désordonnée.

Jetpack Compose propose des composants tels que NavHost Controller et Scaffold pour simplifier ces processus et concevoir des interfaces élégantes.

Table de matière
Navigation Jetpack Compose: IntroductionNavHost Controller: Gérer NavigationCompose UI: Interface avec ScaffoldScaffold & Material Design: Cohérence UIConclusion sur Jetpack Compose NavigationFAQConclusion

Formation Créer une Interface Utilisateur Moderne avec JetPack Compose

Créez des interfaces modernes et réactives avec JetPack Compose!

Découvrir cette formation

Navigation Jetpack Compose: Introduction

NavHost Controller: Gérer Navigation

Dans cet eBook, nous allons détailler deux concepts clés pour la construction d’interfaces utilisateur modernes avec Jetpack Compose : la navigation et l’utilisation de Scaffold .

Compose UI: Interface avec Scaffold

Introduction à la Navigation dans Jetpack Compose

Schéma de navigation Jetpack Compose pour Android

La navigation est un élément fondamental dans toute application mobile. Elle permet de lier différents écrans et de gérer les transitions entre eux. Dans Jetpack Compose, la navigation est facilitée par l’utilisation de la bibliothèque androidx.navigation:navigation-compose.

Pour commencer, vous devez ajouter la dépendance suivante à votre fichier build.gradle :

				
					
 dependencies {
implementation "androidx.navigation:navigation-compose:2.6.0-alpha04"
}

				
			

Cette dépendance vous donne accès à un ensemble de fonctions et de composables spécifiques pour gérer la navigation dans votre application.

Configuration du NavHost Controller

Schéma logique de navigation Jetpack Compose

Le NavHost Controller est le centre de la navigation dans une application Compose. Il gère les routes et les transitions entre les différents écrans. Pour l’implémenter, vous devez d’abord créer un NavHostController à l’aide de la fonction rememberNavController().

				
					
 val navController = rememberNavController()

				
			

Ensuite, vous pouvez définir votre graphique de navigation à l’aide de NavHost. Ce graphique spécifie quelles routes sont disponibles et les composables associés à chaque route.

				
					
 NavHost(navController = navController, startDestination = "home") {
composable("home") { HomeScreen() }
composable("login") { LoginScreen() }
}

				
			

Définir les Routes et les Paramètres

Chaque route dans le NavHost est définie par un identifiant unique. Vous pouvez également passer des paramètres à ces routes si nécessaire. Par exemple :

				
					
 composable("profile/{userId}") { backStackEntry ->
val userId = backStackEntry.arguments?.getString("userId")
ProfileScreen(userId)}

				
			
Élément
Description
Naviguer vers une Route
Utilise navController.navigate(« profile/$userId ») pour naviguer vers un écran spécifique.
Définition de la Route
Exemple : composable(« profile/{userId} ») { backStackEntry -> ProfileScreen(userId) }.
Paramètres de Route
Passe des paramètres dynamiques comme {userId} pour personnaliser la navigation.
Gestion de la Pile
Utilise navController.popBackStack() pour revenir en arrière dans la pile de navigation.
Comportement de la Pile
Peut gérer des comportements spécifiques de la pile, comme empêcher l’utilisateur de revenir en arrière.
Navigateur de NavController
Permet la gestion centralisée de la navigation dans l’application avec des routes définies.

Pour naviguer vers une route spécifique, vous utilisez la fonction navigate du NavController :

				
					
 navController.navigate("profile/$userId")

				
			

Gestion de la Pile de Navigation

La navigation Compose permet également de gérer la pile de navigation, comme revenir en arrière avec popBackStack() ou gérer les comportements de la pile d’écrans :

				
					
 navController.popBackStack()

				
			

Le code retourne le résultat suivant :

Interface avec bouton retour dans Jetpack Compose

Scaffold & Material Design: Cohérence UI

Introduction à Scaffold

Scaffold est un composant central de Jetpack Compose qui facilite la construction d’interfaces utilisateurs cohérentes en suivant les directives de Material Design . Il permet de gérer des éléments d’interface tels que la TopBar, le Drawer, le FloatingActionButton, et le Snackbar.

Mise en Place de Scaffold

Pour utiliser Scaffold, vous devez le configurer avec les éléments d’interface que vous souhaitez inclure, comme la barre du haut (TopBar), un tiroir de navigation (Drawer), et un bouton d’action flottant (FloatingActionButton).

				
					
 Scaffold(
topBar = { TopAppBar(title = { Text("Title") }) },
floatingActionButton = {
FloatingActionButton(onClick = { /* Action */ }) {
Icon(Icons.Filled.Add, contentDescription = "Add")        }    },
content = { innerPadding ->
// Contenu principal de l'écran    })

				
			

Le code retourne le résultat suivant :

Exemple d'interface Jetpack Compose

Gestion de l’État avec ScaffoldState

Scaffold fonctionne en tandem avec un ScaffoldState, qui est une variable d’état gérant la cohérence entre les différents éléments d’interface. Par exemple, pour gérer l’ouverture et la fermeture du Drawer, vous devez créer un ScaffoldState et un CoroutineScope pour manipuler

				
					
 val scaffoldState = rememberScaffoldState()
val coroutineScope = rememberCoroutineScope()
Scaffold(
scaffoldState = scaffoldState,
drawerContent = { /* Drawer content */ },
topBar = {
TopAppBar(
title = { Text("Title") },
navigationIcon = {
IconButton(onClick = {
coroutineScope.launch {
scaffoldState.drawerState.open()     }       }) {
Icon(Icons.Filled.Menu, contentDescription = "Menu")}}})

				
			

Le code retourne le résultat suivant :

Interface Jetpack Compose avec barre et bouton

Exemple d’Implémentation : Liste d’Articles

Voici un exemple complet d’utilisation de Scaffold dans une application affichant une liste d’articles avec une TopBar, un FloatingActionButton, et un Drawer.

				
					
 @Composable
fun ArticleListScreen(viewModel: ArticleViewModel) {
val articles by viewModel.articles.observeAsState(emptyList())
val scaffoldState = rememberScaffoldState()
val coroutineScope = rememberCoroutineScope()
Scaffold(
scaffoldState = scaffoldState,
topBar = {
TopAppBar(
title = { Text("Articles") },
navigationIcon = {
IconButton(onClick = {
coroutineScope.launch {
scaffoldState.drawerState.open()
}
}) {
Icon(Icons.Filled.Menu, contentDescription = "Menu")
}
}
)
},
floatingActionButton = {
FloatingActionButton(onClick = { /* Ajouter un article */ }) {
Icon(Icons.Filled.Add, contentDescription = "Add")
}
},
content = { padding ->
LazyColumn(contentPadding = padding) {
items(articles) { article ->
Text(text = article.title)
}            }
},
drawerContent = {
// Contenu du drawer        }
)
}

				
			

Le code retourne le résultat suivant :

Interface mobile avec liste d'articles

Voici l’explication du code

Élément
Description
Scaffold
Structure principale de l’interface qui gère la disposition des éléments tels que TopBar, FAB, et Drawer.
TopAppBar
Barre supérieure de l’application avec un titre « Articles » et une icône de navigation pour ouvrir le Drawer.
FloatingActionButton
Bouton d’action flottant permettant d’ajouter un nouvel article.
LazyColumn
Affiche la liste des articles récupérés du ViewModel dans une liste déroulante.

Conclusion sur Jetpack Compose Navigation

Dans cet eBook, nous avons exploré deux aspects essentiels de Jetpack Compose : la navigation avec NavHostController et la structure d’interface utilisateur avec Scaffold. En utilisant ces outils, vous pouvez construire des applications Android modernes et réactives, tout en suivant les directives de Material Design. Ces concepts, bien que simples en apparence, sont extrêmement puissants et permettent de créer des interfaces utilisateur robustes et flexibles.

Formez-vous gratuitement avec Alphorm !

Maîtrisez les compétences clés en IT grâce à nos formations gratuites et accélérez votre carrière dès aujourd'hui.

Démarrer gratuitement
illustration processus de paiement en ligne avec étapes claires et convivialité

FAQ

Comment configurer la navigation dans Jetpack Compose?
Pour configurer la navigation dans Jetpack Compose, commencez par ajouter la dépendance androidx.navigation:navigation-compose à votre fichier build.gradle. Ensuite, utilisez rememberNavController() pour créer un NavHostController. Définissez votre graphique de navigation avec NavHost, spécifiez les routes disponibles et les composables associés à chaque route. Cette configuration permet de gérer les transitions entre différents écrans de manière fluide et efficace.
Qu'est-ce que le NavHost Controller dans Jetpack Compose?
Le NavHost Controller est un composant central de la navigation dans Jetpack Compose. Il gère les routes et les transitions entre les écrans. Pour l’implémenter, il suffit de créer un NavHostController avec rememberNavController() et de définir un graphique de navigation avec NavHost. Ce graphique dicte les routes disponibles et leurs composables associés, facilitant ainsi la gestion de la navigation dans votre application.
Comment utiliser Scaffold dans Jetpack Compose?
Scaffold est un composant de Jetpack Compose qui facilite la création d’interfaces utilisateur cohérentes. Pour l’utiliser, configurez-le avec des éléments tels que TopBar, Drawer, et FloatingActionButton. Créez un ScaffoldState pour gérer l’état des éléments d’interface et un CoroutineScope pour manipuler ces états. Scaffold permet ainsi de structurer votre interface selon les directives de Material Design tout en assurant une expérience utilisateur fluide.
Quels sont les avantages d'utiliser Jetpack Compose pour la navigation?
Jetpack Compose offre une approche moderne et déclarative pour gérer la navigation dans les applications Android. Grâce à la bibliothèque navigation-compose, il est facile de définir des routes et de gérer les transitions entre les écrans. Les avantages incluent une intégration fluide avec l’architecture Compose, une gestion simplifiée des états de navigation et la possibilité d’utiliser des animations pour enrichir l’expérience utilisateur.
Comment gérer la pile de navigation avec Jetpack Compose?
La pile de navigation dans Jetpack Compose est gérée via le NavController. Vous pouvez revenir en arrière dans la pile d’écrans en utilisant navController.popBackStack(). Il est également possible de personnaliser le comportement de la pile, par exemple en empêchant l’utilisateur de retourner à un écran précédent. Cela permet une gestion centralisée et efficace des parcours utilisateur dans l’application.

Conclusion

En combinant NavHost Controller et Scaffold, Jetpack Compose offre des solutions puissantes pour développer des interfaces utilisateur modernes. Quelle prochaine fonctionnalité de Jetpack Compose souhaitez-vous explorer?

ÉTIQUETÉ : Android, Jetpack
Facebook
Twitter
LinkedIn
Email
WhatsApp
Par L'Équipe Alphorm
Démocratiser la Connaissance Informatique pour Tous !
Suivre :
L'Équipe Alphorm, c'est la démocratisation de la connaissance informatique. Passionnés et dévoués, nous sommes là pour vous guider vers le succès en rendant la technologie accessible à tous. Rejoignez notre aventure d'apprentissage et de partage. Avec nous, le savoir IT devient une ressource inspirante et ouverte à tous dans un monde numérique en constante évolution.

Derniers Articles

  • Techniques pour gérer les fichiers texte en C#
  • Créer et lire un fichier CSV avec C#
  • JSON : Comprendre et Utiliser Efficacement
  • Créer une Base SQLite dans C#
  • Lecture des données SQLite simplifiée
Laisser un commentaire Laisser un commentaire

Laisser un commentaire Annuler la réponse

Vous devez vous connecter pour publier un commentaire.

Blog Alphorm
  • Développement
  • 3D et Animation
  • Cybersécurité
  • Infrastructure
  • Virtualisation
  • Réseaux
  • Bureautique
  • BDD
En cours de lecture : Jetpack Compose: Navigation et Scaffold

© Alphorm - Tous droits réservés