Alexa-SkillRequest verifizieren
Bisher habe ich ja bereits den einen oder anderen Alexa-Skill veröffentlicht und bisher sind die Funktionen alle auf AWS, also in der Amazon Cloud, gehostet. Aber es gibt natürlich auch andere Cloud-Anbieter, wie zum Beispiel Microsoft Azure und da bei einem Alexa-Request auch nur JSON-Dateien ausgetauscht werden, ist es auch relativ einfach einen Skill bei einem anderen Cloud-Anbieter zu hosten. Amazon möchte jedoch, dass jeder Request dahin gehend verifiziert wird, dass dieser wirklich von Alexa stammt und ich möchte in diesem Beitrag zeigen, wie man dies innerhalb einer Azure Function mit der Hilfe des NuGet-Packages Alexa.NET und ein wenig Code erledigt.
What3Words Sample-App
Im Rahmen der Digitalen Woche in Kiel bin ich zum ersten Mal mit dem Dienst What3Words in Kontakt geraten. Dabei handelt es sich um einen Dienst, welche die Weltkarte in kleine Quadrate unterteilt und dann jedem Quadrat drei Begriffe zuordnet. Ziel soll es sein, dass sich diese Begriffe leichter merken lassen, da diese nicht zusammenhängen (wie zum Beispiel welche.tischtennis.bekannte), als eine Adresse inkl. Postleitzahl. Ich habe mich dann näher mit der API dieses Dienstes befasst und einen kleinen C#-Wrapper geschrieben, welcher die Basis-Funktionalitäten bereits abgedeckt.
Einen Tweet aus C# veröffentlichen
Immer wieder stößt man auf der Plattform Twitter auf Bots. Dabei handelt es sich um Twitter-Konten, welche nicht durch Menschen betrieben und mit Inhalt gefüllt werden, sondern um Computer-Programme, welche zum Beispiel in regelmäßigen Abständen automatisiert das aktuelle Wetter ausgibt oder die Aktienkurse. Ich habe mir mal angeschaut mit welchem Aufwand man selbst aus seinem C#-Programm einen Tweet absetzen kann und dies ist wirklich sehr simpel und in diesem Beitrag zeigen ich euch, wie das geht.
Xamarin.Essentials – Plattformübergreifende APIs
Mit Xamarin.Forms versucht man ja auf einer einzigen Code-Basis sowohl die Business-Logik als auch das Layout abzubilden. Dies funktioniert in weiten Teilen auch recht gut, aber trotzdem gelangt man immer wieder an den Punkt, wo man plattformspezifischen Code benötigt. Ich denke hier zum Beispiel an das Abrufen der aktuellen Position des Nutzers oder das Versenden einer SMS/eMail. Es gibt hier eine Vielzahl von Features, welche plattformspezifisch umgesetzt werden müssten. Glücklicherweise hat die Community hier zahlreiche NuGet-Packages bereit gestellt, welche man in seine Xamarin.Forms App integrieren kann. Nun hat man sich jedoch hingesetzt und diese Funktionalitäten alle in ein großes NuGet-Package zusammengefasst, welches auf den Namen Xamarin.Essentials hört und zur Zeit in einer Preview-Version vorliegt.
XAML Standard ausprobiert
Auf der Build Conference im Jahre 2017 in Seattle hat Microsoft XAML Standard angekündigt. Aktuell ist es nämlich so, dass sich die Properties und auch Controls vom Naming her zwischen UWP, WPF und auch Xamarin.Forms zum Teil stark unterscheiden. Hat man zum Beispiel bereits eine bestehende UWP-App geschrieben, kann man den verwendeten XAML Code nicht direkt in eine Xamarin.Forms-App übernehmen, sondern muss hier umständlich ein paar Anpassungen vornehmen. Deshalb versucht Microsoft nun mit XAML Standard entsprechend einen einzigen Dialekt zu entwickeln, welche für alle Apps und Anwendungen funktioniert und eine schnelle Portierung möglich macht. In diesem Beitrag möchte ich einmal den aktuellen Stand von XAML Standard in einer Xamarin.Forms App ausprobieren und schauen, ob man bestehenden Code wirklich so einfach portieren kann.
Lokales NuGet Package in Projekt integrieren
Manchmal kommt es vor, dass einem NuGet Package als .nupkg
Datei vorliegen, welche man gerne in sein bestehendes Projekt integrieren möchte. Dies kann zum Beispiel dann der Fall sein, wenn man seine eigenen NuGet Packages erstellt, aber diese nicht veröffentlichen möchte oder bei Preview-Versionen, welche nur ausgewählte Personen testen sollen. In diesem Beitrag möchte ich nun zwei verschiedene Wege aufzeigen, wie man mit sehr wenig Aufwand lokale .nupkg
Dateien in sein bestehendes Projekt integrieren kann. Dabei werde ich zwei verschiedene Ansätze aufzeigen.
Xamarin.Forms: TextToSpeech
Ich hatte es ja bereits in meinem Beitrag zur Vorstellung des Projekts XFWeather angekündigt und hier ist nun auch schon der erste Beitrag. Ich möchte nämlich gerne hilfreiche NuGet-Packages vorstellen, welche einem plattformspezifische Implementierungen abnehmen sollen. Dies hat dann den großen Vorteil, dass man noch mehr Code über die verschiedene Plattformen hinweg teilen kann und den größten Anteil im portablen Teil des Projekts abbilden kann. In diesem Beitrag ich mich gerne mit dem Thema TextToSpeech befassen.
Meine NuGet-Packages
Nachdem ich immer wieder Dienste für Demos verwendet habe, habe ich beschlossen für diese einfach ein kleines NuGet-Package zu erstellen. Dieses kann dann bequem in ein neues App-Projekt integriert und direkt verwendet werden. Dieser Beitrag dient nun als Sammlung meiner bisher veröffentlichten NuGet-Packages.
LittleHelpers für nahezu jede App
Es kommt immer wieder vor, dass man Code von einem bestehenden Projekt in ein neues Softwareprojekt übernimmt. Dann stellt man sich meist die Frage, wo befindet sich der aktuelle Code und anschließend müssen die Namespaces für das neue Projekt angepasst werden. Daher habe ich begonnen wiederkehrende Methoden in einem eigenen Repository zu sammeln und als NuGet-Package zur Verfügung zu stellen. So wurden die LittleHelpers geboren.
NuGet: what3words
In diesem Beitrag möchte ich einen weiteren Wrapper vorstellen, welche ich vor kurzem über NuGet zur Verfügung gestellt haben. Es handelt sich dieses Mal um einen C#-Wrapper für den Dienst what3words. Hierbei handelt es sich um einen Dienst, welcher eine geographische Koordinate in drei Wörter kodiert und natürlich auch wieder anders herum. So findet man die Freiheitsstatue in NewYork unter den Begriffen dankt.anlegen.kinosaal.
NuGet: RandomUserSharp
Vielen wird sicherlich ein „Lorem Ipsum“-Generator etwas sagen, welcher Dummy-Text beliebiger Länge produziert, welchen man zum Beispiel für Layout-Tests oder ähnliches in seinen Apps verwenden kann. Der Dienst RandomUser.me bietet ein ähnliches Tool, allerdings werden hier zufällige Nutzerdaten generiert und ausgegeben. Hierzu zählen zum Beispiel ein Profilbild, ein Login oder auch eine eMail-Adresse. Auch diese Daten lassen sich wunderbar zum Testen eines Layouts oder zum Demonstrieren von neuen Entwickler-Techniken als Demo-Content verwenden.
NuGet: OpenWeatherMapSharp
Im Rahmen einiger Vorträge habe ich als kleines App-Beispiel eine Wetter-App mit der Hilfe der kostenlosen OpenWeatherMap-Api entwickelt. Ich habe mich jetzt dazu entschieden einen einen Wrapper für genau diesen Dienst zu schreiben. Entwickelt wurde der Wrapper auf Basis von .NET Standard 1.1 und ist somit auf zahlreichen Plattformen verfügbar. Hierzu zählen z.B. Xamarin, UWP, Windows 8+ oder auch noch Windows Phone 8.1.