Java vs Kotlin Devriez-vous utiliser Kotlin pour le développement Android?

Quand on pense au développement Android, il y a de fortes chances qu'un langage de programmation vienne immédiatement à l'esprit: Java.

Il est vrai que la majorité des applications Android sont écrites en Java, mais en matière de développement Android, Java n’est pas votre seulement option.

Vous pouvez écrire des applications Android dans n'importe quelle langue pouvant être compilées et exécutées sur la machine virtuelle Java (JVM), sans que vos utilisateurs finaux en soient avertis. Et un langage de programmation compatible JVM qui a vraiment attiré l'attention de la communauté Android est Kotlin, un langage de programmation à typage statique de JetBrains..

Si vous avez entendu parler de Kotlin et que vous souhaitez l'essayer vous-même, vous êtes au bon endroit. Dans cette série en trois parties, je vais partager tout ce que vous devez savoir pour commencer à utiliser Kotlin pour le développement Android..

Dans cette première partie, je vais expliquer pourquoi, en tant que développeur Android, vous voudrez peut-être envisager de passer de Java à l’origine, puis nous examinerons les avantages et les inconvénients de la sélection de Kotlin comme solution de remplacement pour Java. À la fin de cet article, vous saurez exactement ce que Kotlin a à offrir et saurez si cela vous convient. 

Dans la deuxième partie, nous verrons comment configurer votre installation Android Studio pour prendre en charge Kotlin et créer une application Android simple entièrement écrite en Kotlin. Une fois ces bases en place, nous examinerons dans la troisième partie comment renforcer votre développement Android à l'aide de fonctionnalités plus avancées du langage Kotlin..

Pourquoi devrais-je faire le passage de Java?

Bien que Java soit l’un des langages de programmation les plus utilisés dans le monde et qu’il soit pratiquement le langage officiel du développement Android, il existe de nombreuses raisons pour lesquelles Java pourrait ne pas toujours être la meilleure option pour vos projets Android.

Le plus gros problème est que Java n’est pas un langage moderne, et bien que Java 8 soit un énorme pas en avant pour la plate-forme, en introduisant de nombreuses fonctionnalités attendues par les développeurs (y compris les fonctions lambda), au moment de la rédaction de cet écran, Android ne prend en charge que un sous-ensemble de fonctionnalités Java 8. Il semble peu probable que les développeurs Android récoltent bientôt tous les avantages de Java 8. Par conséquent, si vous souhaitez utiliser Java dans vos projets Android, dans un avenir prévisible, vous êtes pratiquement bloqué dans Java 7..

Java dans son ensemble présente également des problèmes de langage assez bien documentés, notamment des problèmes sans fin. essayer-capture blocs, un manque d'extensibilité, null-unsafety (et que infâme NullPointerException), sans parler du manque de prise en charge des fonctionnalités de programmation fonctionnelles. Bien que Java commence à ajouter certains éléments de programmation fonctionnels, tels que les expressions lambda et les interfaces fonctionnelles, Java est toujours un langage procédural. La syntaxe de Java est également assez verbeuse, particulièrement comparée à de nombreux langages de programmation modernes.

Avantages de Kotlin

Par conséquent, vous voudrez peut-être envisager de passer à l’un des nombreux langages de programmation modernes conçus pour fonctionner sur la machine virtuelle Java. Bien que les langages compilant le bytecode Java ne manquent pas, quelques facteurs permettent à Kotlin de se démarquer de la foule:

Interchangeabilité avec Java

L'une des plus grandes forces de Kotlin en tant qu'alternative potentielle à Java est le niveau élevé d'interopérabilité entre Java et Kotlin. Vous pouvez même avoir le code Java et Kotlin existant côte à côte dans le même projet et tout se compilera parfaitement. Ci-dessous, vous pouvez voir un exemple de projet constitué d’un projet Java. Activité et une activité Kotlin.


En fait, une fois que votre projet mixte Kotlin et Java est compilé, les utilisateurs ne peuvent pas dire quelles parties de votre projet sont écrites en Java et quelles parties sont écrites en Kotlin..

Étant donné que les classes Kotlin et Java peuvent coexister dans le même projet, vous pouvez commencer à utiliser Kotlin sans avoir à faire quoi que ce soit, comme convertir un projet entier en Kotlin ou démarrer un nouveau projet spécifiquement pour pouvoir vous essayer à Kotlin.. 

Grâce à ce niveau d'interopérabilité, si vous travaillez déjà sur un projet, vous pouvez tester Kotlin dans une petite partie de ce projet sans affecter le reste de votre base de code. Et, si vous décidez de continuer à utiliser Kotlin, vous pouvez soit migrer le code Java existant de votre projet dans Kotlin, un fichier à la fois, soit laisser le code Java hérité de votre projet intact et utiliser uniquement Kotlin pour les nouvelles classes et fonctionnalités..

Puisque Kotlin est complètement interopérable avec Java, vous pourrez également utiliser la majorité des bibliothèques et des infrastructures Java de vos projets Kotlin, même des infrastructures avancées qui reposent sur le traitement des annotations..

Courbe d'apprentissage facile

Kotlin a pour objectif d’être une amélioration de Java, et non une réécriture complète. Par conséquent, bon nombre des compétences que vous avez acquises et perfectionnées tout au long de votre carrière Java devraient toujours être applicables à vos projets Kotlin..

Kotlin est également conçu pour offrir aux développeurs Java une courbe d'apprentissage douce. Les développeurs Java devraient constater que la plupart de la syntaxe Kotlin semble familière. par exemple, le code utilisé pour créer une nouvelle classe à Kotlin est très similaire à Java:

class MainActivity: AppCompatActivity () 

Kotlin est également conçu pour être intuitif et facile à lire, donc même si vous faire Si vous rencontrez du code radicalement différent, vous devriez toujours être en mesure d’obtenir l’essentiel de ce que fait ce code..  

Combinez le meilleur de la programmation fonctionnelle et procédurale

Il existe actuellement un certain nombre de paradigmes de programmation qui sont largement utilisés, mais pour ce qui est de la question de savoir quelle approche est la meilleure, la réponse n’est pas simple. Chaque paradigme de programmation a son propre ensemble de forces et de faiblesses. Ainsi, si les scénarios où la programmation fonctionnelle présente un avantage ne manquent pas, il existe également de nombreux problèmes pour lesquels une approche procédurale est plus efficace..

Alors, pourquoi devriez-vous choisir entre fonctionnel et procédural? Comme de nombreux langages de programmation modernes, Kotlin a pour objectif de vous offrir le meilleur des deux mondes en combinant des concepts et des éléments de programmation procédurale et fonctionnelle..

Support Android Studio de première classe

Kotlin est développé par JetBrains, la société à l'origine d'IntelliJ, l'EDI sur lequel est basé Android Studio. Il n’est donc pas surprenant que Android Studio offre un excellent support pour Kotlin. Une fois que vous avez installé le plugin Kotlin, Android Studio simplifie la configuration de Kotlin dans votre projet en ouvrant quelques menus.. 


Une fois que vous avez configuré le plugin Kotlin pour Android Studio, votre IDE n'aura aucun problème à comprendre, compiler et exécuter du code Kotlin. Android Studio fournit également des fonctions de débogage, de complétion automatique, de navigation de code, de test unitaire et de refactoring complet pour Kotlin..

Une fois votre projet Android Studio configuré pour prendre en charge Kotlin, vous pourrez même convertir un fichier source Java complet en un fichier Kotlin, en quelques clics de souris..

Code plus concis

Si vous comparez une classe Java et une classe Kotlin qui produisent les mêmes résultats, celle écrite en Kotlin sera généralement beaucoup plus succincte et compacte que celle écrite en Java. Et comme tous les développeurs le savent, moins de code signifie moins de bugs!

Par exemple, le code Java suivant crée une activité consistant en un bouton d'action flottante (FAB) qui, lorsque vous appuyez dessus, affiche une barre contenant le message utile. Ceci est un snack.

Classe publique MainActivity étend AppCompatActivity @Override protected void onCreate (Bundle savedInstanceState) super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); Barre d'outils barre d'outils = (Barre d'outils) findViewById (R.id.toolbar); setSupportActionBar (barre d'outils); FloatingActionButton myfab = (FloatingActionButton) findViewById (R.id.myfab); myfab.setOnClickListener (new View.OnClickListener () @Override public void onClick (Vue vue) Snackbar.make (voir, "Ceci est un snackbar", Snackbar.LENGTH_LONG) .setAction ("Action", null) .show ( ););  

L’équivalent Kotlin réalise le même travail avec moins de code, en particulier lorsqu’il s’agit de créer le FAB et de définir le onClickListener:

class MainActivity: AppCompatActivity () remplace le plaisir onCreate (savedInstanceState: Bundle?) super.onCreate (savedInstanceState) setContentView (R.layout.activity_main) val toolbar = findViewById (R.id.toolbar) en tant que Toolbar setSupportActionBar (barre) = findViewById (R.id.myfab) en tant que FloatingActionButton myfab.setOnClickListener view -> Snackbar.make (vue, "Ceci est un snackbar", Snackbar.LENGTH_LONG) .setAction ("Action", null) .show ()  

Les deux extraits de code ont exactement la même sortie:


Kotlin est particulièrement efficace pour réduire la quantité de code passe-partout que vous devez écrire, ce qui devrait rendre le codage dans Kotlin une expérience beaucoup plus agréable, comparé au codage dans des langages plus verbeux tels que Java.. 

En particulier, les extensions Android de Kotlin (que nous allons explorer dans la deuxième partie) vous permettent d’importer la référence à une vue dans un fichier d’activité afin que vous puissiez ensuite utiliser cette vue comme si elle faisait partie de cette activité. Cela signifie que vous n'avez plus besoin d'identifier chaque vue à l'aide de findViewById, qui peut transformer du code tel que:

TextView text = (TextView) findViewById (R.id.myTextView); text.setText ("Hello World"); 

Dans le beaucoup plus succinct:

myTextView.setText ("Hello World")

Quel est le piège?

Aucun langage de programmation n’est parfait, aussi, bien que Kotlin ait beaucoup à offrir aux développeurs Android, vous devez garder à l’esprit certains inconvénients:

Taille d'exécution supplémentaire

La bibliothèque standard Kotlin et le moteur d’exécution augmenteront la taille de votre .apk. Bien que cela équivaut à environ 800 Ko, si votre application est déjà volumineuse, ces 800 Ko supplémentaires peuvent la faire basculer et inciter les utilisateurs à réfléchir à deux fois avant de télécharger votre application..

Lisibilité initiale du code

Bien que la syntaxe concise de Kotlin soit l’un des atouts majeurs de la langue, il peut être difficile de déchiffrer certains Kotlin au début, tout simplement parce qu’il ya tant de choses dans une si petite quantité de code. Java est peut-être plus bavard, mais le bon côté des choses est que tout est clairement énoncé, ce qui signifie qu'un code Java peu familier a tendance à être plus facile à déchiffrer qu'un Kotlin peu familier.

De plus, s’il n’est pas utilisé correctement, la surcharge de l’opérateur de Kotlin peut générer un code difficile à lire..

Manque de soutien officiel 

Kotlin peut bénéficier d’un excellent support dans Android Studio, mais il convient de rappeler que Kotlin n’est pas officiellement approuvé par Google..

De plus, l'auto-complétion et la compilation d'Android Studio ont tendance à fonctionner un peu plus lentement lorsque vous travaillez avec Kotlin, par rapport à un projet Java pur..

Communauté plus petite et aide moins disponible

Comme le kotlin est une langue relativement nouvelle, la communauté kotlin est encore relativement petite, en particulier si on la compare à la communauté entourant des langages plus établis tels que Java. Si vous faire Si vous passez à Kotlin, vous n'aurez peut-être pas accès au même nombre de tutoriels, d'articles de blogues et de documentation utilisateur et vous rencontrerez peut-être moins de soutien de la part de la communauté, par exemple sur les forums et Stack Overflow. Au moment de l'écriture, la recherche de Kotlin sur Stack Overflow renvoie un peu plus de 4 600 publications étiquetées avec Kotlin-par rapport aux 1 000 000 postes énormes contenant le Java étiquette.

Conclusion

Dans le premier article de cette série en trois parties, nous avons expliqué pourquoi vous pourriez envisager de passer de la partie Java de votre développement Android à l’un des langages les plus modernes compatibles JVM. Nous avons également examiné de plus près les avantages et les inconvénients uniques de Kotlin en tant que remplacement potentiel de Java.. 

Si vous avez pesé le pour et le contre et si vous avez décidé d'essayer Kotlin, la deuxième partie de cette série vous expliquera comment utiliser Android Studio pour créer une application Android simple, entièrement écrite en kotlin. . Nous verrons également comment utiliser Kotlin pour vous assurer de ne jamais avoir à écrire un autre findViewById encore! 

En attendant, consultez certains de nos autres tutoriels sur le développement Android ici sur Envato Tuts+!

  • Comprendre la concurrence sur Android avec HaMeR

    Dans ce didacticiel, nous allons explorer le cadre HaMeR (gestionnaire, message et exécutable), l'un des modèles de concurrence les plus puissants disponibles sur Android. Tu vas…
    Tin Megali
    SDK Android
  • Commencer avec Firebase pour Android

    La création d'un serveur principal nécessite des compétences qui font défaut à la plupart des développeurs d'applications indépendants. Heureusement, il existe Firebase, une plateforme basée sur le cloud qui…
    Ashraff Hathibelagal
    SDK Android
  • Android From Scratch: Utilisation des API REST

    Dans ce tutoriel, je vais vous montrer comment utiliser les classes et les méthodes disponibles dans le SDK Android pour vous connecter à des serveurs Web distants et interagir avec…
    Ashraff Hathibelagal
    SDK Android
  • Comment démarrer avec un modèle d'application Android

    CodeCanyon propose des centaines de modèles d’applications Android que vous pouvez utiliser pour lancer rapidement le développement de votre prochaine application. Dans ce tutoriel, je vais vous aider à démarrer…
    Ashraff Hathibelagal
    Android
  • Prenez des photos avec votre application Android

    Le Google Play Store propose des dizaines d'applications pour appareils photo, chacune permettant une manière différente de prendre des photos ou de faire quelque chose d'unique avec les photos du…
    Ashraff Hathibelagal
    SDK Android