Wenn Sie über die Entwicklung von Android nachdenken, haben Sie die Möglichkeit, sich an eine Programmiersprache zu erinnern: Java.
Es stimmt zwar, dass die meisten Android-Apps in Java geschrieben sind, Java ist jedoch nicht Ihre, wenn es um Android-Entwicklung geht nur Möglichkeit.
Sie können Android-Apps in jeder Sprache schreiben, die auf der Java Virtual Machine (JVM) kompiliert und ausgeführt werden kann, und Ihre Endbenutzer werden davon keine Ahnung haben. Eine JVM-kompatible Programmiersprache, die die Aufmerksamkeit der Android-Community auf sich zog, ist Kotlin, eine statisch typisierte Programmiersprache von JetBrains.
Wenn Sie gute Dinge über Kotlin gehört haben und daran interessiert sind, es selbst auszuprobieren, dann sind Sie hier genau richtig. In dieser dreiteiligen Serie werde ich Ihnen alles geben, was Sie wissen müssen, um mit der Entwicklung von Kotlin für Android zu beginnen.
In diesem ersten Teil werde ich untersuchen, warum Sie als Android-Entwickler in Betracht ziehen sollten, zuerst von Java zu wechseln. Anschließend werde ich die Vor- und Nachteile der Auswahl von Kotlin als Java-Ersatz untersuchen. Am Ende dieses Artikels haben Sie ein genaues Verständnis für das, was Kotlin zu bieten hat, und wissen, ob es für Sie richtig ist.
In Teil zwei werden wir untersuchen, wie Sie Ihre Android Studio-Installation zur Unterstützung von Kotlin einrichten und eine einfache Android-App erstellen, die vollständig in Kotlin geschrieben ist. Wenn diese Grundlagen vorhanden sind, werden wir uns im dritten Teil der Installation mit den fortgeschrittenen Funktionen der Kotlin-Sprache befassen.
Java ist zwar eine der am weitesten verbreiteten Programmiersprachen der Welt und ist die offizielle Sprache der Android-Entwicklung. Es gibt jedoch viele Gründe, warum Java dies nicht tun kann immer Seien Sie die beste Option für Ihre Android-Projekte.
Das größte Problem ist, dass Java keine moderne Sprache ist. Obwohl Java 8 für die Plattform ein großer Schritt nach vorne war, wurden zahlreiche Funktionen eingeführt, auf die Entwickler gewartet haben (einschließlich Lambda-Funktionen). Zum Zeitpunkt des Schreibens von Android werden nur Android-Funktionen unterstützt eine Teilmenge von Java 8-Funktionen. Es ist unwahrscheinlich, dass Android-Entwickler in Kürze die vollen Vorteile von Java 8 nutzen werden. Wenn Sie also Java in Ihren Android-Projekten verwenden möchten, sind Sie auf absehbare Zeit mit Java 7 beschäftigt.
Java hat auch einige ziemlich gut dokumentierte Sprachprobleme, darunter auch endlose Versuchen
-Fang
Blöcke, mangelnde Erweiterbarkeit, Null-Unsicherheit (und das berüchtigt NullPointerException
), ganz zu schweigen von der fehlenden Unterstützung für funktionale Programmierfunktionen. Java fängt zwar an, einige funktionale Programmierelemente wie Lambda-Ausdrücke und funktionale Schnittstellen hinzuzufügen, im Kern ist Java jedoch immer noch eine prozedurale Sprache. Javas Syntax ist auch recht ausführlich, insbesondere im Vergleich zu vielen modernen Programmiersprachen.
Sie sollten sich also überlegen, zu einer der vielen modernen Programmiersprachen zu wechseln, die auf der JVM ausgeführt werden sollen. An Sprachen, die zu Java-Bytecode kompiliert werden, gibt es keinen Mangel, es gibt jedoch ein paar Faktoren, die Kotlin aus der Masse abheben:
Eine der größten Stärken von Kotlin als mögliche Alternative zu Java ist die schiere Interoperabilität zwischen Java und Kotlin. Sie können sogar Java- und Kotlin-Code nebeneinander in demselben Projekt verwenden, und alles wird immer noch perfekt kompiliert. Unten sehen Sie ein Beispiel für ein Projekt, das aus Java besteht Aktivität
und eine Kotlin-Aktivität.
Sobald Ihr gemischtes Kotlin- und Java-Projekt kompiliert ist, können die Benutzer nicht mehr feststellen, welche Teile Ihres Projekts in Java geschrieben sind und welche Teile in Kotlin geschrieben sind.
Da Kotlin- und Java-Klassen in demselben Projekt nebeneinander vorhanden sein können, können Sie Kotlin verwenden, ohne drastische Schritte ausführen zu müssen, z. B. das Konvertieren eines gesamten Projekts in Kotlin oder das Starten eines neuen Projekts, damit Sie sich bei Kotlin versuchen können.
Dank dieses Interoperabilitätsniveaus können Sie Kotlin bei einem Projekt, an dem Sie bereits arbeiten, in einem kleinen Teil dieses Projekts testen, ohne den Rest der Codebasis zu beeinträchtigen. Wenn Sie sich für die weitere Verwendung von Kotlin entscheiden, können Sie entweder den vorhandenen Java-Code Ihres Projekts einzeln für Kotlin migrieren oder den alten Java-Code Ihres Projekts unangetastet lassen und Kotlin nur für die neuen Klassen und Funktionen verwenden.
Da Kotlin vollständig mit Java kompatibel ist, können Sie auch die meisten Java-Bibliotheken und -Frameworks in Ihren Kotlin-Projekten verwenden - sogar fortgeschrittene Frameworks, die auf Anmerkungsverarbeitung angewiesen sind.
Kotlin zielt darauf ab, eine Erweiterung von Java zu sein und nicht nur eine vollständige Neufassung. Daher sollten viele der Fähigkeiten, die Sie im Laufe Ihrer Java-Karriere erworben und verfeinert haben, auch für Ihre Kotlin-Projekte gelten.
Kotlin bietet auch eine sanfte Lernkurve für Java-Entwickler. Java-Entwickler sollten feststellen, dass die meisten Kotlin-Syntax sich vertraut anfühlt. Der Code zum Erstellen einer neuen Klasse in Kotlin lautet beispielsweise sehr ähnlich wie Java:
Klasse MainActivity: AppCompatActivity ()
Kotlin ist so konzipiert, dass es intuitiv und einfach zu lesen ist, auch wenn Sie es tun tun Wenn Sie auf etwas Code stoßen, der sich drastisch unterscheidet, sollten Sie immer noch wissen, was dieser Code tut.
Gegenwärtig gibt es eine Reihe von Programmierparadigmen, die weit verbreitet sind, aber wenn es um die Frage geht, „welcher Ansatz der beste ist“, gibt es keine einfache Antwort. Jedes Programmierparadigma hat seine eigenen Stärken und Schwächen. Wenngleich Szenarien, in denen funktionale Programmierung von Vorteil ist, nicht zu kurz kommen, gibt es auch viele Probleme, bei denen ein prozessualer Ansatz effektiver ist.
Warum sollten Sie sich zwischen funktional und prozedural entscheiden müssen? Wie viele moderne Programmiersprachen zielt Kotlin darauf ab, Ihnen das Beste aus beiden Welten zu bieten, indem Sie Konzepte und Elemente aus der prozeduralen und funktionalen Programmierung kombinieren.
Kotlin wurde von JetBrains entwickelt, der Firma hinter IntelliJ-IDE, auf der Android Studio basiert. Es ist also keine Überraschung, dass Android Studio Kotlin hervorragend unterstützt. Nachdem Sie das Kotlin-Plugin installiert haben, ist die Konfiguration von Kotlin in Ihrem Projekt so einfach wie das Öffnen einiger Menüs.
Sobald Sie das Kotlin-Plugin für Android Studio eingerichtet haben, wird es für Ihre IDE kein Problem sein, Kotlin-Code zu verstehen, zu kompilieren und auszuführen. Android Studio bietet außerdem Debugging, automatische Vervollständigung, Code-Navigation, Komponententests und vollständige Unterstützung für Refactoring für Kotlin.
Sobald Ihr Android Studio-Projekt für die Unterstützung von Kotlin konfiguriert ist, können Sie sogar eine gesamte Java-Quelldatei mit nur wenigen Mausklicks in eine Kotlin-Datei konvertieren.
Wenn Sie eine Java-Klasse und eine Kotlin-Klasse vergleichen, die die gleichen Ergebnisse erzielen, ist die in Kotlin geschriebene in der Regel viel prägnanter und kompakter als die in Java geschriebene. Und wie jeder Entwickler weiß, bedeutet weniger Code weniger Fehler!
Mit dem folgenden Java-Code wird beispielsweise eine Aktivität erstellt, die aus einer beweglichen Aktionsschaltfläche (Floating Action Button, FAB) besteht, die bei Betätigung eine Snackbar mit der hilfreichen Nachricht anzeigt Dies ist eine Snackbar.
public class MainActivity erweitert AppCompatActivity @Override protected void onCreate (Bundle savedInstanceState) super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); Symbolleiste Symbolleiste = (Symbolleiste) findViewById (R.id.toolbar); setSupportActionBar (Symbolleiste); FloatingActionButton myfab = (FloatingActionButton) findViewById (R.id.myfab); myfab.setOnClickListener (neuer View.OnClickListener () @Override public void onClick (View view) Snackbar.make (Ansicht, "Dies ist eine Snackbar", Snackbar.LENGTH_LONG) .setAction ("Action",. null) .show ( ););
Das Kotlin-Äquivalent leistet diese Arbeit in weniger Code, insbesondere wenn es um die Erstellung des FAB und das Festlegen des FAB geht onClickListener
:
Klasse MainActivity: AppCompatActivity () überschreibe fun onCreate (savedInstanceState: Bundle?) super.onCreate (savedInstanceState) setContentView (R.layout.activity_main) val toolbar = findViewById (R.id.toolbar) als Toolbar setSupportActionBar (Toolbar) = findViewById (R.id.myfab) als FloatingActionButton myfab.setOnClickListener view -> Snackbar.make (view, "Dies ist eine Snackbar", Snackbar.LENGTH_LONG) .setAction ("Action", null) .show ()
Beide Codeausschnitte haben genau die gleiche Ausgabe:
Kotlin ist besonders gut darin, die Menge an Boilerplate-Code, den Sie schreiben müssen, zu reduzieren, was das Codieren in Kotlin zu einem viel angenehmeren Erlebnis machen sollte, verglichen mit dem Programmieren in wortreicheren Sprachen wie Java.
Insbesondere bei Kotlin Android-Erweiterungen (die wir in Teil zwei untersuchen werden) können Sie den Verweis auf eine Ansicht in eine Aktivitätsdatei importieren, sodass Sie mit der Ansicht so arbeiten können, als wäre sie Teil dieser Aktivität. Das bedeutet, dass Sie nicht mehr jede Ansicht anhand von identifizieren müssen findViewById
, das kann Code umwandeln wie:
TextView Text = (TextView) findViewById (R.id.myTextView); text.setText ("Hallo Welt");
In die viel prägnantere:
myTextView.setText ("Hallo Welt")
Keine Programmiersprache ist perfekt. Obwohl Kotlin Android-Entwicklern eine Menge zu bieten hat, gibt es einige Nachteile, die Sie beachten sollten:
Die Kotlin Standard Library und die Laufzeit erhöhen die Größe Ihrer .apk. Dies entspricht zwar nur etwa 800 KB, wenn sich Ihre Anwendung jedoch bereits auf der großen Seite befindet, können diese zusätzlichen 800 KB die Kante überschlagen und Benutzer vor dem Herunterladen Ihrer App zweimal überlegen.
Obwohl Kotlins prägnante Syntax eine der größten Stärken der Sprache ist, kann es schwierig sein, einige Kotlin zu entschlüsseln, einfach weil so viel Code in so wenig Code läuft. Java ist vielleicht viel ausführlicher, aber der Vorteil ist, dass alles klar definiert ist, was bedeutet, dass unbekannter Java-Code leichter zu entschlüsseln ist als unbekanntes Kotlin.
Bei falscher Verwendung kann die Überladung von Kotlin-Operatoren dazu führen, dass Code schwer lesbar ist.
Kotlin verfügt zwar über eine hervorragende Unterstützung in Android Studio, es ist jedoch zu beachten, dass Kotlin nicht offiziell von Google befürwortet wird.
Im Vergleich zu einem reinen Java-Projekt läuft die automatische Vervollständigung und Kompilierung von Android Studio bei der Arbeit mit Kotlin tendenziell etwas langsamer.
Da Kotlin eine relativ neue Sprache ist, ist die Kotlin-Community immer noch recht klein, insbesondere im Vergleich zu der Community, die etabliertere Sprachen wie Java umgibt. Wenn du tun Wenn Sie zu Kotlin wechseln, haben Sie möglicherweise keinen Zugriff auf die gleiche Anzahl an Lernprogrammen, Blogbeiträgen und Benutzerdokumentationen. In Foren wie Foren und Stack Overflow gibt es möglicherweise weniger Community-Support. Zum Zeitpunkt des Schreibens suchen Kotlin on Stack Overflow gibt etwas mehr als 4.600 mit getaggte Beiträge zurück Kotlin-im Vergleich zu den über 1.000.000 Posts, die das enthalten Java Etikett.
Im ersten Beitrag dieser dreiteiligen Serie haben wir untersucht, warum Sie den Java-Teil Ihrer Android-Entwicklung in eine der moderneren, JVM-kompatiblen Sprachen umstellen möchten. Wir haben auch die einzigartigen Vor- und Nachteile von Kotlin als potenziellen Java-Ersatz betrachtet.
Wenn Sie die Vor- und Nachteile abgewogen haben und sich für Kotlin entschieden haben, werde ich Ihnen im zweiten Teil dieser Serie zeigen, wie Sie mit Android Studio eine einfache Android-App erstellen, die vollständig in Kotlin geschrieben ist . Wir werden auch prüfen, wie Sie Kotlin verwenden können, um sicherzustellen, dass Sie niemals ein anderes schreiben müssen findViewById
nochmal!
In der Zwischenzeit finden Sie einige unserer anderen Tutorials zur Android-Entwicklung hier auf Envato Tuts+!