Xamarin.Forms: Welche NuGet Pakete verwende ich?

In diesem Beitrag möchte ich gerne aufzeigen, welche NuGet Pakete bei mir zur Grundausstattung gehören, wenn ich eine neue Xamarin.Forms App erstelle. Ich kann hier natürlich nicht auf alle Pakete eingehen, da diese von Projekt zu Projekt unterschiedlich sind, aber trotzdem gibt es eine handvoll von Paketen, welche ich euch natürlich nicht vorenthalten möchte. Bevor es losgeht, sei noch angemerkt, dass dies natürlich eine subjektive Auflistung ist und auch nicht für jeden in Frage kommt.

Xamarin.Forms     Xamarin.Forms

Dies sollte logisch sein, dass bei einer Xamarin.Forms App das Xamarin.Forms Paket zum Einsatz kommt. Dies ist notwendig, damit die Abstraktion der nativen Controls in eine Zwischenschicht funktioniert und wir unsere UI bequem und einfach in XAML in einer .NET Standard Library einmalig für alle Plattformen schreiben können.

Xamarin.Forms.Visual.Material     Xamarin.Forms.Visual.Material

Mit der Veröffentlichung von Xamarin.Forms 3.6 gehört das Xamarin.Forms.Visual.Material Package ebenfalls zur Grundausstattung. Wie der Name bereits vermuten lässt, ermöglicht dieses Package eure App im Material-Design zu stylen ohne Code-Anpassungen. Einfach das Package hinzufügen und initialisieren. Anschließend z.B. auf einem Control oder der gesamten Page Visual="Material" setzen und schon erstrahlt eure App im neuen Glanz.

Xamarin.Essentials     Xamarin.Essentialst

Das Paket Xamarin.Essentials stellt Entwicklern plattformübergreifende APIs für ihre mobilen Anwendungen bereit. Hierbei steht eine einzelne plattformübergreifende API zur Verfügung, welche mit jeder Xamarin.Forms-, iOS-, Android- und UWP-Anwendung kompatibel ist, auf die über freigegebenen Code zugegriffen werden kann, unabhängig davon, wie die Benutzeroberfläche erstellt wird. Beispielsweise stelle ich verschiedene Links in meiner About-Page zur Verfügung oder die Möglichkeit zum Senden einer eMail. Dies lässt sich meist mit nur einer Zeile und den Xamarin.Essentials für alle Plattformen erledigen.

AppCenter     Microsoft.AppCenter

Ich habe ja schon in verschiedenen Beiträgen hier in meinem Blog das AppCenter vorgestellt. Dabei handelt es sich um eine Sammlung von Diensten, welche zum Bauen, Verteilen und Monitoren von Apps dient. Dazu kommt dann noch die Möglichkeit Push-Benachrichtigungen zu senden oder aber auch eine Authentifizierung über ein Azure Active Directory durchzuführen. Der Vorteil hierbei ist, dass meist nur eine Zeile Code notwendig ist, um die einzelnen Features in die eigene App zu integrieren.

Newtonsoft.JSON     Newtonsoft.Json

Sofern man mit JSON-APIs arbeitet oder aber auch Daten lokal abspeichern möchte, führt eigentlich kein Weg an Newtonsoft.JSON vorbei. Dieses Package ermöglicht das einfache Serialisieren und Deserialisieren von Objekten in Strings, um diese z.B. an eine API zu senden oder eben von einer API zu empfangen.

Unity     Unity

Da wir uns während der Entwicklung Dependency Injection nutzen wollen, benötigen wir noch einen Container. Für meine Bedürfnisse hat sich Unity hier als optimal herauskristallisiert. Die Packages sind sehr schlank und bieten alle relevanten Features, um Dependency Injection zu nutzen.

Fazit

Dies ist eine Auswahl an NuGet-Paketen, welche ich eigentlich in all meinen App-Projekten verwende. Je nach App kommen dann natürlich noch weitere Pakete hinzu, aber hierzu wird es nochmal ein separaten Beitrag geben, wo ich dann ein paar weitere Pakete vorstellen werde.

Unit Testing einer Xamarin.Forms App Lottie-Animationen bearbeiten Material Icons für alle Lebenslagen