Geschrieben von Karsten Sitterberg
am 27. Dezember 2019
Angular CLI bietet eine komfortable Abstraktion über diverse Werkzeuge, um ein Angular Projekt zu erstellen und zu bauen.
Typischerweise kommt dabei Webpack zum Einsatz.
Im Kontext von großen, oft dem Vorbild Google folgend als Monorepo strukturierten Anwendungen, entsteht der Bedarf an einem sprachübergreifenden Build-Werkzeug.
Ein solches Werkzeug ist das von Google entwickelte und als OpenSource bereitgestellte Bazel.
Wir beschäftigen uns in diesem Beitrag damit, was Bazel im Kontext von Angular CLI bedeutet.
Geschrieben von Thomas Kruse
am 2. Dezember 2019
Bestimmte Fragestellungen begegnen uns dabei immer wieder, da in der Regel eine bestehende Systemlandschaft existiert, und nun Angular Anwendungen in diese integriert werden sollen.
Geschrieben von Thomas Kruse
am 7. November 2019
Progressive Web Applications als Plattform der Zukunft war das Thema des Vortrages von Karsten Sitterberg auf der W-JAX 2019 in München.
Bei dem Vortrag wurden die verschiedenen Möglichkeiten, die sich durch aktuelle HTML5 APIs wie Web-App Manifest, Service-Worker und Web-Push ergeben anhand praktischer Beispiele demonstriert.
Neben den einzelnen APIs wurde am Beispiel einer Angular Anwendung demonstriert, wie die Unterstützung auf den aktuellen mobilen und Desktop Plattformen umgesetzt ist.
Bei Angular ist die Umsetzung von offline-fähigen Anwendungen dabei sehr gut bereits durch das Framework unterstützt, so dass ein Entwickler relativ einfach eine PWA umsetzen kann.
Geschrieben von Thomas Kruse
am 6. November 2019
Im Backend hat sich der Architekturstil "Microservices" für viele Anwendungsbereiche durchgesetzt.
Dabei stellt sich relativ schnell die Frage: Wie geht man mit dem Thema Frontend um?
In dem Vortrag "Frontend Architektur für Microservices" gab Thomas Kruse auf der W-JAX 2019 in München einen Überblick zu verschiedenen Herangehensweisen.
Der Vortrag zeigt die speziellen Herausforderungen, die sich aus einer guten Benutzbarkeit von Frontends für Microservices ergeben.
Durch aktuelle Entwicklungen im Bereich von WebComponents und modularer SPA Frameworks ergeben sich zusätzliche Architekturoptionen, die in dem Vortrag bewertet wurden.
Geschrieben von Thomas Kruse
am 4. November 2019
Die Testpyramide ist sicherlich jedem vertraut.
Welche Unterschiede es neben einer theoretischen Einordnung gibt, zeigt Karsten Sitterberg in seinem Artikl "Tests an die Front".
In dem Beitrag im PHP Magazin liegt der Fokus auf Test von Webanwendungen.
Neben klassischen Architekturen mit serverseitig gerenderten Webeiten werden JavaScript Clients als Single Page Applications betrachtet.
Geschrieben von Thomas Kruse
am 30. Oktober 2019
Bei dem Meetup Digital Innovation Ruhr behandelte Thomas Kruse in seinem Vortrag "Frontend Architektur für Microservices" verschiedene Architektur Optionen, um mit den Herausforderungen des Frontends bei einer Microservice Architektur umzugehen.
Für den Vortrag wurden die Erfahrungen aus verschiedenen Projekten in einem zeitlichen und technologischen Kontext eingeordnet und liefern damit Entscheidungshilfen für Architekten, die sich mit dem Thema Frontend im Microservice Kontext befassen.
Ein besonderes Augenmerk wurde dabei auf den Systemschnitt aus der Perspektive des Frontends und des Nutzers gelegt, der in der Regel eine integrierte Oberfläche ohne Brüche im Prozess erwartet.
Dank aktueller Entwicklungen eignen sich inzwischen Webcomponents für bestimmte Aufgabenstellungen und wurden mit einem Beispiel auf Basis von Angular Elements praktisch demonstriert.
Geschrieben von Thomas Kruse
am 28. Oktober 2019
Eine Webanwendung läuft - und das ist gerade der große Benefit - nicht aussschließlich in einem Webbrowser auf einem Desktop Gerät.
Mit zunehmend anspruchsvolleren Anwendungen müssen diese Rahmenbedingungen von Plattform und Displayformat bei Tests mit berücksichtigt werden.
Für Anwender zähle nämlich schon lange nicht mehr rein funktionale Gesichtspunkte, sondern auch nichtfunktionale Anforderungen wie Geschwindigkeit und eine gute Bedienbarkeit spielen eine Rolle.
In dem vierten Teil seiner Artikelserie rund um Testing von Web Anwendungen betrachtet Karsten Sitterberg nun spezielle Szenarien:
Dabei werden Fragen beantwortet, die sich um das Testen von HTML5 Anwendungen, Web-Anwendungen auf mobilen Endgräten beantwortet.
Zudem wird erklärt, wie mit Devices in der Cloud getestet werden kann, wie sich eine Anwendung auf einer speziellen Plattform und dem zugehörigen Display-Format verhält.
Geschrieben von Thomas Kruse
am 25. September 2019
In der Softwareentwicklung sollte es selbstverständlich sein, das Verhalten einer Anwendung stets basierend auf der fachlichen Spezifikation zu implementieren. Um sicherzustellen zu können, dass die fachlichen Vorganben eingehalten werden, werden Integrations- und auch Ende-zu-Ende-Tests (E2E-Tests) geschrieben.
Aufgrund ihrer jeweiligen Komplexität befinden sich die E2E-Tests in der Testpyramide über den Integrationstests, diese befinden sich über den Unit-Tests.
Somit sollten sowohl Integrations- als auch E2E-Tests einen geringeren Anteil am geschriebenen Testcode haben als Unit-Tests.
Im dritten Teil seiner Artikelserie hat Karsten Sitterberg beschrieben, mit welchem Vorgehen und welchen Tools bei der Erstellung eben solcher E2E- und Intergations-Tests vorgegangen werden kann.
Geschrieben von Thomas Kruse
am 30. August 2019
Bei Web Anwendungen stellt sich die Frage nach einer guten Testbarkeit und auch nach einer guten Vorgehensweise bei Web Tests.
Als grundlegende Metrik, um Aufwand und Menge der Tests abzuschätzen, hat sich die Testpyramide eingebürgert.
Auf der untersten Ebene befinden sich die Unit-Tests, die sich durch eine eher geringe Komplexität auszeichnen, dafür jedoch den Großteil der Tests ausmachen.
Wie das Vorgehen bei der Erstellung von Unit-Tests aussehen kann, und welche Libraries und Frameworks bei Unit Tests für Webanwendungen helfen können, hat Karsten Sitterberg im zweiten Teil seiner Artikelserie zum Testen von Browser Anwendungen beschrieben.
Geschrieben von Thomas Kruse
am 1. August 2019
Für manche Testszenarien muss auch ein Dateidownload mit getestet werden, z.B. um die resultierende Datei auf Korrektheit zu prüfen.
Für Ende-zu-Ende Tests gibt es diverse Werkzeuge, eins davon ist das von Google entwickelte Puppeteer.
Mit Puppeteer lässt sich aktuell der Chrome Browser fernsteuern, eine Erweiterung auf Mozilla Firefox ist ebenfalls in Arbeit.
In diesem Beitrag wird gezeigt, wie mit Docker und Puppeteer ein entsprechendes Testszenario umgesetzt werden kann.
Geschrieben von Thomas Kruse
am 24. Juli 2019
Seitdem Frameworks wie Angular und React zusammen mit TypeScript die Möglichkeit eröffnen, komplexe Frontend Anwendungen zu erstellen, kommt auch die Frage auf, wie diese langfristig wartbar und erweiterbar konzipiert werden können.
Als Antwort auf diese Frage liefert Karsten Sitterberg die bereits bei Backend-Anwendungen bewährte Herangehensweise des Test-Driven-Development (TDD) für Browser Anwendungen.
Im ersten Teil seiner Artikel Serie führt Karsten Sitterberg die grundlegenden Begriffe und Motivation für Tests von Webanwendungen ein und liefert einen Fahrplan für eine optimale Entwicklung einer gut getesteten Anwendung.
Dabei werden sowohl die Bedürfnisse der Entwickler klassischer (MVC) Webanwendungen, als auch von Single Page Application (SPA) berücksichtigt.
Geschrieben von Thomas Kruse
am 11. Juli 2019
NativeScript vereinfacht die plattformübergreifende Entwicklung nativer Mobile-Apps für iOS und Android.
Es ermöglicht mit Angular und Vue.js die Verwendung unterschiedlicher Frameworks.
Außerdem wird neben JavaScript auch TypeScript als Programmiersprache unterstützt, das mit der Zeit immer beliebter wird.
Bei den stackoverflow Developer Survey Results von 2019 wurde TypeScript bei den beliebtesten Programmiersprache bereits auf Platz 3 gewählt.
Mit dem NativeScript CLI bietet NativeScript zudem ein mächtiges und zugleich einfaches Tool zur Automatisierung des Builds mittels einer CI-Pipeline.
In diesem Artikel beschreiben wir die Provisionierung eines macOS-Systems für NativeScript.
In folgenden Artikeln schauen wir uns noch an, wie wir das System als Runner in Gitlab einbinden und zum Upload von NativeScript-Apps zum Apple App Store nutzen können.