Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3084 connectés 

  FORUM HardWare.fr
  Programmation
  Langages fonctionnels

  Mes débuts en kotlin (android)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Mes débuts en kotlin (android)

n°2506969
Lt Ripley
T'es à fond là ?
Posté le 23-09-2025 à 18:13:49  profilanswer
 

Bonjour à tous

 

Je veux me faire une petite app pour récup sur google places les horaires de mes magasins préférés et les afficher en 1 clic

 

Je me suis dit "ok gros, passe à Kotlin" (j'ai fait par le passé 3 mini apps android en Java + XML + des trucs en java et python sur pc et du c++ sur arduino)

 

Donc j'ai créé le projet avec le dernier android studio, et ça m'a activé Compose directement.  OK.

 

MAIS PUTAIN JE MORFLE, je capte plus rien, malgré 2 cours sur openclassrooms (kotlin + créez votre app) , est ce que vous pouvez par exemple m'expliquer comment fonctionne ma classe main (ça compile et ça fonctionne [:panzani gino] ) à la ligne 7 :  "{ innerPadding ->"    c'est quoi ça ??

 
Code :
  1. class MainActivity : ComponentActivity() {
  2.    override fun onCreate(savedInstanceState: Bundle?) {
  3.        super.onCreate(savedInstanceState)
  4.        enableEdgeToEdge()
  5.        setContent {
  6.            HoursTheme {
  7.                Scaffold(modifier = Modifier.fillMaxSize()) { innerPadding ->
  8.                    Column(modifier = Modifier.padding(innerPadding)) {
  9.                        var podcast = Podcast("Podcast de Harvey", false)
  10.                        FavoritePodcast(
  11.                            podcast,
  12.                            onFavoriteClick = { clickedPodcast ->
  13.                                // Cette fonction sera appelée au clic sur le cœur
  14.                                println("Clic sur le podcast: ${clickedPodcast.title}" )
  15.                                // Ici tu géreras la logique des favoris
  16.                            }
  17.                        )
  18.                    }
  19.                }
  20.            }
  21.        }
  22.    }
  23. }
 
Code :
  1. @Composable
  2. fun FavoritePodcast(podcast: Podcast, onFavoriteClick: (Podcast) -> Unit) {
  3.    Row(
  4.        //modifier = Modifier.fillMaxWidth().padding(30.dp),
  5.        verticalAlignment = Alignment.CenterVertically
  6.    ) {
  7.        Text(
  8.            text = podcast.title,
  9.            modifier = Modifier.weight(1f)
  10.        )
  11.        IconButton(onClick = { onFavoriteClick(podcast) }) {
  12.            Icon(
  13.                imageVector = if (podcast.isFavorite) Icons.Default.Favorite else Icons.Default.FavoriteBorder,
  14.                contentDescription = if (podcast.isFavorite) "Remove from favorites" else "Add to favorites"
  15.            )
  16.        }
  17.    }
  18. }
 
Code :
  1. data class Podcast(val title: String, var isFavorite: Boolean)
 

Merci pour votre aide


Message édité par Lt Ripley le 23-09-2025 à 19:28:21

---------------
Mes apps  |  Viens coder  |  Mon topal de vente
mood
Publicité
Posté le 23-09-2025 à 18:13:49  profilanswer
 

n°2506975
mechkurt
Posté le 23-09-2025 à 20:27:51  profilanswer
 

Citation :

Parfait, je vais te l’expliquer comme si tu découvrais ce langage (ici c’est Kotlin utilisé pour programmer des applis Android).


 
Contexte rapide
 
Android : c’est le système d’exploitation des téléphones (comme iOS pour Apple).
 
Kotlin : un langage de programmation qu’on utilise beaucoup pour faire des applis Android modernes.
 
Jetpack Compose : une façon récente de décrire l’interface (ce que l’utilisateur voit) directement avec du code.
 
Ton code, expliqué pas à pas
 

Code :
  1. class MainActivity : ComponentActivity() {


Ici on définit la page principale de l’application.
Une Activity = un écran de l’appli (comme une fenêtre).
 

Code :
  1. override fun onCreate(savedInstanceState: Bundle?) {
  2. super.onCreate(savedInstanceState)


Quand Android démarre cette page, il appelle automatiquement une fonction spéciale onCreate.
C’est le point d’entrée où tu décides ce que ton écran va afficher.

Code :
  1. super.onCreate

= on garde le comportement normal d’Android avant d’ajouter le nôtre.
 

Code :
  1. enableEdgeToEdge()


Commande pour dire : « le contenu peut s’afficher derrière la barre du haut ou du bas du téléphone » (c’est esthétique).
 

Code :
  1. setContent {


On dit : « maintenant, je vais décrire toute l’interface de mon écran ».
Tout ce qui est écrit entre

Code :
  1. { ... }

sera ce que l’utilisateur verra.
 

Code :
  1. HoursTheme {


On applique un thème visuel (couleurs, typographie).
 

Code :
  1. Scaffold(modifier = Modifier.fillMaxSize()) { innerPadding ->


Code :
  1. Scaffold

est une sorte de cadre prêt à l’emploi pour construire un écran.
Il gère déjà des choses comme les marges, la taille de l’écran, etc.
 

Code :
  1. fillMaxSize()

= prend tout l’espace disponible.
 

Code :
  1. innerPadding

= marges automatiques (pour éviter que ton contenu passe sous la barre du haut par exemple).
 

Code :
  1. Column(modifier = Modifier.padding(innerPadding)) {


Code :
  1. Column

veut dire : « j’empile les éléments les uns sous les autres ».
Avec

Code :
  1. padding(innerPadding)

, on ajoute de la marge pour ne pas coller aux bords.
 

Code :
  1. var podcast = Podcast("Podcast de Harvey", false)


On crée un objet représentant un podcast.
 
Titre : "Podcast de Harvey"
 

Code :
  1. false

: il n’est pas encore marqué comme favori.
 

Code :
  1. FavoritePodcast(
  2. podcast,
  3. onFavoriteClick = { clickedPodcast ->
  4. println("Clic sur le podcast: ${clickedPodcast.title}" )
  5. // Ici tu géreras la logique des favoris
  6. }
  7. )


On affiche un bloc visuel (probablement une carte ou un bouton) qui représente ce podcast.
 

Code :
  1. onFavoriteClick = { ... }

: ce qui se passe quand l’utilisateur clique sur le cœur.
 
Pour l’instant, ça affiche juste dans la console :

Code :
  1. Clic sur le podcast: Podcast de Harvey


 
C’est l’endroit prévu pour coder la logique des favoris (ex : l’ajouter à une liste).
 
En résumé
Ce code dit à Android :
 
Crée une page appelée

Code :
  1. MainActivity

.
 
Quand elle démarre, affiche une interface avec un thème.
 
Mets une colonne qui contient un podcast.
 
Montre ce podcast avec un cœur (favori).
 
Quand on clique sur le cœur, écris un message dans la console.


Message édité par mechkurt le 23-09-2025 à 20:30:53

---------------
D3
n°2506982
Lt Ripley
T'es à fond là ?
Posté le 24-09-2025 à 06:48:54  profilanswer
 

Super, merci !


---------------
Mes apps  |  Viens coder  |  Mon topal de vente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Langages fonctionnels

  Mes débuts en kotlin (android)

 

Sujets relatifs
Solution pour Erreur "Some Kotlin Libraries Attached to this Project""appli" Java/C pour Android 4 / API level 16 (abandonné)
Créer une appli android de sondage et publier les résultats[Android 6] L'OS me dit 'app not found' malgré l'installation réussie
Android java quelle application tourne au premier plan ?Android/ios permettent ils autant qu'un pc ?
Débuts avec une bibliothèque graphique (sans Eclipse)[kotlin] Passer un lambda via NavController.navigate
[noob] Les évènement type onXXX n'est pas détecté sur Android ?Python Request et Android HttpURLConnection équivalent
Plus de sujets relatifs à : Mes débuts en kotlin (android)


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)