<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Trends Archives - Mobile USTP MKL</title>
	<atom:link href="https://mobile.fhstp.ac.at/category/trends/feed/" rel="self" type="application/rss+xml" />
	<link>https://mobile.fhstp.ac.at/category/trends/</link>
	<description>Die &#34;Mobile Forschungsgruppe&#34; der USTP, sie  sammelt hier alles zu den Themen Design, UX und Entwicklung mobiler Applikationen</description>
	<lastBuildDate>Thu, 26 Feb 2026 12:09:53 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://mobile.fhstp.ac.at/wp-content/uploads/2025/03/icon-120x120.webp</url>
	<title>Trends Archives - Mobile USTP MKL</title>
	<link>https://mobile.fhstp.ac.at/category/trends/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Projekt &#124; Timelapse Android App</title>
		<link>https://mobile.fhstp.ac.at/studium/studium-projekte/projekt-timelapse-android-app/</link>
		
		<dc:creator><![CDATA[David Grünberger]]></dc:creator>
		<pubDate>Thu, 26 Feb 2026 10:19:46 +0000</pubDate>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Dokumentation]]></category>
		<category><![CDATA[Native Development]]></category>
		<category><![CDATA[Projekte]]></category>
		<category><![CDATA[Studium]]></category>
		<category><![CDATA[Trends]]></category>
		<category><![CDATA[User Experience]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[design systems]]></category>
		<category><![CDATA[Jetpack Compose]]></category>
		<category><![CDATA[Material Design]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[Semesterprojekt]]></category>
		<guid isPermaLink="false">https://mobile.fhstp.ac.at/?p=15691</guid>

					<description><![CDATA[<p>Im Rahmen des Semesterprojekts im 3. Semester der Masterklasse Mobile habe ich die Android-App &#8220;Timelapse&#8221; entwickelt. Die Idee dahinter: Aus vielen einzelnen Momentaufnahmen wird automatisch ein visueller Zeitstrahl – als Video, das langfristige Veränderungen sichtbar macht. Egal ob Bartwachstum, Fitness-Progress oder das Wachstum einer Zimmerpflanze: Timelapse hilft dabei, diese Reise festzuhalten. Ziel des Projekts war ein alltagstauglicher MVP, der den kompletten Ablauf abdeckt: vom Erstellen <a class="read-more" href="https://mobile.fhstp.ac.at/studium/studium-projekte/projekt-timelapse-android-app/">[...]</a></p>
<p>The post <a href="https://mobile.fhstp.ac.at/studium/studium-projekte/projekt-timelapse-android-app/">Projekt | Timelapse Android App</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Im Rahmen des Semesterprojekts im 3. Semester der Masterklasse Mobile habe ich die Android-App &#8220;Timelapse&#8221; entwickelt. Die Idee dahinter: Aus vielen einzelnen Momentaufnahmen wird automatisch ein visueller Zeitstrahl – als Video, das langfristige Veränderungen sichtbar macht. Egal ob Bartwachstum, Fitness-Progress oder das Wachstum einer Zimmerpflanze: Timelapse hilft dabei, diese Reise festzuhalten. Ziel des Projekts war ein alltagstauglicher MVP, der den kompletten Ablauf abdeckt: vom Erstellen eines Projekts über tägliche Erinnerungen und eine übersichtliche Tage-Ansicht bis hin zur fertigen Video-Montage, die sich teilen oder archivieren lässt.</p>



<h2 class="wp-block-heading">Worum es in der&nbsp;App geht</h2>



<p>Im Kern funktioniert Timelapse wie ein&nbsp;visuelles&nbsp;Tagebuch:</p>



<ul class="wp-block-list">
<li>Nutzer:innen legen Projekte an (z. B. „Daily Selfie“ oder „Zimmerpflanze“).</li>



<li>Die App erinnert regelmäßig daran, neue Fotos aufzunehmen.</li>



<li>Alle Bilder werden zeitlich geordnet, mit Datum und optionalen Kommentaren gespeichert.</li>



<li>Auf einer kompakten Übersicht sieht man, wann man etwas aufgenommen hat, welche Tage besonders wichtig waren und wie sich das Projekt über Wochen und Monate entwickelt.</li>



<li>Aus dieser Sammlung erzeugt Timelapse auf Knopfdruck ein Zeitraffervideo, das die Geschichte des Projekts in wenigen Sekunden erzählt.</li>
</ul>



<h2 class="wp-block-heading">Zentrale&nbsp;Funktionen&nbsp;in&nbsp;Kürze</h2>



<ul class="wp-block-list">
<li><strong>Projektorganisation:</strong> Mehrere parallele Timelapse-Projekte mit Titel, Beschreibung und individuellen Einstellungen.</li>



<li><strong>Visuelle Timeline:</strong> Eine kombinierte Wochen- und Listenansicht zeigt, welche Tage schon dokumentiert sind und welche Lücken es noch gibt.</li>



<li><strong>Erinnerungen:</strong> Konfigurierbare Benachrichtigungen, damit die tägliche Aufnahme zur Routine wird und die Timeline nicht abreißt.</li>



<li>F<strong>avoriten &amp; Notizen:</strong> Einzelne Tage können hervorgehoben und mit kurzen Kommentaren versehen werden – etwa um Meilensteine oder besondere Momente zu markieren.</li>



<li><strong>Automatische Video-Montage:</strong> Die App erstellt aus den Bildern ein Video, berücksichtigt Ausrichtung, Datum, optionales Wasserzeichen und Kommentare und bietet Konfigurationsmöglichkeiten für Qualität oder Textstil.</li>
</ul>



<figure class="wp-block-gallery has-nested-images columns-4 wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="1080" height="2400" data-id="15763" src="https://mobile.fhstp.ac.at/wp-content/uploads/2026/02/Screenshot_20260226_122653_Timelapse.jpg" alt="" class="wp-image-15763" srcset="https://mobile.fhstp.ac.at/wp-content/uploads/2026/02/Screenshot_20260226_122653_Timelapse.jpg 1080w, https://mobile.fhstp.ac.at/wp-content/uploads/2026/02/Screenshot_20260226_122653_Timelapse-691x1536.jpg 691w, https://mobile.fhstp.ac.at/wp-content/uploads/2026/02/Screenshot_20260226_122653_Timelapse-922x2048.jpg 922w" sizes="(max-width: 1080px) 100vw, 1080px" /></figure>



<figure class="wp-block-image size-full"><img decoding="async" width="1080" height="2400" data-id="15765" src="https://mobile.fhstp.ac.at/wp-content/uploads/2026/02/Screenshot_20260226_122559_Timelapse.jpg" alt="" class="wp-image-15765" srcset="https://mobile.fhstp.ac.at/wp-content/uploads/2026/02/Screenshot_20260226_122559_Timelapse.jpg 1080w, https://mobile.fhstp.ac.at/wp-content/uploads/2026/02/Screenshot_20260226_122559_Timelapse-691x1536.jpg 691w, https://mobile.fhstp.ac.at/wp-content/uploads/2026/02/Screenshot_20260226_122559_Timelapse-922x2048.jpg 922w" sizes="(max-width: 1080px) 100vw, 1080px" /></figure>



<figure class="wp-block-image size-full"><img decoding="async" width="1080" height="2400" data-id="15764" src="https://mobile.fhstp.ac.at/wp-content/uploads/2026/02/Screenshot_20260226_122619_Timelapse.jpg" alt="" class="wp-image-15764" srcset="https://mobile.fhstp.ac.at/wp-content/uploads/2026/02/Screenshot_20260226_122619_Timelapse.jpg 1080w, https://mobile.fhstp.ac.at/wp-content/uploads/2026/02/Screenshot_20260226_122619_Timelapse-691x1536.jpg 691w, https://mobile.fhstp.ac.at/wp-content/uploads/2026/02/Screenshot_20260226_122619_Timelapse-922x2048.jpg 922w" sizes="(max-width: 1080px) 100vw, 1080px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1080" height="2400" data-id="15766" src="https://mobile.fhstp.ac.at/wp-content/uploads/2026/02/Screenshot_20260226_122700_Timelapse.jpg" alt="" class="wp-image-15766" srcset="https://mobile.fhstp.ac.at/wp-content/uploads/2026/02/Screenshot_20260226_122700_Timelapse.jpg 1080w, https://mobile.fhstp.ac.at/wp-content/uploads/2026/02/Screenshot_20260226_122700_Timelapse-691x1536.jpg 691w, https://mobile.fhstp.ac.at/wp-content/uploads/2026/02/Screenshot_20260226_122700_Timelapse-922x2048.jpg 922w" sizes="auto, (max-width: 1080px) 100vw, 1080px" /></figure>
<figcaption class="blocks-gallery-caption wp-element-caption"><strong>Abb. 1: App Screenshots</strong></figcaption></figure>



<h2 class="wp-block-heading">Technologie-Stack</h2>



<p>Die&nbsp;App ist&nbsp;als&nbsp;native&nbsp;Android-Anwendung mit Jetpack Compose&nbsp;umgesetzt und&nbsp;nutzt&nbsp;moderne&nbsp;Android-APIs sowie eine&nbsp;klare&nbsp;Schichtung&nbsp;zwischen&nbsp;UI, Logik&nbsp;und Medienverarbeitung.</p>



<ul class="wp-block-list">
<li><strong>UI: Jetpack Compose + Material 3</strong>
<ul class="wp-block-list">
<li>Alle Screens (Projektliste, Details, Dialoge, Konfiguration) sind vollständig in Compose realisiert.</li>



<li>Material-3-Komponenten wie LargeFlexibleTopAppBar, Listen, Cards und Dialoge sorgen für ein konsistentes Look &amp; Feel.</li>



<li>Ein zentrales TimelapseTheme verwaltet App-Theme (Light/Dark), Seed-Farbe und den Palette-Stil.</li>
</ul>
</li>



<li><strong>Material 3 Expressive &amp; Material You</strong>
<ul class="wp-block-list">
<li>Die App nutzt Material 3 Expressive, um eine lebendige, charakterstarke Farb- und Typografie-Sprache umzusetzen – passend zu einer App, die persönliche Veränderungen dokumentiert.</li>



<li>Über einen integrierten Color Picker wählen Nutzer:innen eine eigene Akzentfarbe.</li>



<li>Aus dieser Seed-Farbe wird mit Material You ein komplettes Farbschema generiert, das sich konsistent über die gesamte App zieht.</li>



<li>Dadurch wirkt Timelapse auf jedem Gerät persönlich, bleibt aber immer klar strukturiert und gut lesbar – unabhängig davon, ob Light- oder Dark-Mode aktiv ist.</li>
</ul>
</li>



<li><strong>Video-Montage &amp; Bildverarbeitung</strong>
<ul class="wp-block-list">
<li>Die Montage-Logik läuft in einem eigenen Modul:</li>



<li>Bilder werden anhand ihrer EXIF-Daten korrekt ausgerichtet.</li>



<li>Ein Canvas setzt die Frames zusammen, ergänzt Texte (Datum, Kommentare, Wasserzeichen) und kümmert sich um Hintergrundfarbe und Zensurflächen.</li>



<li>Ein Muxer erzeugt daraus ein MP4-Video, gesteuert über Kotlin Flows, die den Fortschritt an die UI melden.</li>



<li>So entsteht aus einer losen Sammlung von Bildern ein stimmiges Timelapse-Video, ohne dass externe Tools nötig sind.</li>
</ul>
</li>
</ul>



<h2 class="wp-block-heading">Material&nbsp;3 Expressive&nbsp;&amp; Material You im&nbsp;Einsatz</h2>



<p>Ein großer&nbsp;Fokus&nbsp;des&nbsp;Projekts lag&nbsp;auf einer&nbsp;modernen, adaptiven&nbsp;UI, die sich&nbsp;nach&nbsp;den&nbsp;Nutzer:innen richtet:</p>



<ul class="wp-block-list">
<li><strong>Dynamische Farbwelten</strong>
<ul class="wp-block-list">
<li>Durch den Seed-Color-Ansatz wirkt die App nicht wie ein statisch durchgestyltes Produkt, sondern wie ein Rahmen, der sich der jeweiligen Geschichte anpasst.</li>



<li>Projekte mit emotionalem Kontext (z. B. Schwangerschaft, Beziehungen, erste Wohnung) profitieren von den kräftigen, expressiven Paletten, die Material 3 bereitstellt.</li>
</ul>
</li>



<li><strong>Einheitliche, weiche Formsprache</strong>
<ul class="wp-block-list">
<li>Großzügige Rundungen (z. B. extra große Card-Shapes in Dialogen), expressive Typografie und bewusst eingesetzte Icons unterstützen den Tagebuch-Charakter der App.</li>



<li>Die App verzichtet auf überladene UI-Elemente und setzt auf Ruhe, Klarheit und Fokus – wichtig, wenn man sich über Monate immer wieder mit derselben Oberfläche beschäftigt.</li>
</ul>
</li>



<li><strong>Konsistentes Theming</strong>
<ul class="wp-block-list">
<li>Alle Bausteine – von Erfassungsdialogs über Erinnerungs-Settings bis hin zu Fortschrittsanzeigen bei Scans und Montage – hängen am gleichen Theme.</li>



<li>Änderungen an Theme, Palette oder Seed-Farbe greifen sofort durch, ohne dass einzelne Screens speziell angepasst werden müssen.</li>
</ul>
</li>
</ul>



<h2 class="wp-block-heading">Herausforderungen&nbsp;&amp; Learnings</h2>



<ul class="wp-block-list">
<li><strong>Balance zwischen Einfachheit und Kontrolle</strong>
<ul class="wp-block-list">
<li>Nutzer:innen sollen einerseits „einfach nur“ ein Timelapse-Video erstellen können, andererseits genug Einstellmöglichkeiten für Qualität, Text, Stabilisierung und Privatsphäre haben.</li>



<li>Ein wichtiger Lernpunkt war, die Komplexität hinter klaren Dialogen und wenigen, gut erklärten Optionen zu verstecken.</li>
</ul>
</li>



<li><strong>Stabile, angenehme Timelapse-Videos</strong>
<ul class="wp-block-list">
<li>Kleine Fehler bei Skalierung oder Matrix-Transformation führen schnell zu Sprüngen oder abgeschnittenen Bereichen – hier war viel Feintuning nötig.</li>
</ul>
</li>



<li><strong>Durchgängiges Theming mit Material 3 / Material You</strong>
<ul class="wp-block-list">
<li>Seed-Farben, dynamische Paletten und unterschiedliche Palettenstile (z. B. Expressive) lassen sich mächtig kombinieren – aber nur, wenn das Theming-Konzept von Anfang an klar definiert ist.</li>



<li>Die wichtigste Erkenntnis: Ein zentrales Theme-Objekt vereinfacht langfristig alle Entscheidungen rund um Farben, Typografie und Component-Styling.</li>
</ul>
</li>
</ul>



<h2 class="wp-block-heading">Fazit</h2>



<p>Timelapse war für mich ein Projekt, in dem sich User Experience, modernes Android-Design und Medienverarbeitung sehr gut ergänzt haben. Die App zeigt, wie sich mit Jetpack Compose, Material 3 Expressive und Material You eine Oberfläche bauen lässt, die technisch anspruchsvolle Abläufe (zB. Videomontage) hinter einem einfachen, persönlichen Nutzungserlebnis versteckt. Besonders spannend war zu sehen, wie stark sich die Wahrnehmung der App ändert, wenn man eine eigene Farbwelt definieren kann und diese sich konsequent durch alle Screens zieht. In zukünftigen Schritten möchte ich die App um Themen wie Musik, Export-Presets und umfangreichere Sharing-Optionen erweitern – immer mit dem Ziel, den Kern beizubehalten: Veränderung sichtbar machen, ohne dass sich der Aufwand danach anfühlt.</p>
<p>The post <a href="https://mobile.fhstp.ac.at/studium/studium-projekte/projekt-timelapse-android-app/">Projekt | Timelapse Android App</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Blog &#124; Software Architekturen: Überblick und Entscheidungs­hilfe</title>
		<link>https://mobile.fhstp.ac.at/development/blogbeitrag/</link>
		
		<dc:creator><![CDATA[Matthias Frankowski]]></dc:creator>
		<pubDate>Thu, 16 Oct 2025 02:12:15 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Studium]]></category>
		<category><![CDATA[Trends]]></category>
		<guid isPermaLink="false">https://mobile.fhstp.ac.at/?p=14858</guid>

					<description><![CDATA[<p>Bevor die erste Codezeile geschrieben wird, stellt sich die Frage: Wie sollte das Projekt aufgebaut sein, damit es später nicht unübersichtlich wird? Die gewählte Architektur legt fest, wie klar der Code bleibt, wie einfach sich neue Funktionen hinzufügen lassen und wie leicht Wartung und Erweiterung gelingen – unabhängig davon, ob an einer kleinen App allein <a class="read-more" href="https://mobile.fhstp.ac.at/development/blogbeitrag/">[...]</a></p>
<p>The post <a href="https://mobile.fhstp.ac.at/development/blogbeitrag/">Blog | Software Architekturen: Überblick und Entscheidungs­hilfe</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Bevor die erste Codezeile geschrieben wird, stellt sich die Frage: Wie sollte das Projekt aufgebaut sein, damit es später nicht unübersichtlich wird? Die gewählte Architektur legt fest, wie klar der Code bleibt, wie einfach sich neue Funktionen hinzufügen lassen und wie leicht Wartung und Erweiterung gelingen – unabhängig davon, ob an einer kleinen App allein gearbeitet oder im Team ein größeres System entwickelt wird.</p>



<p>In diesem Artikel werden fünf gängige Architektur-Muster vorgestellt, die wichtigsten Auswahlkriterien erklärt und eine praktische Check­liste für die Entscheidung geliefert. So entsteht bereits vor dem ersten Commit eine solide Basis für eine reibungslose Entwicklung.</p>



<h2 class="wp-block-heading"><strong>Klassische Schichten-Architektur</strong></h2>



<p>Die bekannteste Herangehensweise ist die klassische Schichten-Architektur. Dabei wird eine Anwendung in drei Teile gegliedert:</p>



<div style="height:20px" aria-hidden="true" class="wp-block-spacer"></div>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td class="has-text-align-center" data-align="center"><strong>Präsentation (UI)</strong><br>Hier läuft alles ab, was Nutzer sehen und anklicken.</td></tr><tr><td class="has-text-align-center" data-align="center"><strong>Geschäftslogik (Domäne)</strong><br>In dieser Mitte-Schicht stecken alle Regeln und Abläufe, die das System beherrscht – etwa Bestellungen verarbeiten oder Berechnungen durchführen.</td></tr><tr><td class="has-text-align-center" data-align="center"><strong>Datenzugriff</strong><br>Diese unterste Schicht kümmert sich um Datenbanken, Dateispeicher oder externe Dienste.</td></tr></tbody></table></figure>



<div style="height:33px" aria-hidden="true" class="wp-block-spacer"></div>



<p><strong>In der Praxis:</strong></p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>Warum so beliebt</strong></td><td><strong>der Haken</strong></td></tr><tr><td><br>&#8211; <strong>Übersichtlichkeit</strong>:<br>Jede Schicht hat einen klaren Job, sodass man nicht in einem großen Code-Haufen nach Funktionen suchen muss.<br><br>&#8211; <strong>Teamarbeit:</strong><br>Frontend-, Logik- und Datenbank-Entwickler können parallel an ihren Schichten arbeiten.<br><br><strong>&#8211; Skalierung:</strong><br>Bei hohem Datenaufkommen lässt sich etwa nur die Geschäftslogik-Schicht auf mehr Servern verteilen.</td><td><strong>&#8211;</strong> <strong>Mehraufwand:</strong><br>Die Schichten sprechen untereinander – das kostet ein paar Millisekunden extra und etwas Komplexität.<br><br><strong>&#8211; Overkill für Kleinprojekte:</strong><br>Wenn die Anwendung nur ein paar Seiten hat, ist der strikte Schichtenbau oft unnötig.<br><br><strong>&#8211; Festgefahrene Abhängigkeiten:</strong><br>Wer später eine Schicht ändert, kann schnell viele andere Ebenen mitnehmen.</td></tr></tbody></table></figure>



<div style="height:16px" aria-hidden="true" class="wp-block-spacer"></div>



<p><strong style="white-space: normal;">Einsatzszenario:</strong></p>



<p>Die klassische Drei-Schichten-Architektur eignet sich besonders für kleine bis mittelgroße Anwendungen und Solo- oder Kleinteam­projekte, weil sie schnell aufgesetzt ist und eine klare Trennung von UI, Logik und Datenzugriff bietet. Hält sich die Domäne jedoch in Grenzen, lässt sich damit langfristig gut arbeiten. Wachsen jedoch Funktionsumfang, Geschäftsprozesse oder Teamgröße, sollte man rechtzeitig über Modularisierung, DDD oder Microservices nachdenken, um die Wartbarkeit nicht zu gefährden.</p>



<div style="height:35px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><strong>Frontend-Pattern: MVC und MVVM</strong></h2>



<p>In Frontend-Anwendungen treffen Darstellung, Logik und Nutzereingaben direkt aufeinander – ohne klare Struktur wird der Code schnell unübersichtlich. MVC und MVVM sind zwei bewährte Muster, die helfen, diese Bereiche zu trennen und Benutzeroberflächen wartbarer und übersichtlicher zu gestalten.</p>



<p><strong>Model-View-Controller (MVC):</strong></p>



<ul class="wp-block-list">
<li><strong>Model:</strong>&nbsp;Alle Daten und Geschäftslogik.</li>



<li><strong>View:</strong>&nbsp;Das, was man sieht und anklickt.</li>



<li><strong>Controller:</strong>&nbsp;Die Brücke dazwischen – nimmt Eingaben der View entgegen und aktualisiert Model oder View.MVC trennt klar, wer was tut, und macht es leicht, einzelne Teile auszutauschen.</li>
</ul>



<p><strong>Model-View-ViewModel (MVVM):</strong></p>



<ul class="wp-block-list">
<li>Ähnlich wie MVC, ergänzt aber das&nbsp;<strong>ViewModel</strong>, das View und Model synchron hält.</li>



<li>Änderungen am Model „binden“ sich automatisch in die View ein und umgekehrt.MVVM ist besonders beliebt in modernen UI-Frameworks (z. B. SwiftUI, Jetpack Compose), weil es mit Datenbindung und Deklarativität perfekt harmoniert.</li>
</ul>



<p><strong>Einsatzszenario:</strong></p>



<ul class="wp-block-list">
<li>MVC eignet sich für einfache Web-Apps oder klassische Desktop-Anwendungen.</li>



<li>MVVM glänzt, wenn Frameworks Datenbindung anbieten und man den UI-Code sauber von Logik fernhalten will.</li>
</ul>



<div style="height:35px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><strong>Monolith vs. Microservices</strong></h2>



<p>Wenn die Anwendung wächst, stellt sich die Frage, ob man alle Funktionen in einem großen Block (Monolith) lässt oder in kleine, eigenständige Dienste (Microservices) aufteilt.</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td class="has-text-align-left" data-align="left"><strong>Monolith</strong></td><td><strong>Microservices</strong></td></tr><tr><td class="has-text-align-left" data-align="left">Alles steckt in einer Code-Basis, ein Deploy, eine Datenbank.<br><br><strong>Vorteil:</strong><br>Einfacher Einstieg, weniger Infrastruktur-Overhead.<br><br><strong>Nachteil:</strong><br>Je größer, desto unübersichtlicher und schwerfälliger bei Updates.</td><td>Jede Funktion läuft als eigenständiger Dienst mit eigener Datenhaltung.<br><br><strong>Vorteil:</strong><br>Einzelne Dienste lassen sich unabhängig entwickeln, skalieren und deployen.<br><br><strong>Nachteil:</strong><br>Erfordert mehr Betriebskomplexität (Service-Registrierung, API-Gateways, Monitoring).</td></tr></tbody></table></figure>



<div style="height:18px" aria-hidden="true" class="wp-block-spacer"></div>



<p><strong>Einsatzszenario:</strong></p>



<p>Für kleine Teams und einfache Projekte bleibt der Monolith oft die pragmatischere Wahl. Bei hoher Komplexität, vielen Teams oder strengen Skalierungsanforderungen lohnt sich der Umstieg auf Microservices.</p>



<div style="height:35px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><strong>Domain-Driven Design (DDD)</strong></h2>



<p>Domain-Driven Design ist ein Ansatz, bei dem der Fokus auf dem fachlichen Kern einer Anwendung liegt, also auf dem, was das System inhaltlich wirklich tut. Statt sich zuerst mit Frameworks oder Datenbanken zu beschäftigen, geht es darum, die Abläufe und Begriffe einer bestimmten Domäne, zum Beispiel im Ressourcenmanagement, in der Buchhaltung oder im E-Commerce genau zu verstehen und diese im Code richtig abzubilden. Um diese Idee in der Praxis umzusetzen, nutzt DDD verschiedene Konzepte, die helfen, komplexe Systeme verständlich zu strukturieren und die Zusammenarbeit zwischen Fachexperten und Entwickelnden zu verbessern. Besonders wichtig sind dabei Ubiquitous Language, Bounded Contexts und der Unterschied zwischen Entities und Value Objects.</p>



<p></p>



<p><strong>Ubiquitous Language</strong> bedeutet, dass Entwickelnde und Fachexperten eine gemeinsame Sprache verwenden. Fachbegriffe wie „Buchung“, „Ressource“ oder „Projekt“ tauchen dabei direkt im Code auf, zum Beispiel als Klassen oder Methoden. Das sorgt dafür, dass alle dasselbe Verständnis haben und sich leichter austauschen können.</p>



<p><strong>Bounded Contexts</strong> helfen dabei, eine große und komplexe Domäne in klar abgegrenzte Bereiche zu unterteilen. Jeder Bereich hat sein eigenes Modell und eigene Regeln. So bleibt der Code übersichtlich, und Änderungen in einem Teil der Anwendung führen nicht automatisch zu Problemen in einem anderen.</p>



<p>Bei <strong>Entities</strong> handelt es sich um Objekte mit einer eindeutigen Identität, wie zum Beispiel ein Kunde, der sich im Laufe der Zeit verändern kann. <strong>Value Objects</strong> dagegen, wie ein Geldbetrag, sind unveränderlich und werden nur durch ihre Werteigenschaften beschrieben.</p>



<p></p>



<p><strong>Einsatzszenario:</strong></p>



<p>Wenn die Domäne komplex ist und viele Experten involviert sind, sorgt DDD dafür, dass alle dasselbe Vokabular nutzen, im Code und in Meetings. Das reduziert Missverständnisse und verbessert die Wartbarkeit.</p>



<div style="height:35px" aria-hidden="true" class="wp-block-spacer"></div>



<h2 class="wp-block-heading"><strong>Event-Driven Architektur &amp; CQR</strong>S</h2>



<p>Bei modernen Anwendungen, die in Echtzeit reagieren oder viele Prozesse gleichzeitig verarbeiten müssen, stoßen klassische, linear aufgebaute Systeme schnell an ihre Grenzen. Um diesen Anforderungen gerecht zu werden, haben sich neue Architekturansätze wie die Event-Driven Architecture und Command Query Responsibility Segregation etabliert.</p>



<p><strong>Event-Driven Architecture (EDA):</strong></p>



<p>Statt dass Komponenten direkt miteinander kommunizieren, reagieren sie auf Ereignisse, sogenannte Events. Wenn beispielsweise eine Bestellung aufgegeben wird, löst dieses Ereignis weitere Aktionen aus, wie den Versand einer Bestellbestätigung oder das Aktualisieren des Lagerbestands. Das System bleibt dadurch flexibel, entkoppelt und kann leicht erweitert oder skaliert werden.</p>



<p><strong>Command Query Responsibility Segregation (CQRS):</strong></p>



<p>CQRS trennt Lese- und Schreibvorgänge klar voneinander: Commands verändern den Zustand eines Systems (zum Beispiel „Erstelle Rechnung“), während Queries nur Daten abfragen (etwa „Hole Rechnungsübersicht“). Durch diese Trennung lassen sich beide Bereiche gezielt optimieren. In Verbindung mit Event Sourcing, bei dem jede Zustandsänderung als Ereignis gespeichert wird, können Abläufe besser nachvollzogen und Systeme insgesamt stabiler und fehlertoleranter gestaltet werden, besonders bei komplexen oder verteilten Anwendungen.<br></p>



<p><strong>Einsatzszenario:</strong></p>



<p>IoT-Netzwerke, Echtzeitanalysen, große Webplattformen oder Finanz­transaktionen, bei denen Latenzen niedrig und Nachvollziehbarkeit hoch sein müssen.</p>



<div style="height:35px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-large-font-size"><strong>Fazit</strong></p>



<p>In meinem Semesterprojekt habe ich eine Webapp nach dem klassischen Drei-Schichten-Prinzip aufgebaut &#8211; Benutzeroberfläche, Geschäftslogik und Datenzugriff. Als alleiniger Entwickler konnte ich so in kurzer Zeit neue Features hinzufügen, ohne dass das System unübersichtlich wurde.</p>



<p>In meiner aktuellen Arbeit an einer umfangreichen Ressourcenmanagement-Plattform mit über zehn Entwicklerinnen und Entwicklern reicht dieses einfache Grundgerüst allerdings nicht mehr aus. Deshalb sind wir auf Domain-Driven Design umgestiegen und nutzen im Code jetzt echte Fachbegriffe wie „Ressource“, „Room“ oder „Desk“. Diese Umstellung hat nicht nur die Einarbeitung neuer Teammitglieder erleichtert, sondern auch die Abstimmung mit den Fachabteilungen deutlich beschleunigt.</p>



<p>Im Laufe verschiedener Projekte ist mir immer wieder aufgefallen, wie schnell selbst kleine Änderungen an der Architektur später großen Aufwand nach sich ziehen können. Wer sich bereits zu Beginn Gedanken über mögliche Wachstums- und Team­szenarien macht, schafft eine solide Grundlage für spätere Erweiterungen. Mir wurde dabei deutlich, dass sich ein wenig zusätzliche Planung im Vorfeld vielfach auszahlt, sei es durch eine bewusste Strukturierung in Schichten, eine klare Trennung fachlicher Kontexte oder den Einsatz von Entkopplungs­mechanismen. Dieses Vorgehen sorgt nicht nur für verständlicheren Code, sondern erleichtert auch das Hinzukommen neuer Mit­arbeiterinnen und Mitarbeiter. Letztlich zahlt sich jeder Moment, den man in die Architektur­entscheidung investiert, in Form von Zeitersparnis und weniger technischen Stolpersteinen aus.</p>



<div style="height:35px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="has-large-font-size"><strong>Links</strong></p>



<ul class="wp-block-list">
<li><a href="https://learn.microsoft.com/en-us/dotnet/architecture/modern-web-apps-azure/common-web-application-architectures">https://learn.microsoft.com/en-us/dotnet/architecture/modern-web-apps-azure/common-web-application-architectures</a></li>
</ul>



<ul class="wp-block-list">
<li><a href="https://learn.microsoft.com/en-us/azure/architecture/guide/architecture-styles">https://learn.microsoft.com/en-us/azure/architecture/guide/architecture-styles</a></li>
</ul>



<ul class="wp-block-list">
<li><a href="https://learn.microsoft.com/en-us/azure/architecture/guide/architecture-styles/microservices">https://learn.microsoft.com/en-us/azure/architecture/guide/architecture-styles/microservices</a></li>
</ul>



<ul class="wp-block-list">
<li><a href="https://martinfowler.com/microservices">https://martinfowler.com/microservices</a></li>
</ul>
<p>The post <a href="https://mobile.fhstp.ac.at/development/blogbeitrag/">Blog | Software Architekturen: Überblick und Entscheidungs­hilfe</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Blogbeitrag &#124; WebXR &#8211; das Web als Tor in eine neue Dimension</title>
		<link>https://mobile.fhstp.ac.at/allgemein/blogbeitrag-webxr-das-web-als-tor-in-eine-neue-dimension/</link>
		
		<dc:creator><![CDATA[Andreas Kaiser]]></dc:creator>
		<pubDate>Mon, 29 Sep 2025 23:16:24 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Studium]]></category>
		<category><![CDATA[Trends]]></category>
		<category><![CDATA[Webdevelopment]]></category>
		<guid isPermaLink="false">https://mobile.fhstp.ac.at/?p=14251</guid>

					<description><![CDATA[<p>Die Grenzen zwischen digitaler und realer Welt verschwimmen zunehmend. Ob Virtual Reality, Augmented Reality oder Mixed Reality, immersive Technologien sind längst nicht mehr nur futuristische Visionen, sondern prägen schon heute Gaming, Bildung, Design, Medizin und viele andere Bereiche. Gleichzeitig verlangen Nutzer:innen nach Erlebnissen, die leicht zugänglich sind ohne komplizierte Installationen oder teure Spezialsoftware. Das Web <a class="read-more" href="https://mobile.fhstp.ac.at/allgemein/blogbeitrag-webxr-das-web-als-tor-in-eine-neue-dimension/">[...]</a></p>
<p>The post <a href="https://mobile.fhstp.ac.at/allgemein/blogbeitrag-webxr-das-web-als-tor-in-eine-neue-dimension/">Blogbeitrag | WebXR &#8211; das Web als Tor in eine neue Dimension</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Die Grenzen zwischen digitaler und realer Welt verschwimmen zunehmend. Ob Virtual Reality, Augmented Reality oder Mixed Reality, immersive Technologien sind längst nicht mehr nur futuristische Visionen, sondern prägen schon heute Gaming, Bildung, Design, Medizin und viele andere Bereiche. Gleichzeitig verlangen Nutzer:innen nach Erlebnissen, die leicht zugänglich sind ohne komplizierte Installationen oder teure Spezialsoftware. Das Web ist durch die Eigenschaften, wie universell, offen und jederzeit erreichbar, bestens geeignet.<br><br><strong>Zumal mit WebXR eine Technologie geschaffen wurde, um das möglich zu machen.</strong><br><br><strong>WebXR</strong> ist eine Webtechnologie, mit der <strong>Virtual Reality (VR), Augmented Reality (AR)</strong> und andere Formen von <strong>„Extended Reality“ direkt im Browser</strong> erlebbar werden und das ganz <strong>ohne zusätzliche App</strong>. Der Standard definiert eine Schnittstelle, über die Webseiten erkennen können, ob XR-Funktionen verfügbar sind, welche Gerätefähigkeiten bereitstehen, wie Eingaben von Controllern oder Händen abgefragt werden und wie Inhalte mit der passenden Bildwiederholrate auf dem Headset dargestellt werden. Dabei geht es nicht darum, einen speziellen VR- oder AR-Browser zu bauen, jedes einzelne Hardware-Feature offenzulegen oder gar „das Metaverse“ zu definieren. Es geht vielmehr um eine solide Grundlage für XR im offenen Web, die den Menschen einen Freiraum gibt, XR-Inhalte einfach ausprobieren zu können. Unterstützt werden eine Vielzahl von Geräten: von ARCore-kompatiblen Smartphones über Microsoft Hololens und einer breiten Palette an VR-Endgeräten. Das „X“ in WebXR soll die Vielfalt an Realitäten widerspiegeln: ob Virtual, Augmented, Mixed oder neue Kombinationen – die Technologie ist offen für jede Form von immersiver Erfahrung. Seit 2020 wird WebXR von der W3C Immersive Web Working Group kontinuierlich weiterentwickelt und bildet heute den zentralen Standard für XR-Erlebnisse im Web.</p>



<h2 class="wp-block-heading">Technischer Aufbau</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img decoding="async" src="https://developer.mozilla.org/de/docs/Games/Techniques/3D_on_the_web/WebXR/hmds.jpg" alt="" style="width:620px;height:auto"/><figcaption class="wp-element-caption">XR-Geräte</figcaption></figure></div>


<p>Im Hintergrund greift WebXR auf JavaScript-APIs zurück. Technisch gesehen setzt sich WebXR also aus diesen Bausteinen zusammen, die eng ineinandergreifen:</p>



<ul class="wp-block-list">
<li><strong>Rendering</strong><br>Die Darstellung der 3D-Grafik erfolgt über WebGL oder aufbauende Frameworks wie Three.js, Babylon.js oder A-Frame. Das Rendering läuft in einer speziellen Schleife, die ähnlich wie <code>requestAnimationFrame</code> funktioniert, jedoch direkt an die Anforderungen der XR-Hardware angepasst ist. Eine Szene wird dabei in 3D präsentiert, indem die Perspektive für jedes Auge berechnet wird. Beide Bilder – links für das linke Auge, rechts für das rechte Auge – werden in einem Framebuffer kombiniert und anschließend an das XR-Gerät übergeben, sodass der Nutzer eine realistische stereoskopische Ansicht erhält.</li>



<li><strong>Gerätedaten</strong><br>Die API stellt Informationen über die aktuelle Position und Orientierung von Headsets bereit, erfasst Kameradaten für AR-Anwendungen und liefert Sensordaten wie Bewegungen, Beschleunigung, Rotation oder Barometerwerte. Typische XR-Geräte unterstützen 3 oder 6 Freiheitsgrade (DoF) und können interne oder externe Positionssensoren besitzen. Diese Daten werden abstrahiert, sodass die Anwendung nicht wissen muss, ob sie von einem High-End-VR-Headset, einem Smartphone oder einer AR-Brille stammen.</li>



<li><strong>Eingabemethoden</strong><br>Neben klassischen VR-Controllern können auch moderne Eingabeverfahren wie Handtracking, Blicksteuerung oder Gestenerkennung integriert werden. Bewegungen der Eingabegeräte werden in Vektoren umgewandelt, die die Anwendung für Navigation und Interaktion innerhalb der XR-Szene nutzt.</li>



<li><strong>Rendering-Schleifen</strong><br>Jede XR-Session läuft in einem eigenen Zyklus, bei dem pro Bild sowohl die Grafiken berechnet als auch die neuesten Tracking-Daten der Hardware abgefragt werden. Dadurch wird ein konsistentes XR-Erlebnis gewährleistet, bei dem Interaktion und Darstellung stets synchronisiert sind.</li>



<li><strong>Sicherheits- und Zugriffskontrolle</strong><br>Da XR-Anwendungen Zugriff auf sensible Daten wie Kamerastreams oder präzise Bewegungsprofile erhalten, übernimmt der Browser die Sicherheitsabfragen. Er fordert die Zustimmung des Nutzers ein und gibt nur die notwendigen Daten weiter, die für die jeweilige Session benötigt werden.</li>



<li><strong>Multi-View-Unterstützung und Spiegelung</strong><br>WebXR kann mehrere Ansichten gleichzeitig rendern. Typisches Beispiel ist das Stereo-Rendering für VR, bei dem getrennte Bilder für das linke und rechte Auge erzeugt werden. In AR-Szenarien können zusätzlich 3D-Inhalte mit Kamerabildern kombiniert werden. Optional kann die Szene auch auf einem 2D-Display gespiegelt werden, um das Erlebnis für Zuschauer sichtbar zu machen oder für Debugging-Zwecke.</li>
</ul>



<p>Um ein Erlebnis zu starten, legt eine Website eine Session an (etwa „immersive-vr“ für Virtual-Reality-Inhalte oder „immersive-ar“ für Augmented-Reality-Erfahrungen). Der Browser kümmert sich dabei um die Kommunikation mit dem Betriebssystem und der Hardware. Er fragt nach den nötigen Berechtigungen und stellt der Anwendung die Daten in einem standardisierten Format zur Verfügung. Diese werden dann in Folge für das Redern gebraucht. Der Vermittlungsprozess kann von WebXR geräteunabhängig durchgeführt werden. Sensoren wie Beschleunigungsmesser, Gyroskope oder Barometer werden automatisch berücksichtigt, sodass Bewegungen des Nutzers präzise in die XR-Szene übertragen werden.</p>



<h2 class="wp-block-heading">WebXR Einsatzgebiete</h2>



<p>Zu den wesentlichen Bereichen, in denen WebXR Anwendungen mittlerweile stark vertreten sind, kurz ein Überblick:</p>



<ul class="wp-block-list">
<li><strong><em>Industrie und Wartung</em></strong>: Techniker sehen AR-Überlagerungen mit Infos zu Maschinen, oder bekommen Schritt-für-Schritt-Anleitungen eingeblendet.</li>



<li><strong><em>E-Commerce</em></strong>: Online-Shops können Produkte in 3D oder AR darstellen. Nutzer können Möbel virtuell ins Wohnzimmer stellen oder Kleidung anprobieren.</li>



<li><strong><em>Kultur und Kunst</em></strong>: Museen schaffen virtuelle Rundgänge, oder bieten AR-geführte Touren, die einfach im Browser starten.</li>



<li><strong><em>Bildung und Training</em></strong>: Virtuelle Labore oder Simulationen sind direkt im Browser nutzbar, ohne teure Software-Installationen. Pilotprojekte zeigen, dass das den Zugang zu Lerninhalten erleichtert.</li>
</ul>



<p>Hier nun ein paar Real-Beispiele zum Draufklicken:</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:20%">
<figure class="wp-block-image size-large"><a href="https://vanveer.com/products/original-custom-3d?tdaState=eyJtdG01NmYiOiJmaTIyYyIsImkxYzA1IjoianhhZ3giLCI1eWp4aiI6InV2ZDF1IiwiY3A1bndzIjoibnVkM251IiwiODk3cHMiOiJ0MWZlcGUiLCJ5c2EwbWYiOiJjM2dsNXgiLCJnbmZ2aHYiOiI5cnluMmciLCIxdXg1aWoiOiJ0Y2dmMzUiLCJ3dHExeWMiOiJ4ZnpvbHEiLCJhNDRjY2giOiJyNGw4aGsiLCJwbmlsbGg1IjoibWVoNWgiLCJvdm03NWwiOiJkNzlxMG4iLCJseWI3aGgiOiJiY2UwdnUiLCJhcGJmcGEiOiJ4Z3YxMnIiLCJueWdxMnAiOiJnbWVxcWgiLCJpNmY1bGoiOiJ6ZmwxcGgiLCJiaHNiZm8iOiI0d3ZrYiIsInJpdWt0byI6IjNodTdvYiIsInNtYmpmZSI6InI0NmwybCIsIm96NGp4biI6ImVhMXJhZiJ9&amp;tdaId=48901145"><img loading="lazy" decoding="async" width="1378" height="800" src="https://mobile.fhstp.ac.at/wp-content/uploads/2025/09/image-1-1378x800.jpg" alt="" class="wp-image-14735"/></a><figcaption class="wp-element-caption">E-Commerce</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:20%">
<figure class="wp-block-image size-large is-resized"><a href="https://www.nationalgallery.org.uk/visiting/virtual-gallery/national-gallery-imaginarium"><img decoding="async" src="https://www.nationalgallery.org.uk/media/0irc3efp/ih-1.png?rxy=0.4649122807017544,0.6091995711212752&amp;width=940&amp;height=640&amp;v=1db9424ea4b52a0" alt="" style="width:131px;height:auto"/></a><figcaption class="wp-element-caption">Art Gallery</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:20%">
<figure class="wp-block-image size-large"><a href="https://immersiveweb.dev/images/dcs.webp"><img decoding="async" src="https://immersiveweb.dev/images/dcs.webp" alt=""/></a><figcaption class="wp-element-caption">Game</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:20%">
<figure class="wp-block-image size-large"><a href="https://skillsvr.com/wp-content/uploads/2025/01/SkillsVR-Marketplace-Play-VR-Training.jpg"><img decoding="async" src="https://skillsvr.com/wp-content/uploads/2025/01/SkillsVR-Marketplace-Play-VR-Training.jpg" alt="" style="aspect-ratio:16/9;object-fit:cover"/></a><figcaption class="wp-element-caption">E-Learning</figcaption></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:20%">
<figure class="wp-block-image size-large"><img decoding="async" src="https://docs.hubsfoundation.org/img/hubs-business.jpeg" alt="" style="aspect-ratio:16/9;object-fit:cover"/><figcaption class="wp-element-caption">Social hub</figcaption></figure>
</div>
</div>



<h2 class="wp-block-heading">WebXR in der Praxis (Code-Snippet)</h2>



<p>Das folgende Code-Snippet zeigt, wie man mit WebXR und Three.js eine einfache AR-Anwendung erstellt kann, die es Nutzern ermöglicht, ein 3D-Modell direkt in ihrer realen Umgebung zu platzieren:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: jscript; title: ; notranslate">
const renderer = new THREE.WebGLRenderer({ antialias: true });
renderer.xr.enabled = true;
document.body.appendChild(renderer.domElement);

const scene = new THREE.Scene();
const camera = new THREE.PerspectiveCamera(70, window.innerWidth / window.innerHeight, 0.2, 20);
scene.add(camera);

const light = new THREE.AmbientLight(0xffffff, 1);
scene.add(light);

const cube = new THREE.Mesh(
  new THREE.BoxBufferGeometry(0.2, 0.2, 0.2),
  new THREE.MeshBasicMaterial({ color: 0x00ff00 })
);
scene.add(cube);

const controller = renderer.xr.getController(0);
scene.add(controller);

const hitTestSource = new XRHitTestSource();
controller.addEventListener(&#039;select&#039;, () =&gt; {
  const hitPose = hitTestSource.getPose();
  if (hitPose) {
    cube.position.set(hitPose.position.x, hitPose.position.y, hitPose.position.z);
  }
});

function animate() {
  renderer.setAnimationLoop(animate);
  renderer.render(scene, camera);
}

animate();
</pre></div>


<p>Dieses Code-Snippet erstellt eine 3D-Szene mit Kamera, Licht und einem grünen Würfel als Objekt. Der WebGL-Renderer wird aktiviert und unterstützt WebXR, sodass AR-Funktionen direkt im Browser genutzt werden können. Ein XR-Controller erfasst die Eingaben des Nutzers, während ein Hit-Test die reale Position für das Objekt bestimmt. Tippt der Nutzer, wird der Würfel an dieser Position platziert. Die Szene wird kontinuierlich gerendert, sodass das Objekt in Echtzeit in der Umgebung angezeigt wird.</p>



<h2 class="wp-block-heading">Chancen und Herausforderungen von WebXR</h2>



<p>Ein zentraler Vorteil von WebXR liegt in der niederschwelligen Zugänglichkeit: Nutzer müssen keine zusätzliche App installieren, sondern können direkt über einen Link immersive Inhalte aufrufen. Das senkt die Eintrittsbarrieren erheblich und steigert die Reichweite. Darüber hinaus ermöglicht WebXR plattformübergreifende Entwicklung, sodass eine einzige Codebasis sowohl auf Desktop, Mobilgeräten als auch XR-Headsets funktioniert. Entwickler profitieren zudem von der engen Verzahnung mit etablierten Webtechnologien wie WebGL oder WebAudio, was die Integration bestehender Infrastruktur erleichtert und Entwicklungsaufwände reduziert. Fortschritte wie WebAssembly und WebGPU lassen erwarten, dass die Lücke in puncto Leistung zu nativen Anwendungen kleiner wird.</p>



<p>Auf der anderen Seite zeigen sich nach wie vor deutliche Einschränkungen. Die Unterstützung in Browsern und auf Geräten ist fragmentiert: Während einige Plattformen bereits solide WebXR-Funktionalitäten bieten, hinkt etwa Safari auf iOS noch hinterher. Auch die Performance bleibt bei komplexen 3D-Szenen hinter nativen Anwendungen zurück, was sich etwa in niedrigeren Framerates oder reduzierter visueller Qualität äußern kann. Ein weiterer kritischer Punkt betrifft die Sicherheit: Da WebXR im Browser läuft, sind klassische Webbedrohungen wie Phishing, bösartige Skripte oder Datenlecks nicht auszuschließen. Gerade weil WebXR-Schnittstellen Zugriff auf sensible Sensoren und Bewegungsdaten erlauben, sind strenge Berechtigungs- und Sicherheitskonzepte unverzichtbar. Schließlich erfordert die breite Kompatibilität oft Kompromisse bei Funktionsumfang und Detailtiefe, um auf möglichst vielen Endgeräten zuverlässig zu laufen.</p>



<h2 class="wp-block-heading">Ausblick in die Zukunft</h2>



<p>WebXR entwickelt sich rasant von einer experimentellen Technologie hin zu einem festen Bestandteil digitaler Erlebnisse. Diese Entwicklung zeigt sich besonders in vier zentralen Bereichen:</p>



<ul class="wp-block-list">
<li><strong>Integration neuer Technologien</strong>: Künstliche Intelligenz und Mixed Reality machen WebXR-Erfahrungen individueller und immersiver, indem sie Inhalte dynamisch anpassen und reale mit virtuellen Elementen</li>



<li><strong>Mehr Leistung &amp; Zugänglichkeit</strong>: Moderne Browser, leistungsstarke Geräte und schnelle Netzwerke ermöglichen bereits heute beeindruckende XR-Erlebnisse direkt im Web – ohne zusätzliche Apps oder komplizierte Installationen.</li>



<li><strong>Standardisierung &amp; Interoperabilität</strong>: Mit Schnittstellen wie dem WebXR Device API entstehen plattformübergreifende Anwendungen, die auf unterschiedlichsten Geräten konsistent funktionieren und so ein breites Publikum erreichen.</li>



<li><strong>Neue Einsatzfelder</strong>: Neben Gaming rücken vor allem Bildung, E-Commerce und virtuelle Zusammenarbeit in den Fokus. Lernende profitieren von interaktiven Kursen, Unternehmen nutzen immersive Showrooms, und Kund:innen können Produkte realitätsnah erleben.</li>
</ul>



<h2 class="wp-block-heading">Fazit</h2>



<p>WebXR verbindet das <strong>Web</strong> mit der Welt der <strong>XR-Erlebnisse</strong> und das recht unkompliziert direkt im Browser. Es macht VR und AR leichter zugänglich und bringt Vorteile in der Nutzung für Bildung, Industrie, E-Commerce und Kultur. Gleichzeitig gibt es noch Hürden bei Leistung, Sicherheit und Standardisierung. Nichtsdestotrotz haben sich schon einige Unternehmen an die Entwicklung reiner WebXR Anwendungen herangewagt. Doch mit der Weiterentwicklung von Hardware, offenen Standards und einer aktiven Community wird WebXR in den kommenden Jahren ein wichtiger Zugangskanal für immersive Inhalte werden.</p>



<p>Um nun selbst einen Eindruck gewinnen zu können, kann man unter <a href="https://immersive-web.github.io/webxr-samples/">WebXR &#8211; Samples</a> checken, ob der eigene Browser WebXR unterstützt und im Falle einer Unterstützung direkt sich mit den Aspekten der WebXR API auseinandersetzen.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p><strong>Links: </strong><br><em>Beitragsbild</em> &#8211; https://immersive-web.github.io/webxr-samples/media/logo/webxr-logo.svg<br><em>Bilder der Real-Beispiele</em> &#8211; Quelllink direkt in den Bildern eingebettet<br><a href="https://immersiveweb.dev/">https://immersiveweb.dev/</a><br><a href="https://immersive-web.github.io/webxr-samples/">https://immersive-web.github.io/webxr-samples/</a><br><a href="https://developer.mozilla.org/de/docs/Web/API/WebXR_Device_API">https://developer.mozilla.org/de/docs/Web/API/WebXR_Device_API</a><br><a href="https://www.rooom.com/de/blog/webxr-the-future-of-immersive-web-experiences">https://www.rooom.com/de/blog/webxr-the-future-of-immersive-web-experiences</a><br><a href="https://www.onirix.com/webxr-examples-development-extended-reality/">https://www.onirix.com/webxr-examples-development-extended-reality/</a><br><a href="https://edbyto.com/edbyto/webxr-fuer-berufliche-aus-und-weiterbildung">https://edbyto.com/edbyto/webxr-fuer-berufliche-aus-und-weiterbildung</a><br><a href="https://www.edtechaustria.at/virtuelle-welten/">https://www.edtechaustria.at/virtuelle-welten/</a><br><a href="https://edbyto.com/edbyto/albion-press-virtuelles-museumserlebnis-in-webxr">https://edbyto.com/edbyto/albion-press-virtuelles-museumserlebnis-in-webxr</a><br><a href="https://webhosting.de/webxr-virtuelle-realitaet-browser/">https://webhosting.de/webxr-virtuelle-realitaet-browser/</a> <a href="https://developer.mozilla.org/de/docs/Games/Techniques/3D_on_the_web/WebXR ">https://developer.mozilla.org/de/docs/Games/Techniques/3D_on_the_web/WebXR </a><br></p>
<p>The post <a href="https://mobile.fhstp.ac.at/allgemein/blogbeitrag-webxr-das-web-als-tor-in-eine-neue-dimension/">Blogbeitrag | WebXR &#8211; das Web als Tor in eine neue Dimension</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Blog &#124; Filterbare Listen mit Next.js: Server Components &#038; Suspense</title>
		<link>https://mobile.fhstp.ac.at/development/webdevelopment/blog-filterbare-listen-mit-next-js-server-components-suspense/</link>
		
		<dc:creator><![CDATA[David Grünberger]]></dc:creator>
		<pubDate>Mon, 29 Sep 2025 22:31:47 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Dokumentation]]></category>
		<category><![CDATA[Trends]]></category>
		<category><![CDATA[Webdevelopment]]></category>
		<category><![CDATA[Next.js]]></category>
		<category><![CDATA[SSR]]></category>
		<category><![CDATA[suspense]]></category>
		<category><![CDATA[Web-App]]></category>
		<category><![CDATA[Webentwicklung]]></category>
		<guid isPermaLink="false">https://mobile.fhstp.ac.at/?p=14731</guid>

					<description><![CDATA[<p>Filterbare Listen gehören zu den häufigsten Features moderner Webanwendungen: ob es um Produkte in einem Online-Shop, Veranstaltungen in einem Kalender oder Mitglieder einer Organisation geht – Nutzer:innen wollen Inhalte nach bestimmten Kriterien durchsuchen und einschränken können. In diesem Artikel zeige ich, wie man mit Next.js (App Router), React Server Components und Suspense eine performante, filterbare <a class="read-more" href="https://mobile.fhstp.ac.at/development/webdevelopment/blog-filterbare-listen-mit-next-js-server-components-suspense/">[...]</a></p>
<p>The post <a href="https://mobile.fhstp.ac.at/development/webdevelopment/blog-filterbare-listen-mit-next-js-server-components-suspense/">Blog | Filterbare Listen mit Next.js: Server Components &amp; Suspense</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Filterbare Listen gehören zu den häufigsten Features moderner Webanwendungen: ob es um Produkte in einem Online-Shop, Veranstaltungen in einem Kalender oder Mitglieder einer Organisation geht – Nutzer:innen wollen Inhalte nach bestimmten Kriterien durchsuchen und einschränken können.</p>



<p>In diesem Artikel zeige ich, wie man mit <strong>Next.js (App Router)</strong>, <strong>React Server Components</strong> und <strong>Suspense</strong> eine performante, filterbare Liste baut. Dabei erkläre ich nicht nur den Code, sondern auch die zugrunde liegenden Konzepte.</p>



<h2 class="wp-block-heading">1. React Server Components (RSC) – kurz erklärt</h2>



<p>Mit dem App Router hat Next.js <strong>Server Components</strong> eingeführt.<br>Das bedeutet: Komponenten können auf dem Server gerendert werden, bevor HTML an den Browser geschickt wird.</p>



<p><strong>Vorteile:</strong></p>



<ul class="wp-block-list">
<li>Weniger JavaScript im Client → bessere Performance.</li>



<li>Direkter Zugriff auf Datenbanken/Server-APIs (kein API-Layer nötig).</li>



<li>SEO-freundlich, da Inhalte direkt im HTML stehen.</li>
</ul>



<p>Für unsere filterbare Liste bedeutet das:<br>Wir können die gefilterten Daten direkt im Server Component holen und rendern, ohne zusätzliche API-Endpunkte schreiben zu müssen.</p>



<h2 class="wp-block-heading">2. Suspense – was ist das?</h2>



<p>React <strong>Suspense</strong> erlaubt es, Ladezustände elegant zu handhaben.<br>Anstatt im Code manuell <code>isLoading</code>-Zustände zu bauen, können wir Teile des UI in <code>&lt;Suspense fallback={...}&gt;</code> hüllen.</p>



<p>So wird z. B. eine Liste erst angezeigt, wenn die Daten geladen sind, und bis dahin zeigt React automatisch eine Fallback Komponente an (z. B. „Loading…“).</p>



<p>In Next.js ist Suspense schon integriert – wir müssen es nur nutzen.</p>



<h2 class="wp-block-heading">3. Datenmodell vorbereiten</h2>



<p>Als Beispiel nutzen wir Prisma ORM mit einer PostgreSQL-Datenbank. Unser Modell könnte so aussehen:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: jscript; title: ; notranslate">
// prisma/schema.prisma
model Event {
  id        String   @id @default(cuid())
  title     String
  location  String
  date      DateTime
  status    String   // e.g. &quot;open&quot;, &quot;closed&quot;
}

</pre></div>


<p>Wir haben also eine Liste von Events mit Titel, Ort, Datum und Status.</p>



<h2 class="wp-block-heading">4. Eine einfache Liste rendern</h2>



<p>Zuerst bauen wir eine Seite, die alle Events anzeigt:</p>



<p>Eine Server Component rendert direkt die Liste. Vorteil: Sie läuft auf dem Server, hat Zugriff auf Prisma und schickt nur HTML an den Client.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: jscript; title: ; notranslate">
// app/events/page.tsx
import { prisma } from &quot;@/lib/db&quot;;

export default async function EventsPage() {
  const events = await prisma.event.findMany();

  return (
    &lt;div&gt;
      &lt;h1 className=&quot;text-2xl font-bold mb-4&quot;&gt;Events&lt;/h1&gt;
      &lt;ul className=&quot;space-y-2&quot;&gt;
        {events.map((e) =&gt; (
          &lt;li key={e.id} className=&quot;p-3 border rounded-lg&quot;&gt;
            &lt;div className=&quot;font-semibold&quot;&gt;{e.title}&lt;/div&gt;
            &lt;div&gt;{e.location} – {e.date.toDateString()}&lt;/div&gt;
            &lt;div&gt;Status: {e.status}&lt;/div&gt;
          &lt;/li&gt;
        ))}
      &lt;/ul&gt;
    &lt;/div&gt;
  );
}

</pre></div>


<p>Das ist schon SSR out of the box, <strong>ohne zusätzliche API</strong>.</p>



<h2 class="wp-block-heading">5. Filter via Search Params</h2>



<p>Jetzt machen wir die Liste filterbar, indem wir <code>searchParams</code> nutzen.<br>Ein Beispielaufruf:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: jscript; title: ; notranslate">
/events?status=open&amp;location=StPoelten
</pre></div>


<p>Somit kann auch über die URL im Browser ein Filter für die Liste definiert werden.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: jscript; title: ; notranslate">
// app/events/page.tsx
import { prisma } from &quot;@/lib/db&quot;;

export default async function EventsPage({
  searchParams,
}: {
  searchParams: { status?: string; location?: string };
}) {
  const { status, location } = searchParams;

  const events = await prisma.event.findMany({
    where: {
      status: status || undefined,
      location: location || undefined,
    },
  });

  return (
    &lt;div&gt;
      &lt;h1 className=&quot;text-2xl font-bold mb-4&quot;&gt;Events&lt;/h1&gt;
      &lt;Filters /&gt;
      &lt;EventList events={events} /&gt;
    &lt;/div&gt;
  );
}
</pre></div>


<h2 class="wp-block-heading">6. Eine Client Komponente für die Filter-UI</h2>



<p>Interaktive Filter brauchen Client-Side Hooks (<code>useRouter</code>, <code>useSearchParams</code>). Darum trennen wir UI (Client) von Datenfetching (Server).</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: jscript; title: ; notranslate">
// app/events/Filters.tsx
&quot;use client&quot;;

import { useRouter } from &quot;next/navigation&quot;;

export function Filters() {
  const router = useRouter();

  return (
    &lt;div className=&quot;mb-4 flex gap-2&quot;&gt;
      &lt;button
        className=&quot;px-3 py-1 border rounded&quot;
        onClick={() =&gt; router.push(&quot;/events?status=open&quot;)}
      &gt;
        Open
      &lt;/button&gt;
      &lt;button
        className=&quot;px-3 py-1 border rounded&quot;
        onClick={() =&gt; router.push(&quot;/events?status=closed&quot;)}
      &gt;
        Closed
      &lt;/button&gt;
      &lt;button
        className=&quot;px-3 py-1 border rounded&quot;
        onClick={() =&gt; router.push(&quot;/events&quot;)}
      &gt;
        All
      &lt;/button&gt;
    &lt;/div&gt;
  );
}
</pre></div>


<p>Die Page-Component bleibt Server-seitig, nur die UI für die Filter ist Client-seitig.</p>



<h2 class="wp-block-heading">7. Ladezustände mit Suspense</h2>



<p>Damit beim Filterwechsel nicht plötzlich ein „Leeres UI“ flackert, setzen wir eine Suspense Boundary.</p>



<p>Während dem Ladevorgang wird somit <code>Loading events...</code> angezeigt. Dies soll nur der Veranschaulichung dienen &#8211; in modernen Webanwendungen würde man hier z.B. eine Skeleton-Komponente anzeigen.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: jscript; title: ; notranslate">
// app/events/page.tsx
import { Suspense } from &quot;react&quot;;
import { EventList } from &quot;./EventList&quot;;
import { Filters } from &quot;./Filters&quot;;

export default function EventsPage({ searchParams }: { searchParams: any }) {
  return (
    &lt;div&gt;
      &lt;h1 className=&quot;text-2xl font-bold mb-4&quot;&gt;Events&lt;/h1&gt;
      &lt;Filters /&gt;
      &lt;Suspense fallback={&lt;p&gt;Loading events...&lt;/p&gt;}&gt;
        &lt;EventList searchParams={searchParams} /&gt;
      &lt;/Suspense&gt;
    &lt;/div&gt;
  );
}
</pre></div>


<p>Die <strong>EventList</strong> selbst bleibt ein Server Component:</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: jscript; title: ; notranslate">
// app/events/EventList.tsx
import { prisma } from &quot;@/lib/db&quot;;

export async function EventList({ searchParams }: { searchParams: any }) {
  const { status, location } = searchParams;

  const events = await prisma.event.findMany({
    where: {
      status: status || undefined,
      location: location || undefined,
    },
  });

  return (
    &lt;ul className=&quot;space-y-2&quot;&gt;
      {events.map((e) =&gt; (
        &lt;li key={e.id} className=&quot;p-3 border rounded-lg&quot;&gt;
          &lt;div className=&quot;font-semibold&quot;&gt;{e.title}&lt;/div&gt;
          &lt;div&gt;{e.location} – {e.date.toDateString()}&lt;/div&gt;
          &lt;div&gt;Status: {e.status}&lt;/div&gt;
        &lt;/li&gt;
      ))}
    &lt;/ul&gt;
  );
}
</pre></div>


<h2 class="wp-block-heading">8. Fazit</h2>



<p>Filterbare Listen sind ein zentrales Feature in fast jeder Web-App. Mit <strong>Next.js App Router</strong>, <strong>Server Components</strong> und <strong>Suspense</strong> können wir sie:</p>



<ul class="wp-block-list">
<li><strong>performant</strong> (wenig Client-JS, schnelle Server-Abfragen),</li>



<li><strong>einfach</strong> (keine extra API nötig),</li>



<li><strong>userfreundlich</strong> (Suspense für Ladezustände)</li>
</ul>



<p>umsetzen.</p>



<p>Das Prinzip lässt sich auf viele Bereiche anwenden – ob Produktkataloge, Reisebuchungen oder Mitgliederlisten.</p>
<p>The post <a href="https://mobile.fhstp.ac.at/development/webdevelopment/blog-filterbare-listen-mit-next-js-server-components-suspense/">Blog | Filterbare Listen mit Next.js: Server Components &amp; Suspense</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Workshop &#124; Expo (React Native)</title>
		<link>https://mobile.fhstp.ac.at/workshop/workshop-expo-react-native/</link>
		
		<dc:creator><![CDATA[David Grünberger]]></dc:creator>
		<pubDate>Sun, 21 Sep 2025 21:27:23 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Cross Plattform]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Studium]]></category>
		<category><![CDATA[Trends]]></category>
		<category><![CDATA[Workshop]]></category>
		<category><![CDATA[Cross-Platform]]></category>
		<category><![CDATA[Expo]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[Mobile apps]]></category>
		<category><![CDATA[react native]]></category>
		<guid isPermaLink="false">https://mobile.fhstp.ac.at/?p=14722</guid>

					<description><![CDATA[<p>Die mobile App-Welt wächst stetig. Unternehmen stehen heute vor der Herausforderung, ihre Anwendungen gleichzeitig für iOS und Android zu entwickeln, dabei aber Zeit, Kosten und Personalaufwand im Blick zu behalten. Klassische native Entwicklung bedeutet: zwei Codebasen, zwei Entwicklerteams und doppelte Wartung. Hier setzt React Native an – ein Framework, das es erlaubt, mit JavaScript und <a class="read-more" href="https://mobile.fhstp.ac.at/workshop/workshop-expo-react-native/">[...]</a></p>
<p>The post <a href="https://mobile.fhstp.ac.at/workshop/workshop-expo-react-native/">Workshop | Expo (React Native)</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Die mobile App-Welt wächst stetig. Unternehmen stehen heute vor der Herausforderung, ihre Anwendungen gleichzeitig für <strong>iOS</strong> und <strong>Android</strong> zu entwickeln, dabei aber Zeit, Kosten und Personalaufwand im Blick zu behalten. Klassische native Entwicklung bedeutet: zwei Codebasen, zwei Entwicklerteams und doppelte Wartung. Hier setzt <strong>React Native</strong> an – ein Framework, das es erlaubt, mit <strong>JavaScript und React</strong> native Apps für beide Plattformen zu entwickeln.</p>



<p>Doch React Native allein ist nicht immer der einfachste Startpunkt. Wer sich den Einstieg erleichtern und viele wiederkehrende Aufgaben automatisieren möchte, kommt an <strong>Expo</strong> kaum vorbei.</p>



<p>Im 2. Semester meines Masterstudiums in Interactive Technologies hielt ich in der Masterklasse Mobile einen Workshop ab, der eine Einführung in die App-Entwicklung mit React Native und Expo gab:</p>



<h2 class="wp-block-heading">React Native – die Basis</h2>



<p>React Native wurde 2015 von <strong>Meta (Facebook)</strong> veröffentlicht und ist seither ein fester Bestandteil der mobilen App-Entwicklung. Ziel ist es, die aus dem Web bekannte <strong>React-Philosophie</strong> auch auf mobile Plattformen zu bringen: Komponentenbasiert, wiederverwendbar und flexibel.</p>



<h3 class="wp-block-heading">Vorteile von React Native</h3>



<ul class="wp-block-list">
<li><strong>Plattformübergreifend</strong>: Eine Codebasis für Android und iOS</li>



<li><strong>Performance</strong>: Native UI-Komponenten, keine WebViews</li>



<li><strong>Entwicklerfreundlich</strong>: Hot Reloading beschleunigt den Entwicklungsprozess</li>



<li><strong>Ökosystem</strong>: Riesige Community und viele Open-Source-Bibliotheken</li>



<li><strong>Erfolgreiche Einsätze</strong>: Unternehmen wie Facebook, Uber, Airbnb oder Tesla setzen auf React Native</li>
</ul>



<p>Im Vergleich zu Frameworks wie <strong>Ionic</strong> oder <strong>Flutter</strong> zeigt sich ein klarer Unterschied:</p>



<ul class="wp-block-list">
<li>Ionic nutzt stark Web-Technologien und WebViews, was aufwändige Apps schnell an Grenzen bringt.</li>



<li>Flutter verwendet eine eigene Rendering-Engine und ein komplett eigenes UI-System. Das bietet Flexibilität, geht aber zulasten von App-Größe und Integration in die nativen Systeme.</li>



<li>React Native dagegen greift direkt auf <strong>native APIs</strong> zu und integriert sich harmonisch in iOS und Android.</li>
</ul>



<h2 class="wp-block-heading">Expo – das Turbo-Framework für React Native</h2>



<p>Wer mit React Native arbeitet, merkt schnell: Obwohl es in vielen Fällen einfacher ist als native Entwicklung, braucht man dennoch viel Konfiguration. Build-Tools, Signierungen, App-Store-Prozesse – all das kostet Zeit und Nerven.</p>



<p>Genau hier kommt <strong>Expo</strong> ins Spiel. Expo ist ein <strong>Open-Source-Framework</strong>, das wie eine Art <strong>„Abkürzung“</strong> für React-Native-Projekte funktioniert.</p>



<h3 class="wp-block-heading">Was Expo bietet</h3>



<ul class="wp-block-list">
<li><strong>Vorgefertigtes SDK</strong> mit Zugriff auf Kamera, Standort, Push-Notifications u. v. m.</li>



<li><strong>Expo Go App</strong>: Einfach QR-Code scannen und die App direkt auf dem Smartphone testen – ohne Build-Prozess.</li>



<li><strong>OTA-Updates</strong> (Over-the-Air): Apps können direkt aktualisiert werden, ohne dass der App Store durchlaufen werden muss.</li>



<li><strong>Schneller Start</strong>: Keine komplizierte native Konfiguration notwendig – besonders für Einsteiger ein riesiger Vorteil.</li>
</ul>



<p>Ein praktischer Vergleich:<br>Während man bei klassischem React Native oft erstmal eine komplexe iOS- oder Android-Konfiguration anlegen muss, startet man mit Expo praktisch „out of the box“ – fast so, als würde man ein neues React-Webprojekt mit Next.js beginnen.</p>



<h2 class="wp-block-heading">Expo Go – Entwickeln ohne Hürden</h2>



<p>Ein Highlight von Expo ist <strong>Expo Go</strong>. Statt bei jeder Änderung die App neu bauen zu müssen, scannt man mit der Expo-Go-App auf dem Smartphone einfach einen QR-Code und testet die Anwendung sofort live.</p>



<p>Für Entwickler bedeutet das:</p>



<ul class="wp-block-list">
<li>Sofortiges Feedback bei Änderungen</li>



<li>Weniger Zeitverlust durch Builds</li>



<li>Schnelleres Prototyping</li>
</ul>



<p>Besonders im Teamwork oder bei Präsentationen vor Kunden ist das ein enormer Vorteil, weil Feedback in Echtzeit umgesetzt werden kann.</p>



<h2 class="wp-block-heading">Expo Application Service (EAS) – Von der Idee in den Store</h2>



<p>Früher war der Weg von einer funktionierenden App zum Eintrag im App Store oft eine große Hürde. Mit <strong>EAS (Expo Application Service)</strong> nimmt Expo Entwicklern auch diesen Teil ab.</p>



<h3 class="wp-block-heading">Die wichtigsten Funktionen:</h3>



<ul class="wp-block-list">
<li><strong>EAS Build</strong>: Der Code wird auf Expo-Servern in native Apps für iOS und Android kompiliert. Auch das Signieren übernimmt Expo.</li>



<li><strong>EAS Submit</strong>: Der automatische Upload in den Apple App Store und Google Play Store spart enorm viel Zeit.</li>
</ul>



<p>Ein besonderer Vorteil: <strong>Windows-Nutzer benötigen keinen Mac</strong>, um iOS-Apps zu bauen und hochzuladen – eine Einschränkung, die viele Entwickler bisher blockiert hat.</p>



<h2 class="wp-block-heading">Praxisbeispiel: TODO-App</h2>



<p>Ein klassischer Einstieg in die App-Entwicklung ist eine <strong>TODO-App</strong>. Im Zuge des Workshops wurde eine solche erfolgreich mit den Studenten umgesetzt:</p>



<ul class="wp-block-list">
<li>Nutzer können Aufgaben anlegen, abhaken und löschen</li>



<li>Die Daten werden lokal gespeichert</li>
</ul>



<p>Das klingt simpel, zeigt aber: Schon mit wenigen Zeilen Code lassen sich funktionale und plattformübergreifende Apps erstellen – ohne tief in die nativen Eigenheiten von iOS oder Android einzusteigen.</p>



<figure class="wp-block-image size-full is-resized is-style-default"><img loading="lazy" decoding="async" width="535" height="807" src="https://mobile.fhstp.ac.at/wp-content/uploads/2025/09/image.png" alt="" class="wp-image-14726" style="width:267px;height:auto"/><figcaption class="wp-element-caption"><em><strong>Screenshot: TODO App</strong></em></figcaption></figure>



<p>Der vollständige Sourcecode der App aus dem Workshop kann hier heruntergeladen werden:</p>



<div class="wp-block-file"><a id="wp-block-file--media-c4684de0-6a6a-4cca-b611-253025fa0db0" href="https://mobile.fhstp.ac.at/wp-content/uploads/2025/09/Expo_Example_ToDoList_App.zip">Expo_Example_ToDoList_App</a><a href="https://mobile.fhstp.ac.at/wp-content/uploads/2025/09/Expo_Example_ToDoList_App.zip" class="wp-block-file__button wp-element-button" download aria-describedby="wp-block-file--media-c4684de0-6a6a-4cca-b611-253025fa0db0">Herunterladen</a></div>



<h2 class="wp-block-heading">Fazit – Warum Expo?</h2>



<p>React Native ist schon für sich ein mächtiges Framework. Doch <strong>Expo</strong> hebt die Effizienz und Benutzerfreundlichkeit noch einmal auf ein neues Level. Besonders für kleinere Teams, Start-ups oder Einzelentwickler bedeutet das: schneller Ergebnisse, weniger technische Hürden und ein klarer Fokus auf die eigentliche App-Idee.</p>



<p>Ob für <strong>Prototypen</strong>, <strong>MVPs</strong> oder vollwertige Produktions-Apps – Expo bietet eine moderne, schlanke und praxisnahe Lösung, die den gesamten Entwicklungszyklus abdeckt:<br>Von der ersten Zeile Code über das Testen auf dem Smartphone bis hin zur Veröffentlichung im App Store.</p>



<p>Wer also nach einem Weg sucht, mobile Apps ohne Umwege zu entwickeln, findet in <strong>React Native mit Expo</strong> einen idealen Einstieg.</p>



<h2 class="wp-block-heading">Downloads</h2>



<div data-wp-interactive="core/file" class="wp-block-file"><object data-wp-bind--hidden="!state.hasPdfPreview" hidden class="wp-block-file__embed" data="https://mobile.fhstp.ac.at/wp-content/uploads/2025/09/Presentation_Expo_DGruenberger.pdf" type="application/pdf" style="width:100%;height:600px" aria-label="Embed of Presentation_Expo_DGruenberger."></object><a id="wp-block-file--media-25194fd7-9b47-457e-b495-3aeee5fe064f" href="https://mobile.fhstp.ac.at/wp-content/uploads/2025/09/Presentation_Expo_DGruenberger.pdf">Presentation_Expo_DGruenberger</a><a href="https://mobile.fhstp.ac.at/wp-content/uploads/2025/09/Presentation_Expo_DGruenberger.pdf" class="wp-block-file__button wp-element-button" download aria-describedby="wp-block-file--media-25194fd7-9b47-457e-b495-3aeee5fe064f">Herunterladen</a></div>



<div class="wp-block-file"><a id="wp-block-file--media-d43b083c-c6cc-4034-963c-41dc6179c063" href="https://mobile.fhstp.ac.at/wp-content/uploads/2025/09/Expo_Example_ToDoList_App.zip">Expo_Example_ToDoList_App</a><a href="https://mobile.fhstp.ac.at/wp-content/uploads/2025/09/Expo_Example_ToDoList_App.zip" class="wp-block-file__button wp-element-button" download aria-describedby="wp-block-file--media-d43b083c-c6cc-4034-963c-41dc6179c063">Herunterladen</a></div>
<p>The post <a href="https://mobile.fhstp.ac.at/workshop/workshop-expo-react-native/">Workshop | Expo (React Native)</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Vibe Coding weil kein Coding</title>
		<link>https://mobile.fhstp.ac.at/development/vibe-coding-weil-kein-coding/</link>
		
		<dc:creator><![CDATA[Felix Kargl]]></dc:creator>
		<pubDate>Mon, 09 Jun 2025 12:43:09 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Trends]]></category>
		<guid isPermaLink="false">https://mobile.fhstp.ac.at/?p=14301</guid>

					<description><![CDATA[<p>Wenn man ein wenig in den Algorithmus, auf Social Media Plattformen, für Coding fällt bekommt man mit Sicherheit vieles von dem Thema Vibe Coding mit. Scrollt man durch X, Reddit oder Youtube bekommt man ständig neue Posts mit &#8220;I vibe coded Paypal in 1 week&#8221;, &#8220;I vibe coded Reddit over the weekend&#8221;, oder &#8220;I vibe <a class="read-more" href="https://mobile.fhstp.ac.at/development/vibe-coding-weil-kein-coding/">[...]</a></p>
<p>The post <a href="https://mobile.fhstp.ac.at/development/vibe-coding-weil-kein-coding/">Vibe Coding weil kein Coding</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Wenn man ein wenig in den Algorithmus, auf Social Media Plattformen, für Coding fällt bekommt man mit Sicherheit vieles von dem Thema Vibe Coding mit. Scrollt man durch X, Reddit oder Youtube bekommt man ständig neue Posts mit &#8220;I vibe coded Paypal in 1 week&#8221;, &#8220;I vibe coded Reddit over the weekend&#8221;, oder &#8220;I vibe coded Netflix&#8221;. Deswegen dachte ich mir, ich behandle dieses spannende Thema ein wenig.</p>



<h2 class="wp-block-heading">99 problems but my agent has none</h2>



<p>Fast jede bekannte IDE hat mittlerweile KI-Assistenten oder zumindest die Möglichkeit diese mit Extensions/Plugins einzubauen. Der bekannteste externe KI-Assistent ist Github Copilot. Was nun neben den klassischen KI Chats über den eigenen Code noch dazu kommt, sind Agents. Ein Agent kann sich durch die gesamte Codebase lesen und auch eigenständig unterschiedliche Dateien bearbeiten. Somit kann man einem Agent sagen &#8220;Erstelle mir einen Reddit Klon&#8221;. Dieser Prompt wird zwar wahrscheinlich nicht funktionieren, aber der Agent wird mehrere Files erstellen, in der CLI Befehle ausführen und am Ende ein Projekt erstellen, welches viele Fehlermeldungen erzeugt. Naja trotz der Fehler stellen sich viele Leute die Frage: &#8220;Warum überhaupt noch selbst coden?&#8221;. Willkommen in der Thematik Vibe Coding.</p>



<h2 class="wp-block-heading">Was ist Vibe Coding?</h2>



<p>Vibe Coding lässt sich eigentlich ganz einfach beschreiben, man wirft einfach Beschreibungen in eine KI und hofft, dass am Ende das Richtige rauskommt. Man muss nicht verstehen was man macht, man muss nicht sorgfältig planen und man muss keine Dokumentationen lesen. Ein Prompt Ablauf sieht circa so aus (das folgende Beispiel ist fiktiv und nicht real (wirklich)):</p>



<ul class="wp-block-list">
<li>&#8220;Erstelle mir eine App wie Reddit, aber moderner und besser.&#8221;</li>



<li>KI erstellt 2000 Zeilen Code</li>



<li>&#8220;Das Design ist nicht modern genug, außerdem sind folgende Errors aufgetaucht {insert errors}&#8221;</li>



<li>KI erstellt 1000 Zeilen Code</li>



<li>&#8220;Funktioniert noch immer nicht&#8230; {insert error}&#8221;</li>



<li>KI erstellt die gleichen 1000 Zeilen Code von vorhin.</li>



<li>User schließt Agent</li>
</ul>



<h2 class="wp-block-heading">Die Realität</h2>



<p>Es ist zwar lustig kleine Apps und Webseiten mit KI zu erstellen, aber es wird &#8220;gefährlich&#8221; wenn man die KI-Experimente in die professionelle Arbeitswelt überträgt. Wenn man Glück hat dann funktioniert alles oberflächlich, aber sobald man in die Tiefe geht wird man zwangsläufig auf Probleme stoßen. Je mehr Prompts man dem KI-Agent gibt, desto mehr wird der Code ein Mysterium. Nun braucht man die KI um die eigene Codebase zu verstehen, falls es die KI überhaupt selbst noch erklären kann. Das macht die Wartung oder Debugging fast unmöglich. Und wenn das noch nicht genug ist dann ist die fehlende Sicherheit das nächste große Thema. Die KI wirft wahllos Bibliotheken zusammen egal ob veraltet oder mit bekannten Sicherheitslücken. Also selbst wenn man es schafft ein funktionierendes Projekt zu zaubern, dann wird es spätestens bei den Sicherheitslücken zu Problemen kommen.</p>



<h2 class="wp-block-heading">Vibe Coding &#8211; die Lernfalle</h2>



<p>Gerade für Coding-Anfänger sind KI-Assistenten umstritten. Als Anfänger sollte man die Konzepte verstehen und sich über den geschriebenen Code Gedanken machen. Standardmäßig ist die Inline-Code-Completion aktiviert und nach 1-2 Wörtern werden schon die nächsten Zeilen von der KI vorgeschlagen. Dadurch gewöhnen sich die Anfänger daran, dass der Code magisch auftaucht und funktioniert. Diese Entwickler können dann scheinbar komplexe Projekte erstellen, aber sobald Fehler auftauchen sind sie komplett aufgeschmissen. Teilweise spreche ich hier aus Erfahrung weil ich auch kurzeitig in diese Lernfalle gefallen bin, aber irgendwann habe ich gemerkt dass es mir eigentlich schadet, also habe ich alle KI-Funktionen ausgeschaltet.</p>



<h2 class="wp-block-heading">KI nutzen oder nicht</h2>



<p>Ki-Assistenten können durchaus nützliche Werkzeuge sein, aber sie sollten nicht als Ersatz für das eigene Denken verwendet werden. Es spricht nichts dagegen auch im Coding KI einzusetzen, es kommt einfach auf die Nutzung an. Zum Beispiel für: Erklären von Code, die Erstellung von Boilerplate-Code, oder als Rubber-Duck. Echte Softwareentwicklung erfordert, zumindest aktuell nach wie vor Verständnis, Planung und Sorgfalt. Das mein kurzer Exkurs zu Vibe Coding. </p>



<p></p>



<p><strong>Hinweis:</strong> Das Beitragsbild wurde mit KI erstellt (Inronie beabsichtigt)</p>
<p>The post <a href="https://mobile.fhstp.ac.at/development/vibe-coding-weil-kein-coding/">Vibe Coding weil kein Coding</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Blog &#124; Model Context Protocol (MCP): Der nächste Evolutionsschritt für AI-Integrationen</title>
		<link>https://mobile.fhstp.ac.at/allgemein/blog-model-context-protocol-mcp-der-naechste-evolutionsschritt-fuer-ai-integrationen/</link>
		
		<dc:creator><![CDATA[David Grünberger]]></dc:creator>
		<pubDate>Sun, 27 Apr 2025 12:33:57 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Studium]]></category>
		<category><![CDATA[Trends]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[AI Agents]]></category>
		<category><![CDATA[KI]]></category>
		<category><![CDATA[LLM]]></category>
		<category><![CDATA[MCP]]></category>
		<category><![CDATA[Model Context Protocol]]></category>
		<guid isPermaLink="false">https://mobile.fhstp.ac.at/?p=14166</guid>

					<description><![CDATA[<p>Im November 2024 veröffentlichte Anthropic das Model Context Protocol (MCP), einen neuen Open Source Standard für die Kommunikation zwischen Komponenten einer KI-Anwendung sowie externen Systemen oder Tools. Die Entwickler-Community übernahm das Protokoll schnell und implementierte eine Vielzahl an MCP-Servern. Da führende Unternehmen wie AWS, GitHub und sogar Anthropics „Konkurrent“ OpenAI MCP nun offiziell unterstützen, gewinnt <a class="read-more" href="https://mobile.fhstp.ac.at/allgemein/blog-model-context-protocol-mcp-der-naechste-evolutionsschritt-fuer-ai-integrationen/">[...]</a></p>
<p>The post <a href="https://mobile.fhstp.ac.at/allgemein/blog-model-context-protocol-mcp-der-naechste-evolutionsschritt-fuer-ai-integrationen/">Blog | Model Context Protocol (MCP): Der nächste Evolutionsschritt für AI-Integrationen</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Im November 2024 veröffentlichte Anthropic das Model Context Protocol (MCP), einen neuen Open Source Standard für die Kommunikation zwischen Komponenten einer KI-Anwendung sowie externen Systemen oder Tools. Die Entwickler-Community übernahm das Protokoll schnell und implementierte eine Vielzahl an MCP-Servern. Da führende Unternehmen wie AWS, GitHub und sogar Anthropics „Konkurrent“ OpenAI MCP nun offiziell unterstützen, gewinnt es auch im Business-Kontext schnell an Bedeutung.</p>



<p>MCP standardisiert die Integration von Daten und Tools mit KI-Anwendungen. Dieser Artikel erklärt, warum MCP sich aktuell schnell zum neuen Standard für die Kontextkommunikation in agentenbasierten KI-Systemen entwickelt.</p>



<h2 class="wp-block-heading">Was ist das Model Context Protocol (MCP)?</h2>



<p>Damit KI-Modelle in Produktionsumgebungen wie z.B. Programmierassistenten, Fertigungssteuerungen oder der Finanzberichterstattung zuverlässigen Mehrwert liefern, benötigen sie den passenden Kontext. Effektive KI-Systeme kombinieren die Fähigkeiten des Modells mit dem Zugriff auf relevante, präzise Informationen – seien es proprietäre Daten aus verschiedenen Unternehmenssystemen oder aktuelle Erkenntnisse aus Websuchen – sowie mit agentenbasierten Tools, die Daten weiterverarbeiten und Unternehmensabläufe automatisieren können.</p>



<p>Früher geschah dies ad hoc und ohne Standardisierung. MCP bietet nun ein konsistentes, strukturiertes Format für die Interaktion mit Large Language Models (LLMs) und anderen KI-Modellen und vereinfacht so die Entwicklung maßgeschneiderter KI-Anwendungen erheblich. Ähnlich wie REST-APIs einst die Kommunikation von Webdiensten standardisierten, ermöglicht MCP eine nahtlose Integration und Interoperabilität zwischen verschiedenen Systemen und Plattformen.</p>



<p>MCP definiert klare Muster für die Kontextbereitstellung für Modelle, die Verwaltung der Tool-Nutzung und die Verarbeitung von Antworten. So können Entwickler schneller wartungsfreundlichere KI-Anwendungen erstellen, ohne für jeden Anwendungsfall neue Implementationen erstellen zu müssen.</p>



<h2 class="wp-block-heading">Wie funktioniert MCP?</h2>



<p>MCP verwendet ein einfaches Client-Server-Modell. KI-Anwendungen wie Cursor, Claude oder ein Haystack Agent fungieren als Clients, die sich mit MCP-Servern verbinden. Jeder dieser Server ermöglicht über eine standardisierte Schnittstelle den Zugriff auf ein bestimmtes Tool oder eine Datenquelle.</p>



<p>Wenn die KI-Anwendung Informationen benötigt oder eine Aktion ausführen möchte, sendet sie eine Anfrage an den entsprechenden MCP-Server. Dieser übernimmt die Interaktion mit der zugrundeliegenden Datenquelle oder dem Tool und gibt die Ergebnisse zurück. Diese Standardisierung ermöglicht die Zusammenarbeit aller MCP-kompatiblen Clients mit allen MCP-kompatiblen Servern ohne individuelle Integration.</p>



<p>Während in der offiziellen Dokumentation zwischen Hosts (der KI-Anwendung) und Clients (Protokolladaptern auf der Hostseite, die 1:1 mit Servern verbunden sind) unterschieden wird, wird in den meisten praktischen Ausführungen zu MCP die KI-Anwendung selbst einfach als „MCP-Client“ bezeichnet, der sich mit mehreren Servern verbinden kann.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1024" height="706" src="https://mobile.fhstp.ac.at/wp-content/uploads/2025/04/image.png" alt="" class="wp-image-14169"/><figcaption class="wp-element-caption">MCP Architekturdiagramm, Quelle: modelcontextprotocol.io</figcaption></figure>



<h3 class="wp-block-heading">MCP Servers</h3>



<p>Ein MCP-Server ist wie ein intelligenter Adapter für ein Tool oder eine App. Er kann eine Anfrage einer KI (z. B. „Verkaufsbericht von heute abrufen“) in vom Tool verständliche Befehle übersetzen.</p>



<p><strong>Beispiele:</strong></p>



<ul class="wp-block-list">
<li>Ein GitHub-MCP-Server könnte die Anfrage „Offene Pull Requests auflisten“ in einen GitHub-API-Aufruf umwandeln.</li>



<li>Ein File-MCP-Server könnte die Anfrage „Zusammenfassung als Textdatei speichern“ in eine Datei auf Ihren Desktop schreiben.</li>



<li>Ein YouTube-MCP-Server könnte Videolinks auf Anfrage transkribieren.</li>
</ul>



<p><strong>Der MCP Server ist für folgende Aufaben zuständig:</strong></p>



<ul class="wp-block-list">
<li>Der KI erklären, was sie überhaupt tun kann (Tool-Erkennung)</li>



<li>Interpretieren und Ausführen von Befehlen</li>



<li>Formatieren von Ergebnissen, die für die KI verständlich sind</li>



<li>Behandeln von Fehlern und Zurückgeben von aussagekräftigen Feedback</li>
</ul>



<h3 class="wp-block-heading">MCP Clients</h3>



<p>Auf der anderen Seite befindet sich ein MCP-Client im KI-Assistenten oder in der App (wie Claude oder Cursor). Wenn die KI ein Tool verwenden möchte, kommuniziert sie über diesen Client mit dem entsprechenden Server.</p>



<p><strong>Zum Beispiel:</strong></p>



<ul class="wp-block-list">
<li>Cursor kann über einen Client mit Ihrer lokalen Entwicklungsumgebung interagieren</li>



<li>Claude kann damit auf Dateien zugreifen oder Tabellen lesen</li>
</ul>



<p>Der Client übernimmt den gesamten Transfer von Daten: Senden von Anfragen, Empfangen von Ergebnissen und Weiterleiten an die KI.</p>



<h3 class="wp-block-heading">Das MCP Protokoll</h3>



<p>Das MCP-Protokoll sorgt für die Synchronisierung. Es definiert die Kommunikation zwischen Client und Server – wie Nachrichten aussehen, wie Aktionen beschrieben werden und wie Ergebnisse zurückgegeben werden.</p>



<p><strong>Es ist sehr flexibel:</strong></p>



<ul class="wp-block-list">
<li>Kann lokal ausgeführt werden (z. B. zwischen Ihrer KI und den Apps Ihres Computers)</li>



<li>Kann über das Internet ausgeführt werden (z. B. zwischen Ihrer KI und einem Online-Tool)</li>



<li>Verwendet strukturierte Formate wie JSON, damit alles sauber und konsistent bleibt</li>
</ul>



<p>Dank dieses gemeinsamen Protokolls kann ein KI-Agent eine Verbindung mit einem neuen Tool herstellen – sogar mit einem, das er noch nie zuvor gesehen hat – und trotzdem verstehen, wie es zu verwenden ist.</p>



<h3 class="wp-block-heading">Services: Konkrete Apps und Daten</h3>



<p>Der letzte Teil des Puzzles sind die Services – die eigentlichen Tools oder Datenquellen, die die KI nutzen möchte.</p>



<p><strong>Das können sein:</strong></p>



<ul class="wp-block-list">
<li><strong>Lokal:</strong> Dateien auf Ihrem Gerät, ein Ordner, eine lokal ausgeführte App</li>



<li><strong>Remote:</strong> Cloud-Datenbanken, SaaS-Tools, Web-APIs</li>
</ul>



<p>MCP-Server bilden das Gateway zu diesen Diensten und gewährleisten den Zugriff sicher und zuverlässig.</p>



<h2 class="wp-block-heading">Model Context Protocol (MCP) in der Praxis: Integration und schnelle Entwicklung</h2>



<p>Das Potenzial vom MCP wird deutlich, wenn wir uns Anwendungen in der Praxis ansehen:</p>



<ol class="wp-block-list">
<li><strong>Neue Integrationen ohne Programmierkenntnisse:</strong> Stellen Sie sich einen Finanzanalysten vor, der mit einem LLM Investitionsmöglichkeiten bewertet. Mit MCP kann er neue Datenquellen – beispielsweise eine proprietäre Marktdatenbank oder Echtzeit-Rohstoffpreise – dynamisch integrieren, ohne dass Entwicklungsressourcen für die individuelle Integration erforderlich sind. Der Analyst kann den KI-Assistenten einfach auf die MCP-kompatible Datenquelle verweisen und die Erkenntnisse sofort in die Analyse einfließen lassen.</li>



<li><strong>Schnelle Integration von Datenquellen in dynamische Szenarien:</strong> Stellen Sie sich einen Marktforscher vor, der während einer Kundenpräsentation Daten aus einer spezialisierten Branchendatenbank hinzufügen möchte. Mit MCP kann er seinen KI-Assistenten mit minimalem Einrichtungsaufwand mit dieser neuen Quelle verbinden und Antworten mit neuem Kontext erhalten, ohne seinen Arbeitsablauf zu unterbrechen oder technischen Support zu benötigen.</li>



<li><strong>Einfacheres Prototyping:</strong> Aus Sicht der Produktentwicklung beschleunigt MCP den Prototyping- und Iterationszyklus. Ein Bankinstitut, das verschiedene Anwendungsfälle für den KI-Einsatz evaluiert, kann mit MCP schnell mehrere Szenarien testen. Beispielsweise können sie die Automatisierung des Kundenservice, die personalisierte Finanzberatung und die Bearbeitung von Kreditanträgen gleichzeitig testen, indem sie Prototypen mit verschiedenen MCP-basierten Tools und Datenquellen erstellen.</li>



<li><strong>Schnellere Iterationszyklen:</strong> Über das anfängliche Prototyping hinaus ermöglicht MCP eine iterative, feedbackgesteuerte Entwicklung. Beispielsweise könnte ein Team, das ein Self-Service-Portal erstellt, mit einfachen Funktionen zum Abrufen von Dokumenten beginnen und diese dann basierend auf dem Benutzerfeedback schrittweise erweitern. Wenn Kunden zusätzliche Funktionen anfordern, kann das Team problemlos neue Tools – Zugriff auf die Produktdatenbank, Abfrage des Bestellstatus, Erstellung von Support-Tickets – über MCP integrieren, ohne jede Integration von Grund auf neu schreiben zu müssen.</li>
</ol>



<p>Mit diesen schnelleren und umfassenderen Möglichkeiten zum Prototyping und zur Iteration unterstützt die deepset AI Platform Teams dabei, den Überblick über ihre verschiedenen Projekte und Releases zu behalten. Sie bietet integrierte Best Practices für die KI-Produktentwicklung und zahlreiche vorgefertigte, aber leicht anpassbare Vorlagen, um jedes Projekt schnell zu starten. Produktteams können mehrere Anwendungsfälle validieren, bevor sie Ressourcen für die vollständige Entwicklung bereitstellen. Das reduziert die Markteinführungszeit und die Entwicklungskosten.</p>



<h2 class="wp-block-heading">Ausblick und zukünftige Entwicklungen</h2>



<p>Die einfache und flexible Integration von Datenquellen sowie schnellere Prototyping- und Iterationszyklen mit einer Vielzahl von Tools durch MCP machen es wahrscheinlich, dass MCP in den kommenden Jahren zu einem integralen Bestandteil von KI-Systemen in Unternehmen wird. Es gibt jedoch noch Bereiche, in denen das MCP-Ökosystem noch ausgereifter werden muss:</p>



<ul class="wp-block-list">
<li>Viele MCP-Server-Implementierungen sind derzeit lokal ausgelegt und lassen sich nicht auf Unternehmens-Workloads skalieren.</li>



<li>Mehr offizielle MCP-Server-Implementierungen direkt von Unternehmen werden die Verbreitung steigern. Der Markt ist aber bereits rasant in Bewegung: AWS und GitHub haben beispielsweise kürzlich ihre ersten offiziellen Implementierungen veröffentlicht.</li>



<li>MCP führt dynamischere Sicherheits- und Compliance-Anforderungen ein, die bei der Integration mehrerer Tools und Datenquellen in KI-Anwendungen erfüllt werden müssen.</li>
</ul>



<h2 class="wp-block-heading">Quellen</h2>



<p><a href="https://www.deepset.ai/blog/understanding-the-model-context-protocol-mcp">https://www.deepset.ai/blog/understanding-the-model-context-protocol-mcp</a></p>



<p><a href="https://modelcontextprotocol.io/introduction">https://modelcontextprotocol.io/introduction</a></p>



<p><a href="https://medium.com/@elisowski/mcp-explained-the-new-standard-connecting-ai-to-everything-79c5a1c98288">https://medium.com/@elisowski/mcp-explained-the-new-standard-connecting-ai-to-everything-79c5a1c98288</a></p>



<p><a href="https://a16z.com/a-deep-dive-into-mcp-and-the-future-of-ai-tooling">https://a16z.com/a-deep-dive-into-mcp-and-the-future-of-ai-tooling</a></p>
<p>The post <a href="https://mobile.fhstp.ac.at/allgemein/blog-model-context-protocol-mcp-der-naechste-evolutionsschritt-fuer-ai-integrationen/">Blog | Model Context Protocol (MCP): Der nächste Evolutionsschritt für AI-Integrationen</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
