Archiv der Kategorie: Kotlin

Kotlin-Updates: Jetpack Compose 1.0

In Teil 7 der Kotlin-Updates-Serie werfe ich einen Blick auf Jetpack Compose. Als ich mein Kotlin-Buch im Herbst 2020 fertiggestellt habe, gab es erst eine Alpha-Version dieses neuen UI-Frameworks. Mittlerweile ist Jetpack Compose fast fertig. Weil die mittlerweile stattgefundenen Änderungen umfassend waren, habe ich das betroffene Kapitel 26 vollständig aktualisiert. Sie finden die PDF-Datei am Ende dieses Blog-Beitrags zum Download. Das Kapitel bietet einen guten Einstieg in die Zukunft der Android-Programmierung!

Kotlin-Updates: Jetpack Compose 1.0 weiterlesen

Kotlin-Updates: ktor 1.5

Teil 5 der Kotlin-Updates-Serie behandelt die Backend-Bibliothek ktor. Als ich mein Kotlin-Buch im Herbst 2020 fertiggestellt habe, war noch Version 1.3 aktuell, mittlerweile ist es 1.5.

ktor entwickelt sich rasch weiter, aber nicht alle Entwicklungen sind erfreulich: Ärgerlicherweise gilt das ktor-Plugin nun als obsolet. Zwar gibt es ein neues Plugin, dieses ist aber nur in IntelliJ Ultimate enthalten. So wird Jetbrains ktor nicht zum Erfolg verhelfen …

Davon abgesehen ist ktor zwar im Funktionsumfang gewachsen, aber — zumindest was die Beispielprogramme im Buch betrifft — nahezu kompatibel geblieben. (Die einzige Ausnahme betrifft den Umgang des Zeichens / am Ende von URLs, siehe unten.)

Kotlin-Updates: ktor 1.5 weiterlesen

Kotlin-Updates: kotlinx.coroutines 1.5

Im vierten Teil der Kotlin-Updates-Serie geht es um die Bibliothek kotlinx.coroutines, die bei der Programmierung asynchronen Codes zum Einsatz kommt. In meinem Kotlin-Buch habe ich mich auf Version 1.3.9 bezogen, inzwischen gibt es Version 1.5. Soviel vorweg: Es gibt zwar viele Änderungen, diese betreffen die Einführungsbeispiele aus Kapitel 17 aber nicht und sind nur für Entwickler relevant, die fortgeschrittene Funktionen der Bibliothek nutzen.

Kotlin-Updates: kotlinx.coroutines 1.5 weiterlesen

Sudokus mit Kotlin lösen

Vielleicht liegt es an der merkwürdigen Corona-Zeit — auf jeden Fall hatte ich in den letzten Wochen eine Phase, in der ich fast täglich Sudokus löste. (Meine Quelle: https://www.derstandard.at/lifestyle/raetsel-sudoku.) Die Sudoku-Sucht hat schon wieder nachgelassen, aber Programmierer der ich nun einmal bin, fand sich gleich die nächste Herausforderung: Es kann doch nicht so schwierig sein, ein Programm zu schreiben, das Sudokus löst — oder? Natürlich weiß ich, das Internet ist voller Sudoku Solver. Es ging mir keineswegs darum, das Rad neu zu erfinden oder es noch runder zu machen — ich hatte einfach Lust auf ein paar Stunden Programmieren. Just for fun, nicht als Beispiel für ein Buch oder für den Unterricht …

Gesagt, getan. Wegen der Arbeit an meinem Kotlin-Buch ist mir die Sprache gerade sehr vertraut. Nach ein paar Stunden konnte mein Code bereits einfache Sudokus lösen. Der letzte Feinschliff dauerte dann doch etwas länger als gedacht, aber mittlerweile glaube ich, dass das Programm zuverlässig funktioniert.

Sudokus mit Kotlin lösen weiterlesen

Sichere Passwort-Hashes in Java und Kotlin

Dass Passwörter nicht im Klartext gespeichert werden dürfen, sollte mittlerweile Allgemeinwissen sein: Sollte aus irgendeinem Grund die Benutzerdatenbank kompromittiert werden, bekäme der Angreifer Zugriff auf sämtliche Passwörter.

Lange Zeit lautete die Empfehlung, zuerst MD5-, dann SHA1- und schließlich SHA2-Hashes mit einem zufälligen Salt zu verwenden. Allerdings gelten die MD5- und SHA1-Algorithmen mittlerweile als unsicher. Bei SHA2 gibt es zwar noch keine fundamentalen Sicherheitsprobleme, aber der Algorithmus ist zu schnell. Sofern die Implementierung der Hash-Funktion bekannt ist, können CPUs/GPUs Millionen wenn nicht Milliarden von Passwörter pro Sekunde testen. Das ist besonders dann fatal, wenn unsichere Passwörter in der Art von 123456 oder topsecret zum Einsatz kommen, die in entsprechenden Passwort-Wörterbuchdateien an den ersten Stellen enthalten sind.

Sichere Passwort-Hashes in Java und Kotlin weiterlesen