<?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>Soziotechnische Integration &#187; Java</title>
	<atom:link href="https://test.soziotech.org/tag/java/feed/" rel="self" type="application/rss+xml" />
	<link>https://test.soziotech.org</link>
	<description>Ein Projekt mit der Forschungsgruppe Kooperationssysteme an der Universität der Bundeswehr München</description>
	<lastBuildDate>Mon, 15 Jun 2015 15:24:48 +0000</lastBuildDate>
	<language>de-DE</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.2.38</generator>
	<item>
		<title>Verwendung von iBeacons unter Android</title>
		<link>https://test.soziotech.org/verwendung-von-ibeacons-unter-android/</link>
		<comments>https://test.soziotech.org/verwendung-von-ibeacons-unter-android/#comments</comments>
		<pubDate>Mon, 01 Jun 2015 10:47:35 +0000</pubDate>
		<dc:creator><![CDATA[Rene Krueger]]></dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Mobiles & Handhelds]]></category>
		<category><![CDATA[Tabletops & Tablet PCs]]></category>
		<category><![CDATA[Ubiquitäre Natural User Interfaces]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Bluetooth]]></category>
		<category><![CDATA[iBeacons]]></category>
		<category><![CDATA[Smartphone]]></category>
		<category><![CDATA[Tablet]]></category>

		<guid isPermaLink="false">http://sevastyanova.cscwlab.de/?p=7950</guid>
		<description><![CDATA[<p><img src="https://test.soziotech.org/wp-content/uploads/cache/1795_crop_940x198_ibeacons.jpg" width="618" height="130" alt="Verwendung von iBeacons unter Android" /></p>Der folgende Artikel befasst sich mit der Nutzung von iBeacons als Bluetooth Low Energy Lokalisierungshilfsmittel fürAndroid-Geräten. Nach einer kurzen Einführung in die grundsätzliche Funktionsweise von iBeacons werden Installationsanleitungen sowie Codebeispiele zur Verwendung von iBeacons mittels Estimote-SDK und AltBeacon bereitgestellt.  Begriff iBeacons &#8230; <a href="https://test.soziotech.org/verwendung-von-ibeacons-unter-android/">Weiterlesen <span class="meta-nav">&#8594;</span></a><img src="https://analytics.flottmedia.com/piwik/piwik.php?idsite=2&amp;rec=1&amp;url=https%3A%2F%2Ftest.soziotech.org%2Fverwendung-von-ibeacons-unter-android%2F&amp;action_name=Verwendung+von+iBeacons+unter+Android&amp;urlref=http%3A%2F%2Ffeeds.feedburner.com%2Fsoziotech" style="border:0;width:0;height:0" width="0" height="0" alt="" /><div class='yarpp-related-rss'>
<h3>Verwandte Artikel:</h3><ol>
<li><a href="https://test.soziotech.org/moderne-android-tablet-devices-im-vergleich/" rel="bookmark" title="Moderne Android Tablet-Devices im Vergleich">Moderne Android Tablet-Devices im Vergleich </a></li>
<li><a href="https://test.soziotech.org/tablet-pilottest-mit-senioren/" rel="bookmark" title="Android Tablet-Computer im Pilottest mit Senioren">Android Tablet-Computer im Pilottest mit Senioren </a></li>
<li><a href="https://test.soziotech.org/surface-bluetooth-mobile-manager/" rel="bookmark" title="Surface Bluetooth Mobile Manager">Surface Bluetooth Mobile Manager </a></li>
</ol>
</div>
]]></description>
				<content:encoded><![CDATA[<p><img src="https://test.soziotech.org/wp-content/uploads/cache/1795_crop_940x198_ibeacons.jpg" width="618" height="130" alt="Verwendung von iBeacons unter Android" /></p>
<p><em>Der folgende Artikel befasst sich mit der Nutzung von iBeacons als Bluetooth Low Energy Lokalisierungshilfsmittel fürAndroid-Geräten. Nach einer kurzen Einführung in die grundsätzliche Funktionsweise von iBeacons werden Installationsanleitungen sowie Codebeispiele zur Verwendung von iBeacons mittels Estimote-<a href="https://test.soziotech.org/glossar/sdk/" class="glossaryLink" title="Klicken Sie, um zum detaillierten Glossareintrag für SDK zu springen." onmouseover="tooltip.show('Software Development Kit; ist eine Sammlung von Werkzeugen und Anwendungen, um eine Software zu erstellen, meist inklusive Dokumentation. Mit diesem ist es Softwareentwicklern möglich, eigene darauf basierende Anwendungen zu erstellen. Grundsätzlich gibt es zu jeder Programmiersprache auch ein Software Development Kit - bei interpretierten Sprachen kann dies jedoch identisch mit der Laufzeitumgebung sein. ');" onmouseout="tooltip.hide();">SDK</a> und AltBeacon bereitgestellt. </em></p>
<h2>Begriff iBeacons</h2>
<p>Der Begriff iBeacon wurde von Apple 2013 eingeführt und steht als Markenname für ein auf Bluetooth Low Energy (BLE) bzw. Bluetooth 4.0 basierendes Produkt, das z.B. zur Indoor-Navigation genutzt werden kann. Hierbei stellt das iBeacon einen Sender dar, der in kontinuierlichen Zeitabständen Daten an entsprechende Empfangsgeräte (<a href="https://test.soziotech.org/glossar/smartphone/" class="glossaryLink" title="Klicken Sie, um zum detaillierten Glossareintrag für Smartphone zu springen." onmouseover="tooltip.show('Mobiltelefon, das im Vergleich zu herkömmlichen Mobiltelefonen mehr Computerfunktionalität und -konnektivität zur Verfügung stellt. Aktuelle Smartphones lassen sich meist über zusätzliche Programme (sogenannte Apps) vom Anwender individuell mit neuen Funktionen aufrüsten. Häufig vefügt ein Smartphone über einen Touchscreen. ');" onmouseout="tooltip.hide();">Smartphone</a>, Tablet, …) sendet. Diese Daten können mittels einer speziellen <a href="https://test.soziotech.org/glossar/app/" class="glossaryLink" title="Klicken Sie, um zum detaillierten Glossareintrag für App zu springen." onmouseover="tooltip.show('App (englische Kurzform für application) bezeichnet im Allgemeinen jede Form von Anwendungsprogrammen. Im Sprachgebrauch sind damit mittlerweile jedoch meist Anwendungen für moderne Smartphones und Tablet-Computer gemeint, die über einen in das Betriebssystem integrierten Onlineshop bezogen und so direkt auf dem Smartphone installiert werden können.');" onmouseout="tooltip.hide();">App</a> genutzt werden, um beispielsweise die eigene Position zu ermitteln. Ein iBeacon zeichnet sich durch seine lange Laufzeit und vergleichsweise hohen Reichweite aus. Die Technologie wird von verschiedenen Herstellern angeboten, wobei die im Weiteren aufgeführten Tests und Beispiele unter Verwendung von Estimote-iBeacons durchgeführt wurden.</p>
<div class="ngg-singlepic ngg-center wp-caption">
<a rel="lightbox" href="https://test.soziotech.org/wp-content/uploads/ibeacons/tumblr_inline_nceojforam1ssljt8-1.png" title="
			Nutzung von iBeacons mit einem Smartphone, Quelle: http://blog.estimote.com/post/98316374485/introducing-the-estimote-indoor-location-sdk-the.			" 

 >
	<img src="https://test.soziotech.org/wp-content/uploads/cache/1794__618x_tumblr_inline_nceojforam1ssljt8-1.png" alt="Schematische Darstellung zu iBeacons " title="Schematische Darstellung zu iBeacons " />
</a>
			<p class="wp-caption-text">Schematische Darstellung zu iBeacons  <a class="simple-footnote" title="Klicken Sie, um zur Fußnote zu springen oder Links in der Fußnote zu folgen." id="return-note-7950-1" href="#note-7950-1" onmouseover="tooltip.show('Bildquelle: http://blog.estimote.com/post/98316374485/introducing-the-estimote-indoor-location-sdk-the.');" onmouseout="tooltip.hide();"><sup>1</sup></a></p>
</div>

<h2>Nutzung</h2>
<p>Im folgenden Abschnitt werden die Vorraussetzungen für die Nutzung sowie die wesentlichen Daten und Begriffe, die für die Arbeit mit iBeacons relevant sind, aufgeführt.</p>
<h3>Voraussetzung</h3>
<p>Die Nutzung von iBeacons kann nur unter bestimmten Voraussetzungen erfolgen. Das jeweilige Mobile Device muss BLE / Bluetooth 4.0 unterstützen, was somit Geräte ab iOS7 und Android 4.3 umfasst.</p>
<p>Entsprechende Bibliotheken werden für IOS von Apple bereitgestellt. Android-Entwickler müssen hingegen auf Bibliotheken der jeweiligen Hersteller zurückgreifen, da Google keine offiziellen zur Verfügung stellt.</p>
<h3>Daten eines iBeacons</h3>
<p>Die Daten, die ein iBeacons sendet, sind im Folgenden Beispielhaft aufgeführt.</p>
<ul style="text-align: justify;">
<li>UUID: B9407F30-F5F8-466E-AFF9-25556B57FE6D</li>
<li>Minor: 1</li>
<li>Major: 2</li>
<li>RSSI: -55</li>
<li>measuredPower: 62</li>
</ul>
<p>Die nachfolgende Abbildung stellt die Funktion der jeweiligen Werte schematisch dar:</p>
<div class="ngg-singlepic ngg-center wp-caption">
<a rel="lightbox" href="https://test.soziotech.org/wp-content/uploads/ibeacons/ibeacons_anwendungsbeispiel.png" title="
			Skizze der Funktionsweise von iBeacons			" 

 >
	<img src="https://test.soziotech.org/wp-content/uploads/cache/1793__618x_ibeacons_anwendungsbeispiel.png" alt="iBeacons Major, Minor und RSSI" title="iBeacons Major, Minor und RSSI" />
</a>
			<p class="wp-caption-text">iBeacons Major, Minor und RSSI</p>
</div>

<p>Ein beispielhafter Anwendungsfall ist die Kennzeichnung von Bereichen in einem Unternehmen mit mehreren Standorten. So würde jedes iBeacon des Unternehmens mit der gleichen UUID initialisiert werden. Jeder Standort erhält einen entsprechenden Major-Wert und ein eine Abteilung an einem Standort einen Minor-Wert. Unternehmen X verwendet also die UUID „B9407F30-F5F8-466E-AFF9-25556B57FE6D“ und Standort A und B jeweils die Major-Werte  „1“ bzw. „2“. Die Abteilung „I“ und „J“ werden jeweils mit den Minor „1“ und „2“ verknüpft. So ist nun Abteilung I an Standort B des Unternehmens X mit den entsprechenden Werten(UUID: „B9407F30-F5F8-466E-AFF9-25556B57FE6D“, Major: „2“, Minor: „1“) eindeutig identifizierbar. Die Distanz zu einem iBeacon lässt sich aus den Werten RSSI und measuredPower berechnen</p>
<h3>Monitoring, Ranging und Region</h3>
<p>Die Begriffe Monitoring und Ranging beschreiben die zwei Kommunikationsweisen zwischen iBeacons und Empfangsgeräten. Eine Region ist ein Bereich, der sich durch festgelegte Werte (UUID, Major und Minor) definiert. Eine Region umfasst je nach Initialisierung ein bis beliebig viele iBeacons.</p>
<p>Beim Monitoring wird überprüft, ob ein bestimmter Bereich (Region) betreten oder verlassen wurde. Hierbei wird in zeitlichen Abständen getrackt, ob bzw. ob keine iBeacons einer Region empfangen werden; dementsprechend können Programmabschnitte aufgerufen werden. Monitoring ist speziell für Hintergrundprozesse geeignet, da nur beim Eintreten der zuvor erwähnten Ereignisse ein Aufruf entsprechender Methoden erfolgt.</p>
<p>Im Gegensatz zum Monitoring handelt es sich beim Ranging um einen kontinuierlichen Aufruf von entsprechenden Methoden, da dauerhaft eine Aktualisierung der empfangenen iBeacons erfolgt. Ranging eignet sich daher für Vordergrundprozesse, in denen eine Aktualisierung der entsprechenden Daten (z.B. Distanz zum iBeacon) erforderlich ist.</p>
<h2>Verwendung unter Android</h2>
<p>Wie zu Beginn dieses Beitrags erwähnt, müssen bei für Android-Anwendung die SDKs der jeweiligen Hersteller verwendet werden, z.B. das von <a href="http://estimote.com/" target="_blank" class="link-external">Estimote</a>. Alternativ dazu wird mit dem OpenSource-Projekt <a href="http://altbeacon.org/" target="_blank" class="link-external">AltBeacon</a> ein entsprechendes SDK zur allgemein gültigen Nutzung bereitgestellt, das weiter unten ebenfalls betrachtet wird.</p>
<h3>Estimote</h3>
<p>Eine Beispielanwendung, die Monitoring und Ranging verwendet, ist im Folgenden dokumentiert.</p>
<p>Zunächst muss die estimote-sdk-preview.jar in das /libs Verzeichniss des Projekts kopiert werden. Im build.gradle File muss nun folgende Abhängigkeit hinzugefügt werden:</p>
<pre class="brush:jfx"> dependencies {
   compile files('libs/estimote-sdk-preview.jar')
 }
</pre>
<p>Folgende Zeilen müssen im Manifest (AndroidManifest.xml) ergänzt werden:</p>
<pre class="brush:jfx">&lt;uses-permission android:name="android.permission.BLUETOOTH" /&gt;
&lt;uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /&gt;
</pre>
<p>Anschließend muss der Service in der selben Datei deklariert werden. Dies geschieht innerhalb des Application Tags.</p>
<pre class="brush:jfx">&lt;service android:name="com.estimote.sdk.service.BeaconService" android:exported="false" /&gt;
</pre>
<p>Nun wird eine neue Activity erstellt und eine neue Region erzeugt, die alle Estimote-iBeacons umfasst. Außerdem wird ein BeaconManager erzeugt:</p>
<pre class="brush:jfx">private static final String ESTIMOTE_PROXIMITY_UUID = "B9407F30-F5F8-466E-AFF9-25556B57FE6D";
private static final Region ALL_ESTIMOTE_BEACONS = new Region("regionId",ESTIMOTE_PROXIMITY_UUID, null, null);
private BeaconManager beaconManager = new BeaconManager(this);
</pre>
<p>Als nächstes wird in der onStart()-Methode der BeaconManager mit dem Service verbunden und je nach Bedarf das Ranging bzw. Monitoring gestartet.</p>
<pre class="brush:jfx">@Override
protected void onStart() {
  super.onStart();
  beaconManager.connect(new BeaconManager.ServiceReadyCallback() {
    @Override public void onServiceReady() {
      try {
        beaconManager.startRanging(ALL_ESTIMOTE_BEACONS);
      } catch (RemoteException e) {
      }
    }
  });
}
</pre>
<p>Nun kann ein entsprechender Listener erzeugt und dem BeaconManager zugewiesen werden:</p>
<pre class="brush:jfx">beaconManager.setRangingListener(new BeaconManager.RangingListener() {
  @Override public void onBeaconsDiscovered(Region region, List&lt;Beacon&gt; beacons) {
    System.out.println(beacons);
  }
});
</pre>
<h3>AltBeacon</h3>
<p>Radius-Networks stellt mit <a href="http://altbeacon.org/" target="_blank" class="link-external">AltBeacon</a> eine gut dokumentierte Open-Source Lösung zu Apples iBeacons zur Verfügung. Standardmäßig erkennt die Bibliothek nur iBeacons, die nach dem AltBeacon Standard spezifiziert sind. Zur Interaktion mit z.B. iBeacons von Estimote oder anderer Hersteller muss der enthaltene BeaconParser <a class="simple-footnote" title="Klicken Sie, um zur Fußnote zu springen oder Links in der Fußnote zu folgen." id="return-note-7950-2" href="#note-7950-2" onmouseover="tooltip.show('Vgl. https://altbeacon.github.io/android-beacon-library/javadoc/org/altbeacon/beacon/BeaconParser.html.');" onmouseout="tooltip.hide();"><sup>2</sup></a> verwendet werden. Beispiele zur Verwendung der Bibliothek können auf der entsprechenden <a href="https://altbeacon.github.io/android-beacon-library/samples.html" target="_blank" class="link-internal">GitHub-Seite</a> eingesehen werden.</p>
<h3>Vergleich der Frameworks</h3>
<p>Die Konfiguration des Estimote-SDK <a class="simple-footnote" title="Klicken Sie, um zur Fußnote zu springen oder Links in der Fußnote zu folgen." id="return-note-7950-3" href="#note-7950-3" onmouseover="tooltip.show('Vgl. https://github.com/Estimote/Android-SDK.');" onmouseout="tooltip.hide();"><sup>3</sup></a> ist im Gegensatz zur Alternative AltBeacon einfacher, jedoch nur auf die entsprechenden iBeacons ausgelegt, sodass für den Einsatz anderer Hardware zusätzliche Bibliotheken eingebunden werden müssen. Zudem fehlen Methoden zur Entfernungsbestimmung, sodass die Berechnung selbst durchgeführt werden muss.</p>
<p>AltBeacon zeichnet sich durch seine Flexibilität und guten Dokumentation aus, jedoch muss zunächst der entsprechende BeaconParser erzeugt werden (siehe oben).</p>
<h2>Probleme der Technologie</h2>
<p>Die RSSI-Werte variieren sehr stark. Zum einen wird das empfangene Signal durch die Haltung des Device (Tablet, Smartphone) beeinträchtigt und zum anderen ist die Position des jeweiligen iBeacons entscheidend. Positioniert man dieses beispielsweise zwischen Regalen, so leidet das Signal je nach Position des Empfängers.</p>
<p>Aufgrund der Ungenauigkeit des Signals, sollten mehrere iBeacons möglichst mit größerem Abstand eingesetzt werden, um mögliche Störungen oder Überscheidungen der Signale zu vermeiden.</p>
<h2>Fazit</h2>
<p>Die Verwendung von iBeacons unter Android ist mit den entsprechenden Frameworks, die von den Herstellern bereitgestellt werden, mit geringem Aufwand möglich. Jedoch umfasst der Funktionsumfang der SDKs, die in diesem Beispiel zum Einsatz gekommen sind, nicht den der iOS-Bibliotheken.</p>
<p>Die Technologie könnte beispielsweise für die Kennzeichnung von bestimmten Bereichen in Gebäuden verwendet werden, sofern die iBeacons bzw. die Bereiche einen ausreichenden Abstand zu einander haben. Eine zufriedenstellende Indoor-Navigation ist jedoch nur schwer umsetzbar, da die Signale bisher zu störanfällig sind.</p><img src="https://analytics.flottmedia.com/piwik/piwik.php?idsite=2&amp;rec=1&amp;url=https%3A%2F%2Ftest.soziotech.org%2Fverwendung-von-ibeacons-unter-android%2F&amp;action_name=Verwendung+von+iBeacons+unter+Android&amp;urlref=http%3A%2F%2Ffeeds.feedburner.com%2Fsoziotech" style="border:0;width:0;height:0" width="0" height="0" alt="" /><div class="simple-footnotes"><h2 class="notes">Quellen und Fußnoten:</h2><ol><li id="note-7950-1">Bildquelle: <a class="link-external" href="http://blog.estimote.com/post/98316374485/introducing-the-estimote-indoor-location-sdk-the" title="Go to external Source" >http://blog.estimote.com/post/98316374485/introducing-the-estimote-indoor-location-sdk-the</a>. <a class="simple-footnote-backlink" href="#return-note-7950-1">&#8617;</a></li><li id="note-7950-2">Vgl. <a href="https://altbeacon.github.io/android-beacon-library/javadoc/org/altbeacon/beacon/BeaconParser.html" target="_blank" class="link-internal">https://altbeacon.github.io/android-beacon-library/javadoc/org/altbeacon/beacon/BeaconParser.html</a>. <a class="simple-footnote-backlink" href="#return-note-7950-2">&#8617;</a></li><li id="note-7950-3">Vgl. <a href="https://github.com/Estimote/Android-SDK" target="_blank" class="link-internal">https://github.com/Estimote/Android-SDK</a>. <a class="simple-footnote-backlink" href="#return-note-7950-3">&#8617;</a></li></ol></div><div class='yarpp-related-rss'>
<h3>Verwandte Artikel:</h3><ol>
<li><a href="https://test.soziotech.org/moderne-android-tablet-devices-im-vergleich/" rel="bookmark" title="Moderne Android Tablet-Devices im Vergleich">Moderne Android Tablet-Devices im Vergleich </a></li>
<li><a href="https://test.soziotech.org/tablet-pilottest-mit-senioren/" rel="bookmark" title="Android Tablet-Computer im Pilottest mit Senioren">Android Tablet-Computer im Pilottest mit Senioren </a></li>
<li><a href="https://test.soziotech.org/surface-bluetooth-mobile-manager/" rel="bookmark" title="Surface Bluetooth Mobile Manager">Surface Bluetooth Mobile Manager </a></li>
</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>https://test.soziotech.org/verwendung-von-ibeacons-unter-android/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Multitouch-Entwicklung mit MT4j</title>
		<link>https://test.soziotech.org/multitouch-entwicklung-mit-mt4j/</link>
		<comments>https://test.soziotech.org/multitouch-entwicklung-mit-mt4j/#comments</comments>
		<pubDate>Thu, 23 Feb 2012 20:12:35 +0000</pubDate>
		<dc:creator><![CDATA[Sebastian Jung]]></dc:creator>
				<category><![CDATA[Berichte]]></category>
		<category><![CDATA[Human Computer Interaction]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Largescreen]]></category>
		<category><![CDATA[Natural User Interfaces]]></category>
		<category><![CDATA[Ubiquitäre Natural User Interfaces]]></category>
		<category><![CDATA[Anwendungsentwicklung]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[Gestensteuerung]]></category>
		<category><![CDATA[MT4j]]></category>
		<category><![CDATA[Multitouch]]></category>
		<category><![CDATA[Natural User Interface]]></category>
		<category><![CDATA[Touchscreen]]></category>

		<guid isPermaLink="false">http://sevastyanova.cscwlab.de/?p=3646</guid>
		<description><![CDATA[<p><img src="https://test.soziotech.org/wp-content/uploads/cache/891_crop_940x198_mt-application_2012-01-29_15-37-47.png" width="618" height="130" alt="Multitouch-Entwicklung mit MT4j" /></p>Dieser Artikel stellt den Auftakt einer Serie weiterer Berichte zu &#8222;ersten Schritten&#8220; mit aktuell verfügbaren Multitouch-Entwicklungsumgebungen dar. Innerhalb dieser Serie liefert der vorliegene Bericht einen Überblick über die Entwicklung von Multitouch-Anwendungen mit Multitouch for Java (MT4j). Das Framework bietet umfangreiche &#8230; <a href="https://test.soziotech.org/multitouch-entwicklung-mit-mt4j/">Weiterlesen <span class="meta-nav">&#8594;</span></a><img src="https://analytics.flottmedia.com/piwik/piwik.php?idsite=2&amp;rec=1&amp;url=https%3A%2F%2Ftest.soziotech.org%2Fmultitouch-entwicklung-mit-mt4j%2F&amp;action_name=Multitouch-Entwicklung+mit+MT4j&amp;urlref=http%3A%2F%2Ffeeds.feedburner.com%2Fsoziotech" style="border:0;width:0;height:0" width="0" height="0" alt="" /><div class='yarpp-related-rss'>
<h3>Verwandte Artikel:</h3><ol>
<li><a href="https://test.soziotech.org/konzeption-eines-analyserasters/" rel="bookmark" title="Konzeption eines Analyserasters für die szenario-spezifische Eignungsfeststellung von Multitouch-Tablets">Konzeption eines Analyserasters für die szenario-spezifische Eignungsfeststellung von Multitouch-Tablets </a></li>
<li><a href="https://test.soziotech.org/alternative-moeglichkeiten-zur-interaktion-mit-grossen-vertikalen-displays/" rel="bookmark" title="Alternative Möglichkeiten zur Interaktion mit großen vertikalen Displays">Alternative Möglichkeiten zur Interaktion mit großen vertikalen Displays </a></li>
<li><a href="https://test.soziotech.org/howto-erste-schritte-mit-javafx-2-0/" rel="bookmark" title="Howto &#8211; Erste Schritte mit JavaFX 2.0">Howto &#8211; Erste Schritte mit JavaFX 2.0 </a></li>
</ol>
</div>
]]></description>
				<content:encoded><![CDATA[<p><img src="https://test.soziotech.org/wp-content/uploads/cache/891_crop_940x198_mt-application_2012-01-29_15-37-47.png" width="618" height="130" alt="Multitouch-Entwicklung mit MT4j" /></p><p><em>Dieser Artikel stellt den Auftakt einer Serie weiterer Berichte zu &#8222;ersten Schritten&#8220; mit aktuell verfügbaren Multitouch-Entwicklungsumgebungen dar. Innerhalb dieser Serie liefert der vorliegene Bericht einen Überblick über die Entwicklung von Multitouch-Anwendungen mit <a href="http://www.mt4j.org" title="Zur Projekt-Website von MT4j" target="_blank" class="link-external">Multitouch for Java (<a class="glossaryLink" href="https://test.soziotech.org/glossar/mt4j/" title="Klicken Sie, um zum detaillierten Glossareintrag für MT4j zu springen." onmouseover="tooltip.show('\"Multitouch for Java\" ist ein Framework für die Entwicklung von Multitouch-Applikationen mit der objektorientierten Programmiersprache Java. ');" onmouseout="tooltip.hide();">MT4j</a>)</a>. Das Framework bietet umfangreiche Funktionalität für das Arbeiten mit Multitouch-Hardware und einfach adaptierbare Konzepte zur Entwicklung eigener Anwendungen. Im Folgenden wird nach einer kurzen Einführung die Einrichtung mit Eclipse erläutert, einige Beispielanwendungen vorgestellt sowie ein Minimal-Beispiel implementiert.</em></p>
<h2>Einführung</h2>
<ul>
<li>Java-Framework zur Entwicklung von Multitouch-Anwendungen</li>
<li>Verwendung verschiedener Komponenten (Bilder, Videos, 3D-Objekte)</li>
<li>Anbindung unterschiedlicher Hardware und Protokolle</li>
<li>10 vorhandene Multitouch-Gesten sowie Möglichkeit zur Erstellung von eigenen Gesten</li>
<li>Performante Darstellung durch <a href="https://test.soziotech.org/glossar/opengl/" class="glossaryLink" title="Klicken Sie, um zum detaillierten Glossareintrag für OpenGL zu springen." onmouseover="tooltip.show('Die \"Open Graphics Library\" ist eine programmiersprachenunabhängige Schnittstelle zur Entwicklung von 2D und 3D Grafiken. ');" onmouseout="tooltip.hide();">OpenGL</a></li>
</ul>
<h3>Demo</h3>
<p>Um vor der Vorstellung der technischen Details einen ersten Eindruck zu schaffen, demonstriert das folgende Beispielvideo die Funktionalität der mitgelieferten Kartenapplikation:</p>
<p><iframe width="640" height="480" src="http://www.youtube.com/embed/M9gpbl_26zY?feature=oembed" frameborder="0" allowfullscreen></iframe></p>
<h3>Historie</h3>
<p>Das MT4j-Framework wird vom <a href="http://www.iao.fraunhofer.de" title="Zum Internetauftritt des Fraunhofer-Instituts für Arbeitswirtschaft und Organisation" target="_blank" class="link-external">Fraunhofer-Institut für Arbeitswirtschaft und Organisation (<a class="glossaryLink" href="https://test.soziotech.org/glossar/iao/" title="Klicken Sie, um zum detaillierten Glossareintrag für IAO zu springen." onmouseover="tooltip.show('Fraunhofer-Institut für Arbeitswirtschaft und Organisation ');" onmouseout="tooltip.hide();">IAO</a>)</a> entwickelt und basiert (wie der Name schon sagt) auf der weit verbreiteten objektorientierten Programmiersprache Java. Im Herbst 2009 wurde das Framework unter Open Source-Lizenz veröffentlicht und wird seitdem durch die OpenSource-Gemeinde weiterentwickelt. Die Multitouch-Plattform übernimmt alle benötigten Aufgaben, wie beispielsweise die Erkennung von Multitouch-Gesten, deren Umsetzung in Events sowie die erforderliche Grafikausgabe. Es bietet eine umfangreiche Bibliothek mit  vorgefertigten Grafiken, Gesten und Schriften und ist sehr generisch  implementiert, sodass eigene Gesten und Grafiken problemlos hinzugefügt werden  können. Das Framework ist prinzipiell kompatibel zu allen Multitouch  Geräten, da es die Inputs der Hardware abstrahiert.  Als Grundlage hierfür wird die Anbindung an verschiedene <a href="https://test.soziotech.org/glossar/api/" class="glossaryLink" title="Klicken Sie, um zum detaillierten Glossareintrag für API zu springen." onmouseover="tooltip.show('Application Programming Interface (dt. Programmierschnittstelle)');" onmouseout="tooltip.hide();">APIs</a> (z.B. <a href="https://test.soziotech.org/glossar/tuio-2/" class="glossaryLink" title="Klicken Sie, um zum detaillierten Glossareintrag für TUIO zu springen." onmouseover="tooltip.show('TUIO ist ein Protokoll und eine API für Eingaben von Multitouch-Screens ');" onmouseout="tooltip.hide();">TUIO</a>) bereitgestellt, welche die Eingaben des Touchscreens interpretieren. Die Darstellung  erfolgt über die Grafikschnittstelle OpenGL, sodass die Anwendungen auf entsprechender Hardware  sehr performant sind.</p>
<h2>Komponenten und Aufbau</h2>
<p>Die nachfolgende Tabelle gibt einen Überblick über die technischen Eigenschaften sowie bereitgestellten Gesten und Komponenten des Frameworks:</p>
<table class="h-zebra" border="0" align="center">
<thead>
<tr>
<th class="header">Eigenschaft</th>
<th>Ausprägung bei MT4j</th>
</tr>
</thead>
<tbody>
<tr class="even">
<td class="header">Programmiersprache</td>
<td>
<ul>
<li>Java</li>
</ul>
</td>
</tr>
<tr class="odd">
<td class="header">Rendering</td>
<td>
<ul>
<li>OpenGL</li>
<li>Software-Rendering</li>
</ul>
</td>
</tr>
<tr class="even">
<td class="header">Hardware-Anbindung</td>
<td>
<ul>
<li>Hardwareabstraktion und Input Abstraktion</li>
<li>Es können beliebige Eingabegeräte integriert werden</li>
<li>Native Unterstützung von Windows 7 Multitouch-Features</li>
<li>Unterstützung des TUIO-Protokolls</li>
</ul>
</td>
</tr>
<tr class="odd">
<td class="header">Multitouch-Gesten</td>
<td>
<ul>
<li><a href="https://test.soziotech.org/glossar/drag/" class="glossaryLink" title="Klicken Sie, um zum detaillierten Glossareintrag für Drag zu springen." onmouseover="tooltip.show('Das Ziehen von Objekten auf Multitouch-Screens (ähnlich Drag and Drop) ');" onmouseout="tooltip.hide();">Drag</a></li>
<li><a href="https://test.soziotech.org/glossar/rotate/" class="glossaryLink" title="Klicken Sie, um zum detaillierten Glossareintrag für Rotate zu springen." onmouseover="tooltip.show('Das Drehen von Objekten auf Multitouch-Screens mit einem oder zwei Fingern ');" onmouseout="tooltip.hide();">Rotate</a></li>
<li><a href="https://test.soziotech.org/glossar/scale/" class="glossaryLink" title="Klicken Sie, um zum detaillierten Glossareintrag für Scale zu springen." onmouseover="tooltip.show('Das Vergrößern und Verkleinern (Zoom) von Objekten mit einer Fingergeste (z.B. pinchen) auf Multitouch-Screens ');" onmouseout="tooltip.hide();">Scale</a></li>
<li><a href="https://test.soziotech.org/glossar/tap/" class="glossaryLink" title="Klicken Sie, um zum detaillierten Glossareintrag für Tap zu springen." onmouseover="tooltip.show('Das Auswählen eines Objekts durch Tippen auf Multitouch-Screens mit einem Finger (ähnlich einem Mausklick) ');" onmouseout="tooltip.hide();">Tap</a></li>
<li><a href="https://test.soziotech.org/glossar/double-tap/" class="glossaryLink" title="Klicken Sie, um zum detaillierten Glossareintrag für Double Tap zu springen." onmouseover="tooltip.show('Das Auswählen von Objekten durch doppeltes Antippen auf einem Multitouch-Screen (ähnlich einem Doppelklick) ');" onmouseout="tooltip.hide();">Double Tap</a></li>
<li><a href="https://test.soziotech.org/glossar/tap-and-hold/" class="glossaryLink" title="Klicken Sie, um zum detaillierten Glossareintrag für Tap and Hold zu springen." onmouseover="tooltip.show('Das Auswählen eines Objekts durch halten des Fingers auf einem Multitouch-Screen (ähnlich einem Rechtsklick) ');" onmouseout="tooltip.hide();">Tap and Hold</a></li>
<li><a href="https://test.soziotech.org/glossar/arcball-rotate/" class="glossaryLink" title="Klicken Sie, um zum detaillierten Glossareintrag für Arcball Rotate zu springen." onmouseover="tooltip.show('Das dreidimensionale Drehen eines Objekts um einen festen Punkt mit einem Finger auf Multitouch-Screens ');" onmouseout="tooltip.hide();">Arcball Rotate</a></li>
<li><a href="https://test.soziotech.org/glossar/lasso-select/" class="glossaryLink" title="Klicken Sie, um zum detaillierten Glossareintrag für Lasso Select zu springen." onmouseover="tooltip.show('Die Auswahl von mehreren Objekten durch Aufspannen eines Auswahlfeldes mit einem Finger auf einem Multitouch-Screen (ähnlich dem selektieren mit einer Maus) ');" onmouseout="tooltip.hide();">Lasso Select</a></li>
<li><a href="https://test.soziotech.org/glossar/flick/" class="glossaryLink" title="Klicken Sie, um zum detaillierten Glossareintrag für Flick zu springen." onmouseover="tooltip.show('Eine Richtungsgeste durch kurzes Streichen des Fingers auf einem Multitouch-Screen ');" onmouseout="tooltip.hide();">Flick</a></li>
<li><a href="https://test.soziotech.org/glossar/gesture-draw/" class="glossaryLink" title="Klicken Sie, um zum detaillierten Glossareintrag für Gesture Draw zu springen." onmouseover="tooltip.show('Das Zeichnen von Symbolen (zum Beispiel Häckchen) auf einem Multitouch-Screen ');" onmouseout="tooltip.hide();">Gesture Draw</a></li>
</ul>
<ul>
<li>Eigene Gesten können definiert werden</li>
</ul>
</td>
</tr>
<tr class="even">
<td class="header">Bereitgestellte Komponenten</td>
<td>
<ul>
<li>Primitive Vektorgrafiken  <a class="simple-footnote" title="Klicken Sie, um zur Fußnote zu springen oder Links in der Fußnote zu folgen." id="return-note-3646-1" href="#note-3646-1" onmouseover="tooltip.show('Vierecke, Ellipsen, Polygone, etc. .');" onmouseout="tooltip.hide();"><sup>1</sup></a></li>
<li>Schriften  <a class="simple-footnote" title="Klicken Sie, um zur Fußnote zu springen oder Links in der Fußnote zu folgen." id="return-note-3646-2" href="#note-3646-2" onmouseover="tooltip.show('Standardschriftarten (True Type) und Vektor-basierte Schriftarten.');" onmouseout="tooltip.hide();"><sup>2</sup></a></li>
<li>Bilder  <a class="simple-footnote" title="Klicken Sie, um zur Fußnote zu springen oder Links in der Fußnote zu folgen." id="return-note-3646-3" href="#note-3646-3" onmouseover="tooltip.show('Unterstützung gängiger Formate (.jpg, .png, .bmp).');" onmouseout="tooltip.hide();"><sup>3</sup></a></li>
<li>3D-Objekte  <a class="simple-footnote" title="Klicken Sie, um zur Fußnote zu springen oder Links in der Fußnote zu folgen." id="return-note-3646-4" href="#note-3646-4" onmouseover="tooltip.show('.3ds und .obj Dateien mit Texturen.');" onmouseout="tooltip.hide();"><sup>4</sup></a></li>
<li>Videos  <a class="simple-footnote" title="Klicken Sie, um zur Fußnote zu springen oder Links in der Fußnote zu folgen." id="return-note-3646-5" href="#note-3646-5" onmouseover="tooltip.show('Unterstützung gängiger Formate.');" onmouseout="tooltip.hide();"><sup>5</sup></a></li>
</ul>
</td>
</tr>
</tbody>
</table>
<h2>Installation</h2>
<p>Das MT4j Framework steht als quelloffener <a href="http://www.mt4j.org/mediawiki/index.php/Downloads" target="_blank" class="link-external">Download</a>, derzeit in Version 0.95 zur Verfügung und ist bereits als ein Eclipse-Projekt strukturiert.</p>
<p class="warningbox">MT4j  läuft derzeit nur mit der 32bit-Variante von Java. Soll ein 64bit System eingesetzt werden, muss trotzdem der 32bit <a href="https://test.soziotech.org/glossar/jdk/" class="glossaryLink" title="Klicken Sie, um zum detaillierten Glossareintrag für JDK zu springen." onmouseover="tooltip.show('Java Development Kit; ist eines der von Java-Entwicklern meistgenutzten Java-SDKs aus dem Hause Oracle, ehemals Sun Microsystems. ');" onmouseout="tooltip.hide();">JDK</a> installiert werden. Unter  Eclipse muss entsprechend die 32bit Variante von Java zum Ausführen  der MT4j Anwendungen ausgewählt werden!</p>
<ol>
<li><a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html" target="_blank" class="link-external">Java Development Kit 32bit</a> (gekennzeichnet als x86) herunterladen und installieren</li>
<li>Die heruntergeladene <a href="https://test.soziotech.org/glossar/zip/" class="glossaryLink" title="Klicken Sie, um zum detaillierten Glossareintrag für ZIP zu springen." onmouseover="tooltip.show('Dateiformat für komprimierte Daten, in dem verschiedene Dateien in einer Containerdatei zusammengefasst werden können. ');" onmouseout="tooltip.hide();">ZIP</a>-Datei entpacken (MT4j 0.95 full release)</li>
<li>Im Paketexplorer von Eclipse mit Rechtsklick importieren wählen</li>
<li>In dem Importfenster ein &#8222;bereits existierendes Projekt&#8220; auswählen</li>
<li>Den unter 2. entpackten Ordner auswählen und importieren</li>
</ol>

<div class="ngg-galleryoverview" id="ngg-gallery--36460">


	
	<!-- Thumbnails -->
		
	<div id="ngg-image-931" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail wp-caption" >
			<a rel="lightbox-0" href="https://test.soziotech.org/wp-content/uploads/multitouch-mit-mt4j/import_2012-01-14_20-16-36_0.png" title="
			In dem Fenster ein &quot;bereits existierendes Projekt&quot; auswählen			"  >
								<img alt="In dem Fenster ein &quot;bereits existierendes Projekt&quot; auswählen" src="https://test.soziotech.org/wp-content/uploads/multitouch-mit-mt4j/thumbs/thumbs_import_2012-01-14_20-16-36_0.png" width="126" height="100" class="colorbox-0" />
							</a>
			<p class=wp-caption-text>Import Schritt 2</p>
		</div>
	</div>
			
	<div id="ngg-image-1010" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail wp-caption" >
			<a rel="lightbox-0" href="https://test.soziotech.org/wp-content/uploads/multitouch-mit-mt4j/import_2012-02-21_17-19-40.png" title="
			Die MT4j Ordner auswählen (&quot;mt4j-core&quot; und &quot;mt4j-desktop&quot;)			"  >
								<img alt="Die MT4j Ordner auswählen (&quot;mt4j-core&quot; und &quot;mt4j-desktop&quot;)" src="https://test.soziotech.org/wp-content/uploads/multitouch-mit-mt4j/thumbs/thumbs_import_2012-02-21_17-19-40.png" width="126" height="100" class="colorbox-0" />
							</a>
			<p class=wp-caption-text>Import Schritt 3</p>
		</div>
	</div>
			
	<div id="ngg-image-885" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail wp-caption" >
			<a rel="lightbox-0" href="https://test.soziotech.org/wp-content/uploads/multitouch-mit-mt4j/java-eclipse_2012-01-14_20-15-48.png" title="
			Im Paketexplorer von Eclipse importieren auswählen.			"  >
								<img alt="Im Paketexplorer von Eclipse importieren auswählen." src="https://test.soziotech.org/wp-content/uploads/multitouch-mit-mt4j/thumbs/thumbs_java-eclipse_2012-01-14_20-15-48.png" width="126" height="100" class="colorbox-0" />
							</a>
			<p class=wp-caption-text>Import Schritt 1</p>
		</div>
	</div>
			
	<div id="ngg-image-1011" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail wp-caption" >
			<a rel="lightbox-0" href="https://test.soziotech.org/wp-content/uploads/multitouch-mit-mt4j/java-eclipse_2012-02-21_17-23-16.png" title="
			Eclipse mit korrekt installierten MT4j			"  >
								<img alt="Eclipse mit korrekt installierten MT4j" src="https://test.soziotech.org/wp-content/uploads/multitouch-mit-mt4j/thumbs/thumbs_java-eclipse_2012-02-21_17-23-16.png" width="126" height="100" class="colorbox-0" />
							</a>
			<p class=wp-caption-text>Eclispe mit MT4j</p>
		</div>
	</div>
		
	<!-- Pagination -->
 	<div class='ngg-clear'></div>
 	
</div>


<h2>Mitgelieferte Beispiele</h2>
<p>Das MT4j-Paket enthält 19 einfache Beispielanwendungen.  Diese sind unterteilt in die Pakete &#8222;basic&#8220; und &#8222;advanced&#8220; und sind im Ordner  &#8222;examples&#8220; zu finden. Die Basic Examples dienen zum Verstehen und Testen der  grundlegenden Techniken in sehr einfach gehaltenen Applikationen. Die Advanced Examples demonstrieren die Leistungsfähigkeit des Frameworks, indem  beispielsweise 3D Modelle verwendet werden. Jede Anwendung  befindet sich in einem eigenen Paket. Es ist keine weitere Konfiguration  erforderlich, da das Framework alle benötigte Komponenten automatisch sucht  und auswählt. Zum Starten ist jeweils eine &#8222;Start&#8230;Example.java&#8220;  Datei hinterlegt, die als &#8222;Java Application&#8220; in Eclipse ausgeführt werden kann.  Nach dem Start öffnet sich ein neues Fenster innerhalb dessen die  Multitouch-Interaktion möglich ist.</p>
<h3>Basic-Anwendungen</h3>

<div class="ngg-galleryoverview" id="ngg-gallery--36461">


	
	<!-- Thumbnails -->
		
	<div id="ngg-image-892" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail wp-caption" >
			<a rel="lightbox-1" href="https://test.soziotech.org/wp-content/uploads/multitouch-mit-mt4j/css.png" title="
			Einfache Anwendung zum Manipulieren von geometrischen Flächen mit Multitouch-Gesten			"  >
								<img alt="Einfache Anwendung zum Manipulieren von geometrischen Flächen mit Multitouch-Gesten" src="https://test.soziotech.org/wp-content/uploads/multitouch-mit-mt4j/thumbs/thumbs_css.png" width="126" height="100" class="colorbox-1" />
							</a>
			<p class=wp-caption-text>css</p>
		</div>
	</div>
			
	<div id="ngg-image-893" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail wp-caption" >
			<a rel="lightbox-1" href="https://test.soziotech.org/wp-content/uploads/multitouch-mit-mt4j/helloworld.png" title="
			Eine Applikation zur Manipulation des &quot;Hello World&quot; Schriftzuges			"  >
								<img alt="Eine Applikation zur Manipulation des &quot;Hello World&quot; Schriftzuges" src="https://test.soziotech.org/wp-content/uploads/multitouch-mit-mt4j/thumbs/thumbs_helloworld.png" width="126" height="100" class="colorbox-1" />
							</a>
			<p class=wp-caption-text>helloworld</p>
		</div>
	</div>
			
	<div id="ngg-image-894" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail wp-caption" >
			<a rel="lightbox-1" href="https://test.soziotech.org/wp-content/uploads/multitouch-mit-mt4j/javagui.png" title="
			Es lassen sich Java-eigene Formen einfügen, beliebig kombinieren und durch Mulittouch-Gesten bearbeiten			"  >
								<img alt="Es lassen sich Java-eigene Formen einfügen, beliebig kombinieren und durch Mulittouch-Gesten bearbeiten" src="https://test.soziotech.org/wp-content/uploads/multitouch-mit-mt4j/thumbs/thumbs_javagui.png" width="126" height="100" class="colorbox-1" />
							</a>
			<p class=wp-caption-text>javagui</p>
		</div>
	</div>
			
	<div id="ngg-image-895" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail wp-caption" >
			<a rel="lightbox-1" href="https://test.soziotech.org/wp-content/uploads/multitouch-mit-mt4j/mtgestures.png" title="
			Eine Zusammenfassung von möglichen Gesten, welche das Framework unterstützt			"  >
								<img alt="Eine Zusammenfassung von möglichen Gesten, welche das Framework unterstützt" src="https://test.soziotech.org/wp-content/uploads/multitouch-mit-mt4j/thumbs/thumbs_mtgestures.png" width="126" height="100" class="colorbox-1" />
							</a>
			<p class=wp-caption-text>mtgestures</p>
		</div>
	</div>
			
	<div id="ngg-image-896" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail wp-caption" >
			<a rel="lightbox-1" href="https://test.soziotech.org/wp-content/uploads/multitouch-mit-mt4j/scenes.png" title="
			Beispiel zur Verwendung von verschiedenen Scenen in einer einzigen Applikation			"  >
								<img alt="Beispiel zur Verwendung von verschiedenen Scenen in einer einzigen Applikation" src="https://test.soziotech.org/wp-content/uploads/multitouch-mit-mt4j/thumbs/thumbs_scenes.png" width="126" height="100" class="colorbox-1" />
							</a>
			<p class=wp-caption-text>scenes</p>
		</div>
	</div>
			
	<div id="ngg-image-897" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail wp-caption" >
			<a rel="lightbox-1" href="https://test.soziotech.org/wp-content/uploads/multitouch-mit-mt4j/svgexample.png" title="
			Ein Programm zur Manipulation von Vektorgrafiken mit verschiedenen Multitouch-Gesten			"  >
								<img alt="Ein Programm zur Manipulation von Vektorgrafiken mit verschiedenen Multitouch-Gesten" src="https://test.soziotech.org/wp-content/uploads/multitouch-mit-mt4j/thumbs/thumbs_svgexample.png" width="126" height="100" class="colorbox-1" />
							</a>
			<p class=wp-caption-text>svgexample</p>
		</div>
	</div>
		
	<!-- Pagination -->
 	<div class='ngg-clear'></div>
 	
</div>


<h3>Advanced-Anwendungen</h3>

<div class="ngg-galleryoverview" id="ngg-gallery--36462">


	
	<!-- Thumbnails -->
		
	<div id="ngg-image-898" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail wp-caption" >
			<a rel="lightbox-2" href="https://test.soziotech.org/wp-content/uploads/multitouch-mit-mt4j/drawing.png" title="
			Ein &quot;Finger&quot;-Zeichenprogramm mit einfachen Optionen			"  >
								<img alt="Ein &quot;Finger&quot;-Zeichenprogramm mit einfachen Optionen" src="https://test.soziotech.org/wp-content/uploads/multitouch-mit-mt4j/thumbs/thumbs_drawing.png" width="126" height="100" class="colorbox-2" />
							</a>
			<p class=wp-caption-text>drawing</p>
		</div>
	</div>
			
	<div id="ngg-image-899" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail wp-caption" >
			<a rel="lightbox-2" href="https://test.soziotech.org/wp-content/uploads/multitouch-mit-mt4j/flickrmt.png" title="
			Eine Applikation zum Suchen und Darstellen von Bilder des Dienstes flickr			"  >
								<img alt="Eine Applikation zum Suchen und Darstellen von Bilder des Dienstes flickr" src="https://test.soziotech.org/wp-content/uploads/multitouch-mit-mt4j/thumbs/thumbs_flickrmt.png" width="126" height="100" class="colorbox-2" />
							</a>
			<p class=wp-caption-text>flickrmt</p>
		</div>
	</div>
			
	<div id="ngg-image-900" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail wp-caption" >
			<a rel="lightbox-2" href="https://test.soziotech.org/wp-content/uploads/multitouch-mit-mt4j/fluidsimulator.png" title="
			Ein Simulator, welcher flüssige Partikel anhand von Gesten darstellt			"  >
								<img alt="Ein Simulator, welcher flüssige Partikel anhand von Gesten darstellt" src="https://test.soziotech.org/wp-content/uploads/multitouch-mit-mt4j/thumbs/thumbs_fluidsimulator.png" width="126" height="100" class="colorbox-2" />
							</a>
			<p class=wp-caption-text>fluidsimulator</p>
		</div>
	</div>
			
	<div id="ngg-image-901" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail wp-caption" >
			<a rel="lightbox-2" href="https://test.soziotech.org/wp-content/uploads/multitouch-mit-mt4j/models3d.png" title="
			Es können 3D Modelle dargestellt, gezoomt und beliebig gedreht werden			"  >
								<img alt="Es können 3D Modelle dargestellt, gezoomt und beliebig gedreht werden" src="https://test.soziotech.org/wp-content/uploads/multitouch-mit-mt4j/thumbs/thumbs_models3d.png" width="126" height="100" class="colorbox-2" />
							</a>
			<p class=wp-caption-text>models3d</p>
		</div>
	</div>
			
	<div id="ngg-image-902" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail wp-caption" >
			<a rel="lightbox-2" href="https://test.soziotech.org/wp-content/uploads/multitouch-mit-mt4j/modestmapsmt.png" title="
			Eine Anwendung zur Arbeit mit verschiedenen Kartendiensten, wobei die Karte gezoomt und bewegt werden kann			"  >
								<img alt="Eine Anwendung zur Arbeit mit verschiedenen Kartendiensten, wobei die Karte gezoomt und bewegt werden kann" src="https://test.soziotech.org/wp-content/uploads/multitouch-mit-mt4j/thumbs/thumbs_modestmapsmt.png" width="126" height="100" class="colorbox-2" />
							</a>
			<p class=wp-caption-text>modestmapsmt</p>
		</div>
	</div>
			
	<div id="ngg-image-891" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail wp-caption" >
			<a rel="lightbox-2" href="https://test.soziotech.org/wp-content/uploads/multitouch-mit-mt4j/mt-application_2012-01-29_15-37-47.png" title="
			Eine Shell-Applikation mit dem geladenen 3D-Model Beispiel. In dieser Anwendung können verschiedene Applikationen ausgewählt und geladen werden.			"  >
								<img alt="Eine Shell-Applikation mit dem geladenen 3D-Model Beispiel. In dieser Anwendung können verschiedene Applikationen ausgewählt und geladen werden." src="https://test.soziotech.org/wp-content/uploads/multitouch-mit-mt4j/thumbs/thumbs_mt-application_2012-01-29_15-37-47.png" width="126" height="100" class="colorbox-2" />
							</a>
			<p class=wp-caption-text>mtShell</p>
		</div>
	</div>
			
	<div id="ngg-image-903" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail wp-caption" >
			<a rel="lightbox-2" href="https://test.soziotech.org/wp-content/uploads/multitouch-mit-mt4j/physics.png" title="
			Eine einfache Physiksimulation entsprechend der Multitouch-Gesten			"  >
								<img alt="Eine einfache Physiksimulation entsprechend der Multitouch-Gesten" src="https://test.soziotech.org/wp-content/uploads/multitouch-mit-mt4j/thumbs/thumbs_physics.png" width="126" height="100" class="colorbox-2" />
							</a>
			<p class=wp-caption-text>physics</p>
		</div>
	</div>
			
	<div id="ngg-image-904" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail wp-caption" >
			<a rel="lightbox-2" href="https://test.soziotech.org/wp-content/uploads/multitouch-mit-mt4j/puzzle.png" title="
			Geladene Bilder können in dieser Applikation in ein Puzzle verwandelt werden, welches sich dann zusammensetzen lässt			"  >
								<img alt="Geladene Bilder können in dieser Applikation in ein Puzzle verwandelt werden, welches sich dann zusammensetzen lässt" src="https://test.soziotech.org/wp-content/uploads/multitouch-mit-mt4j/thumbs/thumbs_puzzle.png" width="126" height="100" class="colorbox-2" />
							</a>
			<p class=wp-caption-text>puzzle</p>
		</div>
	</div>
			
	<div id="ngg-image-905" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail wp-caption" >
			<a rel="lightbox-2" href="https://test.soziotech.org/wp-content/uploads/multitouch-mit-mt4j/simpleparticles.png" title="
			Eine Partikelsimulation entsprechend der Multitouch-Eingaben			"  >
								<img alt="Eine Partikelsimulation entsprechend der Multitouch-Eingaben" src="https://test.soziotech.org/wp-content/uploads/multitouch-mit-mt4j/thumbs/thumbs_simpleparticles.png" width="126" height="100" class="colorbox-2" />
							</a>
			<p class=wp-caption-text>simpleparticles</p>
		</div>
	</div>
			
	<div id="ngg-image-906" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail wp-caption" >
			<a rel="lightbox-2" href="https://test.soziotech.org/wp-content/uploads/multitouch-mit-mt4j/space3d.png" title="
			Eine 3D Darstellung der Erde mit Mond, welche gezoomt und gedreht werden kann			"  >
								<img alt="Eine 3D Darstellung der Erde mit Mond, welche gezoomt und gedreht werden kann" src="https://test.soziotech.org/wp-content/uploads/multitouch-mit-mt4j/thumbs/thumbs_space3d.png" width="126" height="100" class="colorbox-2" />
							</a>
			<p class=wp-caption-text>space3d</p>
		</div>
	</div>
			
	<div id="ngg-image-907" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail wp-caption" >
			<a rel="lightbox-2" href="https://test.soziotech.org/wp-content/uploads/multitouch-mit-mt4j/touchtail.png" title="
			Diese Anwendung verwandelt Inputgesten in ein fortlaufendes Bewegungsbild			"  >
								<img alt="Diese Anwendung verwandelt Inputgesten in ein fortlaufendes Bewegungsbild" src="https://test.soziotech.org/wp-content/uploads/multitouch-mit-mt4j/thumbs/thumbs_touchtail.png" width="126" height="100" class="colorbox-2" />
							</a>
			<p class=wp-caption-text>touchtail</p>
		</div>
	</div>
			
	<div id="ngg-image-908" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail wp-caption" >
			<a rel="lightbox-2" href="https://test.soziotech.org/wp-content/uploads/multitouch-mit-mt4j/water.png" title="
			Eine einfache Wassersimulation, welche durch Berührung Wellen erzeugt			"  >
								<img alt="Eine einfache Wassersimulation, welche durch Berührung Wellen erzeugt" src="https://test.soziotech.org/wp-content/uploads/multitouch-mit-mt4j/thumbs/thumbs_water.png" width="126" height="100" class="colorbox-2" />
							</a>
			<p class=wp-caption-text>water</p>
		</div>
	</div>
		
	<!-- Pagination -->
 	<div class='ngg-clear'></div>
 	
</div>


<h2>Minimalimplementierung</h2>
<p>Eine Multitouch-Anwendung mit MT4j zu schreiben ist denkbar einfach, da sie nur zwei Klassen (Scene und MTApplication) benötigt. Die folgenden beiden Abschnitte geben einen Überblick über die Implementierung eine einfachen Applikation zur  Bildmanipulation. Die Anwendung, die zum Selbsttest ebenfalls als <a href="https://test.soziotech.org/wp-content/uploads/2012/02/Soziotech_MT4j_Beispiel1.zip" class="link-zip">Download </a>verfügbar ist, ermöglicht es,  ein Bild anzuzeigen und dieses mit Standard-Multitouch-Gesten zu manipulieren.</p>
<h3>Scene</h3>
<p>Eine &#8222;Scene als erste benötigte Bestandteil der Anwendung muss die abstrakte Klasse  &#8222;AbstractScene&#8220; erweitern. In dieser Klasse wird festgelegt, welche Komponenten angezeigt werden. Es gibt viele vorgefertigte Elemente, die insbesondere Standard-Multitouch-Gesten bereits beherrschen.  Hierzu gehören beispielsweise Grafiken, Textfelder und Rahmen  für verschiedene andere Objekte. Für unser Minimalbeispiel benötigen wir folgenden Code für die Scene-Klasse:</p>
<pre class="brush:java">package MinimalExample;

import org.mt4j.MTApplication;
import org.mt4j.components.TransformSpace;
import org.mt4j.components.visibleComponents.widgets.MTImage;
import org.mt4j.input.gestureAction.InertiaDragAction;
import org.mt4j.input.inputProcessors.componentProcessors.dragProcessor.DragProcessor;
import org.mt4j.sceneManagement.AbstractScene;
import org.mt4j.util.math.Vector3D;

import processing.core.PImage;

public class PictureScene extends AbstractScene
{
  private String picturePath =  "MinimalExample" + MTApplication.separator + "data" + MTApplication.separator;

  public PictureScene (MTApplication mtApplication, String name)
  {
    super(mtApplication, name);

    MTApplication app = mtApplication;
    PImage img = app.loadImage(picturePath + "pic.jpg");
    MTImage image = new MTImage(img,app);
    image.setUseDirectGL(true);
    image.setPositionGlobal(new Vector3D(400,400,0));
    image.scale(0.2f, 0.2f, 0.2f, image.getCenterPointLocal(), TransformSpace.LOCAL);
    image.addGestureListener(DragProcessor.class, new InertiaDragAction());
    this.getCanvas().addChild(image);
  }

  @Override
  public void init() {}

  @Override
  public void shutDown() {}
}</pre>
<p>Datei ist zu beachten, dass sich das entsprechende Bild im Paket &#8222;MinimalExample.data&#8220; (gekennzeichnet als &#8222;picturePath&#8220;) befinden muss,  damit es geladen werden kann!</p>
<h3>MTApplication</h3>
<p>Die &#8222;Application&#8220;-Klasse dient zum Starten der Anwendung und muss die abstrakte  Klasse &#8222;MTApplication&#8220; erweitern. Die vorher beschriebene Scene wird lediglich  hinzugefügt. Anschließend wird die Anwendung mit dem Methodenaufruf &#8222;initialize()&#8220;  gestartet. Dazu sind lediglich die Folgenden Codezeilen erforderlich:</p>
<pre class="brush:java">package MinimalExample;

import org.mt4j.MTApplication;

public class StartMinimalExample extends MTApplication
{
  private static final long serialVersionUID = 1L;

  public static void main(String args[])
  {
    initialize();
  }

  @Override
  public void startUp()
  {
    this.addScene(new PictureScene(this, "Picture scene"));
  }
}</pre><img src="https://analytics.flottmedia.com/piwik/piwik.php?idsite=2&amp;rec=1&amp;url=https%3A%2F%2Ftest.soziotech.org%2Fmultitouch-entwicklung-mit-mt4j%2F&amp;action_name=Multitouch-Entwicklung+mit+MT4j&amp;urlref=http%3A%2F%2Ffeeds.feedburner.com%2Fsoziotech" style="border:0;width:0;height:0" width="0" height="0" alt="" /><div class="simple-footnotes"><h2 class="notes">Quellen und Fußnoten:</h2><ol><li id="note-3646-1">Vierecke, Ellipsen, Polygone, etc. . <a class="simple-footnote-backlink" href="#return-note-3646-1">&#8617;</a></li><li id="note-3646-2">Standardschriftarten (True Type) und Vektor-basierte Schriftarten. <a class="simple-footnote-backlink" href="#return-note-3646-2">&#8617;</a></li><li id="note-3646-3">Unterstützung gängiger Formate (.jpg, .png, .bmp). <a class="simple-footnote-backlink" href="#return-note-3646-3">&#8617;</a></li><li id="note-3646-4">.3ds und .obj Dateien mit Texturen. <a class="simple-footnote-backlink" href="#return-note-3646-4">&#8617;</a></li><li id="note-3646-5">Unterstützung gängiger Formate. <a class="simple-footnote-backlink" href="#return-note-3646-5">&#8617;</a></li></ol></div><div class='yarpp-related-rss'>
<h3>Verwandte Artikel:</h3><ol>
<li><a href="https://test.soziotech.org/konzeption-eines-analyserasters/" rel="bookmark" title="Konzeption eines Analyserasters für die szenario-spezifische Eignungsfeststellung von Multitouch-Tablets">Konzeption eines Analyserasters für die szenario-spezifische Eignungsfeststellung von Multitouch-Tablets </a></li>
<li><a href="https://test.soziotech.org/alternative-moeglichkeiten-zur-interaktion-mit-grossen-vertikalen-displays/" rel="bookmark" title="Alternative Möglichkeiten zur Interaktion mit großen vertikalen Displays">Alternative Möglichkeiten zur Interaktion mit großen vertikalen Displays </a></li>
<li><a href="https://test.soziotech.org/howto-erste-schritte-mit-javafx-2-0/" rel="bookmark" title="Howto &#8211; Erste Schritte mit JavaFX 2.0">Howto &#8211; Erste Schritte mit JavaFX 2.0 </a></li>
</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>https://test.soziotech.org/multitouch-entwicklung-mit-mt4j/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CommunityMashup &#8211; Model Driven Approach</title>
		<link>https://test.soziotech.org/communitymashup/model-driven-approach/</link>
		<comments>https://test.soziotech.org/communitymashup/model-driven-approach/#comments</comments>
		<pubDate>Thu, 10 Nov 2011 11:57:31 +0000</pubDate>
		<dc:creator><![CDATA[Peter Lachenmaier]]></dc:creator>
				<category><![CDATA[CommunityMashup]]></category>
		<category><![CDATA[Datenmodell]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[MDA]]></category>
		<category><![CDATA[MDD]]></category>
		<category><![CDATA[Model-Driven-Development]]></category>
		<category><![CDATA[UML]]></category>

		<guid isPermaLink="false">http://sevastyanova.cscwlab.de/</guid>
		<description><![CDATA[