Applications natives CHapitre I
Module: Applications web mobile natives
Code: MQ7
Chapitre I :Les concepts de base
Introduction
Le terme "Applications web, mobiles et natives" fait référence à différents types
d'applications selon la plateforme ciblée et la technologie utilisée pour leur développement.
I. les catégories d’application web mobile native :
1. Application Web
Définition :
Une application accessible via un navigateur web. Elle fonctionne sur n'importe quel appareil
(ordinateur, tablette, smartphone) sans installation.
Technologies :
HTML, CSS, JavaScript
Frameworks : [Link], Angular, [Link]
Avantages :
Un seul code pour tous les appareils
Pas besoin de passer par les stores (App Store, Play Store)
Mise à jour facile et centralisée
Inconvénients :
Accès limité aux fonctionnalités du téléphone (GPS, appareil photo, etc.)
Moins performante qu'une app native
Fonctionne mal sans connexion Internet (sauf si PWA)
2. Application Mobile Native
Définition :
Une application développée spécifiquement pour une plateforme mobile (iOS ou Android).
Technologies :
Android : Java, Kotlin
iOS : Swift, Objective-C
p. 1
Applications natives CHapitre I
Avantages :
Accès complet aux fonctionnalités du téléphone (Bluetooth, capteurs, caméra, etc.)
Meilleure performance et fluidité
Expérience utilisateur optimale
Inconvénients :
Développement séparé pour chaque plateforme (double coût, double maintenance)
Publication sur les stores avec validation
3. Application Mobile Hybride / Cross-platform
Parfois confondue avec "native", mais c’est différent.
Définition :
Une seule base de code pour plusieurs plateformes mobiles, avec rendu quasi natif.
Technologies :
Flutter (Dart)
React Native (JavaScript)
Xamarin (C#)
Avantages :
Un seul code pour iOS et Android
Accès à la plupart des fonctionnalités natives
Coût réduit par rapport au natif pur
Inconvénients :
Moins performant que le 100% natif dans certains cas
Bugs liés aux ponts entre le code natif et le code partagé
4. PWA – Progressive Web App
Un entre-deux entre une application web et une application mobile.
Avantages :
Fonctionne hors ligne (cache)
Peut être installée sur l’écran d’accueil
Pas besoin de store
Inconvénients
p. 2
Applications natives CHapitre I
Accès limité au matériel :
o Les PWA n’ont pas accès à toutes les API natives (Bluetooth, NFC, biométrie
avancée, capteurs précis, etc.), surtout sur iOS.
o Impossible d’exploiter certaines fonctionnalités matérielles disponibles dans
les apps natives.
Fonctionnalités réduites sur iOS (Safari) :
o Apple limite volontairement les PWA (pas de notifications push fiables avant
iOS 16.4, restrictions sur l’exécution en arrière-plan, stockage limité).
o Moins d’intégration avec l’écosystème Apple que les apps natives.
Performance inférieure aux apps natives :
o Bien que rapides, elles ne rivalisent pas toujours avec des applications natives
optimisées (surtout pour les jeux 3D, traitement intensif ou AR/VR).
Pas de présence complète dans les stores :
o Même si on peut publier une PWA sur certains stores (Google Play via un
wrapper), elles n’ont pas la même visibilité qu’une application native dans les
App Stores.
Support hors-ligne limité :
o Les PWA peuvent fonctionner offline grâce au service worker, mais ce n’est
pas aussi robuste qu’une application native (surtout avec des données lourdes
ou complexes).
Moins de confiance des utilisateurs :
o Beaucoup d’utilisateurs préfèrent télécharger une "vraie application" depuis un
store officiel, par habitude ou sécurité.
Fonctionnalités UX limitées :
o Pas toujours possible d’avoir la même fluidité et ergonomie que les
applications natives.
Moins de personnalisation système :
o Pas d’accès aux raccourcis système avancés, intégrations profondes (widgets
iOS/Android), ou interactions riches avec d’autres apps.
Moins de monétisation directe :
p. 3
Applications natives CHapitre I
o Les stores (Apple App Store, Google Play) intègrent nativement les paiements
in-app. Avec une PWA, il faut mettre en place son propre système de
paiement, ce qui peut limiter la confiance des utilisateurs.
Manque de marketing via les stores :
Les applications natives bénéficient de la visibilité et du référencement des App
Stores. Une PWA, hébergée comme un site web, dépend surtout du SEO et du partage
de liens.
Tableau récapitulatif entre les 04 catégories d’applications
Critère Web App App Natif App Hybride
Installation Non Oui Oui
Accès aux fonctionnalités Limité Complet Quasi complet
Performance Moyenne Excellente Bonne
Coût de développement Faible Élevé Moyen
Maintenance Facile Complexe Moyenne
p. 4
Applications natives CHapitre I
II.Définition du langage Kotlin
Kotlin est un langage de programmation moderne, statiquement typé, qui s’exécute sur la
machine virtuelle Java (JVM). Il est développé par JetBrains, la même entreprise qui a créé
IntelliJ IDEA.
II.1Caractéristiques principales :
Caractéristique Détail
🔤 Type Langage statiquement typé
⚙️Plateforme JVM, Android, JavaScript (Kotlin/JS), Natif (Kotlin/Native)
🏢 Créateur JetBrains
📅 Lancement initial 2011, avec version stable en 2016
🤝 Interopérabilité 100% compatible avec le code Java
🧠 Paradigmes Orienté objet et fonctionnel
[Link] et Android
Depuis 2017, Google a officiellement recommandé Kotlin pour le développement
Android.
Depuis 2019, Kotlin est le langage préféré pour Android, devant Java.
III.1 Avantages de Kotlin :
Concis : Moins de code qu’en Java pour faire la même chose
Sécurisé : Gestion stricte des nulls avec le système Nullable / Non-nullable
Lisible : Syntaxe claire et moderne
Interopérable avec Java : Tu peux utiliser des bibliothèques Java existantes
Coroutines intégrées : Pour une gestion simplifiée de l’asynchrone
III.2Exemple simple de code Kotlin :
fun main() {
val name = "Said"
println("Bonjour, $name !")
}
III.3Critères de choix de Kotlin
Choisir Kotlin comme langage de programmation dépend de plusieurs facteurs liés au projet,
à la plateforme cible, à l’équipe de développement et aux besoins techniques. Voici les
principaux critères à considérer pour décider si Kotlin est un bon choix pour ton projet :
1. Plateforme cible
p. 5
Applications natives CHapitre I
Android :
Kotlin est le langage recommandé par Google pour Android.
Meilleure productivité et moins de bugs que Java.
Accès aux coroutines pour la gestion de l’asynchrone.
Remarque le développement Android → Kotlin est clairement un excellent choix.
Backend :
Kotlin est compatible avec les frameworks Java : Spring Boot, Ktor, etc.
Utilisable pour créer des API REST, microservices, etc.
Remarque : Bon choix si tu veux un backend moderne mais rester dans l’écosystème Java.
Multiplateforme :
Kotlin Multiplatform permet de partager du code entre Android, iOS, Web, Desktop.
Encore en développement mais très prometteur.
Remarque : Utile si tu veux partager la logique métier sur plusieurs plateformes (ex : app
mobile + web).
2. Interopérabilité avec Java
Kotlin peut appeler du code Java et vice versa.
Idéal si tu as une base de code existante en Java et que tu veux moderniser
progressivement.
Remarque : Excellente transition pour les équipes Java vers un langage plus moderne.
3. Lisibilité et concision du code
Code plus clair, plus court, et plus facile à maintenir.
Moins de "boilerplate code" que Java (ex : getters/setters, findViewById, etc.)
Remarque : Moins de lignes = moins de bugs, meilleure maintenance.
4. Gestion des erreurs : null safety
Le système de null safety évite les erreurs courantes comme le NullPointerException
(le "cauchemar" en Java).
Tu déclares explicitement si une variable peut être null.
Remarque : Renforce la fiabilité et la robustesse du code.
p. 6
Applications natives CHapitre I
5. Support de la communauté et écosystème
Large adoption depuis que Google l’a adopté.
Très bon support JetBrains (éditeur officiel).
Beaucoup de ressources, de tutoriels, de bibliothèques compatibles.
Remarque : En constante évolution et soutenu par un bon écosystème.
6. Productivité développeur
Fonctionnalités modernes :
o Type inference
o Lambdas
o Extensions functions
o Coroutines pour l’asynchrone
Intégration native avec IntelliJ/Android Studio
remarque on développe plus vite, avec moins de code et une syntaxe plus élégante.
7. Maintenance et évolutivité
Code plus modulaire et clair
Facilite les tests unitaires et la modularisation
Moins de duplication
Remarque : Meilleur pour les projets à long terme ou en croissance rapide.
8. Apprentissage et montée en compétences
Syntaxe simple à apprendre si tu connais Java ou un autre langage orienté objet.
Beaucoup de ressources pédagogiques.
La communauté est active et accessible.
Remarqe : Bon choix pour les débutants comme pour les développeurs expérimentés.
III.3 Limites et scénarios défavorables à Kotlin
Situation Pourquoi Kotlin n’est pas idéal
Projet très spécifique à iOS Swift est plus adapté
Équipe uniquement formée à JavaScript/TypeScript Trop de courbe d’apprentissage
Besoin de très haute performance système (ex: OS, drivers) Langage natif plus approprié
Tu utilises un framework 100% incompatible avec Kotlin Risques de bugs ou limitations
p. 7
Applications natives CHapitre I
En résumé : Kotlin est un bon choix si...
Tu développes pour Android
Tu veux moderniser une app Java
Tu cherches un langage concis, sûr et moderne
Tu vises un projet multiplateforme (avec Kotlin Multiplatform)
Tu veux améliorer la productivité de ton équipe
p. 8
Applications natives CHapitre I
[Link]éparer l’environnement de travail Android Kotlin
IV.1Installation d’Android Studio (étape par étape, à jour 2025)
Android Studio est l’IDE officiel pour développer des applications Android (Java / Kotlin).
Voici comment l’installer proprement, quelle que soit ta plateforme.
IV.1.1 Prérequis
Système Version minimum recommandée
Windows Windows 10 / 11 (64 bits)
macOS macOS 12+
Linux Ubuntu 20.04+ ou équivalent
RAM 8 Go minimum (16 Go recommandé)
Stockage Environ 5 à 10 Go disponibles
Java Inclus avec Android Studio (pas besoin d’installer séparément)
IV.2 Étapes d’installation
🔽 1. Télécharger Android Studio
Va sur le site officiel :
[Link]
Clique sur "Download Android Studio"
Accepte les conditions
Télécharge le fichier adapté à ton système (Windows / macOS / Linux)
2. Installation (par système)
✅ Sous Windows :
1. Lance le fichier .exe téléchargé
2. Suis l’assistant d’installation
3. Laisse les options par défaut (Android Studio + SDK + AVD + Intel HAXM)
4. Une fois terminé, clique sur Finish
✅ Sous macOS :
p. 9
Applications natives CHapitre I
1. Ouvre le fichier .dmg
2. Glisse Android Studio dans le dossier Applications
3. Ouvre l'application (clic droit > Ouvrir si Gatekeeper bloque)
4. Suis les étapes de configuration
✅ Sous Linux :
1. Extrais l’archive .zip téléchargée
2. Ouvre un terminal et exécute :
3. cd android-studio/bin
4. ./[Link]
5. Suis les instructions de l’assistant
3. Premier lancement & configuration
1. Choisis un thème (clair ou sombre)
2. Laisse les options par défaut (y compris SDK et Virtual Device)
3. Clique sur Finish
4. Android Studio télécharge les composants nécessaires (ça peut prendre du temps)
4. Créer ton premier projet Android
1. Clique sur "New Project"
2. Choisis "Empty Activity"
3. Langage : choisis Kotlin
4. Configure ton application :
o Nom : ExempleApp
o Package name : [Link]
o Emplacement : ton choix
o Minimum SDK : API 21 ou plus (selon ton besoin)
5. Clique sur Finish
Android Studio va générer ton projet. Tu peux ensuite lancer l’émulateur pour tester.
IV.3 Facultatif : Créer un émulateur Android
1. Menu : Tools > Device Manager
p. 10
Applications natives CHapitre I
2. Clique sur Create Device
3. Choisis un appareil (ex : Pixel 6)
4. Choisis une image système (ex : Android 13 x86_64)
Lance l’émulateur via le bouton ▶
5. Clique sur Finish
6.
IV.4 Vérification rapide
Élément Doit être opérationnel
IDE Android Studio ✅ Ouvert sans erreur
SDK installé ✅ Dans "SDK Manager"
AVD (émulateur) fonctionnel ✅ Démarre et affiche Android
Création d’un projet Kotlin ✅ Compile et lance l’app "Hello"
p. 11
Applications natives CHapitre I
IV.5 Les paramètres essentiels d’Android Studio
1. Accéder aux paramètres
OS Accès aux paramètres Android Studio
Windows/Linux File → Settings (Ctrl + Alt + S)
macOS Android Studio → Preferences (Cmd + ,)
2. Paramètres les plus importants à configurer
A. Appearance & Behavior → Appearance
Theme : Light / Darcula (sombre recommandé)
Font size : Ajuste la taille selon ton confort visuel
UI Scaling : Pour les écrans haute résolution
B. Keymap
Change les raccourcis clavier selon ton habitude (Eclipse, VS Code, Mac, etc.)
C. Editor > General > Code Completion
Active l’auto complétion intelligente (très utile)
Vérifie que Show suggestions as you type est coché
D. Editor > Font
Police : JetBrains Mono (recommandée)
Taille : entre 13 et 16 pour un bon confort
E. Editor > Color Scheme
Syntaxe couleur selon thème (personnalisable)
Vérifie bien la lisibilité (ex. couleur des erreurs, des strings, etc.)
F. Editor > Code Style
Formateur de code automatique
Tu peux personnaliser les règles de style (indentation, espaces, etc.)
Bouton Set from > Predefined Style > Kotlin ou Java
p. 12
Applications natives CHapitre I
3. Project Structure / SDK / Build
A. File > Project Structure
✅ Project
Android Gradle Plugin Version : à jour (ex : 8.3+ en 2025)
Gradle Version : automatique recommandé
✅ SDK Location
SDK Path : Indique le chemin du SDK Android (souvent auto-configuré)
✅ Language Level
Kotlin & Java versions : adapte selon ton projet (Kotlin 1.9.x ou 2.x selon
disponibilité)
B. Build, Execution, Deployment
> Build Tools > Gradle
Gradle JDK : Choisis un JDK compatible (souvent JDK 17 recommandé)
Build and run using : Gradle
Run tests using : Gradle
> Instant Run (si présent) :
Pour déployer plus rapidement sans reconstruire l’appli
C. Deployment > Emulator / Device Manager
Configure les paramètres de l’émulateur Android (RAM, résolution, etc.)
Active ou non la GPU Emulation selon ton PC
🧪 D. Experimental
Fonctionnalités en cours de test, comme les nouveaux éditeurs ou previews d’UI
À activer si tu veux tester les nouveautés avant leur sortie stable
4. Plugins
Menu : Plugins
Tu peux installer des extensions comme :
o Kotlin Multiplatform
o Jetpack Compose UI Preview
o Material Theme UI
o ADB Idea (utilitaire pour gérer les APKs)
p. 13
Applications natives CHapitre I
o Firebase Assistant
5. Paramètres utiles pour l’optimisation
File > Invalidate Caches / Restart : Pour corriger des bugs de compilation ou lenteur
Memory Settings : Augmente la RAM allouée à Android Studio (Help > Change
Memory Settings)
Disable Unused Plugins : Allège l’IDE si tu ne fais pas de Flutter, C++, etc.
✅ Résumé : Paramètres prioritaires à ajuster
Catégorie Paramètres à ajuster
Interface Thème, taille de police, scaling
Éditeur Code completion, syntaxe, raccourcis clavier
SDK/Gradle Chemin SDK, version JDK, plugin Gradle
Emulateur Config des AVD (RAM, résolution, GPU)
Plugins Installer ceux utiles, désactiver ceux inutiles
Performances RAM allouée, désactivation des services non nécessaires
p. 14
Applications natives CHapitre I
IV.6 Définition de l’émulateur Android
Un émulateur Android (AVD - Android Virtual Device) est une simulation d’un appareil
Android sur ton ordinateur. Il te permet de tester ton application sans avoir besoin d’un
smartphone physique.
Étapes pour créer un émulateur Android dans Android Studio
✅ Étape 1 : Ouvrir le Device Manager
Android Studio > Barre d’outils >
Clique sur "Device Manager" (icône de téléphone)
ou
Menu : Tools > Device Manager
✅ Étape 2 : Créer un nouvel appareil virtuel (AVD)
Clique sur "Create Device"
Choisis un modèle d'appareil :
o 📱 Téléphones populaires : Pixel 6 / Pixel 8 (recommandé)
o 📱 Tablettes : Pixel C / Nexus 9
o 📺 Android TV ou 📟 Wear OS (facultatif)
Clique sur Next
✅ Étape 3 : Choisir l’image système Android
Choisis la version Android à émuler :
o API 34 (Android 14) ou plus récent
o x86_64 ou ARM64 selon ton processeur
Clique sur Download (si l’image n’est pas encore installée)
Une fois téléchargée, clique sur Next
Remarque : ℹ️x86_64 est plus rapide (émulation matérielle via Hypervisor).
Si tu as un Mac M1/M2/M3, préfère les images ARM64.
✅ Étape 4 : Configuration de l’émulateur
1. Donne un nom à ton émulateur (ex : Pixel_6_API_34)
2. Paramètres recommandés :
o Orientation : Portrait
o RAM : 2048 MB (ou plus selon ta machine)
o Graphics : Hardware - GLES 2.0
o Device Frame : coche ou décoche selon tes préférences
3. Clique sur Finish
✅ Étape 5 : Lancer l’émulateur
p. 15
Applications natives CHapitre I
1. Dans le Device Manager, clique sur ▶️"Run" à côté de ton émulateur.
2. L’émulateur démarre (ça peut prendre quelques secondes).
3. Une fois chargé, il simule un vrai téléphone Android.
Optimisations et astuces
Astuce Détail
🖥️Utiliser HAXM / Hypervisor Active la virtualisation dans ton BIOS pour plus de vitesse
📏 Redimensionner l’écran Tu peux ajuster la taille de la fenêtre de l’émulateur
🚀 Snapshot Permet un lancement plus rapide de l’émulateur
🌐 Connexion Internet L’émulateur simule une vraie connexion réseau
🔄 Rotation de l’écran Ctrl + ↑/↓ pour basculer en paysage ou portrait
Exemple d’un émulateur fonctionnel
Nom : Pixel_6_API_34
API Level : 34 (Android 14)
CPU/ABI : x86_64
RAM : 3 Go
Résolution : 1080 x 2340
GPU : OpenGL (émulation matérielle)
Gestion des exceptions
Problème Solution
Erreur "Intel HAXM not Active la virtualisation dans le BIOS + installe HAXM via
installed" SDK
L’émulateur ne démarre pas Redémarre Android Studio / PC + vérifie RAM disponible
Trop lent Baisse la résolution + alloue plus de RAM
Écran noir ou figé Essaie un autre image système (API ou ABI différent)
📱 Préparer un téléphone Android pour le développement
✅ 1. Activer les options pour les développeurs
p. 16
Applications natives CHapitre I
1. Ouvre l’application Paramètres (Settings)
2. Va dans À propos du téléphone (About phone)
3. Trouve le champ "Numéro de build" (Build number)
4. Tape 7 fois rapidement sur ce champ
→ Un message indique que tu es désormais un développeur
✅ 2. Activer le débogage USB
1. Retourne dans les Paramètres
2. Va dans Système > Options pour les développeurs (ou directement dans Options
développeur selon les modèles)
3. Active :
o ✅ "Débogage USB" (USB debugging)
o (optionnel) "Débogage sans fil" si tu veux tester sans câble
✅ 3. Connecter le téléphone à l’ordinateur
1. Branche ton téléphone avec un câble USB (préférablement d’origine)
2. Une boîte de dialogue s’affiche sur le téléphone :
o Accepte le message "Autoriser le débogage USB"
o Coche "Toujours autoriser depuis cet ordinateur" si souhaité
✅ 4. Configurer Android Studio
1. Ouvre Android Studio
2. Branche ton téléphone (s’il ne l’est pas déjà)
3. Android Studio détecte automatiquement l’appareil :
4. Clique sur ▶️Run pour lancer ton app sur le téléphone
o Tu le verras dans la barre de sélection des périphériques (en haut à droite)
✅5. Tester l’application sur le téléphone
Une fois le build terminé, l’application se lance automatiquement sur ton appareil
Tu peux interagir avec elle comme si elle venait du Play Store
Options utiles dans les options développeur
Option Utilité
Débogage USB Permet la communication avec Android Studio
Afficher emplacements de touches Montre les zones tactiles à l’écran (utile pour le debug UI)
Ne pas mettre en veille Garde l’écran actif pendant la charge (pratique en
p. 17
Applications natives CHapitre I
Option Utilité
développement)
Logger buffer size Utile pour les logs détaillés dans Logcat
Forcer le GPU Pour tester le rendu matériel
Problèmes fréquents et solutions
Problème Solution
📵 L’appareil ne s’affiche pas dans Active le débogage USB / Change le mode USB à
Android Studio "Transfert de fichiers"
Vérifie que l'app n’est pas déjà installée avec une
🔒 Message "app non installée"
signature différente
🔌 L’appareil se connecte/déconnecte
Change de câble USB ou de port
sans arrêt
🔒 L’écran reste noir L’app plante ? Vérifie Logcat dans Android Studio
Résumé
Étape Action
Activer dev. mode Taper 7 fois sur "Numéro de build"
Activer USB Debug Depuis les options développeur
Brancher le téléphone Via USB, accepter le débogage
Android Studio Détection automatique et lancement de l’app
p. 18
Applications natives CHapitre I
V. Gradle :
Gradle est un outil d’automatisation de construction (build system) utilisé par Android
Studio.
Il sert à compiler, assembler et gérer ton application Android écrite en Java ou Kotlin.
Rôles principaux de Gradle
1. Compilation du code → transforme ton code Kotlin/Java en bytecode utilisable par
Android.
2. Gestion des dépendances → télécharger automatiquement les librairies dont tu as
besoin (exemple : Retrofit, Room, etc.).
3. Configuration multi-modules → permet de séparer ton projet en plusieurs modules
(app, library, tests).
4. Automatisation des tâches → par exemple lancer les tests, générer des APK, signer
l’application.
5. Adaptabilité → tu peux personnaliser les scripts [Link] pour définir les SDK,
versions minimales Android, etc.
Localisation de Gradle dans Android Studio
[Link] (Project level) → gère la configuration globale du projet (version
de Gradle, repositories, plugins).
[Link] (Module: app) → gère la configuration spécifique de l’application
(SDK, dépendances, options de compilation).
Exemple simple (extrait d’un [Link])
plugins {
id '[Link]'
id '[Link]'
}
android {
compileSdk 34
defaultConfig {
applicationId "[Link]"
minSdk 24
targetSdk 34
versionCode 1
versionName "1.0"
}
}
dependencies {
implementation "[Link]:core-ktx:1.12.0"
implementation "[Link]:kotlin-stdlib:1.9.0"
}
Ici, Gradle gère la version de l’API Android, la version minimale supportée, et les
librairies Kotlin que ton projet utilise.
p. 19
Applications natives CHapitre I
Remarque : Gradle est le chef d’orchestre qui construit ton application Android en
Kotlin et gère ses dépendances.
Gradle dans Flutter
Flutter n’utilise pas directement Gradle pour tout le projet, mais :
Pour les apps Android Flutter, la partie Android du projet s’appuie sur Gradle.
Tu trouveras un dossier android/ dans chaque projet Flutter → c’est un projet
Android classique avec des fichiers [Link].
Flutter génère son code natif (Dart → code compilé) puis s’appuie sur Gradle pour
construire l’APK ou l’AAB.
Exemple : si tu ouvres android/app/[Link] dans un projet Flutter, tu verras les
mêmes configurations que dans un projet Android Kotlin/Java.
Différence clé
Projet Android natif → tout ton projet dépend directement de Gradle.
Projet Flutter → ton app est majoritairement en Dart, mais la partie Android dépend
de Gradle pour l’intégration et le packaging final.
Donc : Gradle existe aussi dans Flutter (côté Android), mais il n’est pas au cœur de
Flutter comme il l’est pour Android natif.
p. 20
Applications natives CHapitre I
VI.Définition d’un plugin en Android/Kotlin
Un plugin est un module complémentaire qui étend les fonctionnalités de Gradle (le système de
build Android).
alors un plugin dit à Gradle comment construire ton projet, ajouter des outils, ou gérer des langages
(comme Kotlin).
Plugins importants dans Android + Kotlin
Dans un fichier [Link] (ou [Link] si tu utilises Kotlin DSL), on déclare
des plugins avec :
plugins {
id("[Link]") version "8.3.0" // Plugin Android
id("[Link]") version "1.9.0" // Plugin Kotlin
pour Android
}
1. [Link]
Sert à construire une application Android.
Définit les tâches de compilation, packaging, signature APK/AAB, etc.
2. [Link]
Sert à créer une librairie Android réutilisable (au lieu d’une app complète).
3. [Link]
Ajoute le support de Kotlin dans Android Studio.
Permet de compiler du code Kotlin avec Gradle.
4. Autres plugins utiles :
kotlin-kapt → pour utiliser l’annotation processing (ex. Room, Dagger).
kotlin-serialization → pour la sérialisation JSON en Kotlin.
[Link]-services → pour intégrer Firebase.
[Link] → pour Hilt (injection de dépendances).
Exemple complet dans un projet Android/Kotlin
plugins {
id("[Link]")
id("[Link]")
id("kotlin-kapt") // annotation processing
id("kotlin-serialization") // JSON avec Kotlin
id("[Link]-services") // Firebase
}
En résumé :
Les plugins Kotlin Android sont des extensions qui indiquent à Gradle comment gérer
Kotlin, Android et d’autres bibliothèques dans ton projet.
Sans eux, ton code Kotlin ne pourrait pas être compilé ni intégré dans une app Android.
p. 21
Applications natives CHapitre I
VII Définition de SDK
SDK = Software Development Kit (Kit de développement logiciel).
👉 C’est un ensemble d’outils, de bibliothèques, de documentation et d’exemples de code
mis à disposition par un éditeur pour aider les développeurs à créer des applications pour une
plateforme spécifique.
Dans le contexte Android
Le Android SDK contient tout ce dont tu as besoin pour développer une application
Android :
Les APIs Android (fonctions prêtes à l’emploi pour accéder aux capteurs, caméra,
GPS, etc.).
Les outils de compilation (transformer ton code Kotlin/Java en application Android).
L’émulateur Android (pour tester sans téléphone physique).
La documentation et exemples de code.
Remarque : Concrètement, quand tu installes Android Studio, tu installes aussi
l’Android SDK (ou tu le télécharges séparément via le SDK Manager).
🔹 Exemples d’autres SDK
Java SDK (JDK) → pour développer en Java.
Firebase SDK → pour intégrer l’authentification, la base de données et les
notifications dans Android/iOS.
Facebook SDK → pour ajouter un login Facebook dans ton app.
Remarque :
Un SDK est comme une boîte à outils complète qui fournit aux développeurs tout ce qu’il
faut pour créer, compiler et tester une application sur une plateforme donnée.
p. 22
Applications natives CHapitre I
VIII. Définition de JDK
JDK = Java Development Kit (Kit de développement Java).
C’est l’ensemble des outils nécessaires pour développer et exécuter des applications Java.
Contenu du JDK
Le JDK inclut :
1. JRE (Java Runtime Environment) → permet d’exécuter les programmes Java.
2. Compilateur javac → transforme le code source Java (.java) en bytecode (.class).
3. Outils de développement → débogueur (jdb), générateur de documentation
(javadoc), etc.
4. Bibliothèques de base Java → API standard (collections, I/O, réseau, etc.).
Différence entre JDK, JRE et JVM
JVM (Java Virtual Machine) → exécute le bytecode Java.
JRE (Java Runtime Environment) → contient la JVM + bibliothèques de base →
permet seulement d’exécuter une app Java.
JDK (Java Development Kit) → contient le JRE + outils de développement →
permet de développer + exécuter.
Donc si tu veux juste lancer un programme Java, le JRE suffit.
Par contre si tu veux développer, il te faut le JDK.
JDK et Android/Kotlin
Android ne s’exécute pas directement sur la JVM classique, mais sur la Dalvik/ART
(adaptation pour mobile).
Cependant, Android Studio et Kotlin ont besoin du JDK pour compiler et
transformer ton code avant que Gradle ne le prenne en charge.
🔹 Exemple pratique
Quand tu tapes :
javac [Link]
java HelloWorld
javac (du JDK) compile → crée un fichier .class.
java (du JRE) exécute le bytecode via la JVM.
En résumé :
Le JDK est le kit complet pour programmer en Java. Il inclut le JRE et tous les outils
nécessaires pour écrire, compiler et exécuter ton code.
p. 23
Applications natives CHapitre I
Tableau Comparatif JDK vs JRE vs JVM
JVM (Java Virtual JRE (Java Runtime
Élément JDK (Java Development Kit)
Machine) Environment)
Fournir un environnement
Rôle Exécuter le bytecode Développer et exécuter des
pour exécuter des
principal Java programmes Java
programmes Java
Interpréteur de
JVM + bibliothèques de base JRE + outils de développement
Contient bytecode, gestion
Java (compilateur, débogueur, etc.)
mémoire (GC)
Seulement exécuter le
Lancer des programmes Java Écrire, compiler et exécuter des
Utilisation code déjà compilé
déjà écrits programmes Java
(.class)
Inclut la
✅ ✅ ✅
JVM ?
Inclut le JRE
❌ ✅ ✅
?
Compilateur (javac), débogueur
Aucun outil de dev, Bibliothèques standards (I/O,
Outils inclus (jdb), générateur de doc
juste l’exécution collections, etc.)
(javadoc), etc.
Utilisateurs finaux qui veulent Développeurs Java (et
Public visé Utilisateurs finaux
exécuter des programmes Android/Kotlin)
Résumé :
JVM → exécute.
JRE → exécute avec bibliothèques de base.
JDK → développe + exécute.
p. 24