<?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>Offline Archives - Mobile USTP MKL</title>
	<atom:link href="https://mobile.fhstp.ac.at/tag/offline/feed/" rel="self" type="application/rss+xml" />
	<link></link>
	<description>Die &#34;Mobile Forschungsgruppe&#34; der USTP, sie  sammelt hier alles zu den Themen Design, UX und Entwicklung mobiler Applikationen</description>
	<lastBuildDate>Fri, 11 Apr 2014 07:23:01 +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>Offline Archives - Mobile USTP MKL</title>
	<link></link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Offline REST Fallback via LocalStorage</title>
		<link>https://mobile.fhstp.ac.at/development/webdevelopment/offline-rest-fallback-mit-javascript/</link>
		
		<dc:creator><![CDATA[Francesco Novy]]></dc:creator>
		<pubDate>Sat, 30 Nov 2013 08:51:43 +0000</pubDate>
				<category><![CDATA[Webdevelopment]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[ember]]></category>
		<category><![CDATA[ember-data]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[localstorage]]></category>
		<category><![CDATA[Offline]]></category>
		<category><![CDATA[rest]]></category>
		<guid isPermaLink="false">https://akirchknopf-21110.php.fhstp.cc/?p=3616</guid>

					<description><![CDATA[<p>Für unser Projektmanagement-Tool „Herculess“ ist ein wichtiger Aspekt, dass die App Offline-fähig ist. Während das in einer nativen App relativ einfach möglich ist, ist solch eine Funktionalität bei Web-Apps immer noch nur sehr selten zu finden. Die Web-App von Herculess basiert auf dem JavaScript-MVC-Framework Ember.js, welches, ergänzt durch Ember-Data, sehr einfach mit REST-APIs umgehen kann. <a class="read-more" href="https://mobile.fhstp.ac.at/development/webdevelopment/offline-rest-fallback-mit-javascript/">[...]</a></p>
<p>The post <a href="https://mobile.fhstp.ac.at/development/webdevelopment/offline-rest-fallback-mit-javascript/">Offline REST Fallback via LocalStorage</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Für unser Projektmanagement-Tool „Herculess“ ist ein wichtiger Aspekt, dass die App Offline-fähig ist. Während das in einer nativen App relativ einfach möglich ist, ist solch eine Funktionalität bei Web-Apps immer noch nur sehr selten zu finden. Die Web-App von Herculess basiert auf dem JavaScript-MVC-Framework Ember.js, welches, ergänzt durch Ember-Data, sehr einfach mit REST-APIs umgehen kann. So kümmert sich das Framework komplett um den Datenerhalt und die Synchronisierung und der Developer muss nur mit den von Ember bereitgestellten Objekten arbeiten. Auch Promises werden automatisch implementiert.</p>
<p>Während Ember-Data somit extrem hilfreich ist und auch für sehr komplexe Applikationen geeignet ist, stießen wir auf das Problem, dass man zwar einstellen kann, ob man die Daten über eine REST-API oder den LocalStorage persistieren möchte, aber nicht beide Optionen gleichzeitig nutzen kann. Für Herculess brauchen wir aber eine Funktionalität, die standardmäßig Daten vom REST-Server holt und nur im Offline-Fall auf zwischengespeicherte Daten aus dem LocalStorage zurückgreift.</p>
<p><span id="more-3616"></span></p>
<h2>Der Weg zum Ziel</h2>
<p>Die Lösung dieses Problems war nicht ganz einfach und hat erst einmal zu diversen Fehlversuchen geführt. Erste Ansätze waren es, den bestehenden LocalStorage-Adapter von Ember-Data umzubauen und um eine Hintergrund-Synchronisierung zu ergänzen. So hätte Ember immer lokal im LocalStorage gearbeitet und nur im Hintergrund wären die Daten von der REST-API in den LocalStorage geschrieben worden. Das Problem hierbei war jedoch, dass Ember, um stets eine Datenintegrität zu gewährleisten, es nicht ermöglicht, zur Laufzeit alle Daten aus dem LocalStorage zu erneuern. Es hätte stets nach dem Update von der REST-Schnittstelle eine kompletter Seitenrefresh durchgeführt werden müssen, was wiederrum die unbemerkte Synchronisierung unmöglich gemacht hätte.</p>
<p>Nachdem diverse Experimente in diese Richtung fehlgeschlagen sind, haben wir einen neuen Ansatz ausprobiert: Wenn die App offline ist, sollen die Ajax-Calls einfach statt an den Server an eine (offline verfügbar gemachte) Datei geroutet werden und diese dann aus dem LocalStorage zwischengespeicherte Daten in derselben Form wie die richtige REST-API zurückgeben. So könnte der Client immer gleich arbeiten und nur die URL der AJAX-Calls müsste geändert werden. Das Problem hierbei ist natürlich, dass man lokal nur JavaScript/HTML zwischenspeichern kann und diese clientseitig keine reinen JSON-Responses zusammenbauen können: Die AJAX-Calls parsen die Responses ja nicht, sondern geben nur den Dateiinhalt zurück.</p>
<p>Somit sind wir schlussendlich bei einer Adaption dieser Idee gelandet. Anstatt eine Pseudo-API zu implementieren, fangen wir alle AJAX-Calls ab und liefern mithilfe des jQuery-Plugins jquery.ajax.fake selbst zusammengebaute JSON-Responses zurück.</p>
<h2>Unsere Lösung</h2>
<p>In der Praxis sieht das wie folgt aus:</p>
<p>Der erste Schritt ist es, die Daten überhaupt einmal zwischen zu speichern. Dafür haben wir eine JavaScript-Klasse erstellt, welche für alle Synchronisations-Vorgänge zuständig ist. Diese ist komplett unabhängig von Ember.</p>
<p>Diese Klasse hat eine „sync()“ Funktion. Diese Funktion holt sich von der REST-API über eine eigene Route „/downSync“ eine Kollektion aller wichtigen Daten für diesen User. Diese Kollektion enthält alle Tasks und Projekte, die für diesen User wichtig sind.</p>
<p>Das Sync-Objekt speichert diese Daten dann in den LocalStorage. Danach wird nach einigen Sekunden erneut sync() aufgerufen und die Daten im LocalStorage aktualisiert. Somit sind die Daten im LocalStorage immer (bis auf seltene Ausnahmen) eine Spiegelung der Daten von der REST-API.</p>
<p>Der nächste Schritt ist es, abzufragen, ob gerade eine Internet-Verbindung besteht. Das machen wir beim ersten Seitenaufruf über „navigator.onLine“, welcher den Online-Status zurückgibt. So wird ein Cookie „is-offline“ auf true oder false gesetzt. Danach wird bei jedem Sync-Versuch dieser Cookie angepasst, falls der Sync-Versuch fehlschlägt oder doch wieder klappt.</p>
<p>Falls die App erkennt, dass man plötzlich offline geht, schaltet sie auf jquery.ajax.fake um. Dafür verändern wir über die jQuery-Funktion „$.ajaxSetup“, welche Voreinstellung für alle folgenden $.ajax-Calls setzen kann, das Attribut „fake: true“. Dieses braucht jquery.ajax.fake, um zu wissen dass dieser Request gefakt werden soll.</p>
<p>Zusätzlich dazu muss man, damit die Fake-Responses funktionieren, für jede URL einstellen, welcher Response kommen soll. Da es unmöglich wäre, hier im Vorfeld alle möglichen URLs einzustellen (da wir ja auch Parameter wie IDs mitsenden), muss das automatisch geschehen. Das haben wir so gelöst, dass wir in der Ember-Data Methode, die für die AJAX-Aufrufe zuständig ist, noch eine Zeile hinzugefügt haben, die – vor dem Senden – zu der nun gleich gesendeten URL immer die gleiche Funktion aufrufen soll.</p>
<pre class="brush: jscript; title: ; notranslate">
$.ajax.fake.registerWebservice(url, function(data) {
    return restSyncer.fakeAjax(data);
});
</pre>
<p>Außerdem fügen wir vor dem Senden die URL als Parameter zum AJAX-Request hinzu.</p>
<p>Die Funktion, welche die Fake-AJAX-Responses zusammen bauen soll, kann dann über den so mitgelieferten Parameter „url“ ermitteln, welche Route angesprochen wurde, und dann aus dem LocalStorage entsprechend einen Response zusammenbauen und zurückgeben. Die eigentliche App merkt so nie, ob die Daten jetzt wirklich vom Server oder aus dem LocalStorage kommen. Sobald die App wieder online ist, wird automatisch umgestellt – ohne, dass der User es merkt.</p>
<p>Während diese Methode, soweit bisherige Test gezeigt haben, sehr gut und nahtlos funktioniert, hat sie auch zwei Nachteile: Jede Änderung der REST-API muss genau im Client gespiegelt werden, und es entsteht zusätzlicher Traffic durch das Syncen im Hintergrund. Letzteres werden wir in späteren Versionen optimieren, indem wir einen Timestamp der letzten Synchronisierung mitschicken und so nur neue Einträge erhalten. Außerdem soll man in der App die Frequenz der Sync-Abfragen einstellen können oder auch nur manuell synchronisieren.</p>
<p>Die aktuelle Implementation funktioniert bereits für alle GET-Requests. POST, PUT oder DELETE Requests sind aber genauso lösbar: Hierfür werden wir alle solche offline getätigten Requests eigens im LocalStorage speichern, und wenn die App wieder online geht werden diese gespeicherten Requests einer nacheinander erneut an den Server gesendet. Hierbei ist es besonders wichtig, den Status mitzuspeichern: Erstens muss der User immer wissen, ob gerade etwas synchronisiert wird oder ob alle Daten aktuell sind, und zweitens muss die App immer wissen, ob ein Request erfolgreich beim Server angekommen ist oder ob es wieder einen Fehler gab und es später erneut versucht werden muss, um den Verlust von Daten zu verhindern.</p>
<p>The post <a href="https://mobile.fhstp.ac.at/development/webdevelopment/offline-rest-fallback-mit-javascript/">Offline REST Fallback via LocalStorage</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Cache Manifest dynamisch erstellen</title>
		<link>https://mobile.fhstp.ac.at/development/cache-manifest-dynamisch-erstellen/</link>
					<comments>https://mobile.fhstp.ac.at/development/cache-manifest-dynamisch-erstellen/#comments</comments>
		
		<dc:creator><![CDATA[Kerstin Blumenstein]]></dc:creator>
		<pubDate>Fri, 06 Apr 2012 07:09:02 +0000</pubDate>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Webdevelopment]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Manifest]]></category>
		<category><![CDATA[mobile web]]></category>
		<category><![CDATA[Offline]]></category>
		<category><![CDATA[Web-App]]></category>
		<guid isPermaLink="false">https://akirchknopf-21110.php.fhstp.cc/?p=1931</guid>

					<description><![CDATA[<p>Will man eine Webanwendung auch ohne Netzwerkverbindung verfügbar machen, müssen im ersten Schritt alle serverseitigen Programmiersprachen verbannt werden. Im Klartext heißt das bei mir, PHP kommt nur noch für einen kleinen Webservice zum Einsatz, der via AJAX-Calls angesprochen wird. Alle anderen Dateien sind HTML-, JavaScript-, CSS- oder Bilddateien. Im zweiten Schritt kommt das Cache Manifest <a class="read-more" href="https://mobile.fhstp.ac.at/development/cache-manifest-dynamisch-erstellen/">[...]</a></p>
<p>The post <a href="https://mobile.fhstp.ac.at/development/cache-manifest-dynamisch-erstellen/">Cache Manifest dynamisch erstellen</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Will man eine Webanwendung auch ohne Netzwerkverbindung verfügbar machen, müssen im ersten Schritt alle serverseitigen Programmiersprachen verbannt werden. Im Klartext heißt das bei mir, <a href="http://php.net/manual/de/index.php">PHP</a> kommt nur noch für einen kleinen Webservice zum Einsatz, der via <a href="http://www.adaptivepath.com/ideas/ajax-new-approach-web-applications">AJAX-Calls</a> angesprochen wird. Alle anderen Dateien sind HTML-, JavaScript-, CSS- oder Bilddateien.<br />
<span id="more-1931"></span><br />
Im zweiten Schritt kommt das <a href="http://www.w3.org/TR/2011/WD-html5-20110525/offline.html">Cache Manifest</a> ins Spiel, dass im aktuellen Working Draft zu HTML5 spezifiziert ist. Die Datei enthält Informationen, welche Ressourcen meine Website benötigt. Werden für die eigene Webseite nicht viele Dateien benötigt, kann man die Datei händisch erstellen. Diese sieht dann wie folgt:<br />
<code><br />
CACHE MANIFEST<br />
./js/mobilot.js<br />
./css/mobilot.css<br />
./image/icon_sprite.png<br />
./image/icon_sprite@2x.png<br />
</code></p>
<p>Wichtig ist, dass sie mit CACHE MANIFEST beginnt. Anschließend werden alle notwendigen Dateien jeweils in einer Zeile aufgelistet. In meinem Fall habe ich sie als relative Pfade definiert, es können aber auch absolute Pfade angegeben werden. Wird die Website komplexer, bietet es sich an, die Erstellung der Cache Manifest Datei über ein Skript zu lösen. Ich habe das so realisiert:<br />
<code><br />
&lt;?php<br />
    header('Content-Type: text/cache-manifest');<br />
    echo "CACHE MANIFEST\n";<br />
    $hashes = '';</p>
<p>    $dir = new RecursiveDirectoryIterator(".");<br />
    foreach(new RecursiveIteratorIterator($dir) as $file){<br />
        if($file->IsFile()&& !strpos($file, "/.") && substr($file->getFilename(), 0, 1) !="." && substr($file->getFilename(), -3, 3) != "php"){<br />
            echo $file . "\n";<br />
            $hashes .= md5_file($file);<br />
        }<br />
    }<br />
    echo "# HASH: ".md5($hashes) . "\n";<br />
?><br />
</code><br />
Das Skript (inspiriert durch [1] und [2]) iteriert durch alle Unterverzeichnisse und schließt sowohl Dateien aus, die mit &#8220;.&#8221; beginnen als auch alle PHP-Dateien. Zusätzlich wird ein md5-Hash der Files generiert und dieser am Ende der Manifest-Datei als Kommentar ausgegeben. So kann sichergestellt werden, dass bei Änderung eines Files das Cache Manifest geändert wird und somit der Browser die Ressourcen neu lädt.</p>
<p>Die Manifest Datei muss mit dem Content-Type &#8220;text/cache-manifest&#8221; vom Server ausgeliefert werden. Wird sie manuell erstellt, kann dies bei einem Apache Webserver über die .htaccess-Datei erreicht werden. In diesem Fall muss dort die Zeile <code>AddType text/cache-manifest .manifest</code> hinzugefügt werden. In meinem PHP-Script erledigt das die Zeile <code>header('Content-Type: text/cache-manifest');</code> für mich.</p>
<p>Außerdem kann im Manifest spezifiziert werden, welche Dateien nicht gespeichert werden sollen und somit egal ob offline oder nicht immer vom Server geladen werden. Dies wird über den Bereich NETWORK: erreicht und nennt sich Whitelisting. Wichtig ist zu wissen, dass nur Dateien, die nicht zum Cachen angeführt sind, in diesem Bereich angeführt werden können. Zudem kann ein Bereich FALLBACK: definiert werden, in dem zwischen Online- und Offline-Verfügbarkeit unterschieden werden kann. Eine einfache Manifest-Datei könnte dann wie folgt aussehen:<br />
<code><br />
CACHE MANIFEST<br />
./js/mobilot.js<br />
./css/mobilot.css<br />
./image/icon_sprite.png<br />
./image/icon_sprite@2x.png</p>
<p>NETWORK:<br />
./image/menu.png</p>
<p>FALLBACK:<br />
./image/ ./offline.png<br />
</code><br />
In diesem File wird die im Ordner image liegende menu.png immer vom Server geladen (definiert im Bereich NETWORK:). Aus dem Bereich FALLBACK: können wir entnehmen: wenn eine Verbindung zum Netzwerk besteht, dann lade die Dateien im Ordner image, sonst lade die Datei offline.png.</p>
<p>Und zu guter Letzt muss der Startdatei der Webseite (in dem meisten Fällen wohl die index.html) im HTML Tag die Cache Manifest Datei verlinkt werden. Dazu wird das Attribut <code>manifest</code> gesetzt.<br />
<code> &lt;html manifest="cache.manifest"> oder auch z.B. &lt;html manifest="manifest.php"></code></p>
<p>Update 06.04.2012: Als Tücke beim Arbeiten mit dem Cache Manifest hat sich für mich heute herausgestellt, dass nur Dateien offline aufgerufen werden können, deren URL genau gleich im Cache Manifest hinterlegt sind. Das bedeutet, dass keine zusätzlichen Parameter beim Aufruf mitgegeben werden können, die nicht auch im Cache Manifest hinterlegt sind.</p>
<hr/>
<p>[1] Stark, J. (2011). <em>Android-Apps mit HTML, CSS und JavaScript [mit Standard-Web-Tools zur nativen App]</em>. Beijing; Cambridge; Farnham; Köln; Sebastopol; Tokyo: O’Reilly.<br />
[2] Kessin, Z. (2011). <em>Programming web applications in HTML5</em>. Sebastopol CA: O&#8217;Reilly Media, Inc.</p>
<p>The post <a href="https://mobile.fhstp.ac.at/development/cache-manifest-dynamisch-erstellen/">Cache Manifest dynamisch erstellen</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/development/cache-manifest-dynamisch-erstellen/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Immer noch Online? Oder surfst du schon Offline?</title>
		<link>https://mobile.fhstp.ac.at/ux/immer-noch-online-oder-surfst-du-schon-offline/</link>
		
		<dc:creator><![CDATA[Kerstin Blumenstein]]></dc:creator>
		<pubDate>Sat, 31 Mar 2012 09:45:32 +0000</pubDate>
				<category><![CDATA[User Experience]]></category>
		<category><![CDATA[Offline]]></category>
		<guid isPermaLink="false">https://akirchknopf-21110.php.fhstp.cc/?p=1659</guid>

					<description><![CDATA[<p>Was ist das iPhone ohne Internet? Ein ganz &#8220;normales&#8221; Telefon? Was kann man offline noch damit anfangen in unserer Online-Welt? Spätestens wenn man mit Tablett und Smartphone ins Ausland verreist, unterliegen die Geräte (und auch der Smartphone-Junkie selbst) angesichts der noch immer heftigen Roamingkosten einem Offline-Härtetest. In meinem Fall war ich vor kurzem in Deutschland <a class="read-more" href="https://mobile.fhstp.ac.at/ux/immer-noch-online-oder-surfst-du-schon-offline/">[...]</a></p>
<p>The post <a href="https://mobile.fhstp.ac.at/ux/immer-noch-online-oder-surfst-du-schon-offline/">Immer noch Online? Oder surfst du schon Offline?</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Was ist das iPhone ohne Internet? Ein ganz &#8220;normales&#8221; Telefon? Was kann man offline noch damit anfangen in unserer Online-Welt?<br />
Spätestens wenn man mit Tablett und Smartphone ins Ausland verreist, unterliegen die Geräte (und auch der Smartphone-Junkie selbst) angesichts der noch immer heftigen Roamingkosten einem Offline-Härtetest.<br />
In meinem Fall war ich vor kurzem in Deutschland und habe den Härtetestversuch unternommen: &#8220;Komme ich mit österreichischem iPad und iPhone sowie mit der Bahn in Deutschland ohne Roamingkosten aus?&#8221;<br />
<span id="more-1659"></span><br />
Mein Tripp ging zuerst zur Familie ins Herz von Deutschland und abschließend noch ein paar Tage nach Hamburg.<br />
Wie heißt es so schön: Gute Vorbereitung ist das halbe Leben. Ich wusste ja nicht, wann ich das nächste Mal in den Online-Genuss komme. Also den <a href="http://itunes.apple.com/de/app/hamburg-reisefuhrer/id376698347?mt=8" alt="Hamburg Reiseführer" target="_blanc">Hamburg Reiseführer</a> und <a href="http://itunes.apple.com/us/app/city-maps-2go/id327783342?mt=8" alt="City Maps 2Go" target="_blanc">City Maps 2Go</a> mit den entsprechenden Karten aufs Gerät &#8211; natürlich auch ein paar Spiele, alle anzuführen, würde wohl zu weit führen. Aber Monopoly ist es Wert, erwähnt zu werden.</p>
<p>Es versteht sich von selbst, dass man, solange man online ist, an alles Mögliche, was man offline benötigen könnte, denken sollte. Oder man sucht sich so ein tolles Hotel wie das <a href="http://www.raphaelhotels.de/hotel-stella-maris" alt="Stella Maris" target="blanc">Stella Maris</a> in Hamburg aus, wo gratis WLAN zur Verfügung steht. Ich muss also an der Stelle schon mal zugeben, dass ich nach einer Woche Abstinenz in geringen Dosen online sein konnte.<br />
Ein Tipp wäre auch McDonalds. Da aber braucht man, um in den Genuss einer Stunde gratis surfen zu kommen, eine deutsche Handynummer, die ich selbst dieses Mal nicht mit bei hatte. Das war also nix.</p>
<p>Facebook heißt es erstmal ade zu sagen, Mails ebenso.<br />
Zum Glück funktionieren viele (aber leider nicht alle) Spiele offline. Geschenke an Freunde schicken geht natürlich nicht und meine Erfolge über Facebook oder Twitter kundtun, kann ich auch nicht. Nicht, dass ich das jemals getan hätte&#8230;<br />
Die Hamburg City App ist extrem nützlich. Die GPS-Positionierung dauert merkbar länger, aber sie sagt mir dann doch, wo ich mich befinde und so find ich auch offline immer zurück zum Hotel. Mit dabei auch alle U- und S-Bahn-Haltestellen. Ein Hinweis: Die App &#8220;Karten&#8221; ist aufgrund der nicht vorhandenen Offline-Funktionalität keine Alternative <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;" /></p>
<p>Aber ich habe trotzdem den Härtetest nicht bestanden, denn&#8230; widerstehen konnte ich nicht bei der Rückfahrt. Am Bahnhof Hamburg schienen irgendwie alle Züge Verspätung zu haben und wie sich zum Schluss herausstellte, waren die Informationen über die DB-App sicherer als die der Zugbegleiter &#8211; sofern sie überhaupt irgendetwas gesagt haben. Unser Anschlusszug in Würzburg hatte natürlich keine Verspätung. Aber wir aus Hamburg &#8211; 1 Stunde und 20 Minuten. Da wünschte man sich doch, dass die Zugbegleiter bei der Deutschen Bahn ein entsprechendes Gerät mit der DB-App dabei hätten. Dann hätte ich nicht die Roamingkosten in Kauf nehmen müssen. Ok zugegeben: Die Kosten waren schon vor dem Gespräch mit dem besagten Zugbegleiter entstanden.</p>
<p>Wie ihr dem Post entnehmen könnt, wird das iPhone (und vermutlich auch andere Smartphones, mir fehlen da aber die Vergleiche) mit abgeschaltetem Daten-Roaming nicht zum &#8220;ganz normalen&#8221; Telefon. Der Akku hält aber in jedem Fall länger, sofern man nicht vergisst, die App mit der GPS-Positionierung zu beenden. Natürlich &#8211; Telefonieren geht, wenn man da wieder die Roamingkosten beachtet. Siri nicht. Es erinnert auch immer noch an Termine. Richtig aber nur, sofern man die aktuelle Version seines Kalenders gesynct hat.</p>
<p>Und warum das alles hier?<br />
In den nächsten Monaten werde ich mich im Zuge meiner Diplomarbeit mit dem Thema  Datensynchronisierung für mobile Informationssysteme mit dem Hintergrund einer Offline-Nutzung beschäftigen. Deshalb wollte ich ausprobieren, wie es ist offline zu sein. Mit Hilfe des zukünftigen HTML-Standards HTML5 ist es leicht möglich auch Webanwendungen offlinefähig zu machen. Dabei fällt mir auf, dass ich bewusst bisher keine Webanwendungen auf dem Smartphone nutze, die offlinefähig ist. Hoffen wir mal, dass sich das im Laufe meiner Diplomarbeit ändern wird. Ich werde euch auf diesem Blog auf dem Laufenden halten &#8211; unter dem Tag: <a href="https://akirchknopf-21110.php.fhstp.cc/tag/Offline/">Offline</a>.</p>
<p>The post <a href="https://mobile.fhstp.ac.at/ux/immer-noch-online-oder-surfst-du-schon-offline/">Immer noch Online? Oder surfst du schon Offline?</a> appeared first on <a href="https://mobile.fhstp.ac.at">Mobile USTP MKL</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
