<?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>Beiträge von Marlene Strasser - Mobile USTP MKL</title>
	<atom:link href="https://mobile.fhstp.ac.at/author/dm171555/feed/" rel="self" type="application/rss+xml" />
	<link>https://mobile.fhstp.ac.at/author/dm171555/</link>
	<description>Die &#34;Mobile Forschungsgruppe&#34; der USTP, sie  sammelt hier alles zu den Themen Design, UX und Entwicklung mobiler Applikationen</description>
	<lastBuildDate>Wed, 19 Sep 2018 10:49:22 +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>Beiträge von Marlene Strasser - Mobile USTP MKL</title>
	<link>https://mobile.fhstp.ac.at/author/dm171555/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>PEZZ life &#8211; Für ein glückliches Hundeleben</title>
		<link>https://mobile.fhstp.ac.at/allgemein/pezz-life-fuer-ein-glueckliches-hundeleben/</link>
		
		<dc:creator><![CDATA[Marlene Strasser]]></dc:creator>
		<pubDate>Wed, 19 Sep 2018 10:49:22 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Native Development]]></category>
		<category><![CDATA[Projekte]]></category>
		<guid isPermaLink="false">https://akirchknopf-21110.php.fhstp.cc/?p=7982</guid>

					<description><![CDATA[<p>PEZZ life &#8211; Für ein glückliches Hundeleben In der EU leben mehr als 60 Millionen registrierte Hunde und alle diese Hunde haben eines gemeinsam. Sie können uns nicht sagen, wenn es ihnen schlecht geht und zeigen Krankheitssymptome meist erst, wenn es bereits zu spät ist. Um Leid zu verhindern, sind unsere besten Freunde deswegen auf teure, <a class="read-more" href="https://mobile.fhstp.ac.at/allgemein/pezz-life-fuer-ein-glueckliches-hundeleben/">[...]</a></p>
<p>The post <a href="https://mobile.fhstp.ac.at/allgemein/pezz-life-fuer-ein-glueckliches-hundeleben/">PEZZ life &#8211; Für ein glückliches Hundeleben</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1 class="p1"><span class="s1">PEZZ life &#8211; </span><span class="s1">Für ein glückliches Hundeleben</span></h1>
<p class="p1"><span class="s1">In der EU leben mehr als 60 Millionen registrierte Hunde und alle diese Hunde haben eines gemeinsam. Sie können uns nicht sagen, wenn es ihnen schlecht geht und zeigen Krankheitssymptome meist erst, wenn es bereits zu spät ist. Um Leid zu verhindern, sind unsere besten Freunde deswegen auf teure, stressige und vor allem regelmäßige Untersuchungen angewiesen. PEZZ life nimmt sich diesem Problem an und möchten die Haustiergesundheitsbranche in das Digitalisierungszeitalter führen. </span></p>
<h3 class="p1"><span class="s1">Der Pezz Check</span></h3>
<p class="p1"><span class="s1">Der erste Schritt auf diesem Weg ist der völlig neuartige Do-it-yourself Gesundheitstest für Hunde. Der PEZZ Check, basiert auf einem Urintest und wird mittels der smarten PEZZ App gescannt. Er überprüft 8 unterschiedliche Indikatoren im Urin und gibt Aufschluss über den Gesundheitsstatus des Hundes. Zu den Indikatoren zählen Blut, Glukose, Ketone, Leukozyten, Nitrite, pH-Werte, Protein und Urobilinogen. Dadurch können Werte erkannt werden die sich auf aus der Leber, Niere, Harnblase, Blutsystem, Verdauungstrakt und der Bauchspeicheldrüse ergeben. Es lassen sich auch eine Vielzahl von allgemeinen Krankheiten abzeichnen.</span></p>
<h3 class="p1"><span class="s1">Die PEZZ App</span></h3>
<p class="p1"><span class="s1">Die Ergebnisse, des Urintest werden dann automatisch interpretiert und in der App für den Hundebesitzer verständlich erklärt. Die App ermöglicht es dem Hundebesitzer binnen Sekunden mehr als 20 lebensbedrohliche Erkrankungen frühzeitig zu erkennen, angefangen von Diabetes bis hin zu Niereninsuffizienz und vielen weiteren. Darüberhinaus soll die App nicht nur Nutzern des PEZZ Checks einen Mehrwert bieten, sondern soll allen Hundebesitzern bei der Haltung ihres Haustieres Unterstützung bieten. Basierend auf den aktuellen Wetterdaten, werden </span><span class="s1">beispielsweise Funktionen integriert, welche die ideale Uhrzeit für einen Spaziergang draußen anzeigen. Die Pezz App wird sowohl auf iOS als auch auf Android im jeweiligen Store verfügbar sein. </span></p>
<h3 class="p1"><span class="s1">Visionen der Zukunft</span></h3>
<p class="p1"><span class="s1">Die App wird eine Vielzahl von Funktionen umfassen und laufend mit neuen erweitert werden. Das macht sie </span><span class="s1">zur ersten Gesundheitsplattform für Hunde. Eine Vision für die Zukunft wäre die Entwicklung eines virtuellen Assistenten für Hundegesundheit. Dieser soll mit den Hundebesitzern kommunizieren, immer ein offenes Ohr für Ihre Sorgen und Anliegen haben, ihnen Tips geben und Fragen zur optimalen Haltung ihres Tieres beantworteten.</span></p>
<h3 class="p1"><span class="s1">Aber Achtung</span></h3>
<p class="p3"><span class="s1">Die Pezz App sowie der Pezz Check ist kein Ersatz für eine tierärztliche Untersuchung oder Diagnose. Die Instrumente dienen rein der Früherkennung und Vorsorge.</span></p>
<h3 class="p3"><span class="s1">Ziel von Pezz life</span></h3>
<p class="p3"><span class="s1">Erstens, soll durch frühzeitiges Erkennen eines Gesundheitsrisikos, das Entstehen von Krankheiten reduziert werden. Zweitens sollen Krankheiten in einem frühen, noch gut therapierbaren Stadium erkannt werden, um dem Hund bessere Heilungschancen zu ermöglichen. Ziel ist es die Branche zu revolutionieren,<span class="Apple-converted-space">  </span>Hundebesitzern Kummer, Zeit und Geld zu ersparen und vor allem Unterstützung bei der Rettung von Hundeleben zu bieten. </span></p>
<h3 class="p3"><span class="s1">Links zum Projekt</span></h3>
<p class="p3"><span class="s1">Website: <a href="https://de.pezz.life/"><span class="s2">https://de.pezz.life/</span></a></span></p>
<p>The post <a href="https://mobile.fhstp.ac.at/allgemein/pezz-life-fuer-ein-glueckliches-hundeleben/">PEZZ life &#8211; Für ein glückliches Hundeleben</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>RubyMotion</title>
		<link>https://mobile.fhstp.ac.at/development/cross-plattform/rubymotion/</link>
		
		<dc:creator><![CDATA[Marlene Strasser]]></dc:creator>
		<pubDate>Sun, 24 Jun 2018 21:54:29 +0000</pubDate>
				<category><![CDATA[Cross Plattform]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Native Development]]></category>
		<guid isPermaLink="false">https://akirchknopf-21110.php.fhstp.cc/?p=7834</guid>

					<description><![CDATA[<p>RubyMotion &#160; RubyMotion ist eine Toolchain, welche es ermöglicht native iOS, OS X und Android Apps in der Programmiersprache Ruby zu entwickeln. RubyMotion gilt daher als Cross-Platform Produkt, umgesetzt von Laurent Sansonetti für das Unternehmen HipByte, welches aber ausschließlich die Entwicklung auf MAC zulässt. RubyMotion ist eine Kombination aus 2 Hauptkomponenten: Laufzeiten: Die RubyMotion runtimes <a class="read-more" href="https://mobile.fhstp.ac.at/development/cross-plattform/rubymotion/">[...]</a></p>
<p>The post <a href="https://mobile.fhstp.ac.at/development/cross-plattform/rubymotion/">RubyMotion</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1 style="text-align: center;">RubyMotion</h1>
<p>&nbsp;</p>
<p>RubyMotion ist eine Toolchain, welche es ermöglicht native iOS, OS X und Android Apps in der Programmiersprache Ruby zu entwickeln. RubyMotion gilt daher als Cross-Platform Produkt, umgesetzt von Laurent Sansonetti für das Unternehmen HipByte, welches aber ausschließlich die Entwicklung auf MAC zulässt.</p>
<p>RubyMotion ist eine Kombination aus 2 Hauptkomponenten:</p>
<ul>
<li><strong>Laufzeiten:</strong> Die RubyMotion runtimes implementieren die Ruby-Sprachfunktionalität, die während der Ausführung einer Anwendung benötigt wird. Das Objektmodell, built-in Klassen sowie das Speichermanagement sind Teil der Laufzeitumgebung. RubyMotion kommt mit zwei Laufzeiten (jeweils eine für iOS/OS X und Android):
<ul>
<li>iOS/OS X: basiert auf der Objective-C Laufzeit und core Cocoa Klassen</li>
<li>Android: basiert auf der Android Laufzeit (Dalvik or ART) und core Java Klassen</li>
</ul>
</li>
<li><strong>Projektmanagement:</strong> Eine Befehlszeilenschnittstelle zum Erstellen, Verwalten und interaktiven Entwicklen von RubyMotion-Projekten. Es enthält außerdem einen statischen Computer, der Ruby in optimierten Maschinencode kompiliert, und eine interaktive Konsole, welche Ausdrücke laufenden Betreib auswertet und die Funktionsweise der App in Echtzeit ändert.</li>
</ul>
<p>RubyMotion folgt den Sprachspezifikationen von Ruby 1.9.</p>
<p>&nbsp;</p>
<h2>Lizenz</h2>
<p>RubyMotion ist ein kommerzielles Produkt, wobei Teile Open-Source sind. Eine starter Lizenz, welche nur iOS, Android und OS X development unterstütz, steht für Hobbyzwecke frei zur Verfügung. Will man aber auch für watchOS oder tvOS entwickeln, muss man sich eine Lizenz kaufen. Die „Indie“-Lizenz für Einzel- und Kleinunternehmen kostet ca. $200 im Jahr und die „Professional“-Lizenz für größer Organisationen ca. $500 jährlich.</p>
<p>&nbsp;</p>
<h2>Entwicklungsumgebung</h2>
<p>Ziel ist eine konsistente Umgebung für Android und iOS Development zu schaffen. Es obliegt dabei dem Entwickler, für welchen Editor er oder sie sich entscheidet. Es wird weder Xcode noch Android Studio benötigt. Erforderlich ist ein beliebiger Editor und das Terminal.</p>
<p>&nbsp;</p>
<h2>Vorteile und Features</h2>
<ul>
<li>Ruby ist im Vergleich zu Objective-C, Swift und Java einfach zu erlernen.</li>
<li>RubyMotion wird ausschließlich über die Terminal-Befehlszeile ausgeführt und benötigt keine spezielle IDE. Entwickler können ihren bevorzugten Editor verwenden. Teile der Toolchain sind Open Source und können einfach erweitert werden.</li>
<li>RubyMotion Apps laufen auf den gleichen Laufzeittechnologien wie Objektive-C, Swift oder Java-App und werden genauso in Maschinencode kompiliert. Es kann auf jede iOS und Android API zugegriffen werden.</li>
<li>RubyMotion kommt mit einem behavior-driven testing framework, was bedeutet, die Projekte eignen sich von Anfang an für eine testgetriebene Entwicklung. Es können funktionale als auch Integrationstest in der selben Sprache geschrieben werden können, in der die Anwendung programmiert wird.</li>
<li>Debugging wird sowohl im Simulator als auch auf dem Device unterstützt.</li>
<li>Auf iOS und OS X wird CocoaPods nativ unterstützt.</li>
</ul>
<p>&nbsp;</p>
<h2>Voraussetzungen</h2>
<p>64-bit Mac mit OS X 10.9 oder höher.</p>
<ul>
<li><strong>für iOS:</strong>
<ul>
<li>iOS und OS X SDK muss auf dem Mac installiert sein. (Diese SDKs kommen mit Xcode)<br />
Editor nach Wahl muss vorhanden sein</li>
<li>Man muss dem iOS Entwicklerprogramm beitreten um ein Zertifikat zum signieren der Anwendung zu erhalten.<br />
Ein iOS Gerät zum testen, wenn man dies möchte</li>
</ul>
</li>
<li><strong>für Android:</strong>
<ul>
<li>Für Android development muss man dem Google Play Programm beitreten.</li>
<li>Man benötigt ein für die Entwicklung konfiguriertes Android Gerät.</li>
</ul>
</li>
</ul>
<p>&nbsp;</p>
<h2>Getting Started</h2>
<ol>
<li>RubyMotion downloaden und installieren ( http://www.rubymotion.com/ )<br />
RubyMotion installiert sich dabei selbst in „/Library/RubyMotion“</li>
<li>Falls notwendig RubyMotion updaten. Die Version lässt sich mit dem folgenden Befehl kontrollieren: $ motion &#8211;version<br />
Ein Update kann man mit dem folgendem Befehl durchführen: $ sudo motion update</li>
<li>Mit folgendem Befehl kann ein neues RubyMotion Projekt erstellt werden: $ motion create Projektname.</li>
<li>Im app-Directory befindet sich nun der Application Code. Das resource-Directory beinhaltet die resource Files, wie zum Beispiel Bilder, Icons oder Soundfiles. Das spec-Directory beinhaltet specification/test Files.</li>
<li>Rake ist das Ruby build Programm. Mit dem Befehl $ rake erfolgt ein build und das Programm wird im Simulator gestartet. Hier müsste jetzt nur ein leeres, schwarzes Fenster zu sehen sein, da noch kein Code geschrieben wurde.</li>
<li>Will man die App nun auf dem eigenen Gerät testen, sollte dieses über USB verbunden werden und der Befehl $ rake device über das Terminal eingegeben werden.</li>
<li>Im app-Directory befindet sich standardmäßig ein File namens „app_delegate.rb“, welches die Klasse AppDelegate implementiert. Diese ist bei der Entwicklung einer iOS App verantwortlich für die Steuerung der Applikation. Hier können ab jetzt die ersten Codezeilen geschrieben werden.</li>
</ol>
<p>&nbsp;</p>
<h2>Beispiele für RubyMotion Apps</h2>
<p>37signals&#8217;s Basecamp for iPhone<br />
the Bandcamp iPhone app<br />
A Dark Room for iOS</p>
<p>The post <a href="https://mobile.fhstp.ac.at/development/cross-plattform/rubymotion/">RubyMotion</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>„Print-to-Mobile“ &#8211; 17 Quizzes</title>
		<link>https://mobile.fhstp.ac.at/allgemein/print-to-mobile-17-quizzes/</link>
		
		<dc:creator><![CDATA[Marlene Strasser]]></dc:creator>
		<pubDate>Thu, 30 Nov 2017 19:03:19 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<guid isPermaLink="false">https://akirchknopf-21110.php.fhstp.cc/?p=7362</guid>

					<description><![CDATA[<p>17 Quizzes &#8211; Schaffst du es in die Hall of Fame? 17 Quizzes ist ein abwechslungsreiches, als responsive Web App entwickeltes Quiz. Ziel des Spiels ist es alle 17 Quizzes zu lösen und sich damit einen Platz in der Hall of Fame zu sichern. Bei vielen bekannten Rätsel-Apps steht der User vor Herausforderungen wie Sudokus zu <a class="read-more" href="https://mobile.fhstp.ac.at/allgemein/print-to-mobile-17-quizzes/">[...]</a></p>
<p>The post <a href="https://mobile.fhstp.ac.at/allgemein/print-to-mobile-17-quizzes/">„Print-to-Mobile“ &#8211; 17 Quizzes</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h3>17 Quizzes &#8211; Schaffst du es in die Hall of Fame?</h3>
<p>17 Quizzes ist ein abwechslungsreiches, als responsive Web App entwickeltes Quiz. Ziel des Spiels ist es alle 17 Quizzes zu lösen und sich damit einen Platz in der Hall of Fame zu sichern.</p>
<p>Bei vielen bekannten Rätsel-Apps steht der User vor Herausforderungen wie Sudokus zu lösen, Logos zu erraten, Scrabble Aufgaben zu bewältigen, Quiz Fragen zu beantworten oder Gemeinsamkeiten aus Bildern zu erkennen. 17 Quizzes bietet mehr. Es ist nicht nur eine Kombination aus all diesen Rätselaufgaben, sondern regt den User dazu an, selbst zu recherchieren, Bilder zu bearbeiten, Codes zu entschlüsseln, Zahlenreihen zu vervollständigen und vieles mehr. Dieses Rätsel bietet Abwechslung pur und stellt den User vor viele neue Herausforderungen, denn der Eintritt in die Hall of Fame will verdient sein.</p>
<p>Hier der Link zum Spiel: <a href="http://dm171555.students.fhstp.ac.at/17quizzes/">http://dm171555.students.fhstp.ac.at/17quizzes/</a><br />
<img fetchpriority="high" decoding="async" class="alignnone wp-image-7369 " src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2017/11/17Quizzes-WebApplication-770x400.jpg" alt="17 Quizzes Web Applikation" width="926" height="478" /><br />
&nbsp;</p>
<h4>Wie funktioniert das Spiel?</h4>
<p>Das Spiel besteht aus 17 Levels. Um das nächste Level zu erreichen, muss der User ein Lösungswort eingeben. In jedem Level sieht man ein Bild, welches einen Hinweis auf das jeweilige Lösungswort gibt. Stimmt die Antwort, erreicht der Spieler das nächste Level. Stimmt die Antwort nicht: Bezahlt man mit einem Leben. Jeder User hat maximal 5 Leben, danach muss er von vorne beginnen. Dadurch wird er mehr zum recherchieren und zum überlegen angehalten. Mit einem Klick auf das Bild erhält der Spieler zusätzliche, kleine Hilfestellungen.</p>
<p>&nbsp;</p>
<h4>Die Spielregeln</h4>
<ul>
<li>Gehe von einem Level zum Nächsten.</li>
<li>Sieh dir die Bilder immer ganz genau an.</li>
<li>Überlege, was die Antwort sein könnte. Manchmal musst du dafür etwas um die Ecke denken.</li>
<li>Um alle Levels erfolgreich zu bestreiten, wird es auch etwas Recherche benötigen. Das bedeutet googeln ist erlaubt und auch erwünscht <img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></li>
</ul>
<p>&nbsp;</p>
<h4>Technologien</h4>
<p>Das Frontend des Spiels wurde mit HTML, CSS, Bootstrap und jQuery umgesetzt. jQuery wurde für kleine Animationen (wie in der Navigation ersichtlich) verwendet. Das Backend bzw. die Logik des Spiels wurde mit PHP umgesetzt. Die jeweiligen Lösungswörter, Hilfestellungen, sowie die Namen der Mitglieder in der Hall of Fame wurden in einer MySQL Datenbank gespeichert. Bei jeder Eingabe des Lösungswortes wird dieses mit dem Lösungswort aus der Datenbank verglichen. Dadurch sind die Lösungswörter nicht im Quelltext ersichtlich.</p>
<p>&nbsp;</p>
<h4>Zukunft</h4>
<p>Es kommen neue Quizzes. Im Umfang des Print-to-mobile Projektes gab es 17 Quizzes. Derzeit kommen als &#8220;17-Quizzes Advanced&#8221; nochmals 17 neue Levels dazu. Geplant sind auch noch &#8220;17 Quizzes ++&#8221;, allerdings erst, wenn die ersten User die &#8220;17 Quizzes Advanced&#8221; erfolgreich absolviert haben. Eine Möglichkeit das Spiel zu erweitern ist ein Backend mit der Funktion neue Quizzes anzulegen und einen nativem Kamerazugriff zu integrieren. Ein nächster Ansatz für die Zukunft wäre, die Rätsel gemeinsam oder um die Wette zu lösen bzw. eigene Rätsel zu erstellen und diese mit Freunden zu teilen. Wer sich mehr für das Projekt und die Entwicklung interessiert, sollte in nächster Zeit wieder auf <a href="https://akirchknopf-21110.php.fhstp.cc/"><span class="s2">mfg.fhstp.ac.at</span></a> vorbei schauen.</p>
<p>&nbsp;</p>
<p>The post <a href="https://mobile.fhstp.ac.at/allgemein/print-to-mobile-17-quizzes/">„Print-to-Mobile“ &#8211; 17 Quizzes</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>„Hands on“ – AMP-Workshop für Neueinsteiger</title>
		<link>https://mobile.fhstp.ac.at/development/hands-on-amp-workshop-fuer-neueinsteiger/</link>
		
		<dc:creator><![CDATA[Marlene Strasser]]></dc:creator>
		<pubDate>Wed, 15 Nov 2017 14:24:50 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Webdevelopment]]></category>
		<category><![CDATA[Workshop]]></category>
		<guid isPermaLink="false">https://akirchknopf-21110.php.fhstp.cc/?p=7288</guid>

					<description><![CDATA[<p>Google-AMP (Accelerate Mobile Pages) ist ein Open-Source-Projekt mit dem Ziel, das Internet zu verbessern. Mit dem AMP-Standard können leistungsstarke, schöne und vor allem schnell ladende Webseiten erstellt werden. Näheres über AMP erläutert folgender Blogartikel: AMP – der neue Standard für mobil optimierte Webseiten In unserem Tutorial wollen wir folgenden Zeitungsartikel aus der Tageszeitung &#8220;Die Presse&#8221; <a class="read-more" href="https://mobile.fhstp.ac.at/development/hands-on-amp-workshop-fuer-neueinsteiger/">[...]</a></p>
<p>The post <a href="https://mobile.fhstp.ac.at/development/hands-on-amp-workshop-fuer-neueinsteiger/">„Hands on“ – AMP-Workshop für Neueinsteiger</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><strong>Google-AMP (Accelerate Mobile Pages) ist ein Open-Source-Projekt mit dem Ziel, das Internet zu verbessern. Mit dem AMP-Standard können leistungsstarke, schöne und vor allem schnell ladende Webseiten erstellt werden. Näheres über AMP erläutert folgender Blogartikel: <a href="https://akirchknopf-21110.php.fhstp.cc/development/amp/">AMP – der neue Standard für mobil optimierte Webseiten</a></strong></p>
<p>In unserem Tutorial wollen wir folgenden Zeitungsartikel aus der Tageszeitung &#8220;Die Presse&#8221; als AMP-Seite nachbauen und erweitern:<a href="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2017/11/Bundesheeer-gehen-die-Rekruten-aus.jpg"><img decoding="async" class="alignleft wp-image-7302" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2017/11/Bundesheeer-gehen-die-Rekruten-aus.jpg" alt="Artikel - AMP" width="1374" height="1836" /></a></p>
<p><strong><a href="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2017/11/article.amp_.html">Folgendes Markup</a> bietet eine gute Ausgangsbasis dafür. Das in diesem Workshop verwendete Bildmaterial kann frei gewählt werden. </strong></p>
<p>Wie wir sehen, ähnelt der Seitenaufbau sehr einer herkömmlichen HTML-Struktur. Der Code beinhaltet aber auch schon viel zusätzlichen AMP-Code.</p>
<h2><strong>Allgemeines zum Startcode</strong></h2>
<p><strong>AMP-Seiten müssen:</strong></p>
<ul>
<li>mit dem Doctype <strong>&lt;!doctype html&gt; </strong>initialisiert werden.</li>
<li>einen <strong>&lt;body&gt;</strong> und einen <strong>&lt;head&gt; </strong>haben.</li>
<li>mit folgendem HTML-Tag initialisiert werden: <strong>&lt;html <img src="https://s.w.org/images/core/emoji/16.0.1/72x72/26a1.png" alt="⚡" class="wp-smiley" style="height: 1em; max-height: 1em;" /> lang = “de“&gt;</strong> oder <strong>&lt;html amp lang = “de“&gt;</strong>.</li>
<li>eine Verlinkung auf eine alternative HTML-Seite haben: <strong>&lt;link rel=&#8221;canonical&#8221; href=&#8221;https://www.example.com/url/to/full/document.html&#8221;&gt;</strong> Das ist vor allem für die Suchmaschinenoptimierung relevant.</li>
<li>einen Verweis auf die AMP-Library beinhalten: <strong>&lt;script async src=&#8221;https://cdn.ampproject.org/v0.js&#8221;&gt;</strong> &lt;/script&gt;</li>
<li>den Meta-Tag <strong>&lt;meta charset=“utf8“&gt;</strong> für die Zeichenkodierung beinhalten.</li>
<li>folgende Viewport-Definition aufweisen: <strong>&lt;meta name=“viewport“ content = “width=device-with, minimum-scale=1“&gt;</strong></li>
<li>den AMP-Boilerplate-Code implementieren. Dieser CSS-Information soll die Seite so lange ausblenden, bis sie vollständig gerendert ist. Das führt zu einer besseren Leistungsmetrik.</li>
</ul>
<p>Unser Startcode beinhaltet auch eine Reihe JavaScript-Snippets die wir später für das Implementieren diverser Features brauchen. Ebenso haben wir auch schon ein <strong>&lt;header&gt;</strong>-Tag samt Home-Button der als <strong>&lt;amp-img&gt;</strong>-Element eingebunden wurde.</p>
<p>Im Tag <strong>&lt;script type=“application/ld+json“&gt;</strong> befinden sich Metadaten für die verschiedensten Inhalte. Zu den relevanten Eigenschaften gehören hier vor allem das Veröffentlichungsdatum, der Name des Autors, der Titel, der Nachrichtentyp uvm.</p>
<p>Bevor wir jetzt aber richtig loslegen, werfen wir noch einen Blick in die AMP-Referenz: <a href="https://www.ampproject.org/docs/reference/spec#html-tags">https://www.ampproject.org/docs/reference/spec#html-tags</a></p>
<p>Jene Tabelle zeigt uns eine Liste von „erlaubten“ HTML-Tags und das dazugehörige AMP-Äquivalent. Wir sehen hier, dass die AMP-Spezifikation im Vergleich zum HTML-Standard relativ „schlank“ ist und auf das nötigste heruntergebrochen wurde.</p>
<h2><strong>Let&#8217;s amplify</strong></h2>
<p>Wir wollen nun unseren AMP-Artikel schrittweise mit AMP-Features erweitern, sodass wir am Ende unserer Session eine schicke Seite haben.</p>
<h3><strong>Bild einbinden</strong></h3>
<pre><strong>&lt;amp-img src="Rekruten.jpg" alt="Rekruten" height="250" width="400" layout=responsive&gt; &lt;/amp-img&gt;</strong></pre>
<p>Die Definition von Höhe und Breite ist zwingend erforderlich. Das Attribut layout mit dem Wert responsive gewährleistet dass sich das Bild an die Bildschirmgröße anpasst.</p>
<h3><strong>Einbinden von Social Share Buttons</strong></h3>
<p>Die AMP-Komponente “Social Share” kann“Teilen-Buttons” für verschiedene soziale Netzwerke anzeigen. Als erstes benötigen wir dafür folgendes Script, welches bereits im Header eingebunden sein sollte:</p>
<pre><strong>&lt;script async custom-element="amp-social-share" src="https://cdn.ampproject.org/v0/amp-social-share-0.1.js"&gt;&lt;/script&gt;</strong></pre>
<p>In unserem Fall erstellen wir “Teilen-Buttons” für die Netzwerke Facebook, Twitter und Tumblr sowie einen Button der den Artikel per E-Mail weiterleitet.</p>
<pre><strong>&lt;amp-social-share type="facebook"&gt; &lt;/amp-social-share&gt;</strong>
 <strong> &lt;amp-social-share type="twitter"&gt; &lt;/amp-social-share&gt;</strong>
 <strong> &lt;amp-social-share type="tumblr"&gt; &lt;/amp-social-share&gt;</strong>
 <strong> &lt;amp-social-share type="email"&gt;</strong>
 <strong> data-param-subject="Die Presse - News"</strong>
<strong>&lt;/amp-social-share&gt;</strong></pre>
<h3><strong>Bilder Karusell</strong></h3>
<p>Ein weiteres beliebtes Feature von Google-AMP ist das Bilderkarusell. Auch hierfür ist bereits ein Script im Head-Tag eingebunden.</p>
<p><strong>&lt;script async custom-element=&#8221;amp-carousel&#8221; src=&#8221;https://cdn.ampproject.org/v0/amp-carousel-0.1.js&#8221;&gt;&lt;/script&gt;</strong></p>
<p>Im zweiten Schritt platzieren wir die Komponente mit dem Tag &lt;amp-carousel&gt; und befüllen dieses mit Bilder in Form eines &lt;amp-img&gt;-Tag.</p>
<pre><strong>&lt;amp-carousel layout="responsive" width="300" height="168" type="slides" autoplay delay="3000" loop&gt;</strong>
 <strong> &lt;amp-img src="grundwehrdiener.jpg" width="300" height="168" layout = "responsive"&gt;&lt;/amp-img&gt;</strong>
 <strong> &lt;amp-img src="erstehilfe.jpg" width="300" height="168" layout = "responsive"&gt;&lt;/amp-img&gt;</strong>
 <strong> &lt;amp-img src="angelobung.jpg" width="300" height="168" layout = "responsive"&gt;&lt;/amp-img&gt;</strong>
<strong>&lt;/amp-carousel&gt;</strong></pre>
<h3><strong>Youtube-Video</strong></h3>
<p>Die AMP-Youtube-Komponente (amp-youtube) lädt ein Video aus dem Source-Attribut (src).</p>
<p><u>Erforderliches Script: </u><strong>&lt;script async custom-element=&#8221;amp-youtube&#8221; src=&#8221;https://cdn.ampproject.org/v0/amp-youtube-0.1.js&#8221;&gt;&lt;/script&gt;</strong></p>
<p>Die Option “<strong>layout=responsive</strong>” lässt Videos im Seitenverhältnis 16:9 erscheinen. Mit der Video-ID lassen sich Youtubevideos verknüpfen. Die jeweilige ID befindet sich immer am Ende der jeweiligen URL.</p>
<pre><strong>&lt;amp-youtube</strong>
 <strong> data-videoid="Wvz5nsLaAUw"</strong>
 <strong> layout="responsive"</strong>
 <strong> width="480" height="270"&gt;</strong>
<strong>&lt;/amp-youtube&gt;</strong></pre>
<h3><strong>“Time-ago”</strong></h3>
<p>Als nächstes wollen wir unter der Schlagzeile einen Zeitstempel einbauen.  Hierfür bedienen wir uns vorerst folgendem Script:</p>
<pre><strong>&lt;script async custom-element="amp-timeago" src="https://cdn.ampproject.org/v0/amp-timeago-0.1.js"&gt;&lt;/script&gt;</strong>

<strong>&lt;amp-timeago layout="fixed" width="160"</strong>
 <strong> height="20"</strong>
 <strong> datetime="2017-11-01"</strong>
 <strong> locale="de"&gt;</strong>
<strong>&lt;/amp-timeago&gt;</strong></pre>
<h3>Fixedblock</h3>
<p>Mit Fixedblock verwendet man für große Texte z.B. für Werbezwecke. Es skaliert die maximale Schriftgröße in einem bestimmten Element.</p>
<pre><strong>&lt;div class="fixedblock"&gt;</strong>
 <strong> &lt;amp-fit-text width="200"</strong>
 <strong> height="100"</strong>
 <strong> layout="responsive"&gt; </strong>
<strong>&lt;/amp-fit-text&gt;Mach auch du Karriere beim Heer!</strong><strong>&lt;/div&gt;</strong></pre>
<h3>Iframe für multimediale Inhalte</h3>
<p>Mögliche Parameter für diesen Tag sind: place, directions, search, view und streetview. &#8220;q&#8221; legt den auf der Karte hervorzuhebenden Ort fest. Für eine fehlerfreie Anzeige wird auch ein Google API-Key benötigt.</p>
<pre><strong> &lt;amp-iframe width="600"</strong>
<strong>  title="Google map pin auf Fliegerhorst Vogle Kaserne, Hoersching"</strong>
<strong>  height="400"</strong>
<strong>  layout="responsive"</strong>
<strong>  sandbox="allow-scripts allow-same-origin allow-popups"</strong>
<strong>  frameborder="0"</strong>
<strong>  src="https://www.google.com/maps/embed/v1/search?key=AIzaSyCx3D2NA_aMdzIWi7zN2DyAK0RE0HTow3o&amp;q=Fliegerhorst+Vogler,Hoersching"&gt;</strong>
<strong>&lt;/amp-iframe&gt;</strong></pre>
<h3>Formular einbinden</h3>
<p>Eine AMP-Form führt immer eine Action aus, ausgelöst durch Submit und implementiert folgende Parameter als Events: Submit, submit-sucess, submit-error, valid, invalid;<br />
ACTION-XHR schickt beim Submitten des Formulares einen AJAX-Request. In unserem Fall erstellen wir aber der Einfachheit lediglich eine Formular-Atrappe, die nach dem Absenden einen Fehler ausgibt.</p>
<pre><strong> &lt;form name ="submit" method="post" action-xhr="https://example.com/example" target="_blank"&gt;</strong>
<strong> &lt;fieldset&gt;</strong>
<strong> &lt;label&gt;</strong>
<strong> &lt;span&gt;Vorname:&lt;/span&gt;</strong>
<strong> &lt;input type="text" name="vname" required&gt;</strong>
<strong> &lt;/label&gt;</strong>
<strong> &lt;br&gt;</strong>
<strong> &lt;label&gt;</strong>
<strong> &lt;span&gt;Nachname:&lt;/span&gt;</strong>
<strong> &lt;input type="text" name="nname" required&gt;</strong>
<strong> &lt;/label&gt;</strong>
<strong> &lt;br&gt;</strong>
<strong> &lt;label&gt;</strong>
<strong> &lt;span&gt;Email:&lt;/span&gt;</strong>
<strong> &lt;input type="email" name="email" required&gt;</strong>
<strong> &lt;/label&gt;</strong>
<strong> &lt;br&gt;</strong>
<strong> &lt;input type="submit"</strong>
<strong> value="Mehr Informationen anfordern"&gt;</strong>
<strong> &lt;/fieldset&gt;</strong>
<strong> &lt;!-- Dieser Text erscheint nach erfolgreichem Submitten--&gt;</strong>
<strong> &lt;div submit-success&gt;</strong>
<strong> Ein E-Mail mit Informationen wurde erfolgreich gesendet!</strong>
<strong> &lt;/div&gt;</strong>
<strong> &lt;!-- Dieser Text erscheint wenn das Submit nicht erfolgreich war--&gt;</strong>
<strong> &lt;div submit-error&gt;</strong>
<strong> Ein E-Mail mit Informationen konnte leider nicht gesendet werden!</strong>
<strong> &lt;/div&gt;</strong>
<strong> &lt;/form&gt;</strong></pre>
<h3>Amp Embed</h3>
<p>Taboola ist ein Tool um mehr Traffic auf der Seite zu generieren.</p>
<pre><strong>&lt;amp-embed type="taboola"</strong>
<strong> width="400"</strong>
<strong> height="300"</strong>
<strong> layout="responsive"</strong>
<strong> data-publisher="amp-demo"</strong>
<strong> data-mode="thumbnails-a"</strong>
<strong> data-placement="Ads Example"</strong>
<strong> data-article="auto"&gt;
</strong><strong>&lt;/amp-embed&gt;</strong></pre>
<h3>Das Endresultat</h3>
<p><a href="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2017/11/23619014_10209596609144843_777161092_n-1.png"><img decoding="async" class="alignleft wp-image-7306" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2017/11/23619014_10209596609144843_777161092_n-1.png" alt="Beispiel AMP" width="253" height="406" /></a></p>
<p>&nbsp;</p>
<p><strong>Weiterführende Informationen:</strong></p>
<p><a href="https://www.ampproject.org">https://www.ampproject.org</a></p>
<p><strong>Datenschutzhinweise</strong></p>
<p>Urheber des Zeitungartikels der hier im Beispiel verwendet wird, ist die Tageszeitung <a href="http://diepresse.com/">diePresse</a>.</p>
<p>The post <a href="https://mobile.fhstp.ac.at/development/hands-on-amp-workshop-fuer-neueinsteiger/">„Hands on“ – AMP-Workshop für Neueinsteiger</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
