<?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 Gerald Strobl - Mobile USTP MKL</title>
	<atom:link href="https://mobile.fhstp.ac.at/author/dm151534/feed/" rel="self" type="application/rss+xml" />
	<link>https://mobile.fhstp.ac.at/author/dm151534/</link>
	<description>Die &#34;Mobile Forschungsgruppe&#34; der USTP, sie  sammelt hier alles zu den Themen Design, UX und Entwicklung mobiler Applikationen</description>
	<lastBuildDate>Thu, 09 Mar 2017 10:23:34 +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 Gerald Strobl - Mobile USTP MKL</title>
	<link>https://mobile.fhstp.ac.at/author/dm151534/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Die Idee von Vuex</title>
		<link>https://mobile.fhstp.ac.at/development/webdevelopment/die-idee-von-vuex/</link>
		
		<dc:creator><![CDATA[Gerald Strobl]]></dc:creator>
		<pubDate>Thu, 09 Mar 2017 09:49:39 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Webdevelopment]]></category>
		<guid isPermaLink="false">https://akirchknopf-21110.php.fhstp.cc/?p=6874</guid>

					<description><![CDATA[<p>Vue.js ist ein JavaScript Framework das derzeit einen ziemlichen Hype hat. Nachdem die Community, Tutorials und die Erweiterung immer mehr wachsen haben sich die Entwickler von Vue.js entschieden ein auf der Flux Architektur basierendes „Centralized State Management“ zu entwickeln. Was ist bitte Flux? Flux ist eine Architektur die von den Entwicklern von Facebook entworfen wurde. <a class="read-more" href="https://mobile.fhstp.ac.at/development/webdevelopment/die-idee-von-vuex/">[...]</a></p>
<p>The post <a href="https://mobile.fhstp.ac.at/development/webdevelopment/die-idee-von-vuex/">Die Idee von Vuex</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Vue.js ist ein JavaScript Framework das derzeit einen ziemlichen Hype hat. Nachdem die Community, Tutorials und die Erweiterung immer mehr wachsen haben sich die Entwickler von Vue.js entschieden ein auf der Flux Architektur basierendes „Centralized State Management“ zu entwickeln.</p>
<h3>Was ist bitte Flux?</h3>
<p>Flux ist eine Architektur die von den Entwicklern von Facebook entworfen wurde. Das Grundkonzept sieht so aus wie die folgende Grafik beschreibt.</p>
<p><img fetchpriority="high" decoding="async" class="alignnone wp-image-6877 size-full" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2017/03/flux-e1489052506850.png" alt="flux" width="500" height="110" /></p>
<p>Dazu muss man noch wissen das die sogenannten „States“ gibt. Diese werden nie direkt verändert sondern über sogenannte Actions. Im Store werden die States gespeichert. Um mehr über diese Architektur zu erfahren am besten unter <a href="https://facebook.github.io/flux/docs/in-depth-overview.html#content">Flux Dokumentation</a> einlesen. Zurück zu Vue.js und Vuex.</p>
<h3>Warum brauche ich Vuex?</h3>
<p>Wenn man ein Einsteiger für dieses Architektur Modell ist und noch nicht genau weiß warum das überhaupt benötigt ist die Lern bzw. Verständniskurve ziemlich hoch. Aber ich gebe mal ein Beispiel: Man baut eine kleine Messenger App und möchte in mehreren Komponenten anzeigen wenn es eine neue Nachricht gibt. Dazu ist diese Architektur Form ideal, die Idee wäre wenn eine neue Nachricht eintrifft wird eine Action aufgerufen und diese verändert den State. In den einzelnen Komponenten muss dann nur auf den Store zugegriffen werden.</p>
<p>Vuex hat diese Teile der Architektur so aufgeteilt:</p>
<ul>
<li>Store</li>
<li>Actions</li>
<li>Mutations</li>
<li>Getters</li>
</ul>
<p><img decoding="async" class="wp-image-6875 size-full aligncenter" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2017/03/vuex.png" alt="vuex" width="701" height="551" /></p>
<p>So wird der Store definiert</p>
<pre>import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
 const store = new Vuex.Store({
 state: {
 },
 actions: {
 },
 mutations: {
 },
 getters: {
 },
 modules: {
export default store
}
})
</pre>
<p>Der State ist die Datenstruktur der benötigten Daten in der App. Kann ein Default oder Initial Wert sein.</p>
<pre>state: {
  projects: [],
  userProfile: {}
}
</pre>
<p>Actions werden in den Komponetnen durch den sogenannten &#8220;dispatch call&#8221; aufgerufen.</p>
<pre>actions: {
    LOAD_PROJECT_LIST: function ({ commit }) {
      axios.get('/secured/projects').then((response) =&gt; {
        commit('SET_PROJECT_LIST', { list: response.data })
      }, (err) =&gt; {
        console.log(err)
      })
    }
  }
</pre>
<p>Mutations sind der einzige Weg um den Store zu aktualisieren.</p>
<pre>mutations: {
    SET_PROJECT_LIST: (state, { list }) =&gt; {
      state.projects = list
    }
  }
</pre>
<p>Getters sind die Methoden um den derzeitgen Stand vom State zu bekommen.</p>
<pre>mutations: {
    SET_PROJECT_LIST: (state, { list }) =&gt; {
      state.projects = list
    }
  }
</pre>
<p>The post <a href="https://mobile.fhstp.ac.at/development/webdevelopment/die-idee-von-vuex/">Die Idee von Vuex</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Meteor und die Packages Autopublish und Insecure</title>
		<link>https://mobile.fhstp.ac.at/development/meteor-und-die-packages-autopublish-und-insecure/</link>
		
		<dc:creator><![CDATA[Gerald Strobl]]></dc:creator>
		<pubDate>Mon, 18 Jan 2016 23:38:53 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Webdevelopment]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[meteor]]></category>
		<category><![CDATA[Web Development]]></category>
		<guid isPermaLink="false">https://akirchknopf-21110.php.fhstp.cc/?p=6053</guid>

					<description><![CDATA[<p>Dieser Artikel dreht sich um eine kleine Kernproblematik bei dem JS Framework Meteor nämlich um publish,subscribe und call. Für Anfänger und Neueinsteiger in das Framework wirkt der Vorgang auf den ersten Blick verwirrend. Eine weitere Motivation für diesen Artikel ist, ich hatte dieselben Probleme und durchforstete Tutorials und Beiträge um den Prozess zu verstehen. Ganz <a class="read-more" href="https://mobile.fhstp.ac.at/development/meteor-und-die-packages-autopublish-und-insecure/">[...]</a></p>
<p>The post <a href="https://mobile.fhstp.ac.at/development/meteor-und-die-packages-autopublish-und-insecure/">Meteor und die Packages Autopublish und Insecure</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Dieser Artikel dreht sich um eine kleine Kernproblematik bei dem JS Framework Meteor nämlich um <strong>publish</strong>,<strong>subscribe </strong>und<strong> call</strong>. Für Anfänger und Neueinsteiger in das Framework wirkt der Vorgang auf den ersten Blick verwirrend. Eine weitere Motivation für diesen Artikel ist, ich hatte dieselben Probleme und durchforstete Tutorials und Beiträge um den Prozess zu verstehen. Ganz wichtig Meteor liefert bei der App Erstellung die Pakete(Packages) <strong>insecure</strong> und <strong>autopublish</strong>. Diese zwei Pakte sind für den Entwicklungsprozess gedacht. Wenn die Applikation dann deployed werden soll, müssen diese zwei Pakete unbedingt entfernt werden um Sicherheitslücken zu schließen.</p>
<p><span id="more-6053"></span></p>
<p><strong>insecure</strong></p>
<p>Dieses Package gibt die Möglichkeit die Collection(Datenbank) direkt vom Client zu bearbeiten. Hierbei ein nützlicher Link: <a href="https://www.meteor.com/tutorials/blaze/security-with-methods">https://www.meteor.com/tutorials/blaze/security-with-methods</a></p>
<p><strong>autopublish</strong></p>
<p>Dieses Paket schickt ununterbrochen alle Collection vom Server zum Client, deswegen kann der Client auf alle Daten in jedem Template zugreifen. Hierbei ein nützlicher Link: <a href="https://www.meteor.com/tutorials/blaze/publish-and-subscribe">https://www.meteor.com/tutorials/blaze/publish-and-subscribe</a></p>
<p>Um einen Überblick zu schaffen hier eine kleine Grafik wie der Lebenszyklus für publish und subscribe aussieht:</p>
<p><a href="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2016/01/client-server@2x.png"><img decoding="async" class="alignnone size-medium wp-image-6054" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2016/01/client-server@2x-265x300.png" alt="client-server@2x" width="265" height="300" /></a></p>
<p>Damit der Client auf „subscriben“ kann muss die publish Methode am Server deklariert sein. Hier ein Code-Beispiel(in CoffeeScript), es werden alle Daten von der Collection Polls geholt.</p>
<pre class="brush: jscript; title: ; notranslate">

Meteor.publish 'allPolls',

return Polls.find()

</pre>
<p>Dieser Code ist natürlich im Serverseitig, jetzt wird die Subscribe Methode auf der Clientseite gezeigt.</p>
<p>Template.polls_index.onCreated</p>
<pre class="brush: jscript; title: ; notranslate">

@autorun

@subscribe('allPolls')

</pre>
<p>Wenn das Template erstellt wird, wird die autorun Methode ausgeführt und diese holt sich alle „Polls“ dann kann der Entwickler mit den „Polls“ weiterarbeiten (z.B.: die Polls ausgeben).</p>
<p>So werden <strong>publish</strong> und <strong>subscribe</strong> Prozesse ordnungsgemäß bei Meteor behandelt. Wenn jeder Anfrage von der Clientseite mit subscribe gelöst, wurde kann das autopublish Paket gelöscht werden und der Entwickler kann testen ob seine Abläufe funktionieren.</p>
<p>Zur nächsten Thema, um Daten in der Collection speichern zu können liefert Meteor sogenannte <strong>call</strong> Methoden mit. Diese Methoden organisieren auf der Serverseite die Datenverarbeitung und kommunizieren mit der Collection. Achtung zusätzlich in diesem Beispiel wird das Package Astronomy<a href="http://(http://astronomy.jagi.io/what-is-astronomy">(http://astronomy.jagi.io/what-is-astronomy</a>) verwendet.</p>
<p>Der Clientseitige Code, durch die call Methode wird der Zugriff auf den Server angefordert:</p>
<p>&nbsp;</p>
<pre class="brush: jscript; title: ; notranslate">

poll = new Poll {

title: @title

description: @description

duration: @duration

charttype: @charttype

ownerId: Meteor.userId()

}

$opt = $('input&#x5B;class^=&quot;option&quot;]')

$.each $opt, (index, v)

poll.push 'options_poll', optiontitle: $opt&#x5B;index].value

Meteor.call('addPoll', poll)

</pre>
<p>Und auf der serverseitigen Seite, wird der Code folgend verarbeitet:</p>
<pre class="brush: jscript; title: ; notranslate">

Meteor.methods

'addPoll': (poll)

if poll.validate()

poll.save()

FlowRouter.go('polls_index')

Return

</pre>
<p>Jetzt ist es möglich das Package insecure zu löschen und die Datenspeicherung funktioniert. Ich hoffe ich konnte einen Einblick Meteor und seinen Security Bereich geben.</p>
<p>The post <a href="https://mobile.fhstp.ac.at/development/meteor-und-die-packages-autopublish-und-insecure/">Meteor und die Packages Autopublish und Insecure</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Bootstrap 4</title>
		<link>https://mobile.fhstp.ac.at/trends/bootstrap-4/</link>
		
		<dc:creator><![CDATA[Gerald Strobl]]></dc:creator>
		<pubDate>Sat, 12 Dec 2015 15:56:16 +0000</pubDate>
				<category><![CDATA[Trends]]></category>
		<category><![CDATA[Bootstrap]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Frameworks]]></category>
		<category><![CDATA[Frontend]]></category>
		<category><![CDATA[HTML]]></category>
		<guid isPermaLink="false">https://akirchknopf-21110.php.fhstp.cc/?p=5970</guid>

					<description><![CDATA[<p>Das bekannteste Frontend Framework der Welt veröffentlicht im Jahr 2016 ihre vierte Version. Es gibt einige Änderungen und Verbesserungen. Eine Alpha Version ist bereits veröffentlich worden (http://v4-alpha.getbootstrap.com/getting-started/download/). Bootstrap hat Kritikpunkte von älteren Versionen angenommen und hat das Konzept „Mobile First“ besser umgesetzt. Hier der Überblick der größten Änderungen in der Version Bootstrap 4: Änderung der <a class="read-more" href="https://mobile.fhstp.ac.at/trends/bootstrap-4/">[...]</a></p>
<p>The post <a href="https://mobile.fhstp.ac.at/trends/bootstrap-4/">Bootstrap 4</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Das bekannteste Frontend Framework der Welt veröffentlicht im Jahr 2016 ihre vierte Version. Es gibt einige Änderungen und Verbesserungen. Eine Alpha Version ist bereits veröffentlich worden (<a href="http://v4-alpha.getbootstrap.com/getting-started/download/">http://v4-alpha.getbootstrap.com/getting-started/download/</a>). Bootstrap hat Kritikpunkte von älteren Versionen angenommen und hat das Konzept „Mobile First“ besser umgesetzt. Hier der Überblick der größten Änderungen in der Version Bootstrap 4:</p>
<p><span id="more-5970"></span></p>
<h3><b>Änderung der Maßeinheit</b></h3>
<p>In den vorigen Versionen wurde Pixel als Maßeinheit verwendet. Jetzt wird die relative Maßeinheit rem(root em) verwendet.</p>
<h3><b>IE8 wird nicht mehr unterstützt</b></h3>
<p>Weil der Internet Explorer 8 die Maßeinheit rem nicht unterstützt wird diese Version nicht mehr unterstützt. Da der Browsermarktanteil beim IE8 unter 2% liegt, wird es nicht so ein großer Verlust sein.</p>
<h3>The Sass Way</h3>
<p>Bootstrap hat den Pre-Prozessor gewechselt und zwar von Less auf Sass. Zwar war in Bootstrap 3 eine Sass Version vorhanden. Aber jetzt wird es nur eine Sass Version geben, Grund dafür ist weil sich Sass immer mehr gegen Less durchsetzt.</p>
<h3><b>Verbesserte Media Queries</b></h3>
<p>Da es in Vorgänger Versionen immer wieder Problem mit verschiedenen Geräten(z.B.: iPad) gab. Viele Web Entwickler schrieben ihre eigenen Queries wenn das Framework verwendet Deswegen wurden Media Queries in „Mobile First“ und „Desktop First“ aufgeteilt.</p>
<pre class="brush: css; title: ; notranslate">
// Small devices (landscape phones, 34em and up)
@media (min-width: 34em) { ... }

// Medium devices (tablets, 48em and up)
@media (min-width: 48em) { ... }

// Large devices (desktops, 62em and up)
@media (min-width: 62em) { ... }

// Extra large devices (large desktops, 75em and up)
@media (min-width: 75em) { ... }
  
// Extra large devices (large desktops)
// No media query since the extra-large breakpoint has no upper bound on its width

// Large devices (desktops, less than 75em)
@media (max-width: 74.9em) { ... }

// Medium devices (tablets, less than 62em)
@media (max-width: 61.9em) { ... }

// Small devices (landscape phones, less than 48em)
@media (max-width: 47.9em) { ... }

// Extra small devices (portrait phones, less than 34em)
@media (max-width: 33.9em) { ... }
</pre>
<h3>Cards Layout</h3>
<p>Das neue Cards Layout ersetzt die bekannten Komponenten Panels and Wells. Cards sind definierte als flexible Content Container, das erlaubt Optionen wie Header und Footer. Es ist eine sehr individuelle Darstellung von Content möglich. Um alle Variationen dieses Layouts zu sehen ist, hier der Link (<a href="http://v4-alpha.getbootstrap.com/components/card/">http://v4-alpha.getbootstrap.com/components/card/</a>). Noch ein nettes Feature ist das Cards-Column Layout, das eine Collage ermöglicht.</p>
<p><a href="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2015/12/cardslayout.png"><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-5975" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2015/12/cardslayout-300x287.png" alt="cardslayout" width="300" height="287" /></a></p>
<h2>Fazit</h2>
<p>Bootstrap 4 Alpha macht gespannt auf die Release Version, aber jezt kann man sagen das sie coole neue Features mitliefert. Die Alpha Version hat noch viele neue Styling und Helperklassen dabei. Für mehr Informationen kommen jetzt noch nützliche Links.</p>
<p><a href="https://scotch.io/bar-talk/whats-new-in-bootstrap-4">https://scotch.io/bar-talk/whats-new-in-bootstrap-4</a></p>
<p><a href="http://blog.getbootstrap.com/2015/08/19/bootstrap-4-alpha/">http://blog.getbootstrap.com/2015/08/19/bootstrap-4-alpha/</a></p>
<p>&nbsp;</p>
<p>The post <a href="https://mobile.fhstp.ac.at/trends/bootstrap-4/">Bootstrap 4</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Best Places in Vienna</title>
		<link>https://mobile.fhstp.ac.at/development/best-places-in-vienna/</link>
		
		<dc:creator><![CDATA[Gerald Strobl]]></dc:creator>
		<pubDate>Tue, 20 Oct 2015 15:08:09 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Projekte]]></category>
		<category><![CDATA[Bootstrap]]></category>
		<category><![CDATA[GeoJSON]]></category>
		<category><![CDATA[Initialprojekt]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[meteor]]></category>
		<category><![CDATA[MongoDB]]></category>
		<category><![CDATA[Node.js]]></category>
		<guid isPermaLink="false">https://akirchknopf-21110.php.fhstp.cc/?p=5595</guid>

					<description><![CDATA[<p>Konzept und Idee Als Initialprojekt für das Fach Mobile Anwendungen ist es mir mehr um die Methode als um das Projekt gegangen und deswegen haben hab ich die Applikation mit Meteor umgesetzt. Trotzdem Die Applikation war eine kleine Geo-Location Applikation, die den nähersten Standort anzeigt und Informationen über diesen Standort anzeigt. In diesem Fall soll <a class="read-more" href="https://mobile.fhstp.ac.at/development/best-places-in-vienna/">[...]</a></p>
<p>The post <a href="https://mobile.fhstp.ac.at/development/best-places-in-vienna/">Best Places in Vienna</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h3>Konzept und Idee</h3>
<p>Als Initialprojekt für das Fach Mobile Anwendungen ist es mir mehr um die Methode als um das Projekt gegangen und deswegen haben hab ich die Applikation mit Meteor umgesetzt. Trotzdem Die Applikation war eine kleine Geo-Location Applikation, die den nähersten Standort anzeigt und Informationen über diesen Standort anzeigt. In diesem Fall soll er Informationen über Standorte in Wien anzeigen(Schwedenplatz, Naschmarkt,…).</p>
<p>Wie schon vorher erwähnt wurde ist Meteor als Plattform verwendet worden. Im Frontendbereich hab ich das Framework Bootstrap verwendet.</p>
<p><span id="more-5595"></span></p>
<h3>Probleme MongoDB und GeoJSON</h3>
<p>Für die Berechnung für den nähersten Standort habe ich die von MongoDB und GeoJSON verwendete Filtermethode <strong>$near </strong>verwendet. Dabei ist eine Konfiguration auf der Datenbank notwendig damit GeoJSON und der Filter verwendet werden können. Für zukünftige Leser die Probleme mit MongoDB und GeoJSON haben, sollten schauen das dieser Index direkt auf der Datenbank erstellt ist.</p>
<pre>db.collection.createIndex( { &lt;location field&gt; : "2dsphere" } )</pre>
<p>Wichtig ist auch bei der Verwendung von GeoJSON die richtige Struktur zu verwenden, sonst wird es wahrscheinlich auch Probleme geben. Hier ist eine Beispielstruktur für die eine GeoJSON Format:</p>
<pre>{</pre>
<pre>  "type": "Feature",</pre>
<pre>  "geometry": {</pre>
<pre>    "type": "Point",</pre>
<pre>    "coordinates": [125.6, 10.1]</pre>
<pre>  },</pre>
<pre>  "properties": {</pre>
<pre>    "name": "Dinagat Islands"</pre>
<pre>  }</pre>
<pre>}</pre>
<p>&nbsp;</p>
<p>Der $near Filter liefert dann ein sortiertes nach der Nähe des Standortes Array zurück. Dann können die Daten mit den Handlebar Funktionen von Meteor ausgegeben werden.</p>
<h3>Fazit</h3>
<p><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-5596" src="https://akirchknopf-21110.php.fhstp.cc/wp-content/uploads/2015/10/Unbenannt-147x300.png" alt="Bestplacesinvienna" width="147" height="300" /></p>
<p>Meteor ist sehr spannend, aber in Kombination mit dem GeoJSON war es etwas trickreich.</p>
<p>Ich möchte dieses Projekt unbedingt erweitern und weiter daran arbeiten, wer Interesse hat <a href="http://bestplacesinvienna.meteor.com">bestplacesinvienna.meteor.com</a></p>
<p><strong>STAY TUNED!</strong></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>The post <a href="https://mobile.fhstp.ac.at/development/best-places-in-vienna/">Best Places in Vienna</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
