<?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 Theres-Sophie Scheucher - Mobile USTP MKL</title>
	<atom:link href="https://mobile.fhstp.ac.at/author/dm141559/feed/" rel="self" type="application/rss+xml" />
	<link>https://mobile.fhstp.ac.at/author/dm141559/</link>
	<description>Die &#34;Mobile Forschungsgruppe&#34; der USTP, sie  sammelt hier alles zu den Themen Design, UX und Entwicklung mobiler Applikationen</description>
	<lastBuildDate>Sat, 20 Feb 2016 15:06:39 +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 Theres-Sophie Scheucher - Mobile USTP MKL</title>
	<link>https://mobile.fhstp.ac.at/author/dm141559/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Das bringt die EU-Datenschutzverordnung ab dem Jahr 2018</title>
		<link>https://mobile.fhstp.ac.at/news/das-bringen-die-neuen-datenschutzregeln-in-der-eu-ab-dem-jahr-2018/</link>
		
		<dc:creator><![CDATA[Theres-Sophie Scheucher]]></dc:creator>
		<pubDate>Sun, 10 Jan 2016 10:00:24 +0000</pubDate>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Datenschutz]]></category>
		<guid isPermaLink="false">https://akirchknopf-21110.php.fhstp.cc/?p=6020</guid>

					<description><![CDATA[<p>Vier Jahre haben die Debatten um ein einheitliches Datenschutzrecht innerhalb der EU zu schaffen nun gedauert. Nun tritt die neue EU-Datenschutzverordnung zu Beginn 2018 in Kraft und ersetzt das alte Recht aus 1995, das in jedem Land anders umgesetzt wird. Unternehmen nutzten das bisher aus und suchten sich als Firmensitz jene Länder mit den niedrigsten <a class="read-more" href="https://mobile.fhstp.ac.at/news/das-bringen-die-neuen-datenschutzregeln-in-der-eu-ab-dem-jahr-2018/">[...]</a></p>
<p>The post <a href="https://mobile.fhstp.ac.at/news/das-bringen-die-neuen-datenschutzregeln-in-der-eu-ab-dem-jahr-2018/">Das bringt die EU-Datenschutzverordnung ab dem Jahr 2018</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Vier Jahre haben die Debatten um ein einheitliches Datenschutzrecht innerhalb der EU zu schaffen nun gedauert. Nun tritt die neue EU-Datenschutzverordnung zu Beginn 2018 in Kraft und ersetzt das alte Recht aus 1995, das in jedem Land anders umgesetzt wird. Unternehmen nutzten das bisher aus und suchten sich als Firmensitz jene Länder mit den niedrigsten Datenschutzniveau aus. Daher hat Facebook seinen Europasitz in Irland. Außerdem berücksichtigt die neue Verordnung Themen wie Big Data oder Cloud Computing, die es 1995 noch nicht gab. Die wichtigsten Änderungen werden hier nochmal zusammengefasst.</p>
<p><span id="more-6020"></span></p>
<h3>Einholen der Zustimmung zur Datennutzung</h3>
<p>Google und Facebook müssen User zukünftig Fragen, ob sie Daten verwenden dürfen. Somit stimmen die Nutzer selbst zu, dass ihre Daten ausgewertet werden. Zudem müssen Unternehmen ihre Produkte datenschutzfreundlich voreinstellen.</p>
<h3>Einfacherer Zugang zu eigenen Daten</h3>
<p>Internetnutzer erhalten mehr Informationen darüber, wie ihre Daten verarbeitet und verwendet werden. Diese Informationen müssen klar und verständlich formuliert sein.</p>
<h3>Datenportabilität</h3>
<p>Die EU will das User künftig ihre Daten einfach von einem Social Network zu einem anderen transferieren können, die dort dann auf Anfrage gelöscht werden. Voraussetzung dafür ist ein Standard, wie er bereits beim Facebook-Login vorhanden ist.</p>
<h3>Verständigung wenn eigene Daten gehackt werden</h3>
<p>Die User müssen so schnell wie möglich verständigt werden, wenn ihre Daten gehackt wurden, damit sie notwendige Maßnahmen ergreifen können.</p>
<h3>Anlaufstellen für Bürger</h3>
<p>EU-Bürger können sich bei Verstoß gegen die Datenschutzrichtlinien in Zukunft an die Datenschutzbehörde ihres Landes wenden und nicht wie zuvor zu jener in dem europäischen Firmensitz des Unternehmens. Im Falle von Facebook musste man beispielsweise nach Irland reisen, um Anklage gegen das Unternehmen zu erheben.</p>
<h3>Altersbeschränkung</h3>
<p>EU-Mitgliedsstaaten dürfen jeweils selbst bestimmen ab welchem Alter Soziale Netzwerke genutzt werden dürfen. Die EU sieht im Allgemeinen 16 Jahre vor, aber dies kann von nationalen Bestimmungen überschrieben werden. Das bestimmte Mindestalter darf allerdings nicht unter 13 Jahren liegen.</p>
<h4>Kritik an Altersbeschränkung</h4>
<h5><em>&#8211; aus derstandard.at Kommentar Rainer Schüller</em></h5>
<p>Der Vorschlag der EU-Kommission zur Altersbeschränkung ist nicht nur absurd sonder auch schwer umsetzbar. Was wirklich helfen würde ist, wenn man ab dem Kindergartenalter gefahrenfreie Internetnutzung schult. Am effektivsten wäre es, wenn die Eltern sich mehr darum kümmern würden was ihre Kinder egal welches Alters tun und für ihr eigenes soziales Netzwerk daheim mehr Zeit aufbringen würden.</p>
<h5>Beispiel</h5>
<p>Hier ein Beispiel einer Umsetzung dieser Richtlinie, die völlig ab Ziel vorbei führen würde:<br />
Sind Sie schon 16 Jahre alt? Falls nicht, holen Sie sich die Bestätigung Ihrer Eltern oder drehen Sie sofort das Internet ab! Falls doch, sind Sie theoretisch berechtigt, diesen Text weiterzulesen, außer sie befinden sich in einem Land, in dem Sie schon unter 13 Jahren die Zustimmung Ihrer Eltern zum Zutritt brauchen. Wenn Sie über 16 sind, können Sie bedenkenlos weiterlesen.</p>
<h3>Recht auf Vergessenwerden</h3>
<p>Unternehmen müssen auf Wunsch eines EU-Bürgers seine Daten löschen. Google machte das bereits möglich und strich hunderttausende Links aus den Suchergebnissen.</p>
<h4>Statistik zu Link-Löschungen durch Google</h4>
<p>In der Abbildung darunter ist klar zu erkennen, dass Facebook am häufigsten von Link-Löschungen betroffen ist.</p>
<div id="attachment_6031" style="width: 310px" class="wp-caption alignnone"><a href="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2016/01/Bildschirmfoto-2015-12-21-um-15.08.29.png"><img fetchpriority="high" decoding="async" aria-describedby="caption-attachment-6031" class="wp-image-6031 size-medium" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2016/01/Bildschirmfoto-2015-12-21-um-15.08.29-300x215.png" alt="Statistik zu Link-Löschungen durch Google" width="300" height="215" /></a><p id="caption-attachment-6031" class="wp-caption-text">Statistik zu Link-Löschungen durch Google</p></div>
<h3>Folgen bei Nichteinhaltung der EU-Datenschutz-Grundverordnung</h3>
<p>Die Verantwortung für die Einhaltung der EU-Datenschutz-Grundverordnung liegt ausschließlich bei den einzelnen Unternehmen, die bei Verstoß mit Geldstrafen belegt werden. Dies gilt unabhängig davon, ob Sie bei Ihren Datenanforderungen mit einem IT-Partner oder Cloud-Dienstleister zusammenarbeiten.<br />
Unternehmen drohen Strafzahlungen von vier Prozent des Gesamtumsatzes. Bei Facebook wäre das eine Strafe in Milliardenhöhe. Diese Strafzahlungen betreffen nicht nur europäische Unternehmen, sondern auch Firmen außerhalb der EU. Wer Probleme mit Anbieter aus dem EU-Ausland hat kann sich in eigener Sprache an die heimische Datenschutzbehörde wenden.</p>
<h3>Klarnamenpflicht</h3>
<p>Von der Verordnung wird das Thema Klarnamenpflicht jedoch nicht erfasst.<br />
Facebook besteht darauf, dass Nutzer einen &#8220;authentischen&#8221; Namen verwenden. Jedoch hat das Unternehmen die Regelung nun etwas gelockert. User dürfen unter Angaben eines Grundes auch einen anderen Namen, als ihren gesetzlichen verwenden. Das Unternehmen will damit unter anderem Transgender-Personen entgegenkommen.</p>
<h3>Hasspostings</h3>
<p>Generell werden noch weitere Änderungen auf Unternehmen zukommen. In Deutschland wurde vor kurzem beschlossen, dass Hasspostings binnen 24 Stunden gelöscht werden müssen. In Österreich gibt es derzeit noch keine spezielle Vorgehensweise. Da es aber in den letzten Monaten sehr oft zu Hetze gegen Flüchtlinge gekommen ist, tritt ab Jänner 2016 ein neuer Verhetzungsparagraph in Kraft.</p>
<h3>Reaktion der Unternehmen</h3>
<p>Unternehmen fürchten sich vor strengen Fesseln für die Firmen im Gegensatz zu jenen in den USA. Der Fokus auf den Datenschutz der Bürger behindert ihrer Meinung nach Innovationsprozesse, die internationale Geschäftstätigkeit und die Zusammenarbeit von Unternehmen. Sie warnen vor einen Hemmschuh für die europäischen Industrie und Forschung.</p>
<h3>Wie beurteilen die Experten die Verordnung?</h3>
<p>Da es sehr viele schwammig formulierte Detailregelungen gibt, wird es in der Praxis zu vielen Rechtsunsicherheiten kommen und der EuGH gebraucht, um zu klären ob es sich um eine unmissverständliche Zustimmung zur Datenverarbeitung handelt. Massives Lobbying der Konzerne hat für einige Schlupflöcher gesorgt. Außerdem kann die Datenschutzverordnung nur durch nationales Recht umgesetzt werden und es wird weiterhin zu starken Unterschieden von Land zu Land kommen.</p>
<p>Nach der Einigung der EU-Staaten, EU-Kommission und Parlament müssen die Datenschutzrichtlinien nun vom Ministerrat vor dem Parlament angenommen werden. Dabei handelt es sich aber nur noch um eine Formalie.</p>
<h5>Quellen</h5>
<p>https://www.trendingtopics.at/x-fragen-antworten-das-bringt-der-neue-datenschutz-in-der-eu-ab-dm-jahr-2018/</p>
<p>http://www.nachrichten.at/nachrichten/web/Neue-Datenschutzregeln-Das-aendert-sich-fuer-Internet-Nutzer;art122,2060459</p>
<p>http://www.zeit.de/digital/datenschutz/2015-12/eu-reform-datenschutz-beschlossen</p>
<p>http://www.spiegel.de/netzwelt/netzpolitik/datenschutz-einigung-auf-neue-eu-regeln-a-1068046.html</p>
<p>http://futurezone.at/netzpolitik/was-bringen-die-neuen-eu-datenschutzregeln/169.982.331</p>
<p>http://derstandard.at/2000027640007/Facebook-und-Google-Mehr-Datenschutz-weniger-Hasspostings</p>
<p>http://www.searchsecurity.de/meinung/Ist-Ihr-Unternehmen-bereit-fuer-die-EU-Datenschutz-Grundverordnung</p>
<p>http://europa.eu/rapid/press-release_IP-15-6321_en.htm?locale=en</p>
<p>Beispiel Kritik der Altersbeschränkung:<br />
http://derstandard.at/2000027625989/An-der-Realitaet-der-sozialen-Netzwerke-vorbei?_articlePage=1</p>
<p>Titelbild:<br />
http://3.f.ix.de/scale/geometry/695/q75/imgs/18/1/4/9/0/0/4/3/urn-newsml-dpa-com-20090101-140409-99-06612_large_4_3-a6c100037ba9e115.jpeg</p>
<p>Grafik:<br />
https://www.trendingtopics.at/recht-auf-vergessen-google-hat-bisher-518-318-links-aus-seiner-suche-geloescht-die-meisten-richtung-facebook/</p>
<p>The post <a href="https://mobile.fhstp.ac.at/news/das-bringen-die-neuen-datenschutzregeln-in-der-eu-ab-dem-jahr-2018/">Das bringt die EU-Datenschutzverordnung ab dem Jahr 2018</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Benefits von Social Media Snippets</title>
		<link>https://mobile.fhstp.ac.at/allgemein/benefits-von-social-media-snippets/</link>
		
		<dc:creator><![CDATA[Theres-Sophie Scheucher]]></dc:creator>
		<pubDate>Mon, 25 May 2015 09:00:56 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Webdevelopment]]></category>
		<category><![CDATA[Darstellungsproblem]]></category>
		<category><![CDATA[Marketing]]></category>
		<category><![CDATA[Optimierung]]></category>
		<category><![CDATA[Social Media]]></category>
		<guid isPermaLink="false">https://akirchknopf-21110.php.fhstp.cc/?p=5275</guid>

					<description><![CDATA[<p>Wer entscheidet über das gewählte Bild eines Facebook Shares? Woher kommt die Headline des geteilten Posts? Und woher der Kurztext? Wieso wird mein Logo auf Twitter den eigentlich abgeschnitten? All diese Fragen müssen sich Webseiten Betreiber im Zeitalter des Social Sharings und des stetigem Wachsen dieser Plattformen stellen. Im folgenden Beitrag werde ich versuchen ein <a class="read-more" href="https://mobile.fhstp.ac.at/allgemein/benefits-von-social-media-snippets/">[...]</a></p>
<p>The post <a href="https://mobile.fhstp.ac.at/allgemein/benefits-von-social-media-snippets/">Benefits von Social Media Snippets</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Wer entscheidet über das gewählte Bild eines Facebook Shares? Woher kommt die Headline des geteilten Posts? Und woher der Kurztext? Wieso wird mein Logo auf Twitter den eigentlich abgeschnitten? All diese Fragen müssen sich Webseiten Betreiber im Zeitalter des Social Sharings und des stetigem Wachsen dieser Plattformen stellen. Im folgenden Beitrag werde ich versuchen ein paar grundlegende Dinge zu diesen sogenannten Social Media Snippets zu erklären und wie einfach es ist diese in kurzer Zeit professionell herzurichten. <span id="more-5275"></span></p>
<p>Wie bereits von Suchmaschinen bekannt sind Rich Snippets einer Webseite wichtig um den Usern (oder den Suchmaschinen), in wenigen Worten und Zeichen den Inhalt zu verraten. Was Rich Snippets sind und wie sie funktionieren wird in der folgenden Grafik erklärt:</p>
<div id="attachment_5280" style="width: 610px" class="wp-caption alignnone"><a href="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2015/05/Rich-Snippets-Guide-1.png"><img decoding="async" aria-describedby="caption-attachment-5280" class="wp-image-5280 size-full" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2015/05/Rich-Snippets-Guide-1.png" alt="Quelle: https://moz.com/blog/a-visual-guide-to-rich-snippets" width="600" height="7233" /></a><p id="caption-attachment-5280" class="wp-caption-text">Abbildung 1: Rich-Snippets-Guide</p></div>
<p>(Quelle: https://moz.com/blog/a-visual-guide-to-rich-snippets)</p>
<p>Und genau hier setzen auch die Social Media Snippets an &#8211; diese verwenden etwa ein Open Graph Protocol (Facebook), Twitter Cards (Twitter), oder schema.org (Google+).. Hier ein Beispiel für das Open Graph Protocol:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;html prefix=&quot;og: http://ogp.me/ns#&quot;&gt;
    &lt;head&gt;
        &lt;title&gt;The Rock (1996)&lt;/title&gt;
        &lt;meta property=&quot;og:title&quot; content=&quot;The Rock&quot; /&gt;
        &lt;meta property=&quot;og:type&quot; content=&quot;video.movie&quot; /&gt; &lt;meta property=&quot;og:url&quot; content=&quot;http://www.imdb.com/title/tt0117500/&quot; /&gt; &lt;meta property=&quot;og:image&quot; content=&quot;http://ia.media-imdb.com/images/rock.jpg&quot; /&gt;
        ...
    &lt;/head&gt;
    ...
&lt;/html&gt;
</pre>
<h3>Tags für unterschiedliche Inhalte</h3>
<p>Im Wesentlichen haben Social Media Snippets unterschiedliche Tags für verschiedenste Kategorien/Inhalte (Title, Description, Type, Image, Music),<br />
die wenn sie gesetzt sind die entsprechenden Informationen ausgeben. Mithilfe dieser unterschiedlichen Tags wie z.B.: og:image lässt sich genau festlegen welches Image im Falle eines Facebook Shares angezeigt wird. Um Fehler zu vermeiden wird der Open Graph Debugger von Facebook zur Verfügung gestellt, mit jenen man die Ausgabe nochmals überprüfen kann. Twitter bietet ein Testtool unter cards-dev.twitter.com/validator an und Google stellt einen Validator unter <a href="https://developers.google.com/structured-data/testing-tool/">https://developers.google.com/structured-data/testing-tool/</a> zur Verfügung. Welche Kategorien bei Open Graph zu Verfügung stehen kann man unter folgenden Link nachlesen: <a href="http://ogp.me">http://ogp.me</a>. Alle Twitter-Metatags sind unter diesem Link zu finden: <a href="https://dev.twitter.com/cards/markup">https://dev.twitter.com/cards/markup</a>.</p>
<h3>Anatomie eines Social Media Snippets</h3>
<p>In Abbildung 2 wird der Aufbau eines Social Media-Snippets erklärt.</p>
<div id="attachment_5283" style="width: 630px" class="wp-caption alignnone"><a href="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2015/05/anatomy_social_media_snippet.gif"><img decoding="async" aria-describedby="caption-attachment-5283" class="wp-image-5283 size-full" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2015/05/anatomy_social_media_snippet.gif" alt="Abbildung 2: Anatomie eines Social Media Snippets" width="620" height="250" /></a><p id="caption-attachment-5283" class="wp-caption-text">Abbildung 2: Anatomie eines Social Media Snippets</p></div>
<p>(Quelle: https://moz.com/blog/rock-your-seo-with-structured-social-sharing-mozcon-presentation)</p>
<p><strong>A. Share Blurb</strong> – Beschreibung über den Contents.<br />
<strong>B. Title</strong> – Page-Title<br />
<strong>C. Description</strong> – kurze Beschreibung der Website<br />
<strong>D. Image</strong> &#8211; Thumbnail-Bild<br />
<strong>E. URL</strong> – Verlinkt den Titel zur jeweiligen Website</p>
<h3>Einschränkungen der Plattformen</h3>
<p>Wichtig zu beachten sind die Angaben der einzelnen Plattformen. So dürfen Title bei Twitter (twitter:title) nicht mehr als 70 Zeichen enthalten, oder ein Bild nicht größer als 1 MB sein. Bei Facebook gibt es keine Zeichenbegrenzungen und der Beschreibungstext (og:description) wird unter Umständen wenn nur wenig Platz zur Verfügung steht abgeschnitten. Jedoch Bilder sollten 1200 x 630 Pixel oder notfalls 600 x 315 Pixel Größe aufweisen. Da die Likes und Shares nur von der angegeben URL getrackt werden, sollte die reine URL der Seite ohne Session-ID angegeben werden (og:url). Die Anzahl der Likes und Shares kann ebenfalls im Open Graph Debugger verfolgt werden. Derartige Einschränkungen sind aber leicht im Internet zu finden und nachzulesen.</p>
<h3>Fehler</h3>
<p>Die Basic-Tags, die unbedingt ausgefüllt werden sollten sind title, description, image und url. Diese Felder werden bei jedem Share angezeigt und sollten daher nicht leer gelassen werden, da sich sonst die jeweilige Social Media Plattform ihre Informationen selbst sucht. Facebook holt sich Informationen wie title und description aus den Meta-Angaben oder wenn dort nicht vorhanden aus den ersten paar Zeichen im Text auf der jeweiligen Website. Das geht aber nicht immer gut. Bei Abbildung 3 wird das Logo von funny-frisch.de nicht richtig angezeigt. Die Beschreibung darunter passt zufälligerweise ganz gut, tatsächlich ist es aber der erste Absatz der auf der Website zu finden ist. Auf Abbildung 4 wird das Bild von snickers.de zwar richtig ausgegeben, aber die Beschreibung darunter handelt von Mars nicht von Snickers. Burger King erzeugt in Abbildung 5 ein leeres Bild.</p>
<div id="attachment_5318" style="width: 310px" class="wp-caption aligncenter"><a href="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2015/05/funny_frisch.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-5318" class="wp-image-5318 size-medium" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2015/05/funny_frisch-300x232.png" alt="funny_frisch" width="300" height="232" /></a><p id="caption-attachment-5318" class="wp-caption-text">Abbildung 3: funnyfrisch.de</p></div>
<div id="attachment_5319" style="width: 310px" class="wp-caption aligncenter"><a href="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2015/05/snickers.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-5319" class="wp-image-5319 size-medium" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2015/05/snickers-300x233.png" alt="snickers" width="300" height="233" /></a><p id="caption-attachment-5319" class="wp-caption-text">Abbildung 4: snickers.de</p></div>
<div id="attachment_5320" style="width: 310px" class="wp-caption aligncenter"><a href="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2015/05/burgerking.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-5320" class="wp-image-5320 size-medium" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2015/05/burgerking-300x216.png" alt="burgerking" width="300" height="216" /></a><p id="caption-attachment-5320" class="wp-caption-text">burgerking.de</p></div>
<p>Google geht in seinem sozialen Netzwerk am flexibelsten mit den Metadaten um und greift ebenfalls auf die Open-Graph-Daten zu, falls die Mikrodaten im Format schema.org nicht vorhanden sind. Sind die Open-Graph-Daten ebenfalls nicht vorhanden nutzt Google den HTML-title und die description der Seite. Wenn alle drei Varianten nicht vorhanden sind, versucht Google die relevanten Informationen aus der Website herauszulesen.</p>
<h3>Fazit</h3>
<p>Für heutige Webseiten Betreiber, welche im Social Media Bereich vertreten sind ist es mittlerweile Pflicht Social Media Snippets richtig zu verwenden, da es weder einen großen Aufwand darstellt, noch eine technische Herausforderung ist. Bei größeren Content Management Systemen gibt es auch inzwischen unzählige Plugins, die einem hierbei helfen.</p>
<p>The post <a href="https://mobile.fhstp.ac.at/allgemein/benefits-von-social-media-snippets/">Benefits von Social Media Snippets</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Effizienter und optimierter Einsatz von SVG Grafiken</title>
		<link>https://mobile.fhstp.ac.at/development/effizienter-und-optimierter-einsatz-von-svg-grafiken/</link>
		
		<dc:creator><![CDATA[Theres-Sophie Scheucher]]></dc:creator>
		<pubDate>Fri, 03 Apr 2015 09:00:23 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Webdevelopment]]></category>
		<category><![CDATA[Optimierung]]></category>
		<category><![CDATA[SVG]]></category>
		<category><![CDATA[Webentwicklung]]></category>
		<guid isPermaLink="false">https://akirchknopf-21110.php.fhstp.cc/?p=5212</guid>

					<description><![CDATA[<p>Im Gegensatz zu pixelbasierten Bildern sind SVGs verlustfrei skalierbar. Ein weiterer Vorteil ist, dass beim Öffnen der Grafik im Texteditor die jeweiligen Formen in der Grafik sichtbar sind und daher schnell und direkt verändert werden können. Nicht nur mit Adobe Illustrator können SVGs exportiert werden, es gibt noch einige andere Tools mit jenen das ebenfalls <a class="read-more" href="https://mobile.fhstp.ac.at/development/effizienter-und-optimierter-einsatz-von-svg-grafiken/">[...]</a></p>
<p>The post <a href="https://mobile.fhstp.ac.at/development/effizienter-und-optimierter-einsatz-von-svg-grafiken/">Effizienter und optimierter Einsatz von SVG Grafiken</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Im Gegensatz zu pixelbasierten Bildern sind SVGs verlustfrei skalierbar. Ein weiterer Vorteil ist, dass beim Öffnen der Grafik im Texteditor die jeweiligen Formen in der Grafik sichtbar sind und daher schnell und direkt verändert werden können. Nicht nur mit Adobe Illustrator können SVGs exportiert werden, es gibt noch einige andere Tools mit jenen das ebenfalls möglich ist, wie zum Beispiel Inkscape oder Tools im Internet wie Sketch oder iDraw (beide für OS X oder iOS).<span id="more-5212"></span></p>
<h3>SVG-Export mit Adobe Illustrator</h3>
<p>In einfachen SVG Grafiken wie dieses Beispiel hier gibt es drei Grundformen: Quadrat, Dreieck und Kreis.</p>
<div id="attachment_5216" style="width: 310px" class="wp-caption alignnone"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-5216" class="wp-image-5216 size-medium" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2015/04/svg_Grundformen-300x133.png" alt="svg_Grundformen" width="300" height="133" /><p id="caption-attachment-5216" class="wp-caption-text">drei einfache Grundformen</p></div>
<p>Jedoch ist der Export aus Adobe Illustrator gar nicht so leicht, da es sechs unterschiedliche Möglichkeiten gibt um SVGs abzuspeichern. Folgende Profile werden im Adobe Illustrator angeboten:</p>
<ul>
<li>SVG 1.0 und SVG 1.1: für SVG-Dateien, die auf einem Desktop-Computer angezeigt werden.</li>
<li>SVG Basic 1.1: für Geräte mit mittlerer Leistung</li>
<li>SVG Tiny 1.1 und SVG Tiny 1.1+: für kleine Geräte wie Mobiltelefone, Wichtig: SVG Tiny und SVG Tiny Plus wird nicht von allen Mobiltelefonen unterstützt.</li>
<li>SVG Tiny 1.2: für SVG-Dateien, die auf einer Reihe von unterschiedlichen Geräten angezeigt werden sollen, von PDAs und Mobiltelefonen bis hin zu Laptops und Desktopcomputern.</li>
</ul>
<p>Diese verschiedenen Profile sind eigentlich ein Widerspruch in sich selbst, da es bei Vektorgrafiken darum geht dass sie verlustfrei skaliert werden können und deshalb auf allen Geräten sauber angezeigt werden sollen. Wichtig ist hier, dass nicht alle Formate alle Eigenschaften von SVGs unterstützen. Im Allgemeinen ist es am besten mit der Vollversion SVG 1.1 zu arbeiten.</p>
<p>Ein Beispiel für einen SVG-Export ist folgendes:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;?xml version=“1.0“ encoding=“utf-8“?&gt;
&lt;!—Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --&gt;
&lt;!DOCTYPE svg PUBLIC „-//W3C//DTD SVG 1.1//EN“ „http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd“&gt;
&lt;svg version=“1.1“ id=“Ebene_1“ xmlns=“http://www.w3.org/2000/svg“ xmlns:xlink=“http://www.w3.org/1999/xlink“ x=“0px“ y=“0px“ viewBox=“0 0 300 100“ enable-background=“new 0 0 300 100“ xml:space=“preserve“&gt;
&lt;rect fill=“#21B4AE“ width=“100“ height=“100“/&gt;
&lt;polygon fill=“EDBA4B“ points=“100,0 200,50 100,100“/&gt;
&lt;circle fill=“#E3493A“ cx=“250“ cy=“50“ r=“50“/&gt;
&lt;/svg&gt;
</pre>
<p>Die ersten drei Zeilen in dem Beispiel sind für die Darstellung nicht relevant. Wichtig sind nur die Daten im svg-Element, jedoch sind auch einige Attribute im svg-Element nicht notwendig für die Anzeige. Daher kann das exportierte File noch gekürzt werden:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;svg version=“1.1“ id=“Ebene_1“ xmlns=“http://www.w3.org/2000/svg“ xmlns:xlink=“http://www.w3.org/1999/xlink“ x=“0px“ y=“0px“ viewBox=“0 0 300 100“&gt;
&lt;rect fill=“#21B4AE“ width=“100“ height=“100“/&gt;
&lt;polygon fill=“EDBA4B“ points=“100,0 200,50 100,100“/&gt;
&lt;circle fill=“#E3493A“ cx=“250“ cy=“50“ r=“50“/&gt;
&lt;/svg&gt;
</pre>
<p>Wird dieser Code im HTML-Dokument eingesetzt wird er von den Browsern unterschiedlich interpretiert. Obwohl die Viewbox die gewünschten Maße enthält skalieren Chrome, Firefox, Opera und Safari das SVG auf die gesamte Breite des Viewports. Der Internetexplorer (ab IE9) stellt es in den gewünschten Maßen 300&#215;100 Pixeln dar. Fügt man das Bild mittels eines img-Elements mit der gewünschten Höhe und Breite ein ergibt sich ein anderes Problem und das Bild wird im Safari unter Windows verzerrt angezeigt.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;img src=“illustrator-svg.svg“ width=“300“ height=“100“&gt;
</pre>
<p>Das eigentliche Problem ist, dass Illustrator kein width- und height-Attribut mit exportiert. Damit werden Darstellungsfehler vermieden. Man kann sie entweder im Nachhinein im Code hinzufügen oder im Illustrator beim Speichern unter „Mehr Optionen“ und den Haken bei „interaktiv“ herausnehmen. Nun wird die Grafik in allen Browsern mit der richtigen Höhe und Breite angezeigt.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;svg version=“1.1“ id=“Ebene_1“ xmlns=“http://www.w3.org/2000/svg“ xmlns:xlink=“http://www.w3.org/1999/xlink“ x=“0px“ y=“0px“ viewBox=“0 0 300 100“ width=“300px“ height=“100px“&gt;
</pre>
<h3>SVG-Export mit Inkscape</h3>
<p>In Inkscape gibt es zwei Möglichkeiten ein SVG zu exportieren: Inkscape-SVG oder normales SVG. Während das aus Illustrator erzeugte File 611 Bytes, gekürzt und korrigiert 250 Bytes benötigt, kommt das Inkscape-SVG auf stolze 2,8Kilobyte, da viele unnötige Metadaten enthalten sind.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;sodipodi:namedview id=“base“ pagecolor=“#ffffff“ bordercolor=“#666666“ borderopacity=“1.0“ inkscape:pageopacity=“0.0“ inkscape:pageshadow=“2“ inkscape:zoom=“2.5527972“ inkscape:cx=“89.269963“ inkscape:cy=“47.142857“ inkscape:document-units=“px“ inkscape:current-layer=“layer1“ showgrid=“false“ inkscaape:window-width=“1507“ inkscape:window-height=“842“ inkscape:window-x=“2095“ inkscape: window-y=“91“ inkscape:window-maximized=“0“ /&gt;
	&lt;metadata id = „metadata7“&gt;
		&lt;rdf:RDF&gt;
			&lt;cc:Work rdf:about=““&gt;
				&lt;dc:format&gt; image/svg+xml&lt;/dc:format&gt;
				&lt;dc:type rdf:resource=“http://purl.org/dc/dcmitype/StillImage“ /&gt;
				&lt;dc:title&gt;&lt;/dc:title&gt;
			&lt;/cc:Work&gt;
		&lt;/rdf:RDF&gt;
	&lt;/metadata&gt;
</pre>
<p>Beim Export als normales SVG fallen einiger dieser Metadaten weg und der benötigte Speicherplatz beträgt nur noch 1,49 Kilobyte. Jedoch gibt es hier den großen Nachteil, dass die Grafik nicht durch Grundformen sondern durch ein path-Element beschrieben wird. Dadurch können die unterschiedlichen Formen nachträglich nur noch schwer unterschieden werden (gerade noch durch die Farbe) und das nachträgliche Editieren der Formen ist um einiges schwerer. Folglich ist der benötigte Speicherplatz bei komplizierten Formen sehr groß, da sich diese ineffiziente Schreibweise summiert.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;path d=“m -68.12602, 73.684960,-48.113123 -10e-7,-48.11312 L -26.458834,1.5152781 15.208351,25.571838 -26.458836,49.6284 z“ transform=“matrix(1.199985,0,0,1.0392175,181.75021, 975.78748)“ id=“path3755“ style=“fill:#e3493a; fill-opacity:1;stroke:none“ /&gt;
</pre>
<p>Fazit dieses Vergleichs ist, dass es effizienter ist die benötigten SVGs im Adobe Illustrator zu speichern. Arbeitet man mit anderen Programmen sollte man unbedingt einen Blick in den erzeugten Code werfen.</p>
<h3>Grafik komprimieren</h3>
<p>Wenn man SVG-Grafiken nicht manuell durchgehen will kann man zur Komprimierung auch ein Tool nutzen. Dabei sollte man einen genauen Blick auf die Ergebnisse werfen, denn nicht jedes Tool liefert vernünftige Ergebnisse.</p>
<p>Schickt man ein SVG in Compressor.io wird aus dem originalen Illustrator-SVG-File mit 611 Bytes eine Datei mit 617 Bytes. Die ersten drei Zeilen bleiben enthalten und es wird sogar ein unnötiges Attribut hinzugefügt. Das Inkscape-SVG wird von 2,8 auf 1,04 Kilobyte reduziert. Aber auch hier werden nicht alle unnötigen Metadaten entfernt.</p>
<p>Der SVG Optimiser von Peter Collingridge liefert da schon bessere Ergebnisse. Er entfernt die ersten drei Zeilen aus dem Illustrator-File und schreibt den Code in eine Zeile. Somit verbleiben nur noch 432 Bytes (vorher 611 Bytes). Jedoch werden nicht alle überflüssigen Metadaten aus dem Inkscape-SVG entfernt. Dadurch ist das Ergebnis mit 1,25 Kilobyte etwas größer als bei Compressor.io.</p>
<p>In Bezug auf die Dateigröße arbeitet SVGO am effektivsten. Die Illustrator-Datei wird auf 245 Bytes reduziert und die Inkscape-Datei auf 366 Bytes. Aber alle Grundformen werden hier in ein path-Element umgewandelt, wodurch ein paar Zeichen eingespart werden. Dieser Schritt lohnt sich also erst ganz am Schluss wenn keine Änderungen mehr durchgeführt werden.</p>
<h3>SVGs planen</h3>
<p>Will man SVGs später effizient verwenden kann das Planen einer Grafik sehr sinnvoll sein. Beispielsweise können die vier Ringe in der Grafik darunter mit vier separaten Kreisen beschreiben werden oder aus zwei Kreisen mit Umrandung/Stroke erstellt werden. Außerdem müssen die Kreise nicht fünf Mal neu erstellt werden, sondern der Kreis kann einmal gruppiert und mit use wiederverwendet werden.</p>
<div id="attachment_5217" style="width: 310px" class="wp-caption alignnone"><a href="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2015/04/svg_kreise.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-5217" class="wp-image-5217 size-medium" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2015/04/svg_kreise-300x133.png" alt="svg_Kreise" width="300" height="133" /></a><p id="caption-attachment-5217" class="wp-caption-text">wiederholende Elemente sollten wiederverwendet werden</p></div>
<p>Die kleinste manuell geschriebene Version zu dieser Grafik kann also folgendermaßen aussehen:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;svg version=“1.1“ xmlns=“http://www.w3.org/2000/svg“ xmlns:xlink=“http://www.w3.org/1999/xlink“ x=“0px“ y=“0px“ viewBox=“0 0 500 200“ width=“500“ height=“200“&gt;
&lt;g id=“kreise“&gt;
	&lt;circle fill=“#E3493A“ cx=“50“ cy=“50“ r=“45“ stroke=“#EDBA4B“ stroke-width=“10“ /&gt;
	&lt;circle fill=“#FFF“ cx=“50“ cy=“50“ r=“25“ stroke=“#21B4AE“ stroke-width=“10“ /&gt;
&lt;/g&gt;
&lt;use x=“100“ y=“100“ xlink:href=“#kreise“ /&gt;
&lt;use x=“200“ y=“0“ xlink:href=“#kreise“ /&gt;
&lt;use x=“300“ y=“100“ xlink:href=“#kreise“ /&gt;
&lt;use x=“400“ y=“0“ xlink:href=“#kreise“ /&gt;
&lt;/svg&gt;
</pre>
<p>Diese Datei benötigt 558 Bytes, im Gegensatz einer im Adobe Illustrator regulär erstellten Datei mit 3,6 Kilobytes. Das Gruppieren macht sich vor allem bei großen Infografiken bezahlt, in jenen zum Beispiel Hochhäuser oder Bäume einmal gruppiert und immer wiederverwendet werden.</p>
<p>Weiters ist auf nicht sichtbare Ebenen zu achten. Diese sind zwar im Moment ausgeblendet, aber werden trotzdem mit dem Attribut display=“none“ exportiert. Falls nicht verschiedene Ebenen innerhalb des SVGs ein- oder ausgeschaltet werden sollen, sollten nicht benötigte Ebenen entfernt werden.</p>
<p>Zusammenfassend lässt sich sagen, dass ein Blick in den Quellcode der SVG-Dateien bei einem Webprojekt, in dem viele SVG-Grafiken verwendet werden wichtig ist, um diese zu optimieren. Folglich wird die Größe der Files verringern und die Performance der Website verbessert.</p>
<h3>Quellen:</h3>
<p>Schwarz, N. (2014, November). SVG: Tücken im Detail. Screenguide, (24), 76–79.</p>
<p>The post <a href="https://mobile.fhstp.ac.at/development/effizienter-und-optimierter-einsatz-von-svg-grafiken/">Effizienter und optimierter Einsatz von SVG Grafiken</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>3 Kalender-Apps im Test</title>
		<link>https://mobile.fhstp.ac.at/allgemein/3-kalender-apps-im-test/</link>
		
		<dc:creator><![CDATA[Theres-Sophie Scheucher]]></dc:creator>
		<pubDate>Wed, 21 Jan 2015 11:00:15 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Tests]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[Smartphone]]></category>
		<category><![CDATA[Test]]></category>
		<guid isPermaLink="false">https://akirchknopf-21110.php.fhstp.cc/?p=5086</guid>

					<description><![CDATA[<p>Mein Kollege Wilhelm Pfersmann hat vor einigen Wochen einen Testbericht über verschiedene Todo-Applikationen für Smartphones online gestellt. Anknüpfend daran möchte ich in diesem Blogbeitrag einige Kalender-Apps auf dem Smartphone vorstellen, die ich getestet habe. Die Testberichte sind im Zuge unseres Semesterprojektes in Mobile Anwendungen entstanden, indem wir uns es zum Ziel gesetzt haben die optimale <a class="read-more" href="https://mobile.fhstp.ac.at/allgemein/3-kalender-apps-im-test/">[...]</a></p>
<p>The post <a href="https://mobile.fhstp.ac.at/allgemein/3-kalender-apps-im-test/">3 Kalender-Apps im Test</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Mein Kollege Wilhelm Pfersmann hat vor einigen Wochen einen Testbericht über verschiedene Todo-Applikationen für Smartphones online gestellt. Anknüpfend daran möchte ich in diesem Blogbeitrag einige Kalender-Apps auf dem Smartphone vorstellen, die ich getestet habe. Die Testberichte sind im Zuge unseres Semesterprojektes in Mobile Anwendungen entstanden, indem wir uns es zum Ziel gesetzt haben die optimale Kalender-Todo-App für Studenten zu bauen, die Todos und Kalender miteinander vereint.<span id="more-5086"></span> Dazu haben wir eine Umfeld-Recherche durchgeführt, um zu wissen was derzeit auf dem Markt existiert. Dabei habe ich mich auf Kalender-Applikationen Google Calendar, Sunrise Calendar und Any.do Cal spezialisiert. Wir haben uns bewusst dafür entschieden Kalender und Todo-Apps separat zu testen, um hier detailliert auf beide Bereiche eingehen zu können, auch wenn uns bewusst ist, dass es einige Applikationen gibt die beides miteinander vereinen.</p>
<p>Wenn man sich einmal so eine Kalender-App ansieht wird einem schnell klar, was die großen Probleme herkömmlicher Kalender-Applikationen sind. Auch wenn die Smartphones immer größer werden, steht sehr wenig Platz zur Verfügung, um die große Menge an Kalendereinträgen übersichtlich darzustellen. Wünschenswert wäre eine Ansicht, in der auf einem Blick erkennbar ist, was in der jeweiligen Woche zu tun ist. Will man auch noch die Aufgaben, die für jeden Termin fällig sind, auf einem kleinen Screen anzeigen, stößt man bei vielen Smartphone-Applikationen scheinbar auf ein Ding der Unmöglichkeit.</p>
<h3>Any.do Cal</h3>
<h4>Start der Applikation</h4>
<p>Gleich beim ersten Start der Applikation werden alle meine Kalender-Konten erkannt und eingespielt und es war kein Login nötig. Das ist meiner Meinung nach ein sehr großer Pluspunkt, denn keiner hat so viel Zeit, sich um Konfigurationen eines Kalenders zu kümmern, der einem das Zeitmanagement erleichtern und somit schlussendlich Zeit einsparen soll. Außerdem fragt mich die Applikation , ob ich Geburtstage von Freunden in Facebook importieren möchte. Weiters bietet er mir die zugehörige Smartphone App Any.do Todo an, die gleichzeitig meine täglichen Aufgaben verwaltet und in meinen Kalender einbindet. Wie man sieht ist gleich zu Beginn erkennbar, dass sich viele Applikationen mit Any.do Cal automatisch verbinden können.</p>
<h4>Hauptscreen</h4>
<p><a href="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2015/01/2015-01-04-09.58.33.png"><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-5088" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2015/01/2015-01-04-09.58.33-168x300.png" alt="2015-01-04 09.58.33" width="168" height="300" /></a></p>
<p>Der Hauptscreen der Kalender-App ist sehr übersichtlich gestaltet. Links oben wird das Monat und direkt darunter wie weit der jeweilige Tag von heute entfernt liegt angezeigt. Zusätzlich gibt es eine Leiste mit Wochentagen und dem zugehörigen Datum, unter der die Termine nach Uhrzeit sortiert ausgegeben. Neben jedem Termin steht ein kleiner farbiger Punkt der die Kalenderzugehörigkeit kennzeichnet, trotzdem können die einzelnen Kalender nur schwer auseinander gehalten werden. Folglich ist das ein klarer Minuspunkt für die Übersichtlichkeit der App, da jederzeit klar sein sollte zu welchem Kalender welcher Termin zugehörig ist, vor allem wenn es sich um die Trennung von Terminen in der Freizeit und in der Arbeit oder Studium handelt. Ein weiterer Nachteil ist das Fehlen der Ortsangabe direkt bei dem Termin. Erst durch Auswahl des Events kann der User erfahren, wo der Termin stattfindet.</p>
<h4>Gesten</h4>
<p>Durch Swipe nach unten im oberen Bereich der Anzeige vergrößert sich die bereits erwähnte Leiste in der Höhe und das gesamte Monat wir angezeigt. In dieser Anzeige befinden sich Balken unter jedem Datum, die die Terminauslastung an den jeweiligen Tagen veranschaulicht. Tätigt man wieder einen Swipe nach oben, verringert sich die Höhe der Leiste wieder auf eine Woche. Diese Funktion ist vor allem nützlich, wenn man auf einem Blick sehen möchte, wo man in dem jeweiligen Monat noch Freizeit hat und wo man schon komplett verplant ist. In diesem oberen Bereich ist ebenfalls ein Swipe nach links oder rechts möglich, der mich zwischen den Wochen wechseln lässt. Im unteren Bereich, in dem sich die jeweiligen Termine eines Tages befinden kann man durch Swipe nach links oder rechts zwischen den Tagen hin und her wechseln.</p>
<p><a href="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2015/01/2015-01-04-10.14.21.png"><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-5091" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2015/01/2015-01-04-10.14.21-168x300.png" alt="2015-01-04 10.14.21" width="168" height="300" /></a></p>
<h4>Neuer Termin</h4>
<p>Durch Berühren des +-Icons rechts oben, kann ein neues Event erstellt werden. Im angezeigten Textfeld wird der Name des Termins eingegeben und die Uhrzeit wird ebenfalls gesetzt. Der Datepicker zu Angabe der Uhrzeit gefällt mir sehr gut und es ist unübersehbar, dass in dieser Applikation besonderes Augenmerk auf Design gelegt wurde. Der Termin kann nachträglich in der Detailansicht durch Berührung des Events editiert werden.</p>
<p><a href="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2015/01/2015-01-04-09.58.47.png"><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-5089" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2015/01/2015-01-04-09.58.47-168x300.png" alt="2015-01-04 09.58.47" width="168" height="300" /></a>   <a href="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2015/01/2015-01-17-18.01.40.png"><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-5100" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2015/01/2015-01-17-18.01.40-168x300.png" alt="2015-01-17 18.01.40" width="168" height="300" /></a></p>
<h4>Einstellungen</h4>
<p>Rechts unten befinden sich das Menü, über das entweder Feedback zur App gegeben werden kann bzw. der User zu den Einstellungen gelangt. Die Position des Menü-Icons finde ich suboptimal, da man sich das Menü eher oben erwartet. Unter den Einstellungen können einige Konfigurationen festgelegt werden, aber es gibt wenige Personalisierungsmöglichkeiten. Das Thema kann ausgewählt werden, das sich aber nur auf die Bilder auswirkt, die im Hintergrund angezeigt werden. Unter anderem kann festgelegt werden, ob der Kalender mit Facebook verbunden werden, welche Kalenderkonten angezeigt werden sollen, der erste Tag der Woche kann ausgewählt und der Default-Kalender bzw. Default-Reminder festgelegt werden.</p>
<h4>Fazit</h4>
<p>Zusammenfassend lässt sich sagen, dass die Kalender App Any.do Cal besonders für User entwickelt wurde, die Wert auf Design legen. Die Gestaltung der Applikation hebt sich sehr von anderen ab und ist auch sehr übersichtlich. Besonders hat mir der Anzeige der Terminauslastung gefallen, da ich das zuvor noch nicht in einer anderen Kalender-Applikation gesehen habe. Die Synchronisation mit anderen Applikationen funktioniert einfach und schnell. Im Gegensatz dazu fällt allerdings die fehlende Personalisierbarkeit auf und dass keine verschiedenen Kalender-Ansichten zur Auswahl stehen. Außerdem dauert es sehr lange, wenn Kalenderkonten ein und wieder ausblendet werden bis diese wieder korrekt angezeigt werden und es gibt nur die Sprache Englisch zur Auswahl. Die Todos sind nicht direkt in die Applikation integriert, sondern es muss eine extra Applikation installiert werden, die die Verwaltung der Aufgaben ermöglicht. In einem Satz lässt sich die App als schön, übersichtlich, aber leider als kaum personalisierbar zusammenfassen.</p>
<h3>Sunrise Calendar</h3>
<h4>Start der Applikation</h4>
<p>Zu Beginn muss man sich im Gegensatz zu Any.do Cal mit seinem Facebook-Login oder Google-Konto einloggen und es können verschiedene externe Kalender oder Applikationen hinzugefügt und eingebunden werden. Anschließend kommt ein Dialog zur Auswahl der angezeigten Kalender. Wie man sieht ist hier der erste Start der App schon etwas zeitaufwendiger und komplizierter, da hier nicht alle Konten automatisch erkannt und eingebunden werden. In Any.do Cal war kein Google-Login von Nöten, um meine Kalenderkonten einbinden zu können.</p>
<h4>Hauptscreen</h4>
<p>Beim Sunrise Calendar gibt es zwei verschiedene Ansichten zur Auswahl: die Listen- und Balkenansicht.</p>
<p><a href="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2015/01/2015-01-04-12.54.37.png"><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-5092" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2015/01/2015-01-04-12.54.37-168x300.png" alt="2015-01-04 12.54.37" width="168" height="300" /></a>    <a href="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2015/01/2015-01-04-12.54.45.png"><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-5093" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2015/01/2015-01-04-12.54.45-168x300.png" alt="2015-01-04 12.54.45" width="168" height="300" /></a></p>
<p>Ganz oben werden die Wochentage von 2 Wochen mit ihrem zugehörigen Datum angezeigt. Klickt man auf ein Datum werden darunter die angezeigten Termine auf das aktuell ausgewählte Datum aktualisiert, die übersichtlich in Listenform nach Uhrzeit sortiert dargestellt werden. Anders als im Any.do Cal wird der Ort direkt unter dem Termin ausgegeben und man muss nicht erst auf die Detailansicht des Termins navigieren, um den Ort des Termins zu erfahren. Außerdem wird die Kalenderzugehörigkeit links neben dem Event durch einen farbigen Punkt gekennzeichnet, der größer und markanter als in der vorherigen App angezeigt wird. Durch Swipe nach rechts oder durch Berührung des dritten Icons von rechts kann die Ansicht auf die Balkenansicht gewechselt werden.<br />
In dieser Ansicht werden immer drei Tage nebeneinander angezeigt und entlang einer vertikalen Zeitleiste die Termine in Form von Balken aufgetragen. Im Vergleich zur Listenansicht wird hier nicht der Ort direkt unter dem Event angezeigt und wenn es mehrere Kalenderkonten gibt, in denen sich die Termine überschneiden, wird dieser Ansicht schnell sehr unübersichtlich, da die Balken immer dünner werden. Die Termin-Balken werden in der Farbe der jeweiligen Kalenderzugehörigkeit eingefärbt.</p>
<h4>Gesten</h4>
<p>In der Listenansicht, kann innerhalb der oberen Leiste durch Swipe nach unten die Höhe dieser zur der Anzeige von vier Wochen vergrößert und zwischen den Monaten gescrollt werden. Durch aufgelisteten Termine kann durch Swipe-Gesten nach oben oder unten zwischen den Terminen der verschiedenen Tage gescrollt werden. Wie schon oben erwähnt wird durch Swipe nach links oder rechts die Ansicht auf Listen oder Balkenansicht geändert.<br />
In der Balkenansicht kann zwischen den Tagen hin und her gewechselt werden, indem ein Swipe nach links oder rechts getätigt wird. Swiped man nach oben oder unten bewegt man sich entlang der senkrechten Zeitleiste. Ein hübsches Zusatzfeature ist der kleine Pfeil links unten in beiden Ansichten, der immer in die Richtung zeigt wo sich der heutige Tag befindet. Berührt man diesen gelangt man zum jetzigen Zeitpunkt.</p>
<h4>Neuer Termin</h4>
<p>Wie in der vorherigen Applikation kann auch hier durch Berührung des großen „+“-Icons rechts oben ein neuer Termin erstellt werden.</p>
<p><a href="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2015/01/2015-01-18-11.10.39.png"><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-5101" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2015/01/2015-01-18-11.10.39-168x300.png" alt="2015-01-18 11.10.39" width="168" height="300" /></a></p>
<p>Im folgenden Dialog können Kalendertitel, Uhrzeit oder ganztägiges Event, Ort, Zeitzone, Kalenderzugehörigkeit , Erinnerung, Eventwiederholungen und Einladungen von anderen Personen zu diesem Termin eingestellt werden. Editieren und Löschen des Termins ist wie in der Any.so Cal-App in der Detailansicht des Termins möglich. Vergleicht man den Erstellungs-Dialog mit der oben erwähnten Kalender-Applikation, ist diese um einiges umfangreicher. Diese Einstellungen zu einem Termin können bei Any.do Cal erst in der Detailansicht des Events bearbeitet werden. Der große Unterschied ist, dass sich Any.do Cal auf die möglichst schnelle und einfache Erstellung eines Events konzentriert und nur die wichtigsten Einstellungen bei der Erstellung eingibt. Nachträglich kann dieser noch genauer editiert werden. Sunrise hingegen bietet die gesamten Konfigurationen schon bei der Erstellung an und ist daher etwas unübersichtlicher und komplizierter wenn es um das schnelle Eintragen eines Termins geht.</p>
<h4>Einstellungen</h4>
<p>Angezeigte Kalenderkonten, Notifications, also Einladungen zu Terminen, erster Tag der Woche, die Wetteranzeige, die Refresh-Rate, der Default-Kalender können hier eingestellt werden und Ausloggen ist hier möglich. Zu den Einstellungen gelangt man über das Zahnrad rechts oben in der Anzeige. Im Unterschied zu Any.do Cal kann hier die Refresh-Rate des Kalenders konfiguriert werden und eine Wetteranzeige neben dem Termin ist möglich.</p>
<h4>Fazit</h4>
<p>Die hilfreiche Auslastungsanzeige der vorherigen Applikation fehlt hier, aber es gibt eine Wetteranzeige zu jedem Termin, der Pfeil links unten zeigt, wie ein Kompass zum heutigen Tag und kommen bestimmte Keywords wie zum Beispiel „Zahnarzt“ oder „Urlaub“ im Termin-Titel vor gibt die Applikation ein passendes Icon zum Termin im Punkt davor an. Diese drei Dinge, sind nette Ideen, die die App grafisch aufwerten und sie von anderen Kalender-Apps unterscheiden. Außerdem sind im Gegensatz zu Any.do Cal zwei verschiedene Ansichten möglich und die Kalenderzugehörigkeit ist hier besser gekennzeichnet. Weiters ist die Einstellung der Refresh-Rate möglich. Leider ist auch der Sunrise Calender nicht an den Benutzer anpassbar und zu Beginn ist ein Login erforderlich, der bei Any.Do cal automatisch erfolgt. Die Erstellung eines neuen Ereignisses und die Anzeige des Kalenders ist zwar etwas unübersichtlicher als bei der vorherigen App, aber dafür stehen unterschiedliche Ansichten zur Verfügung. Sowie bei Any.do Cal ist diese Applikation nur in der Sprache Englisch erhältlich. Zusammenfassend lässt sich sagen, dass es sich hierbei um ein klassisches flaches Design handelt mit kleinen hübschen Features (Icons, die sich anpassen), zwei verschiedene Ansichten je nach Geschmack zur Verfügung stehen und leider nur wenig bis gar kein Spielraum in der Personaliserbarkeit der Applikation geboten wird.</p>
<h3>Google Kalender</h3>
<h4>Start der Applikation</h4>
<p>Auch hier ist keine Anmeldung notwendig und mein Google Konto wird automatisch erkannt und synchronisiert. Besonders gut finde ich die kurze Einführung in die Funktionen der App beim ersten Start.</p>
<h4>Hauptscreen</h4>
<p>Der Google Kalender stellt mit Abstand die meisten Ansichten zur Verfügung. Man kann zwischen einer Tagesansicht, einer Terminübersicht und einer 5-Tages-Ansicht wählen. Die gewünschte Ansicht kann rechts oben über das Icon mit den drei Punkten geändert werden. Wählt man den Pfeil neben dem Monat aus, wird das jeweilige Monat aufgeklappt. In dieser Anzeige gibt eine Übersicht, an welchen Tagen schon Termine eingetragen sind und an welchen nicht. Befindet sich ein Kreis um das Datum, sind an jenem schon Termine eingetragen, bei uneingekreisten nicht. Der heutige Tag wird blau gekennzeichnet, der gerade ausgewählte grau markiert. Der Monat kann in jeder Ansicht aufgeklappt werden.<br />
In der Tagesansicht, werden die Termine, wie schon ein paar Mal vorher erwähnt, in Balken dargestellt, die je nach Kalenderzugehörigkeit unterschiedlich eingefärbt sind. Hier wird der Termintitel und der zugehörige Ort ausgegeben. Die Ansicht bietet genug Platz um mehrere überschneidende Termine in anderen Kalenderkonten nebeneinander anzuzeigen, allerdings hat man keinerlei Übersicht über die Ereignisse an den umliegenden Tagen. Um einen Überblick zu erhalten, kann man in diesem Fall aber auf die Listenansicht wechseln.</p>
<p><a href="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2015/01/2015-01-04-14.36.06.png"><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-5094" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2015/01/2015-01-04-14.36.06-168x300.png" alt="2015-01-04 14.36.06" width="168" height="300" /></a></p>
<p>Termine innerhalb einer Woche, die nach Uhrzeit sortiert sind, werden in der Terminübersicht untereinander angezeigt. Aber Tage, an denen keinerlei Ereignisse eingetragen sind, werden ausgelassen, was diese Ansicht meiner Meinung nach etwas verwirrend macht. Zum Termin ist auf einen Blick ersichtlich, wann und wo dieser stattfindet.</p>
<p><a href="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2015/01/2015-01-04-14.36.12.png"><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-5095" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2015/01/2015-01-04-14.36.12-168x300.png" alt="2015-01-04 14.36.12" width="168" height="300" /></a></p>
<p>In der 5-Tages-Ansicht hingegen werden die Termine von 5 Tagen in Form von Balken nebeneinander angezeigt, die je nach Kalenderzugehörigkeit unterschiedlich eingefärbt sind. Die 5-Tages-Ansicht finde ich unbrauchbar, wenn man sehr viele Termine eingetragen hat, da dann die Balken immer schmäler und die Ansicht immer unübersichtlicher wird.</p>
<p><a href="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2015/01/2015-01-04-14.36.20.png"><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-5096" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2015/01/2015-01-04-14.36.20-168x300.png" alt="2015-01-04 14.36.20" width="168" height="300" /></a></p>
<h4>Gesten</h4>
<p>Durch Swipe nach oben und unten kann in der Tagesansicht der Zeitleiste entlang gescrollt werden. Nach links oder rechts wird zwischen den Tagen gewechselt. In der Terminübersicht sind nur Gesten nach oben oder unten möglich und lässt einen durch die Termine scrollen. In der 5-Tages-Ansicht stehen die gleichen Gesten wie in der Tagesansicht zur Verfügung. Allgemein ist das Menü in jeder Ansicht durch einen Swipe nach rechts am linken Rand des Screens ausklappbar.</p>
<h4>Neuer Termin</h4>
<p><a href="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2015/01/2015-01-18-13.30.11.png"><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-5103" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2015/01/2015-01-18-13.30.11-168x300.png" alt="2015-01-18 13.30.11" width="168" height="300" /></a></p>
<p>Auch in der Google Kalender-App ist es möglich, über das große „+“-Icon ein neues Ereignis zu erstellen. Dieser Button befindet sich in diesem Fall rechts unten. Auch hier gibt es die Möglichkeit die üblichen Eigenschaften eines Termins einzugeben, im gleichen Umfang wie bei der Sunrise Calendar-App. Der einzige Unterschied liegt darin, dass ich selbst die Farbe des Termins auswählen kann. Editieren und löschen des Termins ist ebenfalls wieder über die Detail-Ansicht des Events möglich.</p>
<h4>Einstellungen</h4>
<p>Bei der Google Kalender-App sind die Einstellungen über das einklappbare Menü erreichbar. Hier ist es im Gegensatz zu den anderen vorgestellten Applikationen dem User erlaubt, die Kalenderfarben zu bestimmen und somit ist ein höherer Grad an Personalisierbarkeit möglich. Auch hier sind die gleichen Einstellungen wie bei dem vorher vorgestellten Kalender möglich, mit dem Unterschied, dass die angezeigten Kalender sofort über das Menü, das sich einklappt auswählbar sind und man dafür nicht extra in die Einstellungen navigieren muss.</p>
<h4>Fazit</h4>
<p>Für mich ist der Google Kalender der klare Testsieger, da er mehrere Ansichten ermöglicht und den höchsten Grad an Personalisierung zur Verfügung stellt. Außerdem ist eine Termin-Suche möglich, die sonst bei keiner anderen vorgestellten Applikation angeboten wurde. Weiters kann ein Standard für die Termindauer eingegeben werde, dass man oft, wenn man schnell etwas eingegeben möchte, schon eine feste Dauer angegeben hat, die später noch editierbar ist. Das Design ist eher schlicht und flach gehalten, aber ist daher auch sehr übersichtlich.</p>
<h4>Allgemeines Fazit</h4>
<p>Es ist natürlich Geschmackssache für welche Kalender-App man sich entscheidet. Ich habe versucht diese drei Kalender-Applikation so genau und detailreich wie möglich zu erklären, damit sich jeder selbst ein Bild davon machen kann, ohne sie selbst getestet zu haben.<br />
Abschließend würde ich sagen, dass jene User, die sehr viel Wert auf ein individuelleres Kalender-Design legen, sich wahrscheinlich für die Any.do Cal-App entscheiden werden. Jene, die es lieber schlicht mögen und dafür den Vorteil mehrerer Ansichten und eines höheren Grad an Personalisierbarkeit nutzen wollen, sollten den Google Kalender in Erwägung ziehen.</p>
<p>Quelle Beitragsbild: <a href="http://www.fsgbmhs.eu/wp-content/uploads/kal1.jpg">http://www.fsgbmhs.eu/wp-content/uploads/kal1.jpg</a></p>
<p>The post <a href="https://mobile.fhstp.ac.at/allgemein/3-kalender-apps-im-test/">3 Kalender-Apps im Test</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Bootstrap vs. Foundation</title>
		<link>https://mobile.fhstp.ac.at/development/bootstrap-vs-foundation/</link>
		
		<dc:creator><![CDATA[Theres-Sophie Scheucher]]></dc:creator>
		<pubDate>Wed, 31 Dec 2014 08:00:03 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Webdevelopment]]></category>
		<category><![CDATA[Bootstrap]]></category>
		<category><![CDATA[Foundation]]></category>
		<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[Less]]></category>
		<category><![CDATA[Sass]]></category>
		<guid isPermaLink="false">https://akirchknopf-21110.php.fhstp.cc/?p=5003</guid>

					<description><![CDATA[<p>Da man als Frontend-Entwickler nicht immer das Rad komplett neu erfinden will, gibt es Frameworks, die bereits alles für eine fertige Website an Board haben. Mit vorgefertigten CSS-Klassen, Javascript-Funktionen, Mark-up-Logik und mehr bieten diese Grundlagen für wiederkehrende Praxisfälle. Die zwei wohl bekanntesten Frameworks sind Bootstrap von Twitter und Foundation von Zurb. Beide Frameworks sind kostenlos <a class="read-more" href="https://mobile.fhstp.ac.at/development/bootstrap-vs-foundation/">[...]</a></p>
<p>The post <a href="https://mobile.fhstp.ac.at/development/bootstrap-vs-foundation/">Bootstrap vs. Foundation</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Da man als Frontend-Entwickler nicht immer das Rad komplett neu erfinden will, gibt es Frameworks, die bereits alles für eine fertige Website an Board haben. Mit vorgefertigten CSS-Klassen, Javascript-Funktionen, Mark-up-Logik und mehr bieten diese Grundlagen für wiederkehrende Praxisfälle. Die zwei wohl bekanntesten Frameworks sind Bootstrap von Twitter und Foundation von Zurb. Beide Frameworks sind kostenlos und ihr Schwerpunkt liegt im logischen Aufbau und intuitiven Einsatz von CSS-Klassen.<span id="more-5003"></span></p>
<h3>Verwendete Einheiten</h3>
<p>Der auffälligste Unterschied zwischen den beiden Frameworks sind wohl die Einheiten im CSS. Während Bootstrap Pixel verwendet, baut Foundation auf rem (root em). Rem ist so ähnlich wie em, nur bezieht sich rem immer auf das root-Element, nicht auf die Schriftgröße des direkten Eltern-Elements. Außerdem basiert Bootstrap auf LESS und Foundation auf SASS.</p>
<h3>Browsersupport</h3>
<p>Was die Browserunterstützung der beiden Frameworks betrifft, wird Internet Explorer 8 und niedriger von Foundation 5 nicht mehr unterstützt. Bootstrap hingegen bietet noch eingeschränkten Support für den Internet Explorer 8. Um aber das responsive Layout mit all seinen Funktionen unterstützen zu können wird ein Polyfill benötigt z.B.: <a href="http://www.jsdelivr.com/#!respond">respond.js</a>. Mit CSS3-Attributen kann IE 8 auch nicht umgehen und auf Transitions sollte bis einschließlich IE 9 verzichtet werden. Bei allen anderen auch mobilen Browsern werden die Frameworks aber sauber unterstützt.</p>
<h3>Responsivität</h3>
<p>Bootstrap hat bei der Responsivität einen adaptiven Ansatz. Das heißt im mobilen Bereich bis zu einer Breite von 798 Pixel wird das Design stufenlos mitskaliert, danach wechselt das Verhalten aber auf fest definierte Ausmaße. Im Gegensatz dazu verfolgt Foundation einen fluiden Ansatz und bleibt für jede Screengröße übergangslos flexibel. Der adaptive Ansatz ist zwar aus gestalterischer Sicht oft einfacher zu bedienen, da es eine überschaubare Anzahl an Layout-Breiten gibt, die Fluide Lösung akzeptiert aber, dass es keine Definition von optimalen Ausmaßen geben kann und passt sich daher an jede Gerätedimension an. Um Bootstrap ein fluides Layout zu verpassen sind Korrekturen an drei Zeilen notwendig.</p>
<pre class="brush: css; title: ; notranslate">
@media (min-width: 768px) {
    .container {width: 90%;}
}
@media (min-width: 992px) {
    .container {width: 90%;}
}
@media (min-width: 1200px) {
    .container {width: 90%;}
}
</pre>
<h3>User-Interface-Elemente</h3>
<p>Fast jedes User-Interface-Element lässt sich durch Einsatz von Klassen in Bootstrap als auch in Foundation realisieren. Jedoch werden die User-Interface-Elemente von Bootstrap in mehreren Versionen in Farbe, Größe, Ausrichtung angeboten, während Foundation eher dazu einlädt die Änderungen des Standardstils selbst zu übernehmen.</p>
<h3>Dokumentation</h3>
<p>Die Online-Dokumentation der beiden Frameworks ist sehr umfangreich. Bootstrap ist etwas umständlicher in „Getting started“, „CSS“, „Components“ und „JavaScript“ strukturiert. Foundation gliedert ihre Dokumentation nach Einsatzzweck und Bedeutung der Tools. Daher bietet Foundation eine übersichtlichere Nachschlagmöglichkeit.</p>
<h3>Standardpaket</h3>
<p>So umfangreich der Einsatz von Bootstrap auch ist, das Download-Paket ist etwas mager ausgefallen. Es ist kein Beispiel-Mark-up enthalten und das Zip-Archiv beinhaltet die bootstrap.css und bootstrap-theme.css sowie die Javascript-Funktionen. Die Einbindung von bootstrap-theme.css ist nicht von Nöten, sie reichert die bootstrap.css lediglich mit zusätzlichen Styles an. Außerdem liefert Bootstrap eine eigenen Icon-Font mit im Paket, namens Glyphicons, die 200 verschiedene Icons beinhaltet. Diese können mit einfachen Klassen in das Mark-up eingebunden werden. Der Foundation-Download ist in diesem Zusammenhang um einiges umfangreicher. Neben der foundation.css gibt es die normalize.css , die eine gute Grundlage für fast jedes Webprojekt darstellt und die Unterschiede in den Browser-Stylesheets normalisiert. Weiters enthält das Paket eine zusammenfassende foundation.min.js. Jedes darin enthaltene Plug-in gibt es auch einzeln, somit können Entwickler nur ein Set an Plug-ins zusammenstellen, das benötigt wird und folglich Platz sparen. Zusätzlich gibt es jQuery, Modernizr und einige weitere Nicht-Foundation-Plug-ins mit im Paket. Im Gegensatz zu Bootstrap wird hier auch ein Beispiel-Mark-up in der index.html mitgeliefert, das fast alle Layout- und UI-Elemente von Foundation darstellt.</p>
<h3>Grid-Raster</h3>
<p>Das Raster des Grid-Systems der beiden Frameworks besteht aus zwölf Spalten, deren Steg zwischen den Spalten eine fixe Breite von 30 Pixel beziehungsweise 1,875 rem hat. Die Breite der Spalten ist flexibel und passt sich an der Breite des Browserfensters (oder Viewports) an. Beide Systeme haben einen ähnlichen Aufbau im HTML-Mark-up. Folgendes Beispiel zeigt ein Layout mit zwei nebeneinander platzierten Containern.<br />
Bootstrap</p>
<pre class="brush: xml; title: ; notranslate">
&lt;div class=“row“&gt;
    &lt;div class=“col-md-8“&gt;
        Zwei drittel Spalte
    &lt;/div&gt;
    &lt;div class=“col-md-4“&gt;
        Ein drittel Spalte
    &lt;/div&gt;
&lt;/div&gt;
</pre>
<p>Foundation</p>
<pre class="brush: xml; title: ; notranslate">
&lt;div class=“row“&gt;
    &lt;div class=“large-8 columns“&gt;
        Zwei Drittel Spalte
    &lt;/div&gt;
    &lt;div class=“large-4 columns“&gt;
        Ein drittel Spalte
    &lt;/div&gt;
&lt;/div&gt;
</pre>
<p>Bootstrap benötigt zusätzlich ein all umfassendes Block-Element mit der Klasse „container“, damit auch an den Seitengrenzen ein Mindestabstand zum Rand des Browserfensters bestehen bleibt. Bei Foundation bestimmen die Schlüsselbegriffe small, medium und large, bei welcher Viewport-Breite ein Element wie viele Spalten überspannt. Bei Foundation gibt es folgende Bereiche:</p>
<ul>
<li>small-*: für Viewports über 0 Pixel Breite</li>
<li>medium-*: für Viewports über 640 Pixel Breite</li>
<li>large-*: für Viewports über 1024 Pixel Breite</li>
</ul>
<p>Beispiel: Container, der auf großen Bildschirmen drei, auf kleinen sechs Spalten umfasst</p>
<pre class="brush: xml; title: ; notranslate">
&lt;div class=“medium-6 large-3 columns“&gt;Inhalt&lt;/div&gt;
</pre>
<p>Die Mobile Darstellung steht bei Bootstrap, sowie Foundation im Mittelpunkt. Die Klasse die ab einer bestimmten Viewport-Breite greift überschreibt die vorherige Klasse. Das bedeutet im Bezug auf das obere Beispiel, dass Bildschirmgrößen unter 641 Pixeln die volle Breite einnehmen würden. Umgekehrt würde ein Container , der nur die Klasse „small-3“ erhält, auch bei großem Viewport drei Spalten einnehmen.</p>
<p>Die Syntax von Bootstrap ist ähnlich zu Foundation. Im Gegensatz dazu, ist die Aufteilung einmal öfter unterteilt und die entscheidenden Kürzel sind xs, sm, md und lg. Für folgende Aufteilung hat sich Bootstrap entschieden:</p>
<ul>
<li>col-xs-*: für Viewports ab 0 Pixel Breite</li>
<li>col-sm-*: für Viewports ab 768 Pixel Breite</li>
<li>col-md-*: für Viewports ab 992 Pixel Breite</li>
<li>col-lg-*: für Viewports ab 1.200 Pixel Breite</li>
</ul>
<p>Im Vergleich zum Foundation Beispiel: ein Container der bei mittleren Viewport drei und bei einem kleinen Viewport sechs Rasterspalten einnehmen soll:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;div class=“col-sm-6 col-md-3“&gt;Inhalt&lt;/div&gt;
</pre>
<p>Obwohl Bootstrap um einen Breakpoint mehr bietet, sieht die Aufteilung unter 768 Pixel etwas mager aus. Foundation nimmt hier weniger Rücksicht auf Gerätestandards und formuliert ihre Breakpoint allgemeingültiger.</p>
<p>Zur Positionierung der Spalten nebeneinander setzen beide Frameworks auf die float-Eigenschaft, da inline-block in bestimmten Kontexten zu ungewollten Abständen führen und das CSS3-Flexbox-Model erst in Zukunft eine ausreichende Browserunterstützung mitbringen kann. Mit dem Css-Standard Box-Model , bei dem sich border und padding auf die Gesamtmaße des Objektes aufaddieren, machen Boostrap und Foundation kurzen Prozess. Mit den Zeilen werden alle Elemente einer neuen Berechnungsgrundlage unterzogen und nach dem Border-Box-Model interpretiert. Nur so lassen sich die Breitenangaben der Spalten in Prozent in Kombination mit den Innenabständen (padding) umsetzen. Das Box-Modell wirkt sich also auf alle Elemente aus.</p>
<pre class="brush: css; title: ; notranslate">
*,
*:before,
*:after {
    -webkit-box-sizing_ border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}
</pre>
<p>Außerdem sind in beiden Frameworks Verschachtelungen möglich. Mit einer neuen Klasse „row“ kann ein neues in einem bestehenden Element eröffnet werden. Hier können wieder neue Elemente verteilt werden. Grundlage des Spaltenrasters ist in diesem Fall die neue „row“ mit ihrem zwölf-Spalten-Raster. Wenn man aus dem vorgegeben Raster ausbrechen will, können die Container ebenfalls um Spalten verschoben werden.</p>
<p>Bootstrap</p>
<pre class="brush: xml; title: ; notranslate">
&lt;div class=“col-md-4 col-md-offset-2“&gt;Bootstrap&lt;/div&gt;
</pre>
<p>Foundation</p>
<pre class="brush: xml; title: ; notranslate">
&lt;div class=“large-4 large-offset-2 columns“&gt;Foundation&lt;/div&gt;
</pre>
<p>Wie man sieht ist das Aufbauen von Layouts intuitiv umsetzbar, aber nur solange man sich in dem zwölf-Spalten-Raster bewegt. Ein eigenes Grid mit alternativer Spaltenanzahl und Steg-Breite ist mit der Standard-Version nicht möglich.</p>
<h3>LESS- und SASS-Variante</h3>
<p>Für Entwickler, die mit LESS und SASS umgehen können, bietet Bootstrap und Foundation die unkomprimierten Less- und SASS-Dateien zum Download an. Somit ergeben sich einige Vorteile.</p>
<h4>Spaltenanzahl im Spaltenraster</h4>
<p>Über den Customizer lässt sich zwar die gewünscht Spaltenanzahl definieren, aber an eine spätere Änderung dieser ist nicht zu denken. Im Gegensatz dazu hat die LESS- und SASS-Variante diese Werte in Klassen hinterlegt und diese können an einen zentralen Punkt editiert und angepasst werden.</p>
<h4>Breakpoints</h4>
<p>Dies gilt auch für die Definition der Breakpoints. In den SASS- und LESS-Files lassen sich diese leicht editieren. Im Standard-Download ist das zwar auch möglich, aber nur durch Suchen im Code und Bearbeitungen an mehreren Stellen.</p>
<h4>Semantisches CSS</h4>
<p>Da Maschinen das CSS nicht semantisch auswerten können, wird oft darüber gestritten, ob es so etwas wie Semantik im CSS überhaupt geben kann. Trotzdem wichtig dabei ist, dass keine Grid-Klassennamen direkt in das Mark-up geschrieben werden sollten. Stattdessen sollte eine sprechende Klasse vergeben werden, die die Funktion und den Kontext des Elements beschreibt. Dann kann diese Klasse anschließend mit Hilfe von Mixins, diese Funktionen aus dem Pool an Framework-Funktionen erhalten. Somit kommt es zu weniger Wiederholung von Klassennamen, ein aufgeräumtes Mark-up, und eine saubere Trennung von Framework- und eigenen Elementen. Außerdem lässt sich somit theoretisch das Framework auf jedes bestehende Projekt münzen.</p>
<h3>Upgrade</h3>
<p>In der Vergangenheit hat sich gezeigt, dass sich Funktionennamen oder Klassennamen aufgrund eines Updates manchmal ändern. Durch Berücksichtigung eines semantischen CSS müssen diese Änderungen nur an zentralen Stellen in den LESS- oder SASS-Files, anstatt im ganzen Projekt mit jedem einzelnen Einsatz im HTML geändert werden.</p>
<h3>Anpassen von fertigen Elementen</h3>
<p>Wenn der Standard-Stil eines UI-Elements nicht ausreicht und aufgrund des projektspezifischen Designs abgeändert werden muss, sollte das nicht in der Bootstrap-Klasse passieren. Das heißt wenn beispielsweise das Aussehen des Standard-Buttons abgeändert wird, sollte eine neue Klasse erstellt werden, die auf den Stil des Standard-Buttons aufbaut. Mit zum Beispiel einer Klasse „btn-mystyle“, können nun Eigenschaften in nur wenigen CSS-Zeilen überschrieben und ergänzt werden. So wird auch in Bootstrap intern bei den verschiedenen Variationen eines Buttons gearbeitet, wie beispielsweise „btn-primary“, „btn-sucess“ etc.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;button class=“btn btn-mystyle“&gt;Mein Button&lt;/button&gt;
</pre>
<p>Foundation funktioniert nach dem gleichen Prinzip, motiviert aber in der Dokumentation sehr früh eine Element-Klasse (z.B. einen Button) nach eigenen Parametern mit Hilfe der Mixins von SASS zu erstellen.</p>
<p>Je nach Design-Anforderungen des Projektes, kann es vorkommen, dass zahlreiche Attribute immer wieder ergänzt oder überschrieben werden müssen, manchmal so viel, dass sich die Verwendung der Basisklasse kaum noch lohnt. Hier sind die Grenzen des Frameworks spürbar, an die jedes Framework einmal stoßen muss. In diesem Fall ist das Ummodeln der UI-Elemente oft mühsamer, als selbst ein neues Element zu erstellen. Im Netz haben schon einige Entwickler das Standard-Layout von Bootstrap angepasst und neue Themes entwickelt, die sie zum Download zur Verfügung stellen. Auf <a href="http://bootswatch.com/">bootswatch.com</a> findet man einige Alternativen zum Standard-Layout und auf <a href="http://www.blacktie.co/">blacktie.co</a> erreichen die Themes Qualitäten von vollständigen Webseiten. Im Gegensatz dazu sind solche Angebote für Foundation schwer zu finden, was wohl auf die Philosophie des Frameworks zurückzuführen ist.</p>
<h3>Javascript</h3>
<p>Bootstrap und Foundation haben aber nicht nur in CSS viel zu bieten, sie enthalten auch einige hilfreiche Javascript-Tools, von denen hier einige erwähnt werden:</p>
<h4>Foundation: Interchange:</h4>
<p>Qualität und Performance im Responsive Design treffen irgendwann einmal auf das Problem der Bildgrößen. Auf einem Smartphone müssen die Bilder nicht in voller Größe geladen werden, oder auf einem Retina Display müssen die Bilder doppelt oder sogar dreifach so große als die Anzeige ausgespielt werden etc. Obwohl sich viele Quellen im Internet mit diesen Problem befassen und es noch immer keine perfekte Lösung gibt, befasst sich auch Foundation mit diesen Thema und bietet mit „Interchange“ eine Lösung. Auf der Grundlage der gerade zutreffenden Media Queries lädt Foundation die entsprechend passende der zuvor im „data-interchange“-Attribut angegebenen Bildquelle.</p>
<h4>Bootstrap: Affix:</h4>
<p>Manchmal sollen Elemente fix positioniert werden. Mit position:fixed; ist dieses Szenario umsetzbar , aber das Problem ist, dass diese Elemente oft Objekte überdecken oder überdeckt werden sobald gescrollt wird. Affix bietet eine Lösung dieses Problems mit einer bedingten Fixierung via Javascript.</p>
<h4>Foundation: Offcanvas-Menu:</h4>
<p>Das Seitenmenü, das in mobiler Ansicht durch einen Touch auf ein Symbol oben rechts oder links seitlich hereinflattert wird hier umgesetzt. Bootcamp bietet dieses simple Tool nicht.</p>
<h4>Foundation: Formular-Validation:</h4>
<p>Foundation bietet eine Inline-Formular-Validierung. Zwar kümmert sich dieses Tool keineswegs um die nachträgliche Servervalidierung aber sie verbessert die Usability.</p>
<h4>Bootstrap und Foundation: Diashow:</h4>
<p>In Foundation “Orbit“ und in Bootstrap „Carousel“ genannt. Die Anwendung ist in beiden Fällen simpel, jedoch unterstützt nur Foundation Swipe-Gesten durch den eingebauten Touch-Screen-Support.</p>
<h4>Foundation: Fastclick:</h4>
<p>Standard-Klick-Ereignisse unterliegen auf Touch-Screens einer gewissen Verzögerung, die beseitigt und somit die Nutzungserfahrung verbessert wird.</p>
<h4>Foundation: Joyride:</h4>
<p>Mit diesem Tool können „Touren“ erstellt werde, die zum Beipiel neue Funktionen erklären. Mithilfe von Scrolling, Tooltips und Fading werden dabei einzelne Elemente hervorgehoben und erörtert.</p>
<p>Über diese Javascript-Utilities hinaus bietet Bootstrap und Foundation eine Menge an Standard-Interface-Elementen: Modal-Window (Pop-ups), Dropdowns, Tab-Navigation, Tooltips uns ebenfalls Scrollposition-Abhängige Navigationslösungen.</p>
<h3>Fazit</h3>
<p>Foundation liegt eine komplett andere Philosophie zugrunde als Bootstrap, die sich aber trotzdem gegen den Riesen durchsetzen kann. Besonders auffällig ist die konsequente Ausrichtung an die Zukunft des Internets. Bootstrap hingegen sticht durch eine größere Variation an Userinterface-Elementen hervor und durch Out-of-the-Box-Erweiterungen aus dritter Hand.</p>
<p>Für schnelle Mockups , die nahe an der Funktionalität von Twitter-Frameworks liegen, eignet sich Bootstrap hervorragend. Für andere Anwendungen ist Foundation ein guter Tipp. Beide Frameworks bieten erst bei Verwendung der LESS- bzw. SASS-Variante ihren vollen Funktionalitätsumfang.</p>
<h3>Quellen:</h3>
<p>Lemme, M. (2014, Juni). Bootstrap vs. Foundation. Screenguide, (21), 60–66.<br />
<a href="http://getbootstrap.com/">http://getbootstrap.com/</a><br />
<a href="http://foundation.zurb.com/">http://foundation.zurb.com/</a></p>
<p>The post <a href="https://mobile.fhstp.ac.at/development/bootstrap-vs-foundation/">Bootstrap vs. Foundation</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Flexible Gridsysteme mit jeet.gs</title>
		<link>https://mobile.fhstp.ac.at/development/neue-flexible-gridsysteme-mit-jeet-gs/</link>
		
		<dc:creator><![CDATA[Theres-Sophie Scheucher]]></dc:creator>
		<pubDate>Sun, 30 Nov 2014 10:00:30 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Webdevelopment]]></category>
		<category><![CDATA[compass]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[responsive Web]]></category>
		<category><![CDATA[Sass]]></category>
		<guid isPermaLink="false">https://akirchknopf-21110.php.fhstp.cc/?p=4864</guid>

					<description><![CDATA[<p>Viele Frameworks wie Bootstrap oder Foundation bieten 12- oder 16-spaltige Raster an. Oft will man aber nicht an dieses starre 12-spaltige Grid gebunden sein, da man um den Content perfekt anzeigen zu können nicht zwei nebeneinander liegende 6er-Spalten, sondern vielleicht besser 5 ½ Spalten benötigen würde. So sieht die Nutzung von gridspezifischen Klassen normaler weise <a class="read-more" href="https://mobile.fhstp.ac.at/development/neue-flexible-gridsysteme-mit-jeet-gs/">[...]</a></p>
<p>The post <a href="https://mobile.fhstp.ac.at/development/neue-flexible-gridsysteme-mit-jeet-gs/">Flexible Gridsysteme mit jeet.gs</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Viele Frameworks wie Bootstrap oder Foundation bieten 12- oder 16-spaltige Raster an. Oft will man aber nicht an dieses starre 12-spaltige Grid gebunden sein, da man um den Content perfekt anzeigen zu können nicht zwei nebeneinander liegende 6er-Spalten, sondern vielleicht besser 5 ½ Spalten benötigen würde.<span id="more-4864"></span></p>
<p>So sieht die Nutzung von gridspezifischen Klassen normaler weise aus:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;div class=&quot;“col-sm2&quot;&gt;
</pre>
<p>Hier werden Klassennamen mit semantischem Hintergrund genutzt, um die Übersicht zu bewahren und die Funktion eine Elements sofort ersichtlich zu machen. So schlägt es auch das W3C vor.</p>
<h3>Getrennte Präsentation &amp; Deklaration</h3>
<p>Flint, Singularity, Jeet &amp; Co. stützen sich auf <a href="http://semantic.gs">semantic.gs</a> und verwenden eine konsequente Trennung von Präsentation und Deklaration.</p>
<p>Somit wird aus:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;div class=“col-sm2 col-md3, col lg4 usp-list“&gt;
</pre>
<p>das hier:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;div class =“usp-list“&gt;
</pre>
<p>Auf jeet.gs wurde man vor Kurzem aufmerksam, da die eigene Seite bei Awwwards zur Site of the Day gekürt wurde. In diesem Blogbeitrag werden wir uns näher mit jeet.gs beschäftigen und Flint und Singularity hier nur kurz erwähnen. Neben unterschiedlicher Syntax kommt in <a href="http://flint.gs/" target="_blank">Flint</a> unter anderem eine Config-Datei zum Einsatz, in der sich das Grid im Vorfeld auf die eigenen Anforderungen und Bedürfnisse anpassen lässt. <a href="http://singularity.gs/" target="_blank">Singularity</a> wird zum Beispiel von <a href="http://www.theverge.com/">„The Verge“</a> verwendet und kann durch Plugins beliebig erweitert werden. Außerdem gibt es dazu eine ausführliche Wiki auf Github. Für beide Systeme wird SASS ab Version 3 und Compass benötigt. Hingegen jeets.gs basiert auf Css-Präprozessoren wie Stylus und SASS/SCSS und setzt auf vordefinierte Mixins, mit denen flexible, seitenspezifische Raster erstellt werden können.</p>
<h3>Basics von jeet.gs</h3>
<p>Bei jeet.gs gibt es keine fixen Spaltenbreiten. Das Grundgerüst hinter jeet.gs bieten Mixins, die die mathematischen Berechnungen im Hintergrund für das Gridsystem ausführen. Spalten werden in jeet.gs mit col() bzw. span() erstellt:</p>
<pre class="brush: css; title: ; notranslate">
aside {
    @include col(1/3);
}
main {
    @include col(2/3);
}
</pre>
<p>Hier nimmt aside ein Drittel der Breite des Elternelements ein und main füllt den Rest aus. Das System kümmert sich von selbst welcher Seitenrand per margin-right angefügt wird und um einen Steg zwischen den einzelnen Elementen der standardmäßig 3% beträgt, aber simpel userspezifisch verändert werden kann, indem man Jeet mit der Variable $gutter einen neuen Wert übergibt:</p>
<pre class="brush: css; title: ; notranslate">
Main{
    // Der Wert 2 steht für 2.5%
    @include col(2/3, $gutter: 2.5);
}
</pre>
<p><a href="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2014/11/blogbeitrag_mitSteg.jpg"><img loading="lazy" decoding="async" class="alignnone wp-image-4882 size-medium" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2014/11/blogbeitrag_mitSteg-300x240.jpg" alt="Ansicht mit Steg zwischen den Elementen" width="300" height="240" /></a></p>
<p>Wenn kein Seitenrand benötigt wird, kann man das Mixin span() benutzen. Dabei liegen die Elemente ohne Abstand direkt nebeneinander:</p>
<pre class="brush: css; title: ; notranslate">
aside {
    @include span(2/3);
}
main {
    @include span(2/3);
}
</pre>
<p><a href="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2014/11/blogbeitrag_ohneSteg.jpg"><img loading="lazy" decoding="async" class="alignnone wp-image-4883 size-medium" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2014/11/blogbeitrag_ohneSteg-300x240.jpg" alt="Ansicht ohne Steg zwischen den Elementen" width="300" height="240" /></a></p>
<p>Mithilfe des Mixins center() kann man das Layout anschließend zentrieren:</p>
<pre class="brush: css; title: ; notranslate">
section {
    @include center(960px);
}
</pre>
<p>center() definiert gleichzeitig die Breite des Elements und muss nicht pixelbasiert sein, sondern kann auch in % oder em angegeben werden. Außerdem gibt es den Parameter $pad mit dem man noch ein wenig padding hinzufügen kann:</p>
<pre class="brush: css; title: ; notranslate">
section {
    @include center(75%, $pad: 1em);
}
</pre>
<p>Selbstverständlich ist jeet.gs auch responsive und die Spaltenaufteilung kann sich mit der Verwendung von Media Queries je nach Bildschirmgröße verändern.</p>
<p>vorher:</p>
<pre class="brush: css; title: ; notranslate">
.teaser1 {
    @include col(1/2);
}
.teaser2 {
    @include col(1/2);
}
</pre>
<p>nachher:</p>
<pre class="brush: css; title: ; notranslate">
.teaser1 {
    @include col(1/2);
}
.teaser2 {
    @include col(1/2);
}
@media (min-width: 35em) {
    .teaser1 {
        @include col(2/3);
    }
    .teaser2 {
        @include col(1/3);
    }
}
</pre>
<h3>Erweiterte Funktionen</h3>
<p>Die oben beschriebenen Parameter von jeet.gs sind nur die Basics. Jeet.gs bietet noch weitere Parameter an, um das Grid noch flexibler zu gestalten. Zwei davon sind $cycle() und $uncycle(). Vor allem im eCommerce werden Produkte oft in Rasteransichten dargestellt. Bei unterschiedlichen Bildschirmgrößen variiert auch die Anzahl der Produkte in einer Zeile. Das heißt werden in der Desktop-Ansicht zum Beispiel drei Produkte angezeigt, werden in kleineren Ansichten nur 2 Produkte in einer Zeile ausgespielt. Das Problem, das hier besteht ist folgendes: Bei jedem letzten Produkt in einer Zeile (in der Desktop-Ansicht das 3. Produkt, in kleineren Ansichten das 2.) entsteht ein unschöner und unerwünschter Umbruch, da hier ein Abstand nach rechts eingefügt wird. Damit die gewünschte Anzahl der Produkte noch in eine Reihe passen schaffen $cycle und $uncycle Abhilfe. Damit wird bestimmt bei welchem Produkt ein rechter Rand eingefügt werden soll und bei welchem nicht.</p>
<p>Hier nehmen die Produkte ca. 50 % der Breite ein (abzüglich des Stegs) und jedes 2. Produkt bekommt keinen rechten Rand, damit alles schön sauber in eine Reihe passt:</p>
<pre class="brush: css; title: ; notranslate">
ul li {
    @include col(1/2, $cycle: 2);
}
</pre>
<p>Anschließend werden 3 Produkte in der Desktop-Ansicht in einer Reihe ausgegeben:</p>
<pre class="brush: css; title: ; notranslate">
@media (min-width: 58em) {
    ul li {
        @include col(1/3, $cycle: 3, $uncycle: 2);
    }
}
</pre>
<p>Hier nimmt nun jedes Produkt 33% der Breite ein. Mit $cycle: 3, weist man Jeet an bei jedem 3. Produkt den rechten Seitenrand zu entfernen. Hingegen mit $uncycle: 2, gibt man Jeet die Anweisung den rechten Seitenrand bei jedem 2. Produkt wieder hinzuzufügen und ein „float: left“ an jene Produkte zu vergeben. Ohne $uncycle würde jedes zweite und dritte Produkt keinen Seitenrand mehr besitzen und den „float-Befehl“ aufheben. Ein durcheinander gewürfeltes Layout wäre die Folge.</p>
<p>Somit kann schnell und sauber zwischen verschiedenen Anzahlen von Produkten in einer Zeile gewechselt werden.</p>
<p><a href="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2014/11/blogbeitrag_mitrand.jpg"><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-4886" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2014/11/blogbeitrag_mitrand-300x240.jpg" alt="Produkte mit rechtem Seitenrand" width="300" height="240" /></a>    <a href="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2014/11/blogbeitrag.jpg"><img loading="lazy" decoding="async" class="alignnone wp-image-4887 size-medium" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2014/11/blogbeitrag-300x240.jpg" alt="Produkte ohne rechten Seitenrand " width="300" height="240" /></a></p>
<p>&nbsp;</p>
<p>Auch Source-Ordering wir in Jeet unterstützt. Das heißt das Arrangieren von Elementen an verschiedenen Positionen. Dabei nutzt man relative Positionierungen und verschiebt die Elemente um einen gegebenen Faktor entweder nach links oder rechts.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;article&gt;
    Hauptinhalt
&lt;/article&gt;
&lt;aside&gt;
    Inhalte der Seitenspalte
&lt;/aside&gt;
</pre>
<p>Seitenleiste und Inhalt sollten nun in der Desktop-Ansicht nebeneinander stehen.</p>
<pre class="brush: css; title: ; notranslate">
@media (min-width: 58em) {
    article {
        @include col(2/3);
    }
    aside {
        @include col(1/3);
    }
}
</pre>
<p>Jetzt wäre es aber noch optimal die Seitenleiste nicht rechts vom Inhalt sondern links davon zu positionieren. Das funktioniert mit dem Mixin shift():</p>
<pre class="brush: css; title: ; notranslate">
@media (min-width: 58em) {
    article {
        @include col(2/3);
        @ include shift(1/3);
    }
    aside {
        @include col(1/3);
        @include shift (-2/3);
    }
}
</pre>
<p>Hier wird der Inhaltsbereich um ein Drittel nach rechts und die Seitenleiste um zwei Drittel nach links verschoben. Dieses Beispiel kann natürlich auch auf andere Wege gelöst werden, soll aber trotzdem die Flexibilität von Jeet.gs zeigen.</p>
<p>Ein weiteres nützliches Mixin bietet align(). Es positioniert die Elemente mittig horizontal, wie auch vertikal. Hier wird ein Header, der ein Logo links und eine Navigation rechts enthält ausgespielt. Die Navigation soll aber nun nicht am oberen Rand des Header kleben, sondern vertikal zentriert ausgegeben werden.</p>
<pre class="brush: css; title: ; notranslate">
header {
    position: relative;
    @include center(58em, $pad: 1em);
}
#logo {
    @include col(1/3);
}
nav {
    @include col(2/3);
    @include align(vertical);
}
</pre>
<p><a href="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2014/11/blogbeitrag_notAlignVertical.jpg"><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-4890" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2014/11/blogbeitrag_notAlignVertical-300x240.jpg" alt="Ausrichtung ohne align(vertical)" width="300" height="240" /></a>    <a href="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2014/11/blogbeitrag_alignVertical.jpg"><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-4891" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2014/11/blogbeitrag_alignVertical-300x240.jpg" alt="Ausrichtung mit align(vertical)" width="300" height="240" /></a></p>
<p>Last but not least, bietet Jeet.gs eine Art Debug-Modus. Wenn man @include edit() in das SASS/SCSS einbindet, vergibt Jeet.gs jedem einzelnen Element verschiedene Grauabstufungen um Abstände und Größenverhältnisse optisch darzustellen.</p>
<h3>Erstellung eines individuellen Gridsystems</h3>
<p>Jeet.gs hilft ein sauberes semantisches Mark-up zu erstellen. Jede Funktion oder Regel die mit dem Grid zu tun hat wird in Mixins umgesetzt und direkt mit dem jeweiligen Element verankert. Es kann aber auch ein eigenes, individuelles Grid basierend auf Jeet.gs erstellt werden. Anstatt aber alle Spaltenbreiten separat in einer Klasse zu deklarieren, sollte man sich nur auf häufig wiederkehrende Spaltengrößen spezialisieren und die Ausnahmen durch Mixins von Jeet.gs umsetzen. Der Name der Klassen ist einem selbst überlassen.</p>
<pre class="brush: css; title: ; notranslate">
/* Beispiel für Grid-Klassen um ein mobile-first System mit zwei Breakpoints zu erstellen */
.col-small-full {
    width: 100%;
}
...
@media (min-width: 35em) {
    .col-medium-half {
    @include col(1/2);
    }
...
}
@media (min-width: 58em) {
    .col-large-third {
    @include col(1/3);
    }
...
}
</pre>
<pre class="brush: xml; title: ; notranslate">
&lt;div class=“col-small-full col-medium-half col-large-third“&gt; ... &lt;/div&gt;
</pre>
<p>Häufig auftretende Verhaltensmuster können in einer Klasse zusammengefasst werden. Daher können volle Breite im Smartphone, halbe Breite für Tablets und drei Spalten für größere Bildschirme hier bei diesem Beispiel zusammengefasst werden.</p>
<pre class="brush: css; title: ; notranslate">
.col-1-2-3 {
    width: 100%;
    @media (min-width: 35em) {
        @include col(1/2);
    }
    @media (min-width: 58em) {
        @include col(1/3);
    }
}
</pre>
<pre class="brush: xml; title: ; notranslate">
&lt;div class=“col-1-2-3“&gt; ... &lt;/div&gt;
</pre>
<p>So kann mit Hilfe von Jeet.gs ein flexibles und sauberes Gridsystem erstellt werden.</p>
<h3>Browserunterstützung</h3>
<p>Jeet.gs kann mit allen modernen Browsern genutzt werden. Sogar der Internet Explorer 9 unterstützt es. Um es mit Internet Explorer 8 verwenden zu können wird ein Polyfill benötigt wie <a href="http://selectivizr.com" target="_blank">selectivizr.com</a>, da der IE8 zum Beispiel den CSS3-Selektor &#8220;nth-Child&#8221; nicht unterstützt, den Jeet.gs aber benutzt.</p>
<p>Die Dokumentation ist noch sehr dürftig. Auf der Website <a href="http://www.jeets.js" target="_blank">www.jeets.js</a> wird die API nur anhand der eigenen Seite erklärt. Auch andere Hilfestellungen und Tutorials sind sehr wenig vorhanden. Allerdings ist es sehr leicht zu verstehen. Im Gegensatz zu Foundation oder Bootstrap ist Jeet.gs ein reines Grid und bietet keinerlei Komponenten für Button-Design oder Javascript-Module. Das heißt, wenn rein nur ein Grid benötigt wird, ist Jeet.js genau das richtige.</p>
<h3>Quellen</h3>
<p>Henkhaus, M. (2014, September). Schöne neue Grid-Welt. Screenguide, (23), 58–62.</p>
<p><a href="http://jeet.gs/">http://jeet.gs/</a></p>
<p>The post <a href="https://mobile.fhstp.ac.at/development/neue-flexible-gridsysteme-mit-jeet-gs/">Flexible Gridsysteme mit jeet.gs</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Initialprojekt: Happy Stomach</title>
		<link>https://mobile.fhstp.ac.at/studium/initialprojekt-happy-stomach/</link>
		
		<dc:creator><![CDATA[Theres-Sophie Scheucher]]></dc:creator>
		<pubDate>Tue, 21 Oct 2014 18:47:25 +0000</pubDate>
				<category><![CDATA[Projekte]]></category>
		<category><![CDATA[Studium]]></category>
		<category><![CDATA[Print-to-mobile]]></category>
		<category><![CDATA[QR-Code]]></category>
		<guid isPermaLink="false">https://akirchknopf-21110.php.fhstp.cc/?p=4667</guid>

					<description><![CDATA[<p>Idee Als Initialprojekt für den Masterstudiengang Mobiles Internet, sollten wir eine mobile Webapplikation umsetzen. Ziel dieser Applikation war es möglichst viele Leute zu motivieren ohne Eintippen einer URL diese aufzurufen. Da ich sehr gerne koche und mich durch meine Fruktoseintoleranz schon sehr viel mit Nahrungsmittelunverträglichkeiten auseinandergesetzt habe, wollte ich eine responsive Website erstellen, die viele <a class="read-more" href="https://mobile.fhstp.ac.at/studium/initialprojekt-happy-stomach/">[...]</a></p>
<p>The post <a href="https://mobile.fhstp.ac.at/studium/initialprojekt-happy-stomach/">Initialprojekt: Happy Stomach</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Idee</h2>
<p>Als Initialprojekt für den Masterstudiengang Mobiles Internet, sollten wir eine mobile Webapplikation umsetzen. Ziel dieser Applikation war es möglichst viele Leute zu motivieren ohne Eintippen einer URL diese aufzurufen. Da ich sehr gerne koche und mich durch meine Fruktoseintoleranz schon sehr viel mit Nahrungsmittelunverträglichkeiten auseinandergesetzt habe, wollte ich eine responsive Website erstellen, die viele Rezepte für Menschen mit Nahrungsmittelunverträglichkeiten beinhaltet. Mit dem Menü kann ich die Rezepte nach Fruktose oder Laktose-Intoleranz filtern.<span id="more-4667"></span></p>
<h2>Umsetzung Design</h2>
<p>Zu Beginn erstellte ich ein Logo und überlegte mir einen Namen für meine Webapplikation in Adobe Illustrator. „Happy Stomach“ schien mir passend, da der Magen durch falsche Ernährung besonders in Bezug auf Intoleranzen oft mit Bauchschmerzen reagiert und gar nicht „happy“ ist. Danach überlegte ich mir, wie ich Bauchschmerzen mit Kochen in einem Logo verbinden konnte und ich kombinierte eine Wärmeflasche mit einem Kochlöffel. Dabei achtete ich besonders darauf, dass das Logo halbwegs einer rechteckigen Form entspricht und somit vielseitig und einfach einsetzbar ist. Außerdem mussten die Elemente (Text und Bild) und Farben miteinander harmonieren.</p>
<p>Als Printprodukt entschied ich mich für ein T-Shirt, dass ich bei shirtinator (www.shirtinator.at) drucken lies.</p>
<p>&nbsp;</p>
<p><a href="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2014/10/01-_MG_1089.png"><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-4678" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2014/10/01-_MG_1089-200x300.png" alt="01-_MG_1089" width="200" height="300" /></a> <a href="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2014/10/02-_MG_1086.png"><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-4679" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2014/10/02-_MG_1086-200x300.png" alt="02-_MG_1086" width="200" height="300" /></a></p>
<p>&nbsp;</p>
<p>Im Anschluss an das Logodesign und den T-Shirt-Druck kümmerte ich mich um das Webdesign in Adobe InDesign. Adobe Indesign ist zwar ein auf Druck spezialisiertes Programm, ich benutzte es aber trotzdem für die Umsetzung des Webdesigns, da man hier gut die verschiedenen Breiten der Endgeräte abbilden kann. Ich entschied mich für folgenden Breakpoints im Design: 320px (20em, Smartphone, 1. &amp; 2. Abbildung), 480px (30em, Smartphone Landscape, 3. Abbildung), 600px (37.5em, Tablet, 4. Abbildung), 1024px (64em, Tablet Landscape, 5. Abbildung), 1280px (80 em, Desktop, 6. Abbildung), 1600px (100em, Desktop Large, 7. Abbildung). Wie man sieht, habe ich nicht nur mobile Geräte berücksichtigt, falls sich jemand die Rezepte am PC anschauen möchte. Weiters wählte ich das 960 Grid System (<a href="http://960.gs/">http://960.gs/</a>) mit 12 Spalten als hinter dem Design liegendes Grid. Um ein Farbschema für meine Website zu finden lies ich mich von den Colorpatterns auf <a href="http://colorlovers.com">colorlovers.com</a> inspirieren und als Schrift verwendete ich „Lane Narrow“ von <a href="http://fontsquirrel.com">fontsquirrel.com</a>.</p>
<p>&nbsp;</p>
<h2><a href="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2014/10/happystomach.png"><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-4692" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2014/10/happystomach-200x300.png" alt="happystomach" width="200" height="300" /></a><a href="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2014/10/happystomach2.png"><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-4693" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2014/10/happystomach2-200x300.png" alt="happystomach2" width="200" height="300" /></a></h2>
<h2><a href="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2014/10/happystomach3.png"><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-4694" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2014/10/happystomach3-300x200.png" alt="happystomach3" width="300" height="200" /></a></h2>
<p><a href="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2014/10/happystomach4.png"><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-4695" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2014/10/happystomach4-175x300.png" alt="happystomach4" width="175" height="300" /></a><a href="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2014/10/happystomach5.png"><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-4696" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2014/10/happystomach5-300x175.png" alt="happystomach5" width="300" height="175" /></a></p>
<p><a href="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2014/10/happystomach6.png"><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-4697" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2014/10/happystomach6-300x180.png" alt="happystomach6" width="300" height="180" /></a><a href="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2014/10/happystomach7.png"><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-4698" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2014/10/happystomach7-300x225.png" alt="happystomach7" width="300" height="225" /></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<h2>Verwendete Technologien</h2>
<p>Ich verwendete jQuery um die jeweiligen Inhalte anzuzeigen oder zu verstecken. Außerdem benötigte ich dadurch keine Datenbank und die Seite musste nie neu geladen werden.</p>
<h2>Fazit</h2>
<p>Bei der Umsetzung des Projektes ist mir aufgefallen, dass ich kein Fan von der Verwendung eines vorgefertigten Grids bin. Ich bin der Meinung man sollte entweder das Grid selbst zusammenbauen oder einfach mit der Angabe von %-Werten und Media-Queries arbeiten.</p>
<p>Durch den ersten Testdurchlauf der Webapplikation in der Übung Mobile Anwendungen erkannte ich, dass der QR-Code, den ich auf das T-Shirt gedruckt habe, viel zu groß war, da er durch die leichte Krümmung meines Rückens nicht mehr lesbar für den QR-Scanner war. Außerdem sollte man bei der Verwendung eines QR-Codes unbedingt auf eine verkürzte URL verlinken.</p>
<p>Im Bezug auf Usability der Website, wurde die Sinnhaftigkeit die Navigation „Menü“ zu nennen in Frage gestellt. Viel mehr sollte das Element „Filter“ heißen, da bei der Auswahl einer der Navigations-Punkte, die angezeigten Elemente gefiltert werden. Außerdem konnte man die Auswirkungen des Filters auf den ersten Blick gar nicht wahrnehmen, da die Toggle-Navigation sehr viel Platz des Bildschirms einnahm und die Veränderung der Anzeige erst durch scrollen klar wurde.</p>
<p>Die Webapplikation weist noch einige kleine Fehler auf, aber den Sinn einer Webapplikation, die Rezepte zum Thema Nahrungsmittelunverträglichkeiten anzeigt und Ideen zum Kochen liefert erfüllt sie vollkommen und ist in der Hinsicht sehr nützlich.</p>
<p>Das Projekt ist unter folgender URL erreichbar: <a href="http://dm141559.students.fhstp.ac.at/mobanw/happystomach/" target="_blank">Happy Stomach-Webapplikation</a></p>
<p>The post <a href="https://mobile.fhstp.ac.at/studium/initialprojekt-happy-stomach/">Initialprojekt: Happy Stomach</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
