Unit Testing einer Xamarin.Forms App
In diesem Beitrag möchte ich euch zeigen, wie ihr in eure bestehende Xamarin.Forms App Unit Tests hinzufügen könnt. Damit habt ihr die Möglichkeit die Businesslogik durch zahlreiche Tests zu validieren und so frühzeitig Fehler in eurem Code zu finden. Ausgangslage bildet die kleine App MyAwesomeApp, welche einen Logik-Mechanismus bereitstellt. Nach der Eingabe von Nutzernamen und Passwort kann man auf den Login-Button klicken und gelangt entweder zur Hauptseite oder bleibt auf der Login-Seite.
Raspberry Pi 400 einrichten
Der Raspberry Pi war ja schon das eine oder andere Mal hier in meinem Blog ein Thema. Bei einem Raspberry Pi handelt es sich um einen Einplatinencomputer, welcher für einen günstigen Preis angeboten wird und daher gerade für Bastler sehr interessant ist. Im vergangenen Herbst wurde nun mit dem Raspberry Pi 400 eine neue Variante vorgestellt. Dabei handelt es sich um ein Raspberry Pi Model 4, welches in einem Tastaturgehäuse eingebaut wurde. Dadurch ist der Aufbau vergleichbar mit den klassischen Heimcomputern Atari 800, C64 oder Amiga 500. In diesem Beitrag möchte ich jetzt dieses Device auspacken und die Einrichtung abschließen.
Erstellen einer neuen ASP.NET Core Blazor App
Ich beschäftige mich ja viel mit der Cross-Plattform-Entwicklung mit der Hilfe von Xamarin.Forms. Hierbei kommt natürlich C# als Programmiersprache zum Einsatz. Nun hat Microsoft bereits vor einiger Zeit ASP.NET Core Blazor vorgestellt und ich möchte in diesem Beitrag eine kleine Einführung in das Thema geben und euch gemeinsam mit euch eine erste Blazor-Anwendung schreiben.
StatusBar unter Android, iOS und UWP einfärben
Die drei großen Plattformen verfügen jeweils über eine StatusBar
, welche man je nach der eigenen App einfärben möchte. Leider ist dies zum jetzigen Zeitpunkt nicht im plattformunabhängigen Code möglich, daher muss dies tatsächlich auf jeder Plattform implementiert werden. In diesem Beitrag möchte ich euch nun für jede Plattform zeigen, wie man die StatusBar
entsprechend einfärben kann.
Apple AirTags – Nie wieder etwas kostbares verlieren
Am 20. April 2021 fand das Frühlings-Event von Apple statt. Neben der Vorstellung eines neuen iMacs und der obligatorischen Erneuerung des iPad Pro, wurden auch die bereits seit langem erwarteten AirTags vorgestellt. Bei AirTags handelt es sich um leine runde Chips, welche dabei helfen sollen, Gegenstände wiederzufinden, welche man nicht mehr auffinden kann. Die Kommunikation findet dabei mit der Hilfe von Bluetooth LE und der Ultrabreitband-Technologie (UWB) statt welche Apple in Form das U1-Chips ab dem iPhone 11 unterstützt.
Auf plattformspezifische APIs in einer Xamarin.Forms-App zugreifen
Der Ansatz von Xamarin.Forms besteht darin, dass man fast die gesamte Anwendung nur einmal schreiben muss und diese App dann auf den verschiedenen mobilen Betriebssysteme wie Android und iOS zur Verfügung stehen. Dies bedeutet, dass man die meiste Zeit keinen plattformspezifischen Code schreiben müssen. Dies war jedoch nicht immer der Fall, da gerade zu Beginn der Xamarin.Forms-Entwicklung viel plattformspezifischer Code geschrieben werden musste, wenn man beispielsweise auf die Sensoren des Geräts zugreifen wollte. Aus diesem Grund gab es Plugins für Xamarin.Forms, die in den App-Projekten installiert werden können, um einen Wrapper für die plattformspezifischen APIs und die entsprechende Implementierung auf jeder Plattform zu erhalten. Bereits 2018 veröffentlichte Microsoft Xamarin.Essentials, ein NuGet-Paket, das jetzt Teil der Xamarin.Forms Templates ist, um den Zugriff auf viele plattformspezifische APIs zu ermöglichen, sodass man einfach über den plattformunabhängigen Code darauf zugreifen kann.
Animationen in Xamarin.Forms mit Lottie
Vor ein paar Jahren habe ich bereits Lottie hier im Blog vorgestellt. Da sich in der vergangen Zeit ein wenig was im Handling geändert hat, werde ich in diesem Beitrag nun zeigen, wie ihr Animationen mit Lottie in eure Xamarin.Forms Apps integrieren könnt. Zunächst ein paar Worte zu Lottie. Dabei handelt es sich um eine Library für Android, iOS, Web und Windows, welche die Möglichkeit bietet Animationen, welche mit Adobe After Effects erstellt und als JSON-Datei abgespeichert wurden nativ auf den mobilen Endgeräten und im Web rendern kann. Entwickelt wir Lottie dabei von der Firma AirBnB und steht kostenfrei zur Verfügung.
Die Ausgangslage bildet eine leere Xamarin.Forms App. Als nächstes stellen wir sicher, dass alle NuGet-Pakete aktualisiert sind.
Rekursive Funktionen in C#, Python und Racket
Wenn ich an mein Informatik-Studium zurück denke, dann kommen mir auch rekursive Funktionen in den Sinn. Bereits in den ersten Vorlesungen und Übungen mussten wir verschiedene Funktionen als rekursive Funktionen in der Sprache Racket umsetzen. In diesem Beitrag möchte ich euch nun einige „Standard“-Funktionen zeigen, welche man sicherlich in jedem Informatik-Studium schreiben muss. Dabei werde ich neben C# diese auch in Python schreibe. Zunächst wollen wir aber die Frage beantworten, was eigentlich eine rekursive Funktion ist. Kurz gesagt, ist eine Funktion rekursiv, wenn sie sich selbst aufruft. Wir finden also im Rumpf der Funktion einen Aufruf derselben Funktion.
Man benutzt eine rekursive Funktion zum Beispiele gerne, um mathematische Funktionen abzubilden. So hat sicherlich jeder schon einmal von der Fakultät gehört. Diese Funktion multipliziert alle natürlichen Zahlen (ohne Null), welche kleiner oder gleich der übergebenen Zahl ist. So ist 5! = 5 * 4 * 3 * 2 * 1 oder aber 5! = 5 * 4! und so sehen wir hier bereits eine Rekursion.
Neuer Bereich: Archiv
Dem einen oder anderen wird es sicherlich bekannt sein, dass ich früher auf tsjdev.de gebloggt und über meine App-Projekte berichtet habe. Mit meinem Umzug nach Pforzheim habe ich dann das Bloggen etwas schleifen lassen, bevor ich unter tsjdev-apps.de dann meinen neuen Blog ins Leben gerufen habe. Nun habe ich die letzten Tagen etwas nachgedacht und mir überlegt, dass ich den Inhalt von tsjdev.de nicht einfach löschen, sondern weiterhin zur Verfügung stellen möchte, auch wenn viele Dinge heutzutage anders gemacht werden. Daher habe ich nun den gesamten Content genommen und stelle diesen nun unter archive.tsjdev-apps.de zur Verfügung.
Windows Sandbox zum Testen von Software
Es kommt vor, dass man zum Beispiel Software einmal testen möchte, ohne Änderungen an seinem eigenen Betriebssystem vornehmen zu müssen. Oder man bekommt eine verdächtige eMail mit Anhang, welchen man sich gefahrenlos anschauen möchte. In diesem Beitrag möchte ich euch nun Schritt für Schritt zeigen, wie ihr die Windows Sandbox genau für diese Szenarien auf eurem eigenen Rechner in wenigen Schritten einrichten könnt.
NuGet: Xamarin Community Toolkit
Der eine oder andere hat bestimmt schon von der Ankündigung im Rahmen der Microsoft Build-Konferenz 2020 gehört, dass mit Xamarin.Forms 5.0 die letzte Version von Xamarin.Forms erscheinen wird und im November 2021 mit der Veröffentlichung von .NET 6 als .NET MAUI fortgeführt wird. Seit einiger Zeit wurde nun Xamarin.Forms 5.0 veröffentlicht. Doch was passiert mit den Features, welche es nicht mehr in einen stabilen Zustand gebracht haben? Hier kommt das Xamarin Community Toolkit ins Spiel, welches ich euch in diesem Beitrag näher vorstellen möchte.
Replatforming: Von Xamarin Native zu Xamarin.Forms
Normalerweise entscheidet man sich am Anfang der Entwicklung einer neuen App, ob man auf Xamarin Native oder Xamarin.Forms setzt. Im Laufe der Zeit kann sich die Meinung oder auch der Rahmen ändern, so dass man seine Entscheidung anders treffen würde. In diesem Beitrag möchte ich kurz aufzeigen, wie man eine bestehen native Xamarin App auf Xamarin.Forms portieren kann. Dieser Artikel ist bereits in englischer Sprache auf Medium veröffentlicht worden.