<?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 Patrick Eberhardt - Mobile USTP MKL</title>
	<atom:link href="https://mobile.fhstp.ac.at/author/dm151506/feed/" rel="self" type="application/rss+xml" />
	<link>https://mobile.fhstp.ac.at/author/dm151506/</link>
	<description>Die &#34;Mobile Forschungsgruppe&#34; der USTP, sie  sammelt hier alles zu den Themen Design, UX und Entwicklung mobiler Applikationen</description>
	<lastBuildDate>Tue, 28 Feb 2017 15:42:50 +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 Patrick Eberhardt - Mobile USTP MKL</title>
	<link>https://mobile.fhstp.ac.at/author/dm151506/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Error Handling in Swift 3</title>
		<link>https://mobile.fhstp.ac.at/development/error-handling-in-swift-3/</link>
		
		<dc:creator><![CDATA[Patrick Eberhardt]]></dc:creator>
		<pubDate>Tue, 28 Feb 2017 15:42:50 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Native Development]]></category>
		<guid isPermaLink="false">https://akirchknopf-21110.php.fhstp.cc/?p=6779</guid>

					<description><![CDATA[<p>Swift ist wohl eine der größten Programmiersprachen, welche in letzter Zeit erschienen sind und erfreut sich steigender Beliebtheit. 2015 hat Apple den Sourcecode zu Swift auf Github hochgeladen und somit Open Source gemacht. Seitdem wird die Programmiersprache auch bereits serverseitig verwendet. Apple legt mit seiner Programmiersprache einen großen Fokus auf ein gutes Error Handling, um <a class="read-more" href="https://mobile.fhstp.ac.at/development/error-handling-in-swift-3/">[...]</a></p>
<p>The post <a href="https://mobile.fhstp.ac.at/development/error-handling-in-swift-3/">Error Handling in Swift 3</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Swift ist wohl eine der größten Programmiersprachen, welche in letzter Zeit erschienen sind und erfreut sich steigender Beliebtheit. 2015 hat Apple den Sourcecode zu Swift auf Github hochgeladen und somit Open Source gemacht. Seitdem wird die Programmiersprache auch bereits serverseitig verwendet. Apple legt mit seiner Programmiersprache einen großen Fokus auf ein gutes Error Handling, um Applikationsabstürze so weit es geht zu verhindern. Mit Optionals und den zugrundeliegenden &#8220;if let&#8221;,- und &#8220;guard&#8221;- Statements gibt es schon eine Möglichkeit um nicht vorhandene Daten (leere Variablen) abzufangen. Heute möchte ich aber auf das Error Handling von Funktionen eingehen. Am besten kann man das natürlich an einem kleinen Beispiel zeigen und das werden wir uns Schritt für Schritt anschauen.</p>
<p>Für diesen speziellen Fall hat Swift ein leeres Protocol &#8220;Error&#8221;, welches dem Programm einen Fehler repräsentiert. Diese können am besten mit einer Enumeration (Enum) umgesetzt werden. Unsere kleine Applikation soll eine SmS oder Email an einen Kontakt schicken können. Die Logik werden wir aber nicht implementieren. Für unseren Fall schaut die Error Enumeration wie folgt aus:</p>
<pre>enum ContactError: Error { 
   case NumberNotAvailable
   case EmailNotAvailable
}
</pre>
<p>Man könnte hier wie bei einer zusätzlichen Variable anschließen und dieser dann zum Beispiel einen String beim aufrufen übergeben.</p>
<pre>enum ContactError: Error {
   case NumberNotAvailable(description: String)
}
</pre>
<p>Um eine Funktion jetzt abfangen zu können, müssen wir einer Funktion sagen, dass sie fehlschlagen kann. Dies passiert mittels dem Keyword &#8220;throws&#8221; und wird nach den Parametern aber vor dem Rückgabewert geschrieben.</p>
<pre>func someFunction(someParameter: someType) throws -&gt; someReturnType {}
</pre>
<p>In dieser Funktion haben wir nun die Möglichkeit, einen Fehler auszulösen und dann einem case aus unserer ContactError Enumeration zuzuweisen.</p>
<pre>throw ContactError.NumberNotAvailable

// Wenn eine zusätzliche Variable vorhanden ist (wie oben definiert) dann wie folgt:
throw ContactError.NumberNotAvailable(description: "Leider ist keine Nummer angeben")
</pre>
<p>Schauen wir uns das Beispiel bis jetzt im Ganzen an:</p>
<pre>struct Contact {
    let name: String
    let tel: Int?
    let email: String?
    func send(message: String, to contact: Contact) throws -&gt; Message {
        guard let telNumber = contact.tel else {
            throw ContactError.NumberNotAvailable
        }
        return Message(message: message, tel: telNumber, email: nil)
    }
    func send(email: String, to contact: Contact) throws -&gt; Message {
        guard let email = contact.email else {
            throw ContactError.EmailNotAvailable
        }
        return Message(message: email, tel: nil, email: email)
    }
}
</pre>
<p>Um eine Funktion, welche mit &#8220;throws&#8221; gekennzeichnet ist, ausführen zu können, brauchen wir auch wieder eine spezielle Syntax. Wir erstellen uns also zuerst zwei Instanzen dieser Struktur &#8220;contactA&#8221; und &#8220;contactB&#8221; und geben &#8220;contactB&#8221; nur eine E-Mail aber keine Telefonnummer. Jetzt benötigen wir einen &#8220;do-catch-block&#8221;. Im do-Block wird mittels dem Keyword &#8220;try&#8221; die Funktion aufgerufen. Wird die Funktion nicht mittels try ausgeführt dann bekommen wir einen Error in Xcode. Wenn ein Fehler gefunden wird, wird der do-block sofort abgebrochen und nach dem ansprechenden Fehler, welcher in der Funktion im Contact Struct geworfen wurde, gesucht. Es ist also möglich einen einzelnen catch-Block zu machen oder wirklich nach den verschiedenen Fehlern aus unserer ContactError-Enumeration zu suchen.</p>
<pre>do {
    let newMessage = try contactA.send(message: "hello via textmessage", to: contactB)
} catch ContactError.NumberNotAvailable {
    print("Your contact has no number provided")
} catch ContactError.EmailNotAvailable {
    print("Your contact has no email provided")
}
</pre>
<p>In diesem Fall wird unser NumberNotAvailable Error geworfen, weil &#8220;contactB&#8221; keine Telefonnummer angegeben hat. Würden wir die Funktion</p>
<pre>func send(email: String, to contact: Contact)</pre>
<p>ausführen, würde diese ohne Probleme funktionieren, da bei &#8220;contactB&#8221; eine E-Mail angegeben ist. Im catch-Block ist es dann Möglich den Error entsprechend zu behandelt und zum Beispiel eine Error-Meldung anzuzeigen. Wenn kein Fehler erkannt wird, bleiben wir im do-Block und führen weitere Schritte für den Ablauf des Programmes aus.</p>
<p>The post <a href="https://mobile.fhstp.ac.at/development/error-handling-in-swift-3/">Error Handling in Swift 3</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>AlfredApp &#8211; Das bessere Spotlight?</title>
		<link>https://mobile.fhstp.ac.at/allgemein/alfredapp-das-bessere-spotlight/</link>
		
		<dc:creator><![CDATA[Patrick Eberhardt]]></dc:creator>
		<pubDate>Sat, 10 Dec 2016 20:21:53 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Software]]></category>
		<guid isPermaLink="false">https://akirchknopf-21110.php.fhstp.cc/?p=6738</guid>

					<description><![CDATA[<p>Einer der beliebtesten Tastenkürzel auf dem Mac ist ⌘+Space. Das Spotlight ist eine sehr beliebte Variante um Programme zu öffnen, Files zu suchen und vieles mehr. Doch Spotlight kann nicht alles, wobei das Potential sehr groß ist. Das Fehlen diverser Funktionen hat den Entwicklern von AlfredApp den Anlass gegeben, sich diesem Problem anzunehmen. Bereits in der <a class="read-more" href="https://mobile.fhstp.ac.at/allgemein/alfredapp-das-bessere-spotlight/">[...]</a></p>
<p>The post <a href="https://mobile.fhstp.ac.at/allgemein/alfredapp-das-bessere-spotlight/">AlfredApp &#8211; Das bessere Spotlight?</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Einer der beliebtesten Tastenkürzel auf dem Mac ist ⌘+Space. Das Spotlight ist eine sehr beliebte Variante um Programme zu öffnen, Files zu suchen und vieles mehr. Doch Spotlight kann nicht alles, wobei das Potential sehr groß ist. Das Fehlen diverser Funktionen hat den Entwicklern von AlfredApp den Anlass gegeben, sich diesem Problem anzunehmen. Bereits in der dritten Version gibt es das Mac-Programm und es wird nicht ohne Grund als „das bessere Spotlight“ kommuniziert.</p>
<p><a href="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2016/12/Bildschirmfoto-2016-12-07-um-10.29.25.png"><img fetchpriority="high" decoding="async" class="alignnone wp-image-6739 size-full" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2016/12/Bildschirmfoto-2016-12-07-um-10.29.25.png" alt="bildschirmfoto-2016-12-07-um-10-29-25" width="1748" height="1418" /></a></p>
<p>AlfredApp gibt es in einer kostenlosen Variante, welche bereits einige nette Features enthält, aber auch in einer kostenpflichtigen Variante als „Powerpack“ Erweiterung. Dieses schlägt mit 19£ als Einzellizenz, 29£ als Familienlizenz oder als 35£ Mega Supporter mit kostenlosen Lifetime Updates zu buche.</p>
<p>Schauen wir uns einmal die kostenlose Variante an. Unter den „General“-Settings können wir zunächst unser Shortcut einstellen. Ich habe die Spotlight suche auf Option (Alt) + Space geändert und Alfred auf ⌘+Space eingestellt, um meinen alten Workflow beizubehalten. Weiters sollte man die Location auf das jeweilige Land setzen damit zum Beispiel in unserem Fall <a href="http://www.google.at">www.google.at</a> aufgerufen wird und nicht <a href="http://www.google.com">www.google.com</a>. Das wars auch wieder für den „General“-Tab.</p>
<p>Unter den Features wird es nun spannender. In den Default Results haben wir die Möglichkeit einzustellen, welche Daten Alfred überhaupt suchen darf. Zusätzlich können wir auch den Search Scope eingrenzen. Dies funktioniert in Spotlight zwar auch, aber nicht so genau.</p>
<p><a href="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2016/12/Bildschirmfoto-2016-12-07-um-10.39.01.png"><img decoding="async" class="alignnone wp-image-6741 size-full" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2016/12/Bildschirmfoto-2016-12-07-um-10.39.01.png" alt="AlfredApp - Default Results" width="1702" height="1282" /></a></p>
<p>Unter File Search haben wir die Möglichkeit unsere Suchen zu definieren. Mit Stichworten, und dem nachfolgendem Suchbegriff, wie open, find, in, tags können wir Files öffnen, nach Files mit gewissem Textinhalt suchen, Files im Finder darstellen sowie nach Files mit gewissen Tags suchen. Die Suche kann auch hier wieder auf bestimmte File-Arten begrenzt werden. Ein weiteres sehr angenehmes Feature ist, dass man direkt aus der Suche mittels der Taste Shift ein Preview öffnen kann, um somit das File näher zu betrachten bevor man es öffnet. Eine eher für Programmierer interessante Variante ist die Möglichkeit, den Pfad des Files so zu kopieren, sodass er bereits für das Terminal „escaped“ ist.</p>
<p><a href="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2016/12/Bildschirmfoto-2016-12-07-um-13.25.47.png"><img decoding="async" class="alignnone wp-image-6754 size-full" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2016/12/Bildschirmfoto-2016-12-07-um-13.25.47.png" alt="AlfredApp - File Search" width="1698" height="1282" /></a></p>
<p>In dem Web-Search Tab gibt es bereits einige vordefinierte Möglichkeiten, wie man das Internet durchsuchen kann. Verschiedene Suchmaschinen sind voreingestellt. Natürlich können wir einige  Funktionen deaktivieren, aber auch eigene hinzufügen. So kann man mit den vordefinierten Befehlen wie „google &gt;Searchterm&lt;“ nach Begriffen  oder mit „images &gt;Imagename&lt; nach Bildern in Google suchen. Mittels „amazon &gt;Searchterm&lt;„ kann man nach Produkten in Amazon suchen. Das nette an dem Ganzen ist, <a href="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2016/12/Bildschirmfoto-2016-12-07-um-10.59.33.png"><img loading="lazy" decoding="async" class="alignright wp-image-6743" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2016/12/Bildschirmfoto-2016-12-07-um-10.59.33.png" alt="AlfredApp - Search" width="478" height="120" /></a>dass man sich eigene Befehle definieren kann. So haben wir zum Beispiel die Möglichkeit, einen Befehl für die Suche in Stackoverflow zu definieren. Bei Stackoverflow setzt sich der Suchbefehl wie folgt zusammen: „http://stackoverflow.com/search?q=Searchterm&#8221;. Wir erstellen somit ein custom Search und geben als URL „http://stackoverflow.com/search?q={query}“ an. Zusätzlich definieren wir ein Keyword, welches wir eintippen um die Suche zu starten.</p>
<p><a href="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2016/12/Bildschirmfoto-2016-12-07-um-11.38.07.png"><img loading="lazy" decoding="async" class="alignnone wp-image-6746 size-full" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2016/12/Bildschirmfoto-2016-12-07-um-11.38.07.png" alt="AlfredApp - Custom Search Configuration" width="1150" height="708" /></a></p>
<p>Auch das Rechnen ist in Alfred möglich. Der einzige Unterschied zu Spotlight ist, dass man nach einer Rechnung über die Enter-Taste das Ergebnis kopiert. In Spotlight öffnet die Enter-Taste den Taschenrechner. Man müsste das Ergebnis in Spotlight mittels ⌘+c kopieren. Rechnungen wie sin, cos, etc. müssen in Alfred mittels = vorgestellt werden.</p>
<p>Mittels define oder spell hat man die Möglichkeit nach Definitionen für ein Wort oder die Schreibweise für ein Wort während des Tippens zu erhalten</p>
<p>Im letzten Feature der Gratisversion kann man bequem über die Alfred Suche Systemcommands durchführen. Die Befehle lock, restart, shutdown, sleepl, etc. sprechen für sich selbst und ersparen einzige Mausklicks. Auch den Papierkorb kann man mittels Trash öffnen.</p>
<p>Im Tab Appearance gibt es einige vorgefertigte Themes für die Alfredsuche, aus welchen man wählen kann. Auf den Tab Advanced gibt es noch weitere Einstellungen, welche ich selber nicht verändert habe, somit gehe ich nicht weiter auf diese ein.</p>
<p>Da ich das AlfredApp Powerpack noch nicht vollständig getestet habe, gebe ich nur einen kürzen Überblick über die verfügbaren Features.</p>
<p>Zum einen kann man direkt Terminalbefehle über AlfredApp ausführen. Dafür verwendet man nur das größer Symbol &#8220;&gt;&#8221; und anschließend den Terminalbefehl wie z.B. &#8220;&gt;mkdir Fotos&#8221;.</p>
<p>1Password Nutzer können können über AlfredApp die zu öffnende URL mit vorstehendem &#8220;1p&#8221; eintippen . Man muss sich dann natürlich in 1Password authentifizieren, aber es wird sofort die URL geöffnet <a href="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2016/12/Bildschirmfoto-2016-12-07-um-13.31.07.png"><img loading="lazy" decoding="async" class="alignleft wp-image-6756" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2016/12/Bildschirmfoto-2016-12-07-um-13.31.07.png" alt="AlfredApp - File Navigation (https://www.alfredapp.com/help/features/file-search/file-navigation.png)" width="354" height="232" /></a>und der User eingeloggt. Hierfür muss die entsprechende URL in 1Password hinterlegt sein. Damit das<br />
<a href="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2016/12/Bildschirmfoto-2016-12-07-um-13.34.55.png"><img loading="lazy" decoding="async" class="alignright wp-image-6757" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2016/12/Bildschirmfoto-2016-12-07-um-13.34.55.png" alt="Alfred App - File Actions (https://www.alfredapp.com/help/features/file-search/file-actions.png)" width="383" height="268" /></a>ganze funktioniert muss man in den 1Password Einstellungen die 3rd-Party-Integration aktivieren.<br />
Im Punkt File Search gibt es noch weitere Unterpunkte wie File Navigation, File Buffer und Actions. AlfredApp ermöglicht das Navigieren durch die Ordnerstruktur ohne Maus. Man gibt also einen Pfad ein und erhält dann alle Unterordner in diesem. Die Auswahl kann man mittels der Pfeiltasten oder dem Shortcut (⌘+Zahl) Treffen.</p>
<p>&nbsp;</p>
<p>Im sogenannten Filebuffer von AlfredApp kann man mehrere Files über die Suchfunktion auswählen und danach verschiedene Befehle auf die komplette Auswahl ausführen. Diese File Actions umfassen unter anderem open with, email to, copy to, move to, etc.</p>
<p>Auch Kontakte kann man bequem über AlfredApp suchen und gleich die relevanten Daten kopieren. Zudem kann man wieder eigene Actions definieren wobei mit &#8220;Call &gt;Name&lt;&#8221; diese Person direkt über Facetime angerufen werden kann.</p>
<p>Ein weiteres nettes Feature ist die Clipboard History. Hier kann man die zuletzt kopierten Elemente (sowohl Text als auch Bild &#8211; konfigurierbar) einsehen. Diese kann man mittels &#8220;⌘+Zahl&#8221;, wie bei den File Actions, auswählen. Es ist also angenehm, zwischen den letzt kopierten Elementen hin und her zu springen. Zudem hat man hat die Möglichkeit, Applikationen, wie zum Beispiel 1Password, auszuschließen.</p>
<p>Textshortcuts sind am Mac bereits bekannt. So kann man über die Tastatureinstellungen Abkürzungen definieren, welche dann z.B in einen Satz umgewandelt werden. Dies funktioniert mit AlfredApp auch, jedoch ist das Ganze ein wenig schöner gestaltet und man hat die Möglichkeit dynamischen Snippets zu verwenden. So kann man zum Beispiel ein Snippet für Datum erstellen, welcher dann das aktuelle Datum ausfüllt. Wenn man nicht mehr alle Snippets in Erinnerung hat, kann man diese im Snippets Viewer darstellen und wieder mittels &#8220;⌘+Zahl&#8221; auswählen.</p>
<p>Eine der größten Stärken von AlfredApp sind custom Workflows. Hier kann man über einen definierten Befehl mehrere Aktionen gleichzeitig ausführen. So kann man zum Beispiel 2 Applikationen gleichzeitig öffnen oder weit kompliziertere Aktionen ausführen. Allein für diese Funktion könnte man einen eigenen Blogpost verfassen.</p>
<p>Das letzte Feature beinhaltet die Steuerung von iTunes. So kann man ohne in iTunes zu wechseln, die wichtigsten Interaktionen durchführen, welche mehr können als play, pause und weiter. Doch auch diese 3 Befehle sind vorhanden.</p>
<p>Zusammenfassend lässt sich sagen, dass AlfredApp ein sehr gutes und Preiswertes Programm ist, welches den Workflow sehr erleichtert.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>The post <a href="https://mobile.fhstp.ac.at/allgemein/alfredapp-das-bessere-spotlight/">AlfredApp &#8211; Das bessere Spotlight?</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Backends und Contentverwaltung für Applikationen</title>
		<link>https://mobile.fhstp.ac.at/development/native-development/backends-und-contentverwaltung-fuer-applikationen/</link>
		
		<dc:creator><![CDATA[Patrick Eberhardt]]></dc:creator>
		<pubDate>Mon, 12 Sep 2016 11:56:00 +0000</pubDate>
				<category><![CDATA[Native Development]]></category>
		<guid isPermaLink="false">https://akirchknopf-21110.php.fhstp.cc/?p=6423</guid>

					<description><![CDATA[<p>Ohne Backend geht es heutzutage bei Webseiten sowie Applikationen eigentlich kaum mehr. Immer öfter muss man sich registrieren um bestimmte Teile von Webseiten oder Applikationen benutzen zu können. Auch möchte man über eine angenehme Art und Weise den Inhalt dieser bearbeiten und nicht bei jeder Änderung neue Versionen auf den Server spielen oder Updates releasen. <a class="read-more" href="https://mobile.fhstp.ac.at/development/native-development/backends-und-contentverwaltung-fuer-applikationen/">[...]</a></p>
<p>The post <a href="https://mobile.fhstp.ac.at/development/native-development/backends-und-contentverwaltung-fuer-applikationen/">Backends und Contentverwaltung für Applikationen</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Ohne Backend geht es heutzutage bei Webseiten sowie Applikationen eigentlich kaum mehr. Immer öfter muss man sich registrieren um bestimmte Teile von Webseiten oder Applikationen benutzen zu können. Auch möchte man über eine angenehme Art und Weise den Inhalt dieser bearbeiten und nicht bei jeder Änderung neue Versionen auf den Server spielen oder Updates releasen.</p>
<p>Bei der Entwicklung eines Projektes für die Plattform IOS suchte ich eine Möglichkeit, angenehm Content als auch User verwalten zu können.Natürlich wäre es möglich, ein eigenes System zu entwickeln. Dies wäre jedoch wahrscheinlich genauso zeitraubend wie die eigentliche Entwicklung der Applikation.</p>
<p>Mein erster Gedanke war es, WordPress auf einem Server aufzusetzen und somit meinen Content zu verwalten. Dies wäre in Verbindung mit einem JSON Plugin, welches die WordPress-Inhalte über JSON abrufbar macht, durchaus denkbar, erschien mir aber als eine etwas unelegante Lösung, da ich hierfür extra einen Server benötige, auf dem eine leere WordPress Seite laufen würde. Wenn man jedoch zusätzlich seinen Content über eine Webseite ausgeben möchte, ist dies eine Variante welche man in Betracht ziehen kann.</p>
<p>Bei der weiteren Suche stieß ich auf den Service Parse (https://www.parse.com). Parse ist ein Dienst, für welchen es ein Framework für verschiedene Programmiersprachen gibt. Es ermöglicht das Verwalten von Usern, Content, Notifications, etc. Leider stellte sich heraus, dass der von Facebook entwickelte Dienst eingestellt wird und nur mehr auf einem eigenen Server betrieben werden kann, aber nicht mehr weiterentwickelt wird.</p>
<p>Als Alternative fand ich Firebase, Googles Pendant zu Facebooks Firebase (<a href="https://firebase.google.com/">https://firebase.google.com/</a>). Die kostenlose Variante erlaubt bis zu 100 Zugriffe gleichzeitig, 1GB Speicher und 10GB Downloads für die Datenbank pro Monat. Zusätzlich 5GB Datenspeicher für Bilder oder ähnliches. Genauer kann man sich die Preise unter <a href="https://firebase.google.com/pricing/">https://firebase.google.com/pricing/</a> ansehen. Auch die kostenpflichtige Variante ist leistbar und hat für den Anfang sicher genug Inhalt.</p>
<p>Eine gute Dokumentation für verschiedene Programmiersprachen macht es einfach, Firebase zu verwenden. Ein großer Punkt hierbei ist, dass sich schon jemand um die Sicherheit der Daten Gedanken macht.</p>
<p>Das einzige was mich hier gestört hat war, dass es keine intuitive Möglichkeit gibt, Content zu verwalten, wie man es eben aus einem CMS wie WordPress, etc. gewohnt ist. Der Grund ist, dass es eben kein CMS sondern ein sogenanntes MBAAS (Mobile Backend as a Service) ist.</p>
<blockquote><p>Mobile backend as a service (MBaaS), also known as &#8220;backend as a service&#8221; (BaaS), is a model for providing web app and mobile app developers with a way to link their applications to backend cloud storage and APIs exposed by back end applications while also providing features such as user management, push notifications, and integration with social networking services. &#8211; https://en.wikipedia.org/wiki/Mobile_backend_as_a_service</p></blockquote>
<p>Es wäre zwar auch möglich, den Teil der Contentverwaltung, in Verbindung mit Firebase, selber zu programmieren. Dies wäre aber, wie bereits gesagt, ein größerer Aufwand, wenn man eigentlich eine Applikation entwickeln will.</p>
<p>Auf der weiteren Suche habe ich noch einen dritten Service names Kinney (<a href="https://www.kinvey.com">https://www.kinvey.com</a>) gefunden. Wer seine Daten, und die seiner Kunden, nicht an Google geben möchte, kann sich diesen Dienst ansehen. Im Großen und Ganzen ist dieser Dienst gleich dem von Google. Verwaltung von Usern, inkl Userlogin über Facebook, Twitter, etc. (auch bei Firebase möglich), Push-Notifications, etc. Aber auch hier ist es wieder nur eine Datenbank und hat keine intuitive Variante der Contenverwaltung. Für uns ist dies wahrscheinlich kein Problem, ein paar Felder in eine Datenbank einzutragen. Man muss sich aber im Klaren sein, dass oft weniger technik-fffine Personen das Betreuen von Inhalten übernehmen. Aus diesem Grund habe ich die Suche nicht aufgegeben und fand Contentful (<a href="https://www.contentful.com">https://www.contentful.com</a>).</p>
<p>Contentful ist genau das, was ich noch gesucht habe. Man kann sich im Backend eigene Felder zusammenstellen wie zb. Text, Image, etc. Danach braucht man nur mehr auf „New“ drücken, füllt die Felder aus und erstellt einen Eintrag. Contentful ist eine RESTful JSON API. Der Zugriff auf die Daten ist somit einfach und schnell. Es gibt wie immer eine kostenlose und kostenpflichtige Variante (<a href="https://www.contentful.com/pricing/">https://www.contentful.com/pricing/</a>).</p>
<p>Das nette ist, dass alle vorgestellten Dienste eine kostenlose Variante zum Testen anbieten, welche auch bei den meisten für den Anfang reicht. Auch die kostenpflichtigen Varianten sind leistbar. Wenn man genug User hat, sollten diese dann sowieso kein Problem sein.</p>
<p>In einem weiteren Artikel werde ich genauer auf die Dienste eingehen und ein paar Beispiele zeigen. Ansonsten viel Spaß beim Ausprobieren.</p>
<p>The post <a href="https://mobile.fhstp.ac.at/development/native-development/backends-und-contentverwaltung-fuer-applikationen/">Backends und Contentverwaltung für Applikationen</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Blog Re-Design</title>
		<link>https://mobile.fhstp.ac.at/ux/design/blog-re-design/</link>
					<comments>https://mobile.fhstp.ac.at/ux/design/blog-re-design/#comments</comments>
		
		<dc:creator><![CDATA[Patrick Eberhardt]]></dc:creator>
		<pubDate>Mon, 25 Apr 2016 11:33:25 +0000</pubDate>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Projekte]]></category>
		<category><![CDATA[Webdevelopment]]></category>
		<guid isPermaLink="false">https://akirchknopf-21110.php.fhstp.cc/?p=6220</guid>

					<description><![CDATA[<p>Wie vielleicht unschwer zu erkennen ist, hat der Blog der mobilen Forschungsgruppe ein neues Aussehen erhalten. Neben dem Re-Design haben wir es uns zur Aufgabe gemacht, den Blog mobil zu optimieren, um ihn (im Vergleich zur Vorgängerversion) auf jedem beliebigen Gerät einwandfrei nutzen zu können. Wie wir das ganze angestellt haben, werden wir in diesem <a class="read-more" href="https://mobile.fhstp.ac.at/ux/design/blog-re-design/">[...]</a></p>
<p>The post <a href="https://mobile.fhstp.ac.at/ux/design/blog-re-design/">Blog Re-Design</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Wie vielleicht unschwer zu erkennen ist, hat der Blog der mobilen Forschungsgruppe ein neues Aussehen erhalten. Neben dem Re-Design haben wir es uns zur Aufgabe gemacht, den Blog mobil zu optimieren, um ihn (im Vergleich zur Vorgängerversion) auf jedem beliebigen Gerät einwandfrei nutzen zu können. Wie wir das ganze angestellt haben, werden wir in diesem Beitrag kurz erklären.</p>
<p><span id="more-6220"></span></p>
<h3>Design</h3>
<p>Unter dem Motto „Weiß ist das neue Schwarz“ wurde dem Blog ein sehr minimalistisches und übersichtliches Aussehen verliehen. Die eher „drückenden“ dunklen Farben wurden durch Farben aus der flat-color Palette ersetzt. Die dominierende „Farbe“ ist weiß, durch blau wurden farbliche Akzente gesetzt. Während das Design für den/die ein oder andere/n vielleicht „zu“ weiß sein mag, finden andere wiederum einen Gefallen daran. Geschmäcker sind bekanntlich verschieden, und so darf sich jeder seine eigene Meinung dazu bilden <img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /><br />
Die Sidebar wurde beibehalten und enthält einige kleine Veränderungen. Neu sind hier Social Media Buttons, Testimonials und eine kurze Information über die mobile Forschungsgruppe (früher im Footer aufzufinden). Eine größere Veränderung hat die Darstellung der jeweiligen Blogbeiträge erfahren. In der Vorgängerversion wurden diese untereinander dargestellt, und haben recht viel Platz auf der Seite eingenommen. Von nun an werden diese durch die berüchtigten Card UI Patterns dargestellt, auf der Desktop und Tablet Version jeweils 2 Beiträge pro Zeile. Ob auf Pinterest, Facebook oder Twitter, Card UIs können heutzutage auf einer Vielzahl von Websites vorgefunden werden und erfreuen sich äußerster Beliebtheit. Durch deren Einsatz kann ein klares und übersichtliches Layout sichergestellt werden. Außerdem kann dieses Muster sehr gut auf mobile Geräte übersetzt werden, was unter anderem der Hauptzweck des Re-Designs war. In jeder Card liegt das Hauptaugenmerk nun, genauso wie in der Detailansicht jedes Beitrags, auf dem Beitragsbild und dem sich darunter befindlichen Titel.</p>
<p>&nbsp;</p>
<p><a href="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2016/04/Bildschirmfoto-2016-04-25-um-12.54.03-1.png"><img loading="lazy" decoding="async" class="alignleft wp-image-6223" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2016/04/Bildschirmfoto-2016-04-25-um-12.54.03-1.png" alt="Bildschirmfoto 2016-04-25 um 12.54.03" width="243" height="374" /></a>Auf Tags wurde im neuen Design verzichtet, die jeweilige(n) Kategorie(n) befinden sich nun auf der Unterseite des Containers. Ähnliche Beiträge zum Artikel befinden sich im Vergleich zur Vorgängerversion nun in der Sidebar.</p>
<p style="text-align: left;">Um euch das ewige Scrollen am Ende der Seite zurück zum Anfang zu ersparen, wurde im Footer ein Button eingebaut, welcher euch diese Arbeit abnimmt und sofort zum Beginn der Seite springt. Allgemein wurde verstärkt auf eine übersichtlichere Gliederung der Inhalte geachtet.</p>
<h2></h2>
<h3>Programmierung</h3>
<p>Die Website wurde mittels CMS WordPress umgesetzt und aufgrund des spezifischen Deisgns, unter Zuhilfenahme des Frontend Frameworks Bootstrap, von null auf, programmiert. Um die Verwaltung, von Abschlussarbeiten, Testimonials und den Geräten im Open Device Lab, zu vereinfachen wurden die Plugins Custom Post Types UI (CTP UI) und Advanced Custom Fields verwendet. Mittels CTP UI ist es möglich, im Backend einen eigenen Reiter wie Posts oder Pages zu erstellen. Advanced Custom Fields erweitern diese, oder auch bereits vorhandene Post Types, mit Feldern für Texteingabe oder einer Möglichkeit Bilder hinzuzufügen, etc.</p>
<p><a href="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2016/04/Bildschirmfoto-2016-04-25-um-12.19.05.png"><img loading="lazy" decoding="async" class="alignleft wp-image-6224" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2016/04/Bildschirmfoto-2016-04-25-um-12.19.05-770x400.png" alt="Bildschirmfoto 2016-04-25 um 12.19.05" width="406" height="211" /></a></p>
<p>Wichtig war uns auch die Performance der Seite, gerade weil sie viele Bilder enthält. Hierfür haben wir zum einen die Library Unveil.js (https://github.com/luis-almeida/unveil) verwenden, als auch das Plugin WP Fastest Cache.<br />
Unveil.js ist eine lazy load library, welche es ermöglicht, Bilder erst dann zu laden, wenn sie wirklich im Viewport sind. Zusätzlich gibt es die Möglichkeit ein Bild für normale Bildschirm Auflösung bereitzustellen als auch für hochauflösende Displays. Um dem Benutzer während der Ladezeit trotzdem ein Bild zeigen zu können, wird ein Placeholderbild gleich zu Beginn geladen und danach durch ein Bild mit der entsprechenden Auflösung ersetzt.</p>
<p>&nbsp;</p>
<p><a href="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2016/04/Bildschirmfoto-2016-04-25-um-12.27.11.png"><img loading="lazy" decoding="async" class="alignright wp-image-6225" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2016/04/Bildschirmfoto-2016-04-25-um-12.27.11-735x400.png" alt="Bildschirmfoto 2016-04-25 um 12.27.11" width="391" height="213" /></a>WP Fastest Cache hingegen hat mehrere Einstellmöglichkeiten. Zum einen schreibt das Plugin automatisch die entsprechenden Cachemöglichkeit in die htaccess Datei und zum anderen ermöglicht es das Javascript und CSS Dateien zusammenzufassen als auch alle Abstände zu entfernen (Combine, Minify). Weiters haben wir das Plugin EWWW Image Optimizer verwenden, welches alle Bilder die über das Backend hochgeladen werden, optimiert anstatt dies selber über z.b.: tinypng machen zu müssen.<br />
Abschließend wurden noch kleine Sicherheitsaspekte berücksichtigt. Zum einen wurden alle Anzeichen zu der aktuell installierten WordPress Version entfernt, als auch die Fehlermeldungen im Login-Bereich. Zusätzlich wurde das „Plugin Limit Login Attempts“ verwendet, um die Anzahl der Login Versuche minimieren zu können, als auch User oder IP-Adressen sperren zu können und Warnungen an den Administrator der Website zu schicken.</p>
<p>The post <a href="https://mobile.fhstp.ac.at/ux/design/blog-re-design/">Blog Re-Design</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mobile.fhstp.ac.at/ux/design/blog-re-design/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Responsive Images</title>
		<link>https://mobile.fhstp.ac.at/development/webdevelopment/responsive-images-2015/</link>
		
		<dc:creator><![CDATA[Patrick Eberhardt]]></dc:creator>
		<pubDate>Wed, 02 Dec 2015 11:30:20 +0000</pubDate>
				<category><![CDATA[Webdevelopment]]></category>
		<guid isPermaLink="false">https://akirchknopf-21110.php.fhstp.cc/?p=5828</guid>

					<description><![CDATA[<p>Heutzutage sehen wir uns Inhalte im Web auf verschiedenen Geräten in verschiedenen Größen, Auflösungen und Pixeldichten an. Responsive Webentwicklung ist mittlerweile sogar Pflicht, wenn man bei Google ganz weit oben stehen möchte. Viele Webseiten sind bereits responsive, aber oft wird hier essentielles vergessen, nämlich die Bilder. Mit dem &#60;img&#62;-Element binden wir normalerweise einzelne Bilder ein. <a class="read-more" href="https://mobile.fhstp.ac.at/development/webdevelopment/responsive-images-2015/">[...]</a></p>
<p>The post <a href="https://mobile.fhstp.ac.at/development/webdevelopment/responsive-images-2015/">Responsive Images</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Heutzutage sehen wir uns Inhalte im Web auf verschiedenen Geräten in verschiedenen Größen, Auflösungen und Pixeldichten an. Responsive Webentwicklung ist mittlerweile sogar Pflicht, wenn man bei Google ganz weit oben stehen möchte. Viele Webseiten sind bereits responsive, aber oft wird hier essentielles vergessen, nämlich die Bilder. Mit dem &lt;img&gt;-Element binden wir normalerweise einzelne Bilder ein. Für ein iPhone benötige ich aber zum Beispiel ein Bild mit doppelter Auflösung im Vergleich zu einem normalen Screen. Wenn ich jetzt aber ein Gerät mit einem normalen Screen habe und ein eigentlich nicht benötigtes hochauflösenden Bild einbinde, wirkt sich das auf die Downloadgeschwindigkeit und somit auch auf den Google Page Speed Index aus. Eine andere Möglichkeit wäre es, die verschiedenen Bilder über Backgroundimages einzubinden und diese mit mediaqueries je nach Displaygröße anzuzeigen.</p>
<p><span id="more-5828"></span></p>
<p>Dies ist wiederum aus SEO und Accessibility Gründen nicht vorteilhaft, da Bilder, welche den Inhalt bilden, auch wirklich als Inhalt, also mittels &lt;img&gt;-Element, eingebunden werden sollen um auch einen alt-tag definieren zu können. Für wirkliche Backgroundimages ist dies natürlich die perfekte Variante. Eine weitere Variante wäre die Einbindung mittels JavaScript. Dies ist in manchen Fällen auch notwendig, sollte aber so gut wie möglich vermieden werden da Javascript fehleranfälliger ist als HTML. Um die folgenden zukunftsorientierten Varianten für so gut wie alle Browser zu Verfügung stellen zu können, benötigen wir trotzdem die Hilfe von JavaScript in Form eines sogenannten Polifills. Wir verwenden hierfür <a href="http://scottjehl.github.io/picturefill/">Picturefill</a>, um alle Browser, welche die Spezifikation nicht von Haus aus können, zu unterstützen. Picturefill könnt ihr ganz einfach unter dem Link herunterladen und mittels &lt;script&gt;-Tag einbinden. Entweder ihr bindet es vor dem schließenden body tag ein oder im head tag. Im head tag ist es sinnvoll, das async attribut zu verwenden, welches dem Browser sagt, dass dieses File asynchron geladen werden soll, um den restlichen Seitenaufbau nicht zu stören. Wichtig bei dem async attribut ist, dass kein anderes File von diesem abhängig ist, da sonst Probleme auftreten. Hier findet ihr, welche Browser <a href="http://caniuse.com/#search=async">async</a> unterstützen.</p>
<p>&nbsp;</p>
<h2>Images mit srcset und sizes</h2>
<p>&nbsp;</p>
<p>Zunächst sehen wir uns die HTML5 Erweiterung des &lt;img&gt;-Elements an. Mit dem srcset-Attribut alleine können wir zwei Sachen bestimmen. Entweder wir übergeben den Parameter für die Pixeldichte wie im Codebeispiel 1 oder wir übergeben den Parameter für die Breite des Bilder wie im Codebeispiel 2.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;img srcset=“photo-@2x.jpg 2x, photo-@1x.jpg 1x“ src=“photo1-@1x.jpg“ alt=“Alternative Text“ /&gt;
</pre>
<p>Unser src-attribut gilt hier immer als Fallback wenn die Browser srcset nicht verstehen und unser polyfill nicht funktioniert. Im srcset übergeben wir die eigentlichen Bilder. Den Wert für normale Pixeldichte, also 1x, könnte man theoretisch weglassen, da dies der Defaultwert ist. Mit 2x sagen wir, dass dieses Bild die doppelte Pixeldichte besitzt. Der Browser entscheidet nun also von alleine, welches Bild ausgeliefert werden soll. Sinnvollerweise benennen wir unsere Bilder auch mit -@1x oder -@2x.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;img srcset=“photo-larger.jpg 1400w, photo-medium.jpg 700w, photo-small.jpg 400w“ src=“photo-medium.jpg“ alt=“Alternative Text“ /&gt;
</pre>
<p>Bei dieser Variante geben wir dem Browser eine größere Entscheidungsfreiheit. Nach dem Bild schreiben wir zusätzlich die wirkliche Breite des Bildes (zb. aus Photoshop) an. Der Browser entscheidet somit wieder für sich, wann er welches Bild nimmt. Natürlich hat man hier nicht die genaue Kontrolle und muss den Browserherstellern vertrauen, dass das optimale Bild verwendet wird. Beim Testen mit dem Google Chrome Browser müsst ihr jedoch beachten, dass ihr in den Dev Tools unter dem Reiter Network das Caching deaktiviert. Google Chrome nimmt als einziger Browser immer das Größte gecachte Bild. Beim Entwickeln ist das natürlich ein Nachteil. Für den Kunden selber ist es dann gut.</p>
<p>&nbsp;</p>
<p>Zusätzlich ist es möglich, noch das sizes Attribut anzugeben. Den ersten Wert, den wir übergeben, ist die media query. Dieser sollte mit den verwendeten media queries im Layout zusammenhängen. Der zweite Wert is die Breite, die das Bild einnehmen soll. Der letzte Wert is der Default Wert. Diese Werte sind immer relativ zum Viewport. 100vw entspricht somit den 100% des Viewports. Mit unserem sizes Attribut sagen wir also, dass unser Bild immer 100% des Viewports hat, außer wir erreichen die 700px. Dann wird das Bild mit 700px festgelegt. Kurz gesagt, teilen wir mit dem srcset Attribut dem Browser mit, wie groß das Bild in Pixel ist, und mit dem sizes Attribut wie viel Platz das Bild im Layout einnehmen wird.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;img sizes=“(min-width: 700px) 700px, 100vw“ srcset=“photo-larger.jpg 1400w, photo-medium.jpg 700w, photo-small.jpg 400w“ src=“photo-medium.jpg“ alt=“Alternative Text“ /&gt;
</pre>
<p>Weitere Infos für diese Variante könnt ihr der <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#attr-srcset">Mozilla Developer Spezifikations für das img-Element</a> entnehmen.</p>
<p>&nbsp;</p>
<h2>Images mit dem Picture Element</h2>
<p>&nbsp;</p>
<p>Wenn man genauer bestimmten möchte, wann welches Bild genommen wird, ist das picture-Element die sinnvollere Variante, auch wenn diese nur von wenigen Browsern unterstützt wird. Mit dem polifill sollte es aber keine Probleme geben. Beim picture-Element haben wir zusätzlich innen das source-Element. Diesem Element übergeben wir, wie bereits vorher, die Bilder mittels srcset und den Pixeln. Zusätzlich können wir hier aber über das media-Attribut auch die Orientation, wie bei Codebeispiel 3, oder einen Mediaquery, wie bei Beispiel 4, übergeben. Man kann also wesentlich genauere Angaben machen, wann welches Bild verwendet wird.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;picture&gt;
 &lt;source media=“(orientation: landscape)“ srcset=“photo-large.jpg 2048w, photo-medium.jpg 1400w, photo-small.jpg 800w“ /&gt;
 &lt;source srcset=“photo-square-large.jpg 1000w, photo- square-medium.jpg 800w /&gt;
 &lt;img src=“photo-medium.jpg“ alt=“Alternative Text“ /&gt;
&lt;/picture&gt;
</pre>
<pre class="brush: xml; title: ; notranslate"> 
&lt;picture&gt; 
 &lt;source media=&quot;(min-width: 45em)&quot; srcset=&quot;photo-large.jpg &quot;&gt; 
 &lt;source media=&quot;(min-width: 32em)&quot; srcset=&quot;photo-medium.jpg &quot;&gt; 
 &lt;img src=&quot;photo-small.jpg&quot; alt=&quot; Alternative Text&quot;&gt; 
&lt;/picture&gt; 
</pre>
<p>Weitere Informationen wieder in der <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/picture">Mozilla Developer Network Spezifikation für das picture Element</a>.</p>
<h2>Fazit</h2>
<p>Das srcset und sizes attribut des img-Elementes wird von den Browser wesentlich besser unterstützt als das picture-Element. Wie es aussieht, wird sich ersters auch in der Zukunft mehr durchsetzen. Auch ist es in den meisten Fällen ausreichend, um die passenden Bilder für die Auflösung ausliefern zu können. Wenn man jedoch wirklich für spezielle Viewports passende Bilder ausliefern muss, bietet sich das picture-Element besser an.</p>
<p>The post <a href="https://mobile.fhstp.ac.at/development/webdevelopment/responsive-images-2015/">Responsive Images</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Scalable Vector Graphics</title>
		<link>https://mobile.fhstp.ac.at/ux/design/scalable-vector-graphics/</link>
		
		<dc:creator><![CDATA[Patrick Eberhardt]]></dc:creator>
		<pubDate>Wed, 11 Nov 2015 13:56:37 +0000</pubDate>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Webdevelopment]]></category>
		<guid isPermaLink="false">https://akirchknopf-21110.php.fhstp.cc/?p=5805</guid>

					<description><![CDATA[<p>In letzter Zeit wird man als Entwickler und Designer immer mehr mit dem Thema SVGs, auch &#8220;scalable vector graphics&#8221;, konfrontiert. Doch warum ist das eigentlich so und was sind eigentlich SVGs. In diesem Blogpost möchte ich auf die Vor- und Nachteile von SVGs eingehen und in kleinen Beispielen zeigen, wofür man SVGs sinnvollerweise verwenden kann. Verwendung <a class="read-more" href="https://mobile.fhstp.ac.at/ux/design/scalable-vector-graphics/">[...]</a></p>
<p>The post <a href="https://mobile.fhstp.ac.at/ux/design/scalable-vector-graphics/">Scalable Vector Graphics</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>In letzter Zeit wird man als Entwickler und Designer immer mehr mit dem Thema SVGs, auch &#8220;scalable vector graphics&#8221;, konfrontiert. Doch warum ist das eigentlich so und was sind eigentlich SVGs. In diesem Blogpost möchte ich auf die Vor- und Nachteile von SVGs eingehen und in kleinen Beispielen zeigen, wofür man SVGs sinnvollerweise verwenden kann.</p>
<p><span id="more-5805"></span></p>
<h2>Verwendung von SVGs</h2>
<p>SVGs bestehen zur Gänze aus Pfaden. Sie können in professionellen Programmen wie Adobe Illustrator, Sketch, etc. erstellt werden. Der größte Vorteil von SVGs ist, dass sie bei jeder Auflösung, in jeder Größe und auf jedem Gerät gestochen scharf aussehen. Man kann sie somit unbegrenzt skalieren und muss sich keine Sorgen machen, dass sie unscharf werden. Speziell bei hochauflösenden Displays ist dies ein großer Vorteil, da man hier kein zusätzliches Bild am Server haben muss. Doch wofür eigenen sich eigentlich SVGs. Grundsätzlich für alles was man auf Pfaden zaubern kann, wie zum Beispiel Logos. Auch komplexere Animationen sind möglich wie zum Beispiel <a href="http://svg-wow.org/camera/camera.xhtml">http://svg-wow.org/camera/camera.xhtml</a> oder verschiedene Projekte der Agentur <a href="http://gardenestudio.com.br">Gardenestudio</a>. Nicht geeignet sind SVGs wiederum für Bilder, welche eine hohe Anzahl an Variation in den Pixel haben, wie zum Beispiel Fotografien. Da SVGs im Hintergrund aus der Markup Language XML bestehen, können diese im Texteditor angesehen und verändert werden. Auch ist es möglich, diese mit CSS zu verändern und genau das ist die Stärke von SVGs. Um ein SVGs bearbeiten zu können muss das komplette XML Markup in das HTML Dokument eingefügt werden. Möchte man jedoch nur ein gestochen scharfes Icon haben und keine besonderen Variationen damit machen, reicht der Import über das alt bekannte <em>&lt;img&gt;</em>&#8211; Element. Wir schauen uns jetzt in zwei kleinen einfachen Beispielen an, wie das funktioniert. Für genauere Informationen wie man SVGs verändern kann, könnt ihr euch die <a href="http://mdn svg image">Mozilla Developer Network Referenz für SVGs</a> ansehen.</p>
<p>&nbsp;</p>
<h2>Beispiel 1</h2>
<p>Ihr könnt euch beide Beispiele zur Veranschaulichung im Anhang herunterladen.</p>
<p>Was wir beim ersten Beispiel machen wollen ist, das MFG-Logo bis zum Viewport von <em>767px</em> kleiner dazustellen und zusätzlich den Text „Mobile Forschungsgruppe“ auszublenden, da dieser sowieso nicht leserlich ist. Wir schauen uns also zuerst das SVG im Editor an und kommentieren uns einzeln die verschiedenen <em>&lt;path&gt;-</em>Elemente aus, um zu sehen welche davon unseren Text darstellen. Wenn wir dies haben, geben wir jedem path den wir ausblenden wollen die Klasse „hide“. Der Rest sollte für jeden bekannt sein. Mit einem mediaquery setzen wir die Klasse <em>hide</em> bis zu einer max-width von <em>767px</em> auf display none. Zusätzlich verändern wir die Größe des SVGs auf <em>70px.</em></p>
<pre class="brush: css; title: ; notranslate">
@media (max-width: 767px) {
 .hide {
  display: none;
 }
 svg {
  width: 70px;
  height: 70px;
 }
}
</pre>
<p>Wenn wir nun die Browsergröße verändern, sehen wir unser Ergebnis. Wenn ich dieses SVG Logo mit einem PNG vergleiche, sehe ich auch einen zusätzlichen benefit. Das SVG Logo is lediglich 18kb groß. Im Vergleich dazu das PNG Logo mit 38kb. Zusätzlich müsste ich eine zweite Variante machen ohne dem „Mobile Forschungsgruppe“- Schriftzug. Auch bräuchte ich das Logo für verschiedene Auflösungen. Zusätzlich habe ich einen HTTP Request weniger. Überall wo es Vorteile gibt, gibt es aber auch Nachteile. Wenn man das SVG über das Markup anstatt über das <em>&lt;img&gt;-</em>Element einbindet, kann das Logo nicht gecached werden. Eine Möglichkeit dies zu umgehen wäre mit dem HTML Object Element. Dieses kann gecached und zusätzlich gestyled werden. Dafür müssen die jeweiligen Stylesheet speziell eingebunden werden und jedes svg benötigt sein eigenes Stylesheet.</p>
<p>&nbsp;</p>
<h2>Beispiel 2</h2>
<p>Bei unserem zweiten Beispiel widmen wir uns den Animationen. Wie bereits gezeigt, sind komplizierte Animationen möglich. Für den größten Teil sind aber kleine Icon Animationen ausreichend.  SVGs können auf verschiedene Arten animiert werden. Eine Variante wäre mit JavaScript, wobei man sehr viel Kontrolle über die Animation selbst hat. Da man hierfür fortgeschrittene JavaScript Kenntnisse benötigt, kann man sich auch der Hilfe von Libraries wie <a href="http://snapsvg.io" target="_blank">snap.svg</a> oder <a href="http://velocity.js" target="_blank">velocity.js</a> bedienen. Die einfachere und weniger Fehleranfällige Variante ist mittels CSS Animation welche wir uns kurz ansehen. Auch dieses Beispiel ist im Zip im Anhang vorhanden.</p>
<p>&nbsp;</p>
<p>Wir verwenden ein kleines Rad als Einstellungs-Icon welches wir bei hover vergrößern und drehen wollen. Um bestimmte Teile eines SVGs gemeinsam animieren zu können, kann man diese mit dem <em>&lt;g&gt;</em>-Element gruppieren.  Wir vergeben dem Element die Klasse <em>gear</em> damit wir diese bei hover ansprechen können. Das eigentliche Icon bekommt die Klasse <em>gear-icon</em>. Mittels transition: transform .4s ease-out; sagen wir das wir die transofrm property animieren wollen in 0.4s und einem ease out (Wir fangen schnell an und werden zum Ende der Animation langsamer). Weiteres könnt ihr der <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Transitions" target="_blank">Mozilla Developer Network Transition Spezifikation</a> entnehmen. Wir wollen die Animation durchführen, sobald wir über das komplette Icon mit der Maus fahren. Wir sprechen somit unser <em>&lt;g&gt;</em> Element mit der Klasse gear bei hover an, setzten aber die transform property auf die Klasse gear-icon. Mittels <em>transform: rotate(45deg) scale(1.3);</em> sagen wir, dass wir eine Drehung um 45 Grad und eine 1.3 Fache Skalierung haben wollen. Wenn wir dies jetzt so ausführen würden, hätten wir noch ein Problem. Die Animation würde nämlich nicht um die eigene Achse durchgeführt werden, sondern eher schwingen. Versucht es also, indem ihr die transform-origin property auskommentiert. Dies liegt daran, weil SVGs als Ausgangspunkt die linke obere Ecke von sich selbst nehmen. Wir müssen also die transform-origin property auf 50% 50% setzen. Diese Angabe führt jedoch beim Firefox Browser zu Problemen da er %-Angaben im Bezug auf SVGs nicht versteht. Um jeden Browser unterstützen zu können suchen wir uns aus dem SVG die Werte für <em>cx</em> und <em>cy</em> heraus. Wenn wir diese dann in die Property eingeben kommen wir zu unserem erwünschten Ergebnis.</p>
<p>&nbsp;</p>
<p><a href="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2015/11/svg.zip" target="_blank">Daten zur Übung herunterladen</a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>The post <a href="https://mobile.fhstp.ac.at/ux/design/scalable-vector-graphics/">Scalable Vector Graphics</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Digital Visions 2015</title>
		<link>https://mobile.fhstp.ac.at/allgemein/digital-visions-2015/</link>
		
		<dc:creator><![CDATA[Patrick Eberhardt]]></dc:creator>
		<pubDate>Thu, 22 Oct 2015 16:25:26 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<guid isPermaLink="false">https://akirchknopf-21110.php.fhstp.cc/?p=5654</guid>

					<description><![CDATA[<p>Am 9.Oktober veranstaltete die Wiener Web Agentur Liechtenecker die 3. Webkonferenz Digital Visions im Impact Hub Vienna – wir waren dabei. Die Digital Visions ist eine Konferenz für User Experience und Frontendwebentwicklung. Der Konferenztag konzentriert sich auf qualitative Themen rund um User Experience, Screendesign, Usability und HTML Trends. &#160; &#160; The UX of Speed – <a class="read-more" href="https://mobile.fhstp.ac.at/allgemein/digital-visions-2015/">[...]</a></p>
<p>The post <a href="https://mobile.fhstp.ac.at/allgemein/digital-visions-2015/">Digital Visions 2015</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Am 9.Oktober veranstaltete die Wiener Web Agentur Liechtenecker die 3. Webkonferenz Digital Visions im Impact Hub Vienna – wir waren dabei.</p>
<p>Die Digital Visions ist eine Konferenz für User Experience und Frontendwebentwicklung. Der Konferenztag konzentriert sich auf qualitative Themen rund um User Experience, Screendesign, Usability und HTML Trends.</p>
<p>&nbsp;</p>
<p><span id="more-5654"></span></p>
<div id="attachment_5667" style="width: 310px" class="wp-caption alignnone"><a href="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2015/10/12068888_10153356651248922_2855321500364118930_o.jpg"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-5667" class="wp-image-5667 size-medium" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2015/10/12068888_10153356651248922_2855321500364118930_o-300x200.jpg" alt="Digital Visions im Impact Hub" width="300" height="200" /></a><p id="caption-attachment-5667" class="wp-caption-text">Copyright Liechtenecker.at</p></div>
<p>&nbsp;</p>
<h2><strong>The UX of Speed – Stefan Baumgartner</strong></h2>
<p>&nbsp;</p>
<p>Der Vormittag startete mit dem ersten Vortrag um 9:00 und handelte von „The UX of Speed“. In diesem Vortrag wurde die Thematik der Performance einer Website von Stefan Baumgartner näher beleuchtet. Viele Studien haben bereits gezeigt, dass die Ladezeit einer Website nicht nur für die UX ausschlaggebend ist, sondern vielmehr eine Auswirkung auf Einnahmen hat. So erhöhte z.B. eine Einsparung von einer Sekunde die Einnahmen von Firmen wie Amazon (1 second -&gt; 1.6 billion USD / yr less)  oder Walmart um ein Vielfaches. Zudem reiht Google schnellere Seiten auch besser in der Google Suche.</p>
<p>Um die Performance zu steigern, sollen in erster Linie Metriken definiert und Ziele gesetzt werden. Hier wurden unter anderem folgende Richtwerte genannt:</p>
<ul>
<li>Speed Index unter 1000ms (Zeit in der sichtbare Elemente der Site angezeigt werden – above the fold)</li>
<li>die wichtigsten Informationen sollten innerhalb 1 Sekunde geladen werden</li>
<li>Page Speed Score über 85 (<a href="https://developers.google.com/speed/pagespeed/)">https://developers.google.com/speed/pagespeed/)</a></li>
<li>Seitengröße unter 1,5MB</li>
</ul>
<p>Um diese Ziele zu erreichen, empfiehlt Baumgartner, sich um das Critical CSS zu kümmern, welches nötig ist, um wichtige erste Inhalte (above the fold) darzustellen. Diese können dazu durchaus inline geladen werden. Auch können WebFonts im Local Storage gespeichert werden, um ein erneutes Laden zu verhindern. Den größten Teil einer Website nehmen aber weiterhin Bilder ein. Auch jedes abgespeckte CSS und JS File bringt nichts wenn Bilder nicht optimiert werden.</p>
<p><span style="text-decoration: underline;">Die Folien zur Präsentation:<br />
</span><a href="https://speakerdeck.com/ddprrt/the-ux-of-speed">https://speakerdeck.com/ddprrt/the-ux-of-speed</a></p>
<p>&nbsp;</p>
<h2><strong>How to be the UX-Designer of tomorrow – David Höller</strong></h2>
<p>&nbsp;</p>
<div id="attachment_5680" style="width: 310px" class="wp-caption alignnone"><a href="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2015/10/12140981_10153356653723922_5599510768318585122_o.jpg"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-5680" class="size-medium wp-image-5680" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2015/10/12140981_10153356653723922_5599510768318585122_o-300x200.jpg" alt="How to be the UX-Designer of tomorrow" width="300" height="200" /></a><p id="caption-attachment-5680" class="wp-caption-text">Copyright Liechtenecker.at</p></div>
<p>&nbsp;</p>
<p>Mit dieser Thematik setzte sich der zweite Vortragende, David Höller, Gründer der User Experience Agentur Illustree, auseinander. Anhand des von ihnen durchgeführten Projekts (ÖBB-App) teilte er seine Erfahrungen mit uns.</p>
<p>Um gute Lösungen zu finden, ist es in erster Linie wichtig, die Probleme des Kunden zu kennen. Hilfreich sind hier Definitionen von Personas und entsprechende Szenarien, um die zugrundeliegende Thematik zu verstehen und ensprechend Lösungsansätze zu erarbeiten. Denn Designer sind Problemlöser. Dabei ist es auch notwendig, sich als UX Designer den Programmierern anzunähern, um Muster zu erkennen und sich mittels Teamarbeit austauschen zu können. Sie sind immer von Anfang an im Projekt involviert und müssen die Probleme erkennen und auch schon in einer einfachen Form lösen.</p>
<p>Nach einer kurzen Frühstückspause mit Brioche-Kipferl und Schoko-Croissants ging es etwas wissenschaftlicher weiter.</p>
<p>&nbsp;</p>
<h2><strong>Gender Expericence &#8211; Marc Busch</strong></h2>
<p>&nbsp;</p>
<p>Marc Busch, ein Wissenschaftler, welcher sich mit Gender Experience beschäftigt, erklärte uns, dass sich eine Gruppe gleichen Geschlechts häufig stärker unterscheidet, als Personen unterschiedlichen Geschlechts, also Mann und Frau. Das Geschlecht gebe jedoch Hinweise auf soziale Rollen der Personen.</p>
<p>Seine Annahmen basierten auf Studien bezogen auf das Gaming-Verhalten. Er teilte die jeweiligen Spielerpersönlichkeiten folgendermaßen auf: Conquerer, Seeker, Survivor, Socializer, Daredevil, Achiever und Mastermind.</p>
<p>Frauen sehen sich hier vermehrt als Socializer, wobei hier nicht ganz eindeutig ist, ob dieses Zugehörigkeitsgefühl auf das Geschlecht zurückzuführen ist, oder aus sozialen Normen entstanden ist.</p>
<p>Nach einer Mittagspause, in der wir uns mit Chili con Carne und Gemüsecurry stärken konnten, setzte sich der Nachmittag mit weiteren spannenden Vorträgen fort.</p>
<p>&nbsp;</p>
<h2><strong>AI is the new UI: The shape of things to come &#8211; Jeremy Abbett</strong></h2>
<p><strong> </strong></p>
<p>Jeremy Abbett ist ein amerikanischer Designer, Unternehmer, inspirierender Redner und kreativer Evangelist bei Google. Sein Vortrag handelte von der Zukunft und damit verbundenen Technologien wie Artificial Intelligence – künstliche Intelligenz.</p>
<p>Ein großer Teil seines Vortags beschäftigte sich mit den heutigen Technologien des Smartphones.  Als Beispiel nannte er moderne Sprachsteuerungen wie Microsofts Cortana, Apples Siri und Google now. Filme wie Terminator sind häufig der Grund für Ängste und Zweifel gegenüber diesen neuen Technologien, da hier gezeigt wird, wie künstliche Intelligenz zum Feind des Menschen wird.  Abbett ist jedoch davon überzeugt, dass diese Ängste überwunden werden müssen, um den Fortschritt vorantreiben und Innovationen schaffen zu können.</p>
<p>Er erzählte uns z.B. von seinem Face-Tracking Programm, welches durch Zucken der Augenbrauen Tweets verschicken kann. Wir sollen also viel experimentieren, denn wir haben heutzutage alle Möglichkeiten und Tools zur Verfügung. Am Beispiel des Films Interstellar zeigte er uns, wie künstliche Intelligenz ein großer Teil unserer Zukunft werden könnte.</p>
<p>&nbsp;</p>
<div id="attachment_5674" style="width: 310px" class="wp-caption alignnone"><a href="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2015/10/12087904_10153356655378922_3494357173225550863_o.jpg"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-5674" class="wp-image-5674 size-medium" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2015/10/12087904_10153356655378922_3494357173225550863_o-300x200.jpg" alt="Jeremy Abbett redet über das Theme künstliche Intelligenz" width="300" height="200" /></a><p id="caption-attachment-5674" class="wp-caption-text">Copyright Liechtenecker.at</p></div>
<p>&nbsp;</p>
<h2><strong>Webseiten modular entwickeln – Jens Grochtdreis</strong></h2>
<p><strong> </strong></p>
<p>Ein sehr spannendes Thema rund um CSS brachte uns Jens Grochtdreis. An einigen Beispielen zeigte er uns, dass jede Website eigentlich aus mehreren verschiedenen, sich aber immer wiederholenden Elementen zusammensetzt. Es sollte also hier wichtig sein, dass jedes Element für sich selber stehen kann und nicht abhängig von einem anderen ist. So sollte man zum Beispiel eine Hauptnavigation aus dem Header entfernen und in den Footer stecken können und sie sollte trotzdem gut aussehen und funktionieren. Jens Grochtdreis selbst verwendet eine eigene Ansammlung von Elementen (Styleguides), die er nur in seine Projekte einfügen muss und gegeben falls die Farbe zu ändern hat. Ein wichtiger Punkt war auch die richtige Verwendung von CSS Klassen. Anhand mehreren Beispielen zeigte er, dass Selektoren oft unnötig lang sind und eigentlich keinen Sinn ergeben.</p>
<p>&nbsp;</p>
<div id="attachment_5678" style="width: 310px" class="wp-caption alignnone"><a href="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2015/10/code.png"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-5678" class="wp-image-5678 size-medium" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2015/10/code-300x211.png" alt="Richtige und falsche Schreibweise von Selektoren" width="300" height="211" /></a><p id="caption-attachment-5678" class="wp-caption-text">Copyright Jens Grochtdreis</p></div>
<p>&nbsp;</p>
<p>Als Abschluss zeigte er uns noch einige Arten, wie man CSS übersichtlicher schreiben kann. Hier war die Rede von Object Oriented CSS, Scalable and Modular Architecture for CSS,  BEM und NCSS. BEM, zum Beispiel, steht für Block, Element, Modifier und gibt bestimmte Namenskonventionen vor:</p>
<p>.person {} /* Block */</p>
<p>.person__hand {} /* Element */</p>
<p>.person—female {} /* Modifier */</p>
<p>.person—female__hand {} /* Modifier with Element */</p>
<p>.person__hand—left {} /* Element with Modifier */</p>
<p>Bei großen Websites kann diese Art natürlich zu sehr langen CSS Selektoren im Markup führen, ist aber dafür im CSS für Entwickler leicht verständlich.</p>
<p><span style="text-decoration: underline;">Die Folien zur Präsentation:</span><br />
<a href="https://speakerdeck.com/flocke/modulare-webentwicklung">https://speakerdeck.com/flocke/modulare-webentwicklung</a></p>
<p>&nbsp;</p>
<h2><strong>Empathisches Design – Andrea Egger</strong></h2>
<p>&nbsp;</p>
<p>Empathie beschreibt die Fähigkeit und Bereitschaft, Gedanken, Emotionen, Motive und Persönlichkeitsmerkmale einer anderen Person zu erkennen und zu verstehen. Für einen guten Designer ist es daher sehr wichtig, nicht nur an sich selbst zu denken sondern in den User hineinfühlen zu können und das Design dementsprechend an seine Bedürfnisse anzupassen. „Emphatie ist das Fühlen mit Menschen“ – Brené Brown. Es sollten Produkte erstellt werden welche beim benutzen Glücksgefühle erzeugen. Es ist hilfreich, wenn der Designer emphatisch ist und Verhaltensmuster interpretieren und analysieren kann. Laut Andrea sollte jeder Designer eigentlich ein zusätzliches Psychologiestudium absolvieren um bessere Designs kreieren zu können. Zudem sollte ein großes Ziel eines Designers sein, Bedürfnisse zu erzeugen, wo noch keine sind. Als Beispiel hierfür nannte Sie das Apple iPad. Auch wenden einige Unternehmen bereits diese Form des Designs an. Mister Spex erlaubt es zum Beispiel das der Benutzer von zu Hause aus Brillen anprobieren kann. Auch L’oreal hat eine ähnliche Art für Makeup Produkte.</p>
<p><span style="text-decoration: underline;">Die Folien zur Präsentation:</span><br />
<a href="http://de.slideshare.net/_Liechtenecker_/empathisches-design-54169642">http://de.slideshare.net/_Liechtenecker_/empathisches-design-54169642</a></p>
<p>&nbsp;</p>
<h2><strong>Responsive by Design! Successful by Chance? – Thomas Piribauer, Björn Ganslandt</strong></h2>
<p>&nbsp;</p>
<div id="attachment_5685" style="width: 310px" class="wp-caption alignnone"><a href="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2015/10/12068883_10153356656383922_5733135169959160163_o.jpg"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-5685" class="size-medium wp-image-5685" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2015/10/12068883_10153356656383922_5733135169959160163_o-300x200.jpg" alt="Responsive by Design! Successful by Chance? Thomas Piribauer, Björn Ganslandt" width="300" height="200" /></a><p id="caption-attachment-5685" class="wp-caption-text">Copyright Liechtenecker.at</p></div>
<p>&nbsp;</p>
<p>Heutzutage muss eine Website responsive sein um an alle User ausgeliefert werden zu können. Viele der heute verfügbaren Seiten sehen aber gleich aus und basieren zum großen Teil auf Frameworks wie Bootstrap oder Foundation. Aus diesem Grund sehen die Beiden die große Problematik darin, etwas anderes und originelleres umzusetzen, denn die Abänderungen des Frameworks bringt oft einen enormen Aufwand mit sich. Besser ist es daher, für eigene Projekte von vorne zu beginnen und keine Frameworks zu verwenden.</p>
<p>Ein großes Thema war auch das Planen und Entwickeln. Die beiden empfinden das Erstellen von Mockups auf Papier und anschließendes Prototyping im Code als sinnvoller und schneller. Über die Entwicklertools im Browser ist es dadurch rasch möglich, Styles zu ändern und somit gleich die Änderungen zu sehen. Mobile First Entwicklung ist heutzutage Standard, jedoch wird die Planung immer noch Desktop First durchgeführt da viele Kunden und Designer in großen Screens denken. Dies führt dann oft wieder zu endlos langen Websites die sich auf UX und Performance negativ auswirken. Laut Thomas und Björn sollte das Ganze „Gleichzeitig First“ heißen, denn sowohl Desktop als auch Mobile sind wichtig. Wie bereits im ersten Vortrag besprochen, sind auch sie der Meinung, dass Content das Wichtigste auf einer Website ist. Alles andere kann danach hinzugeladen werden.</p>
<p>Zuletzt haben sie noch ein Thema mit viel Potenzial angesprochen, nämlich „Offline First“. Oft hat man zum Beispiel im Zug keine Internetverbindung und kann dadurch nicht arbeiten. Mit einem Beispiel von Wunderlist und dem Offline Dinosaurier Jump-and-Run Game von Google Chrome haben sie gezeigt, wie es eigentlich funktionieren sollte. Bei Wunderlist werden Dinge, welche Offline passiert sind automatisch abgespeichert, sobald man wieder Internetverbindung hat.</p>
<p>&nbsp;</p>
<h2><strong>Fazit</strong></h2>
<p>&nbsp;</p>
<p>Um 17 Uhr neigte sich auch dieser lange Tag langsam dem Ende zu. Wir haben viele interessante Präsentation gehört und viele neue und zukunftsweisende Dinge erfahren. Jetzt geht es ran die Dinge auch in die Praxis umzusetzen. Mit einem Bier verabschiedeten wir uns von dieser Konferenz und freuen uns auf das nächste Jahr.</p>
<p>The post <a href="https://mobile.fhstp.ac.at/allgemein/digital-visions-2015/">Digital Visions 2015</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
