Wie ein Request und ein Response eines Amazon Alexa Skills aufgebaut ist, hat Amazon schon sehr schön auf dieser Seite beschrieben:
https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/alexa-skills-kit-interface-reference
Darum gehe ich lieber auf die Besonderheiten ein.
Im letzten Beitrag habe ich die Architektur eines Amazon Alexa Skills vorgestellt. Heute geht es um den Workflow eines Skills. Ausgangspunkt des Beitrags ist ein sehr einfaches Beispiel:
Du willst also eine App für deinen Amazon Echo programmieren – hast aber nach 3 Stunden noch nichts zu Stande gebracht? Da geht es dir genauso wie mir^^ Keine Ahnung was IT-Firmen wie IBM, Google, Apple oder eben Amazon geritten hat, aber ich habe noch kein Tutorial von denen gefunden, wo ich auf Anhieb gesagt hätte: „Jo, das ist es! Das ist geil:) Lass uns XY darauf programmieren.“
Nichts, Nada, Niente, Nothing – einfach nix und das ist traurig. Es reicht heutzutage einfach nicht mehr aus irgendwelche Code-Beispiele über den Zaun auf Github zu werfen und zu hoffen, dass es die Communtiy irgendwie richtet. Es gibt zwar verrückte Softwareentwickler, aber ohne Doku und nur mit Try&Error wird das eben nichts. Aber genug gejammert – hier kommt die Rettung:) In diesem Beitrag geht es um Amazon Alexa Skills und die grundlegende Architektur.
(mehr …)
Der letzte Beitrag meiner Blog-Serie „JavaFX mit FXML programmieren“ umfasst das Thema DataBinding. Als DataBinding bezeichnet man die Verbindung zweier Variablen. Dabei kann die Verbindung unidirektional (in eine Richtung) oder bidirektional (in beider Richtungen) sein.
Allgemein werden DataBindings typischerweise im Viewmodel verwendet und in Form von Property-Variablen realisiert. Adam Bien hat dafür ein sehr kurzes und einfaches Tutorial geschrieben:
(mehr …)
Heute gibt es einen sehr kleinen Blogbeitrag von mir. In JSF speziell CDI (Contexts and Dependency Injection) gibt es die Annotation @PostConstruct. Die annotierte Methode wird nach dem Injecten der Objekte ausgeführt. Die gleiche Funktion gibt es auch in JavaFX:-) Wobei es keine Annotation gibt, sondern einen speziellen Methodennamen.
(mehr …)
Wenn man sich länger mit dem Thema JavaFX und der zugrunde liegende Anwendungsarchitektur auseinandersetzt, kommt man früher oder später zu der Frage:
Seit 2013 beschäftigte ich mich intensiv mit der App-Entwicklung für Android und iOS. Einer der lästigsten Aufgaben dabei ist das Skalieren von Bildern. Aus diesem Grund habe ich mir ein kleines Programm geschrieben, was mir diese Aufgabe abnimmt. Der Name des Programms lautet: BitmapCat
(mehr …)
Egal ob WhatsApp, Sony Playstation Network oder Twitter alle haben ihre Schwierigkeiten mit der Sicherheit. Dabei ist es sooo einfach in Java Nachrichten oder Streams zu verschlüsseln. Um nicht jedes Mal das Rad neu zu erfinden, habe ich mir eine Klasse „EasyCrypt“ geschrieben. Diese Klasse kapselt die Ver- und Entschlüsslung von Strings und Streams. Einzig die Schlüsselerzeugung und -verwaltung muss man selbst managen.
In meinem Beispiel zeige ich die Ver- und Entschlüsselung von einem String mit AES und RSA.
(mehr …)
Unglaublich, aber heute hat mich Java zum zweiten Mal in meinem Leben enttäuscht:-(
Das erste Mal könnt ihr hier nachlesen. Wie die Überschrift des Blogeintrags verrät, geht es um Strings – genauer um die String Konkatenation. Je nachdem wie man Strings in Java miteinander verbindet, gibt es einen Performanceunterschied um den Faktor 100. Was ich herraus gefunden haben, könnt ihr hier lesen:
Jeder Programmierer kennt das: Man findet im Internet tausende Beispiele für eine neue Programmiersprache/Technologie/Framework, aber wie man eine richtige Anwendung architekturkonform programmiert steht irgendwo-.-„
Mit mehreren Anläufen und viel Erfahrung kann man irgendwann mal von einer guten Architektur reden. Aber Achtung – hier kommt die ultimative Architekturvorlage für JavaFX Anwendungen. Ich zeige in diesem Blogbeitrag, wie man schnell und einfach eine JavaFX Anwendung mit dem MVC Design Pattern programmieren kann. Natürlich kann man diesen Ansatz noch weiter ausbauen, aber die grobe Richtung sollte klar werden.
(mehr …)