Android - App-Programmierung für Anfänger

Die Programmierung von Android-Apps für Smartphones kann erlernt werden und wird so auch für Anfänger machbar. Die Anwendung von Apps wird immer populärer. Dabei geht es aber nicht unbedingt immer nur um Handyspielereien. Apps werden beispielsweise auch von großen Unternehmen eingesetzt, um interne Programme schnell aufrufen zu können.

Für das Programmieren von Apps sollten Sie Java lernen.

Wie binde ich in nur 5 Minuten Kotlin in Java-Android-Projekte ein?

Kurzausflug zu Kotlin

Kotlin ist eine seit 2010 entwickelte Programmiersprache von JetBrains. JetBrains sind unter anderem die Entwicklungsumgebung IntelliJ verantwortlich, die von vielen Java Entwicklern genutzt wird. Auf dieser Basis wurde Android Studio gebaut, die aktuelle Entwicklungsumgebung für Android Projekte.

Kotlin selbst ist eine angenehme Programmiersprache, die sich an Konzepten von Sprachen wir C#, Swift, Scala, Java und JavaScript bedient und sowohl funktionale als auch objektorientierte Konzepte vereint.

Doch nun zum eigentlichen Thema: Ich hatte schon öfter davon gehört, dass ich, falls ich bereits ein Android Projekt besitze, hier auch einfach Kotlin ausprobieren kann. Also habe ich mir ein internes Projekt geschnappt und einfach mal getestet, wie ich Kotlin einbinde und die Java Klassen in Kotlin übersetzen kann.

Projektaufbau

Als Test habe ich das Projekt „JavaToKotlin“ erstellt. Hier habe ich beispielsweise ein kleines Grußformular erstellt. Gibst du deinen Namen ein und drückst auf den Button, so wird dir eine kleine Grußnachricht ausgespielt. Falls das Feld leer ist, wird in rotem Text ausgegeben, dass die App dich nicht grüßen kann. Ziemlich einfacher Aufbau, der aber ein paar nette Möglichkeiten bietet.

Ich will hier einen kleinen Kotlin Service einbinden, der das Grüßen übernimmt. Viel muss er nicht können: Er soll mit einem Namen initialisiert werden und wenn er gefragt wird, eine kleine Grußnachricht ausgeben.

Einbinden von Kotlin

Für den aktuellen Stand habe ich das Projekt auch auf GitHub zur Verfügung gestellt. Das kannst du dir gerne auschecken und so den Weg, den ich beschrieben habe, selbst ausprobieren:

Kotlin in dem Projekt zu konfigurieren ist nicht schwer. Zuerst erstelle ich den von uns geplanten Service. Ich lege also eine Klasse mit dem Namen „DivaGreeter“ an. Diese bekommt als Argumente im Konstruktor einen Namen, mehr braucht sie nicht. Außerdem füge ich noch die Methode „greet()“ hinzu, welche den Text ausgeben wird.

Die finale Klasse sieht nun bei mir wie folgt aus:

Bisher ist allerdings noch nichts konfiguriert. Vielleicht hast du die gelbe Meldung über der Kotlin Klasse schon bemerkt, die verkündet : „Kotlin not configured“. Ganz rechts wird angeboten, die Programmiersprache im Projekt zu konfigurieren. Einfach draufdrücken – und das war es eigentlich schon! Du kannst jetzt Kotlin in deinem Projekt verwenden.

Was ist da jetzt passiert?

Es hat sich direkt die „build.gradle“ geöffnet. In dieser wird dir aufgefallen sein, dass sich ein paar Dinge verändert haben:

Ganz oben ist ein apply plugin: 'kotlin-android' hinzugekommen. Unter den „dependencies“ ist eine weitere hinzugefügt worden:

compile "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"

Diese Dependencies sind das Einzige, was Android Studio braucht, um Kotlin in Projekten zu kompilieren.

Falls die Meldung „Kotlin is not configured“ weiterhin angezeigt wird, startest du Android Studio einfach neu. Danach sollte alles funktionieren.

Verwendung von Kotlin

Jetzt wollen wir natürlich auch unseren Service verwenden. In der MainActivity haben wir kleine ClickListener registriert. In diesem entnehmen wir uns bislang den Namen aus dem Feld und zeigen einen Text an.

Das Ganze setze ich einfach mithilfe des DivaGreeters jetzt um. Anstatt mir den String aus dem EditText zu speichern, erstelle ich mir einen DivaGreeter und gebe in diesen die Eingabe des EditText. Nun kann ich ganz einfach die „greet()“ Methode aufrufen und loslegen.

Wenn der richtige Text angezeigt wird, ist alles super. Du kannst also Kotlin Code von Java aufrufen. Andersherum funktioniert das übrigens auch.

Was ist noch zu beachten?

Ich bin auf ein paar kleine Unterschiede gestoßen, als ich Kotlin in unser Projekt eingebaut habe:

Annotation Processing

Falls du zum Beispiel Room oder andere Architecture Components im Projekt hast, wirst du einen annotationProcessor in deiner build.gradle eingebunden haben. Leider gibt es damit ein paar Probleme, da Kotlin Annotationen nicht gleich sind wie Java Annotationen. Somit wird ein neuer Annotation Processor gebraucht. Nimm dazu einfach kapt. Füge oben bei den Plugins noch die Zeile: „apply plugin: 'kotlin-kapt'“ hinzu und anstatt „annotationProcessor“ verwende nun „kapt“. Somit sollten alle Annotationen unter Java noch funktionieren und die unter Kotlin auch.

Kotlin Android Extensions

Falls ein Projekt neu gebaut wird, werden die Kotlin Android Extensions schon automatisch in die build.gradle mit aufgenommen. Diese müssen noch manuell hinzugefügt werden. Hierzu musst du einfach nur wieder „apply plugin: 'kotlin-android-extensions“ hinzufügen und Gradle neu bauen lassen. Manchmal kann bei soetwas auch ein Neustart erforderlich sein. Danach kannst du aber alle Extensions verwenden.

Was hiermit alles machbar ist, kannst du hier nachlesen:

Vorsicht beim Erben

Es ist in dem Projekt einmal passiert, dass uns an einer Stelle, an der unser Java Code funktioniert hatte, eine IllegalArgumentException ausgespielt wurde. Das liegt daran, dass unter Kotlin jeder Typ, der mit Null aufgerufen werden kann, explizit angegeben werden muss. Diese nullable values können vor allem bei älteren Libraries von Android nicht ersichtlich sein. Falls also eine Methode überschrieben wird und beim Übersetzen die nullable values nicht angegeben wurden, wird während der Laufzeit versucht, die Methode aufzurufen, keine passende gefunden und eine IllegalAgumentException ausgespielt. Siehe in der Dokumentation nach oder überprüfe welche Parameter null sein können.

Zum Schluss

Einige meiner Kollegen haben Kotlin auch in Projekten ausprobiert, in denen kein Android genutzt wurde. Dort hat die Konfiguration sehr ähnlich funktioniert wie in Android Studio. Deshalb: Unbedingt selbst ausprobieren! Ich wünsche viel Spaß beim Testen von Kotlin – sollten sich noch Fragen ergeben, darfst du dich gern bei mir melden.

Die 7 besten IDE für Programmierer 2022

Die 7 besten IDE für Programmierer 2022

Eine integrierte Entwicklungsumgebung, kurz IDE (Englisch für: Integrated Development Environment), ist eine Werkzeug-Sammlung, die Entwicklern und Programmierern bestimmte Entwicklertools auf einer zentralen Oberfläche bietet. Dies vereinfacht die Arbeit zum Erstellen von Programmen. Die wichtigsten Elemente einer IDE sind:

Quellcode-Editor mit Syntaxhervorhebung und Formatierung

Compiler

Debugger

Interpreter

Tools zur Erstellung grafischer Oberflächen

Versionsverwaltung

Das Wichtigste in Kürze Es gibt sehr viele, ausgezeichnete IDEs auf dem Markt.

Wichtig sind die grundsätzlichen Funktionalitäten, die benötigt werden, sowie der Preis und die Frage, auf welche Programmiersprachen Wert gelegt werden.

Alternativen bieten sich in Form von Online-Editoren an, die in einer schlankeren Version die Programmierung von Codes ermöglichen.

Beste IDE in der Übersicht

Platz Name Preis Betriebssystem(e) 1 Visual Studio kostenlose Community-Version für Einzelpersonen

monatliche Abonnements zwischen $45/Mon. und $250/Mon. Jahresabonnements zwischen 1540 Euro und 7.707 Euro. Windows und macOS 2 Eclipse Kostenlos (Freeware) Plattformunabhängig (verfügbar für 14 Systeme, u. A. für Linux, macOS, Windows etc.) 3 IntelliJ by JetBrains Kostenlose Community-Edition (Open Source)

kommerzielle Ultimate-Edition ab 149 Euro/Jahr (ab 1.10.2022 169 Euro/Jahr) macOS, Windows, Linux 4 NetBeans Kostenlos Cross-Plattform. Läuft auf jedem Betriebs-system, das eine Java Virtual Machine (JVM) hat, wie z. B. Windows, Linux, macOS, Solaris u. m. 5 Android Studio Kostenlos Windows, macOS, Linux 6 Xcode Kostenlos

für kommerzielle Nutzung

Mitgliedschaft im Apple Developer Program nötig (99 USD/Jahr) macOS-Betriebs-systeme: iOS, iPadOS, macOS, tvOS und watchOS 7 Code::Blocks Kostenlos, Open Source Cross-Plattform. Windows, GNU/Linux, macOS u. a.

1. Platz IDE Visual Studio

Die von Microsoft entwickelte IDE Visual Studio ist in der Version 2022 eine der beliebtesten und besten integrierten Entwicklungsumgebungen für Programmierer. Dank KI-Funktionen lernt die Anwendung, während der Programmierer coded. Zahlreiche Features sowie eine Vielzahl an verfügbaren Plugins machen sie zu einer der beliebtesten IDEs am Markt. Sie ist in der Community-Edition kostenlos, die Abonnements für KMUs sowie die Enterprise-Lösungen sind in verschiedenen Abo-Varianten erhältlich.

Visual Studio Vorteile und Nachteile

Viele Programmierer schätzen die große Flexibilität und die Möglichkeiten, die Visual Studio bietet. Diese IDE ist nach wie vor weit oben in den Bestenlisten für Integrierte Entwicklungsumgebung vertreten.

Vorteile

kostenlose Community-Version für Einzelpersonen

KI-Technologien IntelliSense und IntelliCode

unterstützt sehr viele Programmiersprachen

eine Menge an gut durchdachten Funktionalitäten

einfache Benutzung, Git-Hub-Integration, vorgefertigte Starter-Projekte

Nachteile

Vielfalt an Optionen macht die Ersteinrichtung und Konfiguration schwierig

auch Community-Version ist ressourcenintensiv, benötigt einen leistungsstarken Rechner

2. Platz IDE Eclipse

Die integrierte Entwicklungsumgebung Eclipse wird von IBM angeboten, ist in Java und für Java-Projekte geschrieben. 2001 wurde der Quellcode freigegeben und seit 2004 wird die Entwicklungsumgebung von der rechtlich eigenständigen Eclipse Foundation betreut. Die IDE kann kostenlos heruntergeladen werden und ist inzwischen dank vieler Plugins und Erweiterungen für sehr viele Programmiersprachen wie HTML, CSS oder PHP geeignet. Es ist eine nach wie vor beliebte und flexible IDE, die sowohl Beginner wie Profis benutzen können. Dennoch ist sie mittlerweile in der Beliebtheit von IntelliJ IDEA von JetBrains überholt worden.

Eclipse Vorteile und Nachteile

Die Entwicklungsumgebung hat einen treuen und stabilen Nutzerstamm, der die umfänglichen Funktionalitäten und Möglichkeiten der IDE schätzt.

Vorteile

kostenlos und Open Source

gängige Werkzeuge wie Code-Vervollständigung, Bearbeitungs- und Debugging-Funktionen

unterstützt über 100 Programmiersprachen, große Anzahl von Plugins und Erweiterungen

geeignet für die Entwicklung von Cross-Platform-Apps basierend auf C/C++ oder C# für Web, Mobile, Desktop etc.

flexibel und geeignet für Anfänger wie Profis

Nachteile

hoher Speicherverbrauch

nicht mehr zeitgemäße und altbackene Benutzeroberfläche

zeitweise Performance-Probleme und Abstürze

wird langsamer, je mehr Plugins und Workspaces geöffnet sind

Einrichtung wird von einigen als umständlich empfunden

3. Platz IDE IntelliJ by JetBrains

Längst ist IntelliJ IDEA von JetBrains kein Geheimtipp mehr unter den Java-Entwicklern. Mittlerweile hat die IDE ihren Konkurrenten Eclipse eingeholt und sogar überholt, wenn es um die Beliebtheit geht. Programmierer und Entwickler geraten fast ins Schwärmen, weil IntelliJ IDEA immer wieder neue Funktionen und Innovationen vorstellt, die allen, die damit arbeiten, das Programmieren und Entwickeln deutlich vereinfachen. Die Community-Version ist kostenlos verfügbar.

IntelliJ IDEA by JetBrains Vorteile und Nachteile

Die beliebte IDE punktet mit bei den Benutzern mit beständigen Innovationen, zudem ist es schnell und komfortabel.

Vorteile

hohe Benutzerfreundlichkeit und Flexibilität, gutes Design

kostenlose Apache 2 Community-Edition und Campus-Lizenzen

unterstützt eine Vielzahl von Programmiersprachen (u. a. PHP, Ruby, Python, Node.js, Go …)

Vielzahl an Plugins aus dem gleichen Hause (JetBrains), guter Kundendienst auch bei neuen Produkten

beständige Anzahl an neuen, intelligenten Funktionen und Innovationen

Nachteile

kostenintensiv in der Ultimate-Edition

keine gute Dokumentation

längere Ladezeiten beim Start

4. Platz NetBeans IDE

Apache NetBeans wurde ursprünglich Ende der 90er von tschechischen Studenten entwickelt, wurde von Sun Microsystems und 2010 dann von Oracle übernommen. Der Quelltext wurde einige Jahre später dann unter Apache lizensiert. Es ist also eine etablierte und weiterhin beliebte Integrierte Entwicklungsumgebung (IDE), die kostenlos heruntergeladen werden kann. Speziell Programmierer von Java und JavaScript, aber auch PHP- oder HTML5-Coder loben den Support. Die IDE erlaubt die Entwicklung von bug-freien Webseiten, der Code lässt sich syntaktisch und semantisch hervorheben. Zusammen mit starken Refactoring Tools ist es bei seinen Anwendern und der großen Community beliebt.

NetBeans Vorteile und Nachteile

Apache NetBeans ist eine etablierte und nach wie vor konstant gute IDE für Java-Entwickler mit vielen Vorteilen.

Vorteile

kostenlos und GPL-lizensiert

gut durchdachter, modularer Aufbau

offizielle IDE für Java 8: Sehr gut geeignet zum Programmieren Java-basierter Applikationen

viele nützliche Funktionen: Code Completion, Refactoring, GUI-Design-Tool, Datenbanken-Unterstützung, dynamische Updates, Maven-Support u. v. m.

unterstützt die Entwicklung weiterer Programmiersprachen (u. a. PHP, HTML5, CSS, C++)

Nachteile

bootet langsamer als andere IDEs

nicht ganz so viele Plugins auswählbar im Vergleich zu anderen IDEs

limitierte Anpassungsmöglichkeiten

benötigt viel Speicherplatz/RAM

kein professioneller/direkter Support, dafür aber gute Community-Hilfe

5. Platz Android Studio IDE

Wer sich auf die Entwicklung von Android-Apps spezialisiert hat, der kommt fast nicht an Android Studio vorbei. Googles offizielle Entwicklungsumgebung basiert seit 2015 auf IntelliJ IDEA und ist eine beliebte, kostenlose IDE für alle Coder, die Android-Apps entwickeln. 2019 wurde Java als bevorzugte Entwicklungssprache von Kotlin ersetzt, dennoch wird Java weiterhin unterstützt, genauso wie C/C++. Es besticht unter anderem durch sein statisches Analyse-Framework, das flexible, Gradle-basierte Build-System, ProGuard, einem intelligenten Code-Editor, Integrationen mit GitHub, Subversion und anderen Team-Tools und einem APK Analyzer.

Android Studio Vorteile und Nachteile

Developer und Firmen schätzen Android Studio als gut dokumentierte, offizielle Android-IDE, die mit einer großen Community aufwartet und Entwicklern hilft, die Erstellung von Apps für Android-basierte Geräte zu entwickeln.

Vorteile

es ermöglicht den Austausch und das Entwickeln im Team

Code Templates, Beispiel-Apps und APK Analyzer

unterstützt Firebase und Cloud Integration

Support der Google Cloud Plattform

C++ und NDK Support

Nachteile

High-end-Computer wird benötigt

langsamer Emulator im Vergleich zu anderen Android-Emulatoren

benötigt viel RAM

zeitweise Startprobleme nach einem Update

6. Platz Xcode

Es ist die offizielle Entwicklungsumgebung von Apple: Mit Xcode können Programmierer jede Software und Anwendung entwickeln, die auf Apple-Betriebssystemen läuft. Zwei Interfaces stehen für die Programmierung zur Verfügung: Storyboard oder SwiftUI. Hauptprogrammiersprachen sind Swift und Objective-C, es lassen sich aber C/C++ sowie Python und Ruby verwenden. Die IDE ist kostenlos, für die kommerzielle Nutzung muss jedoch bezahlt werden.

Xcode Vorteile und Nachteile

iOS-Entwickler erstellen mit Xcode Anwendungen für iPhones, iPads, Macs oder andere Apple-Produkte.

Vorteile

übersichtliche und aufgeräumte Benutzeroberfläche

Vielzahl an guten Funktionen: Codevervollständigung, grafische Benutzeroberfläche von Designs, Test Navigator, Syntaxunterstützung etc.

gute Dokumentation

schnell und funktional

Nachteile

es kann nur innerhalb des Apple-Universums (macOS) verwendet werden

High-End-Hardware nötig, da es sehr viel Speicher belegt

es wird eine Apple ID benötigt

für die Veröffentlichung im App Store braucht man eine kostenpflichtige Mitgliedschaft im Apple Developer Program

nicht sehr anfängerfreundlich

7. Platz Code::Blocks IDE

Die Code::Blocks Entwicklungsumgebung ist gut geeignet für Neulinge im Bereich der Programmierung. Trotz ihrer unkomplizierten und von einigen als veraltet angesehenen Benutzeroberfläche hat sie eine große User-Community, die die Einfachheit der IDE schätzen. Es eignet sich gut für erste, kleinere Projekte, nicht unbedingt für die Programmierung von größeren Projekten. Die IDE ist kostenlos und Open Source.

Code::Blocks Vorteile und Nachteile

Wer mit der Code::Blocks-Entwicklungsumgebung arbeitet, entscheidet sich bewusst für eine leicht zu konfigurierende und erweiterbare IDE. Sie hat alle Features, die benötigt werden, um erste Programmierschritte in diesem Bereich zu gehen.

Vorteile

sehr gut für Anfänger geeignet

Open Source und kostenlos

unterstützt Syntax-Highlighting, Folding-Funktion für C++ und XML-Sprachen

Autovervollständigung

Fortran-Project-Plugin

Nachteile

veraltete Benutzeroberfläche

keine Navigationsanleitung

könnte bei anspruchsvolleren Projekten nicht ausreichen

User vermissen einen Dark Mode

Compiler muss manuell mit GNU GCC installiert werden

IDE auswählen: Auswahlkriterien

Die Wahl einer geeigneten Integrierten Entwicklungsumgebung (IDE) hängt von einigen Faktoren ab, über die sich der Programmierer im Vorfeld Gedanken machen sollte.

IDE für die bevorzugte Programmiersprache

Es sollte darauf geachtet werden, dass die IDE die Programmiersprache gut unterstützt, die benötigt wird zum Programmieren der Anwendung. Wenn beispielsweise eine IDE für Java-Entwicklungen benötigt wird, ist es ratsam, sich diverse kostenlose Java-IDEs oder eine Testversion herunterzuladen und auszuprobieren, welche einem am ehesten zusagt.

Preis

Wenn ein Anfänger zu Beginn sich lediglich mit Entwicklungsumgebungen vertraut machen oder hereinschnuppern möchte, dann sollte er sich für eine kostenlose oder kostengünstige IDE entscheiden. Es gibt viele gute, frei verfügbare Integrierte Entwicklungsumgebungen, die zudem die Cross-Plattform-Programmierung unterstützen.

Eine IDE kann schlank und funktional aufgebaut sein und mit einer akzeptablen Speicherkapazität auf dem Rechner auskommen. Sie kann aber auch mächtig und mit einer großen Anzahl an Funktionalitäten und Arbeitstools ausgestattet sein. In diesem Falle ist damit zu rechnen, dass allein die Installation, aber auch jedes Update viel Speicherplatz und einen High-End-Rechner mit einem großen Arbeitsspeicher benötigt, damit alles sauber und fehlerfrei laufen kann. Zusätzlich sollte jeder Benutzer vorab überlegen, wie wichtig ihm regelmäßige Updates sind und sich informieren, in welcher Frequenz diese bei der ausgewählten IDE erfolgen.

Anforderungen an Funktionalitäten und Plugins

Wenn vorab schon klar ist, welche Funktionalitäten ein Muss sind, sollte bei Auswahl der IDE darauf geachtet werden, dass diese dort integriert sind oder dass die IDE modular aufgebaut ist und diese Funktionen nachträglich über Plugins beispielsweise hinzugefügt werden können.

Alternativen zu klassischen IDE: Online-Editoren

Ein klassischer Online-Editor, auch Text- oder Code-Editor genannt, ist im Prinzip die verschlankte und einfache Version einer integrierten Entwicklungsumgebung. Eine IDE kann zu überdimensioniert und zu aufgebläht sein, wenn es nur darum geht, eine einfache Anwendung zu programmieren. Ein Code-Editor ist schlichter und oftmals effizienter. Doch auch ein Online-Editor lässt sich mittlerweile dank einer Vielzahl von Plugins und Erweiterungen massiv erweitern, sodass die Grenze zwischen dem Leistungsumfang einer IDE und dem eines Code-Editors verschwimmen.

Eine Integrierte Entwicklungsumgebung bringt von Hause aus alle Funktionen eines Editors mit – aber eben noch mehr. Je nach Anforderungen kann ein Entwickler also durchaus mit einem guten Online-Editor sein Ziel erreichen. Letztendlich kommt es auf die persönliche Präferenz und auf den Funktionsumfang an, den der Programmierer benötigt und wünscht. Einer der wichtigsten Vorteile: Online-Editoren nehmen weniger Speicher- und Arbeitsspeicher-Platz ein, sind damit also ressourcenschonender und oft auch reaktionsschneller.

Ein Nachteil ist bei vielen Code-Editoren, dass aufgrund ihrer Leichtigkeit und Einfachheit viele auf eine ansprechende grafische Oberfläche verzichten. Wer sich also vorrangig nur auf den Code konzentrieren möchte, für den ist ein guter Online-Editor mit Sicherheit eine sehr gute Option zu einer allumfassenden IDE. Beliebte Editoren, die teilweise auch an den Funktionsumfang einer IDE heranreichen können, wären beispielsweise Sublime Texte, Visual Studio Code, Atom, Notepad++, Vim oder PHPStorm von JetBrains.

Fazit

Egal, ob ein aufs Wesentliche reduzierter Online-Editor oder eine vollumfängliche Integrierte Entwicklungsumgebung (IDE): Mit beiden Tools stehen Programmierern eine große Anzahl an Funktionalitäten, Plugins und weiteren Werkzeugen zum Programmieren von Code und Anwendungen zur Verfügung. Es spricht auch nichts dagegen, einen schnelleren und einfachen Texteditor für die Programmierung des eigentlichen Codes an sich zu wählen und später auf eine Lightweight-IDE oder vollumfängliche IDE umzusteigen für komplexere Arbeiten.

Jeder Nutzer sollte bei seiner Auswahl immer berücksichtigen, welche Programmiersprachen ihm wichtig sind und welche die IDE beherrschen sollte. Ein Java-Entwickler wird beispielsweise eher zu Eclipse oder IntelliJ IDEA von JetBrains greifen, wohingegen ein Python-Programmierer vermutlich zu einer IDE wie PyCharm (ebenfalls von JetBrains) tendieren würde.

Die Möglichkeiten bei allen IDEs und auch gut durchdachten Code-Editoren sind vielfältig. Es kommt also darauf an, welche Prioritäten gesetzt werden müssen, um am Ende eine gut programmierte Anwendung zu bekommen.

Jarosław Kułak
Jarosław Kułak

Leave a Comment