Mise en route Création d'applications Android avec Kotlin
Jusqu'en 2017, le développement d'applications Android nécessitait l'utilisation de la syntaxe du langage Java. Android Studio 3.0 a ajouté Kotlin comme alternative linguistique pleinement prise en charge. Kotlin est un langage statiquement typé qui est totalement interopérable avec la syntaxe de langage Java existante et le runtime utilisé avec Android. Considéré comme expressif et concis, il apporte des améliorations, notamment une verbosité linguistique réduite, la sécurité du pointeur nul, des fonctions d’extension et la notation infixe.Depuis Android Studio 3.0, Kotlin est un langage de développement Android officiellement pris en charge. Cependant, au moment de la rédaction de ce livre, Java était toujours la valeur par défaut pour les nouveaux projets et la plupart des projets Android existants étaient encore écrits principalement avec la syntaxe Java. Il est également très facile de convertir la syntaxe Java en Kotlin, simplement en la collant dans un fichier source Kotlin. En conséquence, nous avons utilisé la syntaxe Java dans les extraits de code et les exemples de projets présentés. Compte tenu des avantages de Kotlin en termes d'amélioration du temps de développement et de la lisibilité du code, nous nous attendons à une augmentation rapide de la proportion d'applications écrites principalement en Kotlin. Nous vous recommandons vivement de vous familiariser avec le langage Kotlin pour l'écriture d'applications Android. Pour vous aider, chacun des extraits de code et des exemples de projets sont également disponibles dans Kotlin, téléchargeables à partir du site Wrox à côté des versions de la syntaxe Java.Vos projets Android peuvent être écrits de toutes pièces dans Kotlin, peuvent inclure des fichiers sources Kotlin et Java interopérables, ou peuvent être convertis à partir de fichiers sources Java en Kotlin pendant le développement.
Pour commencer un nouveau projet dans Kotlin, sélectionnez l’option de menu Fichier - Nouveau Nouveau projet…, cochez la case «Inclure le support Kotlin» dans la première page de l’Assistant, comme illustré à la Figure 2-4. 18
Suivez les étapes de l'assistant comme décrit dans la section précédente. Une fois terminé, examinez le code source Kotlin de votre activité dans le fichier MainActivity.kt. Les fichiers Kotlin sont stockés à côté des fichiers source Java et se trouvent dans le dossier Java lorsque vous utilisez la vue de projet Android:
package com.professionalandroid.apps.myapplication
import android.support.v7.app.AppCompatActivity import android.os.Bundle class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) setContentView(R.layout.activity_main)
}
}
Notez que si le code est un peu plus concis, les modifications syntaxiques sont minimes à ce stade. Les instructions de package et d'importation sont identiques, la classe MainActivity étend toujours AppCompatActivity et le remplacement de la méthode onCreate reste identique.
Pour ajouter un nouveau fichier Kotlin à votre projet, sélectionnez Kotlin dans la liste déroulante Langue source lors de l'ajout d'un nouveau composant d'application dans le menu Fichier - Nouveau. Vous pouvez également sélectionner l'élément de menu Fichier - Nouveau Kotlin Fichier / Classe pour créer un fichier de base. Les fichiers Kotlin et Java pouvant coexister dans le même projet, il est possible d’ajouter des fichiers source Kotlin à un projet que vous avez démarré sans cocher la case Prise en charge du support Kotlin ou d’ajouter des fichiers source Java à un projet démarré avec le support Kotlin.
Il est également possible de convertir des fichiers sources de syntaxe Java existants en Kotlin. Vous pouvez le faire en ouvrant un fichier source Java existant et en sélectionnant l'élément de menu Code - Convertir un fichier Java en fichier Kotlin. Vous pouvez également créer un nouveau fichier Kotlin et y coller le code source de la syntaxe Java. Vous serez invité à convertir le code collé en Kotlin, comme illustré à la Figure 2-19.
Notez que ces conversions automatiques ne peuvent pas toujours utiliser Kotlin idiomatique, de sorte que le code résultant peut ne pas utiliser les meilleures fonctionnalités de langage de Kotlin.
Utilisation du package de la bibliothèque de support Android
Le package de la bibliothèque de support Android (également appelé bibliothèque de compatibilité ou AppCompat) est un ensemble de bibliothèques que vous pouvez inclure dans vos projets, pour obtenir des API pratiques qui ne sont pas fournies dans le cadre de la structure (telles que View. Pager) ou des API utiles qui ne sont pas disponibles sur toutes les versions de la plate-forme (telles que Fragments).La bibliothèque de support vous permet d'utiliser les fonctionnalités de l'API de structure introduites dans les dernières versions de la plateforme Android sur des appareils exécutant des versions antérieures de la plateforme. Cela vous aide à fournir une expérience utilisateur cohérente et simplifie grandement votre processus de développement.
Remarque
Il est recommandé d’utiliser la bibliothèque de support plutôt que les API de structure lorsque vous souhaitez prendre en charge des périphériques exécutant des versions de plate-forme antérieures et que la bibliothèque de support offre toutes les fonctionnalités dont vous avez besoin.En conséquence, les exemples de ce livre cibleront Android 8.1 (API de niveau 27) et utiliseront les API de la bibliothèque de support, le cas échéant, plutôt que la structure, tout en mettant en évidence des zones spécifiques pour lesquelles la bibliothèque de support ne constitue peut-être pas une alternative appropriée.
Le package de la bibliothèque de support Android contient plusieurs bibliothèques individuelles, chacune d'entre elles prenant en charge une gamme spécifique de versions et de fonctionnalités de la plateforme Android.Nous allons introduire de nouvelles bibliothèques comme requis dans les chapitres suivants. Pour commencer, il est judicieux d’inclure la bibliothèque v7 appcompat dans tous les nouveaux projets, car elle prend en charge un grand nombre de versions d’Android (retour à Android 2.3 Gingerbread (API de niveau 9)) et fournit des API pour de nombreux modèles d’interface utilisateur recommandés. Les modèles d'application fournis par Android Studio, y compris l'exemple Hello World que nous avons créé précédemment, incluent par défaut une dépendance à la bibliothèque v7 appcompat. Pour incorporer un package Android Support Library à votre projet, procédez comme suit:
1. Utilisez le SDK Manager pour vous assurer que vous avez téléchargé le référentiel de support Android.
2. Ajoutez une dépendance à votre construction Gradle pour la bibliothèque souhaitée, soit par:
2.1 Ouvrir votre module: le fichier build.gradle de l'application et ajouter une référence au nom de la bibliothèque et à la version que vous souhaitez inclure, dans le nœud de dépendance:
dépendances { [... Dépendances existantes ...] implémentation 'com.android.support:appcompat-v7:27.1.1'}
2.2 Ou en utilisant l'interface utilisateur de la structure de projet d'Android Studio, comme illustré à la Figure 2-20. Sélectionnez l'élément de menu Fichier - Structure du projet ..., puis sélectionnez votre module d'application dans la liste de gauche avant de choisir l'onglet Dépendances. Ajoutez une nouvelle bibliothèque en sélectionnant le symbole vert «plus» dans la barre d’outils de droite et en sélectionnant la bibliothèque souhaitée.
Notez que nous ajoutons une dépendance à une version spécifique de la bibliothèque de support. Par sa conception, le package de la bibliothèque de support Android sera mis à jour plus régulièrement que le SDK Android. En téléchargeant les nouvelles versions des bibliothèques de support et en mettant à jour vos dépendances pour faire référence aux dernières versions, vous pouvez continuer à intégrer des corrections de bugs et des améliorations à votre application à mesure de la mise à jour des bibliothèques de support.
Remarque
Les classes de la bibliothèque de support reflètent les noms de leurs homologues de structure. Dans la plupart des cas, la classe Support Library est postfixée avec compat (par exemple, NotificationCompat); Cependant, certaines classes précédentes de la bibliothèque de support utilisent les mêmes noms que leurs équivalents de structure. En conséquence, il existe un risque important que les outils de complétion de code et de gestion automatique des importations d’Android Studio (et d’autres IDE) sélectionnent la mauvaise bibliothèque, en particulier lorsque vous utilisez une version plus récente du SDK.Il est recommandé de définir la cible de génération de votre projet sur la version de plate-forme minimale que vous envisagez de prendre en charge et de vous assurer que les instructions d'importation utilisent la bibliothèque de compatibilité pour les classes qui existent également dans l'infrastructure cible.