DATENSERIALISIERUNG & INTERNETZUGRIFF. Am Beispiel einer RSS-Reader-App

Ähnliche Dokumente
Wolkig bis heiter. Andreas Wismann WHEN OTHERS. APEX als Drehkreuz für Web Service-Anwendungen

LEITFADEN. Content Syndizierung. Datum: Leitfaden Content Syndizierung.docx Seite 1 / 10

Wordpress Kurzanleitung

Synchronisation eines HTC Smartphones mit Android

Bullshit-Bingo Gruppe 4

KWP20 Android Scanner Software:

Garmin POI-Sammlungen Download und Installationsanleitung

Schnittstelle Cordes & Graefe

RSS-Feeds in Outlook

Entwicklung einer REST-API zur Erstellung und Konfiguration von Microsoft Teams. Jan Kruse, utilitas GmbH

1. Abonnieren mit dem -Programm Thunderbird

Relution. Files App. Version

1. Erläuterungen zu Office 2 HD für das ipad

KBM Schneider / Stand: / Version: 1.1

TAN-App VR-SecureGo. Jederzeit sicher auf Smartphone oder Tablet. Anleitung zur TAN-App VR-Secure-Go. Einmalige Freischaltung erforderlich

BENUTZERANLEITUNG MY - KASSANDRO

GIMP - Ebenenmasken. Toni Kaufmann 28. April 2008

Delphi MVC Framework. Mathias Pannier

Web 2.0 Webseiten intelligent verknüpfen

Viewpoint. Webmail-Oberfläche. Kontakt: universität bonn Hochschulrechenzentrum Wegelerstr. 6, Bonn Tel.: 0228/

2.4 - Das Verwaltungsmodul moveon installieren - MS Access Version

UliCMS Umfrage-Modul. Version 1.0. Handbuch

UNIHOCKEY CLUB WEHNTAL REGENSDORF

RECHTSTEXT HOSTING-SERVICE

Um einen Datenverlust zu vermeiden empfehlen wir Ihnen Ihre gespeicherten Lastschriftvorlagen zu sichern.

Verwalten des App-Katalogs in SharePoint 2013

Dirk Ammelburger XML. Grundlagen der Sprache und Anwendungen in der Praxis HANSER

Password Depot für Android

ebeihilfe Der Beihilfeberechtigte startet ebeihilfe über den auf Ihrer Internet- bzw. Intranetseite hinterlegten Link.

Mainsaver Anwendung auf mobilen Geräten. Steve Unger

Ausgabe von Word-Serienbriefen mit SchILD-NRW

Favoriten speichern und verwalten im Internetexplorer 6.0

Tritt beim Aufruf ein Fehler aus, so wird eine MessageBox mit dem Fehlercode und der Kommandozeile angezeigt.

Erweiterungen im Redaktionssystem des Verband Wohneigentum e.v. 2010

*Hierzu wird Microsoft Word benötigt. Mit freien Textverarbeitungen wie Open Office ist dies leider nicht möglich.

b2boptic / SF7 Freiburg

Runde 2: Von der Statik zur Dynamik - Team Header

Denapp Bankdata Service

Datenbank konfigurieren

GEVITAS MobileCatalog

Inhalte strukturieren

Wie Sie mit einem Laufwerk von CD zu CD kopieren (Audio)

Sitepark Information Enterprise Server - die Technologie-Plattform von Sitepark

AK Medientechnologien 05 Delegation

Eine Zusammenfassung zum Einlesen von Garmin-Geräten

Daten aus MS Project in einer Datenbank ablegen

DataSpace 2.0 Die sichere Kommunikations-Plattform für Unternehmen und Organisationen. Your Data. Your Control

PREISE UND PREISLISTEN UNTER ORGAMAX BEARBEITEN

Kurzanleitung: Benutzerdefinierte Installation der

QR-Codes und APEX. Dr. Harry W. Trummer / Alexander Elsas Goethe-Universität Frankfurt

C-Box Herstellerunabhängiges Implementierungsbeispiel.

PayPal-Konten abrufen

Gebrauchsanleitung für die Installation von AuctionStudio mit Auktion:NG Export

Export bibliografischer Daten aus der FIS Bildung Literaturdatenbank und Import in die Endnote Literaturverwaltung

News. Einleitung. Ansicht im Frontend. Typo3-Support

BPE-/BRE-Integration in agree. Systemarchitektur, Technologien, Konzepte

2 Erste Schritte, Grundfunktionen und Symbole

Neues in Merlin Project ProjectWizards GmbH

Anmeldedaten: ov-ortsvereinsname - Bsp. ov-arnegg, ov-asch, ov-berghülen usw.

Benutzerberechtigungen und Berechtigungsstufen in SharePoint 2013

KeptSecret User Guide

Medien und Webtechnologie

Smart Smoke Detector. Von Govinda Hahl Internet der Dinge WS 16/

Informatik B. Vorlesung 14 Serialisierung, Autoboxing. Dr. Ralf Kunze

Sinn (und Unsinn) für Informix Benutzer

MobiFakt. für die Auftragserfassung unterwegs. Android Tablet oder Smartphone. csv Daten

Brainloop Secure Courier - Kurzanleitung

Vorlesung Informatik II

Anleitung zur Benutzung des Admin Control Panel

Flashfragen in ILIAS Test & Assessment. Helmut Schottmüller

Quickline Cloud Apps

2015 conject all rights reserved

MERLIN IPHONE. Der Schnelleinstieg ins mobile Projektmanagement ProjectWizards GmbH, Melle, Germany. All rights reserved.

Profile für mehrere ELO im Netz

IT > Anleitungen > Windows, Outlook Verteilerlisten erstellen (vor 2010) Verteilerliste erstellen

Merlin Project Go Anleitung ProjectWizards

Neue Funktionen der RedDot Version 7.1

9 Zeiger (Pointer). Dynamischer Speicher

Drucken und Löschen von angehaltenen Druckaufträgen

Wir haben für Sie eine einfache Bedienungsanleitung mit folgenden Themen erstellt.

Java und XML 2. Java und XML

Cockpit Update Manager

REST Client mit RPG und IceBreak

Hilfestellung zur smarten Zusammenarbeit mit Swisscom

CRM SharePoint Schnittstelle. Benutzerhandbuch. Dokumentenversionen , 6.0.1, 7.0.1

Analyse und praktischer Vergleich von neuen Access- Layer-Technologien in modernen Webanwendungen unter Java. Oliver Kalz

Vorgehensweise zum Update der X-431 Software

Dank Alexa auf Bildschirm, Maus und Tastatur verzichten. DB Systel GmbH Franziska Höcker Small Solutions Berlin

Eine Handschrift vektorisieren

Dokumentation. CleverReach Modul für Joomla!

Typo3: Nachrichten verfassen

PlanTeam-Server. Neuerungen in Version 7 / Patch 17. Seite 1. WeltWeitBau GmbH

Erstellen einer Excel-Tabelle für die Bundesjugendspiele

MBS FileMaker Plugin. Christian Schmitz

Komponentenorientierte Software-Entwicklung. Seite 1 / 42

FAQ. Governikus Add-In for Microsoft Office, Release bremen online services Entwicklungs- und Betriebsgesellschaft mbh & Co.

Aktivieren und Download des Topo Mosaik der Topo Deutschland

Chat. Didaktischer Kommentar. Lernplattform

Transkript:

DATENSERIALISIERUNG & INTERNETZUGRIFF Am Beispiel einer RSS-Reader-App

AGENDA (1/2) Allgemeines Projekt Einführung Konzept Live Demo Ausblick

AGENDA (2/2) Unterrichtseinheit Serialisierung Lokales speichern Internetzugriff REST-Kommunikation

ALLGEMEINES - MOTIVATION Datenserialisierung & Internetzugriff in Kombination werden bei nahezu jeder App benötigt und gehören daher zu den wichtigsten Grundlagen!

ALLGEMEINES - MOTIVATION

ALLGEMEINES - AUFGABE Internetzugriff Wie wird eine Verbindung zum Internet bzw. zu einer API aufgebaut? Wie baue ich eine Verbindung auf, ohne das sie die App blockiert?

ALLGEMEINES - AUFGABE Datenserialisierung Wie können Daten serialisiert und wieder deserialisiert werden? Also, wie werden Objekte z.b. in JSON und XML umgewandelt und umgekehrt?

ALLGEMEINES - ZIELE Erstellen einer sinnvollen App Die App soll das Themengebiet vollständig abdecken Erlernen der wichtigsten Methodiken Bearbeiten des Inhalts zu den wichtigsten Methodiken in allgemeinen Beispielen Ausdenken von Übungseinheiten und Aufgaben

ALLGEMEINES - ZEITPLAN Ideenfindung: 22.9-2.10 Konzept: 6.10-17.10 Implementierung: 20.10-21.11 Webseite: 24.11-05.12 Poster 8.12-12.12 Präsentation: 15.12-19.12

PROJEKT - EINFÜHRUNG Warum ein RSS-Reader? ein RSS-Reader ist eine sinnvolle App er deckt das Themengebiete vollständig ab es werden keine aufwändigen, vom wesentlichen ablenkende, Funktionen benötigt

PROJEKT - EINFÜHRUNG Ziele - Themengebiete: parsen von XML und JSON Verbindung zu einer API lokales speichern von Daten

PROJEKT - EINFÜHRUNG Ziele - Funktionsumfang: Pull-to-Refresh Funktion beziehen von Feeds speichern und löschen von Websites

KONZEPT Funktionen der App Architektur Serveranbindung

FUNKTIONEN DER APP RSS-Reader-App RSSIt Anlegen und Darstellen von Websites Lokales Abspeichern Synchronisation mit einem Server Parsen des RSS-Feeds Anzeige einzelner Artikel

ANLEGEN VON WEBSITES Abspeichern von Titel und Feed-URL Beim Abspeichern wird WebsiteItem erzeugt

DARSTELLEN VON WEBSITES Anzeige eines Arrays aus WebsiteItem s Löschen durch bekannte Swipe-Geste Aktualisieren durch Pull-To- Refresh

LOKALES ABSPEICHERN Damit die angelegten Websites auch nach Beendigung der App auf dem Gerät vorhanden sind, müssen sie lokal gespeichert werden Entweder CoreData oder direkt als Datei Also zuerst Array aus WebsiteItems als JSON serialisieren und danach im Documents-Ordner ablegen

SYNCHRONISATION MIT EINEM SERVER Zusätzlich sollen die angelegten Websites auch auf einem Server abgespeichert werden Also, serialisierte WebsiteItem s an REST- Schnittstelle senden bzw. vom Server empfangen Bei Pull-To-Refresh-Event pullen und bei Anlegen neuer Seite an Server pushen

PARSEN DES RSS-FEEDS Beim Klick auf eine angelegte Website, sollen alle Artikel aus dem Feed geparsed und in einer Liste dargestellt werden Auch hier: Pull-To-Refresh zum aktualisieren der Liste

ANZEIGE EINZELNER ARTIKEL Wenn ein Artikel ausgewählt wird, öffnet sich eine Webview mit dem entsprechenden Inhalt

MODEL-VIEW-CONTROLLER

ARCHITEKTUR

SERVERANBINDUNG Zur Synchronisation der abgespeicherten Websites eine einfache REST-Api Auf Basis von PHP & MySQL

LIVEDEMO

AUSBLICK User-Accounts Speichern der Artikelliste bzw. der ganzen Artikel Cachen von Bildern UI-Verbesserungen

UNTERRICHTSEINHEIT Serialisierung RSS-Feed Lokales speichern Internetzugriff REST-Kommunikation

SERIALISIERUNG Idee: Einzelne Internetseiten als WebsiteItem abbilden Speichern dieser WebsiteItems auf dem Gerät, sowie senden/empfangen an/von Server

SERIALISIERUNG WebsiteItem Name URL ID WebsiteItem Name URL ID WebsiteItem Name URL ID

SERIALISIERUNG Klasse JSONHelper.swift mit Methoden zum umwandeln von AnyObject in JSON und umgekehrt

SERIALISIERUNG Sowie Methoden zum Mappen von WebsiteItem in AnyObject und umgekehrt

RSS-FEED Idee: Anzeige einer Liste von Artikeln und bei Auswahl, soll der entsprechende Artikel in einer Webview angezeigt werden

RSS-FEED ArticleItem Titel Datum Beschr. URL ArticleItem Titel Datum Beschr. URL ArticleItem Titel Datum Beschr. URL

RSS-FEED Klasse RSSDownloader.swift, die die nötigen Methoden zum parsen des Feeds zusammenfasst Implementieren von NSXMLParserDelegate um Zugriff auf die nötigen optionalen Methoden parse zu bekommen

RSS-FEED

LOKALES SPEICHERN Abspeichern der angelegten Websites lokal auf dem Gerät, damit nicht nach jedem Start neue Einträge angelegt werden müssen

LOKALES SPEICHERN Verschiedene Techniken CoreDate Framework zum persistenten speichern von Daten Grundsätzlich die richtige Wahl Abspeichern von Dateien auf dem Gerät Dokumente gefüllt mit String können direkt abgespeichert und gelesen werden Bietet sich an, um Serialisierung zu verdeutlichen

LOKALES SPEICHERN Die Klasse File.swift wird geschrieben mit Methoden zum lesen und schreiben von Strings in eine Datei. So soll später eine JSON-Datei mit den WebsiteItems abgelegt werden

LOKALES SPEICHERN

INTERNETZUGRIFF Viele mobile Apps benötigen Internetkommunikation z.b. zum synchronisieren von Texten oder Bildern, für ein Usermanagement, zur Darstellung von Inhalten

INTERNETZUGRIFF Problem: Die Dauer eines Internetzugriffs ist schwer einschätzbar -> langsame Internetverbindung oder Server Wenn Internetkommunikation auf dem Hauptthread stattfindet, wird die GUI für die Dauer des Zugriffs blockiert Also: Auslagerung in Hintergrundthreads, damit der Nutzer nicht irritiert ist

INTERNETZUGRIFF Verschiedene Techniken unter ios NSOperation Grand Central Dispatch

INTERNETZUGRIFF Grand Central Dispatch Sehr effizienter Weg, um verschiedene Arbeitseinheiten zu initialisieren und dann gleichzeitig auszuführen Wenn ein Abschnitt abgebrochen oder pausiert werden soll, bedeutet dies extra Aufwand für den Entwickler

INTERNETZUGRIFF NSOperation Bildet eine weitere Schicht über GCD und kümmert sich selbstständig um die vorher genannten Aufgaben Dafür etwas mehr Overhead und deswegen nicht ganz so effizient Bietet sich aber für normale Anwendungen an, da die Kapazitäten eh nicht benötigt werden

INTERNETZUGRIFF

INTERNETZUGRIFF

REST-KOMMUNIKATION Warum Synchronisation mit Server? Um die Persistenz von Daten sicherzustellen Synchronisation von verteilten Systemen

REST-KOMMUNIKATION Was gibt es für Konzepte? SOAP (Simple Object Access Protocol) RESTful (Representational State Transfer)

REST-KOMMUNIKATION Warum REST? bessere Performance und geringere Bandbreitennutzung von Menschen lesbar schnellere Lernkurve und einfacher umsetzbar

REST-KOMMUNIKATION Von der Api bereitgestellte Funktionen: deletewebsite setwebsites getwebsites

REST-KOMMUNIKATION

ÜBUNGSAUFGABEN Das erlangte Wissen soll nun mittels Aufgaben vertieft werden Dazu bitte folgenden Link aufrufen: robin-media.de/thm/fma