Kiosk-Artikel

Flutter – Einblick in die Future: Async und await in Flutter erklärt

Im ersten Teil dieses Artikels [1] wurde eine Kurzeinführung in Flutter gegeben. Zur Erinnerung: mit Flutter kann man mobile Applikationen für iOS und Android erstellen, aber auch Webapplikationen und bald auch welche für den Desktop. „Write once, deploy everywhere“ kommt also wieder näher. In diesem Teil werden wir uns anschauen, wie man in der Programmiersprache Dart asynchrone Operationen durchführt und dann in Flutter elegant damit arbeiten kann.

Und jetzt? Microservices nach dem Hype

Microservices standen jahrelang im Mittelpunkt des Interesses. Zeit, ein Fazit zu ziehen und aufzuzeigen, wie Microservices die Softwareentwicklung beeinflusst haben.

Der Rechenknecht in Python: Mathematische Probleme mit Basisfunktionen und Bibliotheken lösen

Ein wichtiger Grund, warum Python im Moment einen wahren Hype erlebt, ist die Möglichkeit, mit dieser Programmiersprache relativ leicht mathematische und statistische Probleme zu lösen. Der Übergang zu den Algorithmen der künstlichen Intelligenz ist dann nicht mehr weit. Mit den richtigen Bibliotheken kann man sich auf das eigentliche Problem konzentrieren und die Umsetzung eines Algorithmus geht leicht von der Hand.

AI Arduino: Wir programmieren den Maixduino

Mit dem Maixduino steht eine kostengünstige Platine zur Verfügung, die bei der Mobilisierung von Algorithmen der künstlichen Intelligenz hilft. Dieser Artikel zeigt die Möglichkeiten zur Programmierung des Einplatinencomputers auf.

Algorithmen in der Java-Praxis: Sortier- und Suchalgorithmen – ein Überblick

Sortier- und Suchalgorithmen gehören zu den Basisalgorithmen und sind in vielen Klassenbibliotheken implementiert. Muss man sehr umfassende Datenbestände sortieren oder in diesen suchen, spielt die Vorgehensweise aus Gründen der Performance eine wichtige Rolle. Parallel Computing kann das Sortieren beschleunigen. Auch diese Verfahren basieren auf den Basisverfahren. Es gibt also genügend Gründe, diesen auf den Grund zu gehen.

Texte erstellen und aufbereiten mit Python und Sphinx

Das aus dem Umfeld von Python stammende Auszeichnungsformat reStructuredText wird meist verwendet, um Dokumentation für Python-Quellcode bzw. entsprechende Projekte zu erzeugen. Darauf muss sich der Einsatz aber nicht beschränken. Mit dem Werkzeug Sphinx lassen sich beliebige Texte für vielfache Verwendungen formatieren.

Algorithmen in der Java-Praxis: Sortier- und Suchalgorithmen

Sortier- und Suchalgorithmen gehören zu den Basisalgorithmen und sind in vielen Klassenbibliotheken implementiert. Muss man sehr umfassende Datenbestände sortieren oder in diesen suchen, spielt die Vorgehensweise aus Gründen der Performance eine wichtige Rolle. Parallel Computing kann das Sortieren beschleunigen. Auch diese Verfahren basieren auf den Basisverfahren. Es gibt also genügend Gründe, diesen auf den Grund zu gehen.

Eine App, sie alle zu knechten? Trade-offs und Technologien hinter Progressive Web Apps

Progressive Web Apps werden allenthalben als die einzig wahre Lösung, als die Apps der Zukunft angepriesen und manche Entscheider und Entwickler sind versucht, native Apps rundheraus als angestaubte Brückentechnologie abzutun. Ob es für ein Unternehmen aber empfehlenswert ist, von nativen Apps komplett zu PWAs zu wechseln, hängt von vielen verschiedenen Faktoren ab, die genauerer Betrachtung bedürfen. Eine Entscheidungshilfe aus der Vogelperspektive.

Offline First ist das neue Mobile First: PWAs offlinefähig machen

Webapplikationen, die sich auf den unterschiedlichen Systemen verhalten wie native Applikationen: Das ist seit langer Zeit ein viel diskutiertes Thema. Mit dem Aufkommen der Progressive Web Apps (PWAs) ist dieses Ziel in greifbare Nähe gerückt. Das Ziel einer PWA ist es, dass sie auf jeder denkbaren Plattform funktioniert. Der Funktionsumfang der PWA wächst mit den technischen Möglichkeiten des Browsers, auf dem sie ausgeführt wird. So erscheint die PWA auf der einen Seite in einem älteren Browser als einfache Webapplikation und nutzt auf der anderen Seite die Schnittstellen eines modernen Browsers, lässt sich dort installieren und bietet zahlreiche weitere Features wie beispielsweise Pushnachrichten oder Offlinefähigkeit. Mit Letzterem, also der Offlinefähigkeit von Webapplikationen, werden wir uns im Folgenden etwas näher beschäftigen. Sie erfahren, wie Sie Ihre Applikation offlinefähig machen können, was Sie dabei beachten müssen und warum dafür ein Umdenken erforderlich ist.

Rekordverdächtig strukturiert: Ein Blick auf JEP 359: Java Records

Datenklassen, also Java-Klassen, deren einziger Zweck darin besteht, Daten zu halten und diese über Getter und Setter zugänglich zu machen, gehören in vielen Softwareprojekten zu den größten Sammelstellen von Boilerplate-Code. Für jede neue Klasse jeweils Konstruktoren, die Methoden equals, hashCode und toString und für jedes Feld noch einen Getter und einen Setter zu erstellen, ist für viele Entwickler eine verhasste Zeremonie geworden – sofern sie nicht direkt Bibliotheken wie Lombok einsetzen, um dieser zu entgehen. JEP 359 soll Abhilfe schaffen.

Java – die Vierzehnte: Die Neuerungen der aktuellen Version auf einen Blick

„Languages must evolve, or they risk becoming irrelevant“, sagte Brian Goetz (Oracle) im November 2019 während seiner Präsentation „Java Language Futures“ bei der Devoxx in Belgien. Er ist als Java Language Architect maßgeblich daran beteiligt, dass Java trotz seiner 25 Jahre noch lange nicht zum alten Eisen gehört. In diesem Artikel werfen wir einen Blick auf die Neuerungen des JDK 14.

Migration nach AWS: Going Serverless

Im dritten Teil dieser Serie haben wir unsere monolithische Anwendung durch die Zerlegung in verteilte Microservices wartbarer gemacht. Das ermöglicht es uns, diese unabhängig voneinander zu skalieren. Der Einsatz von verwalteten Services wie dem Application Load Balancer (ALB) [1], dem Amazon Relational Database Service (RDS) [2], Amazon ElastiCache [3] und Containern, die in AWS Fargate [4] laufen, hat uns bereits erhebliche Vorteile in Bezug auf den Betrieb, die Wartung und die Skalierbarkeit der Anwendung gebracht. Wir haben ebenfalls aufgezeigt, wie durch die Verwendung von asynchroner Kommunikation zwischen den einzelnen Microservices die Ausfallsicherheit erhöht werden kann.