RSSBeaver Mobile RSS Feed News Applikation mit automatisierten Push Benachrichtigungen Digitale Medienproduktion SoSe 16 Veranstaltung: Multimediaarchitektur Marcos Martinez Malte Ohlsen (Matrikel-Nr. 32732) Nils-Hendrik Welk (Matrikel-Nr. 33151) Inhaltsverzeichnis Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 03 Website. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 04 HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 05 CSS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 06 Grundaufbau. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 06 Zertifikate, Xcode und Swift. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 07 Zertifikate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 07 Swift 2.2 - Push Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 08 Swift 2.2 - App Aufbau und Funktion . . . . . . . . . . . . . . . . . . . . . . . . 09 Die Push Funktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 PHPmyAdmin, sql und PHP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Datenbank mit PHPmyAdmin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 PHP Skripte und Frameworks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 App Screenshots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Quellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Eigenständigkeitserklärung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Einleitung Einleitung Seitdem das World Wide Web entwickelt und in unsere Gesellschaft integriert wurde, ist es nicht mehr weg zu denken. Es sind diverse Möglichkeiten für verschiedene Branchen entstanden und es haben sich diverse neue Geschäftskonzepte etabliert. Durch die Schnelllebigkeit und Transparenz bieten diverse Dienstleister und Unternehmen ihre Produkte sowie Leistungen an. Insbesondere die Nachrichtendienste haben einen sehr großen Nutzen durch die positiven Eigenschaften des Internets. Dieses Schriftstück dient als Dokumentation unserer Semesterarbeit im Rahmen des Moduls „Multimedia Architekturen“ unter der Leitung des Dozenten Marcos Martinez an der Hochschule Bremerhaven im vierten Semester. Das Kernstück unserer Projektes bildet eine eigens programmierte iOS-Applikation, welche die RSS-Feeds von verschiedenen Nachrichtendienstleistern ausliest. Dies bedeutet, dass die gesamten Nachrichten der jeweilige Homepage in der App gebündelt nachgelesen werden kann. Mittels Push-Notification (u.a. Pop-Up-Fenster bei gesperrtem Bildschirm) wird der Benutzer der Applikation auf neue Nachrichten hingewiesen. Das Projekt wird des Weiteren durch eine eigene Homepage ergänzt. Diese ist erreichbar unter: http://www.beaver-media.de Wir beginnen in dieser Dokumentation mit der Erklärung und Beschreibung des Quellcodes für die Homepage (HTML & CSS). Anschließend gehen wir auf die Programmierung der iOS-Applikation ein, indem wir die benötigten Zertifikate sowie den in SWIFT 2.2 geschriebenen Code beschreiben. Darüber hinaus erklären wir die Funktionsweise der Push-Benachrichtigungen. Da die Applikation eine Dateibank für die Auslesung der RSSFeeds benötigt, wurde von unserer Gruppe ein Datenbank-Server mittels PHP und sql angelegt. Zusätzlich möchten wir Bilder als Beispiele für den Aufbau der Applikation zeigen. Abschließend werden wir in einem Fazit das gesamte Projekt und das Ergebnis reflektieren. Nun wünschen wir viel Spaß bei der Durchsicht unserer Arbeit. Einleitung I 03 Website Im Folgenden reflektieren wir unsere Vorgehensweise in der Gestaltung unserer Homepage. Dabei ist die Arbeit mit den Gestaltungssprachen wie HTM5L, CSS3, jQuery, Javascript, etc. maßgeblich. Um eine zeitgemäße Homepage erstellen zu können, haben wir uns eines Tutorials auf YouTube bedient, welches uns die Erklärung sowie den Code selbst zur Erstellung einer responsive Website bereitgestellt hat. In der weiteren Arbeit haben wir diesen Code als Grundlage für unsere Website benutzt, allerdings haben diesen stark auf unsere Bedürfnisse angepasst. Der Link zu dem Tutorial ist im Quellenverzeichnis zu finden. HTML5 Generell lässt sich sagen, dass die Startseite sowie deren Unterseiten eine einheitliche Struktur aufweist, da wir den Aufbau der Homepage aus dem angesprochenen Tutorial übernommen haben. Anhand der folgenden Grafiken möchten wir den gewählten Aufbau der Homepage erläutern. Abb. 1) Grundaufbau Startseite und Unterseiten Insgesamt lässt sich die Homepage in mehrere Abschnitte einteilen: die #menubar, der #header, die #nav, der #content (#main und #main article) sowie der #footer. Website I 04 HTML5 Auf weiteren Unterseiten haben noch zusätzlichen Content eingefügt: Abb. 2.) Grundaufbau der Unterseiten mit Sidebar Man erkennt neben dem #content noch weitere Inhalte. Diese dienen für die Navigation innerhalb der Feeds. Wie man anhand der Grafiken erkennen kann, ist am Kopfende der HTML5-Tag „Section“ mit der ID „#menubar“ platziert. Diese dient einerseits als gestalterisches Element, aber hauptsächlich im responsive Design als Platzhalter für einen erscheinenden Menü-Button, damit die Homepage auch auf Smartphones und Tablets lauffähig ist (vgl. Abb 1.W) Im nachfolgenden Header-Tag haben wir auf den Textbanner des eigentlichen Designs verzichtet und einen eigens gestalteten jpg.-Banner über den Code eingefügt. Abb. 3.) Headertag mit Bannerverknüpfung Anschließen folgt eine standardisierte, horizontal angelegte Navigation (HTML5-Tag nav) mit den vier Links bzw. Rubriken „Home“, „About Us“, „Feeds“ und „Kontakt“. Die Navigation wurde lediglich über CSS3 designed und formatiert. Die, über die Navigation aufrufbaren, Unterseiten beinhalten jeweils den transportierten Inhalt der Website: Website I 05 HTML 5 „Home“ ruft die Startseite der Homepage auf. Der Benutzer wird begrüßt und erhält Informationen über unser Projekt: In welchem Rahmen das Projekt gestartet wurde, welches Ziel wir verfolgen und was wir generell angestrebt haben. Unter der Rubrik „About Us“ kann der Besucher einige wenige Informationen über unser Team erhalten. Unter anderem stellen wir uns mit vollem Namen vor, die Köpfe hinter dem Projekt können auf Bildern betrachtet werden und der Leser erhält einen kurzen Einblick in unsere norddeutsche Persönlichkeit, die uns ausmacht. Sobald der Benutzer unserer Website „Feeds“ anklickt, gelangt dieser auf das Herzstück der Homepage. Durch den Klick gelangt der Leser auf eine Unterseite, auf der er Zugriff auf die Feeds der einzelnen Nachrichtendienste erhält (Abb. 4). Durch die Auswahl der Rubrik „Kontakt“ kann mit uns Studierenden der Email-Verkehr aufgenommen werden. Wir haben auf dieser Seite durch eine Vorlage ein ausfüllbares Formular installiert, womit wir automatisch eine Nachricht bei Kontaktwunsch erhalten. Unterhalb der Navigation ist der eigentliche Content der jeweiligen Seite platziert. Zu guter Letzt kann der Leser am unteren Bildschirmrand die Fußzeile (auch „Footer“ genannt) entdecken. An dieser Stelle im HTML5-Aufbau befindet sich die Verlinkung zu unserem Impressum. CSS3 CSS3 wird für die Gestaltung von Homepages verwendet. In unserem Fall haben wir uns eine Kombination aus Blau (Farbcode #0099ff)/ Weiß (Farbcode #ffffff) / hellem Grau (Farbcode #cccccc) sowie Schwarz (Farbcode #000000) entschieden. Neben der Strukturierung der Homepage wurde auch das responsive Design über das CSS3 geregelt. Responsive Design meint, dass sich die Formatierung der Website an das Wiedergabe- bzw. Endgerät anpasst und ebenfalls funktional ist. Dieses haben wir erreicht, indem inerhalb der CSS3-Formatierung Bedingungen formuliert werden, wie sich die Eingaben für das Aussehen ändern sollen, sobald der Bildschirm eine genaue Größe über- oder unterschreitet. Abb. 4) Unterkategorien Auf jeder Feed-Seite hat der Nutzer die Möglichkeit den Feed zu wechseln oder spezifisch eine Kategorie zu wählen. Grundaufbau Die Struktur der Homepage ist hierarchisch aufgebaut. Folgende Grafik erläutert den systematischen Aufbau der verwendeten Hierarchie: index.html Abb. 5.) Hierarchischer Seitenaufbau feeds about us kontakt impressum feeds.html style_feeds.css about us.html style_about us.css kontakt.html style_kontakt.css impressum.html style_impressum.css gmx ntv spiegel-online tagesschau t-online gmx.html style_gmx ntv.html style_ntv.css spiegelonline.html style_spiegelonline.css tagesschau.html style_tagesschau.css t-online.html style_t-online.css Unterthemen Unterthemen auto_gmx.html digital_gmx.html gesundheit_gmx.html reisen_gmx.html sport_gmx.html wirtschaft_gmx.html style_gmx_sub.css auto_t-online.html digital_t-online.html reisen_t-online.html sport_t-online.html wirtschaft_gmx.html style_gmx_sub.css Website I 06 Grundaufbau & CSS3 Zertifikate, Xcode und Swift Zertifikate Allererste Voraussetzung für die Erstellung von iOS Applikationen ist ein Mac OS X Betriebssystem und Xcode. Zum testen der Applikationen auf Endgeräten und einer Veröffentlichung im AppStore wird ein bezahlter Entwickleraccount bei Apple benötigt. Dieser ist aufgrund von vielen notwendigen Zertifikaten auch für eine App mit Pushanbindung unabdingbar. Um überhaupt erst einmal mit einer Applikation mit Push Benachrichtigungen zu beginnen, werden verschiedenen Zertifikate benötigt. Diese können im Apple Developer Center erstellt werden und ermöglichen überhaupt erst die Wege für Push Notifications. Notwendig um die App auf iOS Geräten zu installieren und testen zu können sind „development“ Zertifikate. Für eine Veröffentlichung im App Store werden „distrubition“ Zertifikate benötigt. Für die Push Anbindung sind speziell „iOS push development“ und „Apple push services“ Zertifikate erstellt worden (Abb. 6). Diese werden im Developer Center mit der App verknüpft. Für den Pushserver werden zwei weitere Zertifikate im Developer Center erstellt, ebenfalls für Testzwecke und zur Veröffentlichung (Abb. 7). Diese werden im „Keychain Access“ mit dem Entwickleraccount verknüpft und daraufhin mit einem Passwort versehen. Am Ende werden .p12 Zertifiakte exportiert (Abb. 8), welche in Terminal noch zu .pem Zertifikaten umgewandelt werden müssen (Abb. 9). Die Zertifikate werden direkt gemeinsam erstellt, damit später im .php Skipt und in der Datenbank bei einer evenutellen Veröffentlichung der App nur von „sandbox“ auf „production“ umgestellt werden muss. Dies sind die einzigen beiden Zertifikate, die mit auf den Server geladen werden müssen. Zu guter letzt werden noch „mobileprovisioning“ Profile erstellt, die direkt in Xcode zwecks Test und Veröffentlichung eingebunden werden müssen.Für die Erstellung der einzelnen Zertifikate wurde vorher am Mac ein „certSigningRequest“ erstellt, welche für jedes Zertifikat einzeln hochgeladen werden muss (Abb. 10). Ingesamt wurden zwölf Zertifikate und Profile erstellt, welche im Laufe des Prozesses entweder eingebunden oder umgewandelt wurden. Abb. 7) APS Push Zertifikate. Notwendig für die Verknüpfung von iOS Applikation und Push Server. Abb. 8) .p12 Zertifikate. Diese Zertifikate werden im Keychain Access aus den obigen Zeratifikaten erstellt und mit einem Passwort exportiert. Abb. 9) .pem Zertifikate. Die .pem Zertifikate werden mit auf den Server geladen und mit dem PHP Skript verknüpft. Dies sind die am Ende wichtigsten Zertifikate, die das „pushen“ überhaupt ermöglichen. Abb. 10) .certSigningRequest Datei Jedes Zertifikat, welches im Developer Center heruntergeladen wurde, konnte nur durch den Upload dieser Datei geschehen. Die .certSigningRequest Datei wird im Keychain Access erstellt und dient als Abgleich. Abb. 6) Mac OS X Schlüsselbundverwaltung mit Zertifikaten. Diese Zertifikate werden auf dem Mac installiert und ermöglichen in Verbindung mit Xcode das testen von Apps auf Endgeräten. Ausserdem das testen von Push Notifications (sandbox). Zertifikate, Xcode & Swift I 07 Zertifikate Swift 2.2 - Push Integration Nachdem jedes Zertifikat erstellt und in Xcode eingebunden wurde, konnte die App Entwicklung beginnen. Programmiert wurde die App mit Swift 2.2 und im main.Storyboard. Begonnen wurde mit der Push Integration. Dafür musste die „AppDelegate.swift“ herhalten. Begonnen wurde mit einer einfachen „print“ Funktion, welche die „Devie Token“ ausgibt (Abb. 11). Abb. 11.) Ausgabe der Device Token. Die Device Token werden in der Konsole ausgegeben. Diese sind später notwendig für die Push Benachrichtigungen, da jedes Gerät pro App einen „Device Token“ generiert. Die „Device Token“ werden im Laufe des Codes an „apns.php“ gesendet, welche mit der Datenbank verbunden ist. Somit gelangen alle Token in die Datenbank. Als nächstes werden Informationen abgefragt, ob die App „Alerts“, „Badges“ und „Sounds“ beim senden einer Benachrichtigung ausgeben darf. Um das Gerät zuzuteilen werden Geräteinformationen wie der Name, das Gerätemodell, die Geräteversion und die UDID (gerätespezifische Nummer) an die Datenbank gesendet, sobald der Nutzer die App öffnet und die „Benachrichtigungen erlaubt“ (Abb. 12). Abb. 12.) Geräteinformationen werden übermittelt Jegliche notwendige Informationen werden an die Datenbank weitergegeben. Um bei Unerreichbarkeit der Server eine Fehlermeldung zu erhalten, wurde diese im Code ebenfalls integriert. Der Push ist automatisiert, sprich er pusht von einem RSS Feed, sobald dort ein neuer Eintrag zu finden ist. Allerdings ist auch das manuelle senden von Benachrichtigungen (auch an einzelne Geräte über eine „fk_device“) möglich, weshalb der unterste Teil der „AppDelegate“ uns diese Möglichkeit über die „samples.php“ bietet (Abb. 13). Abb. 13.) Manuelle Push Benachrichtigungen. Über die „samples.php“ kann manuell Push an alle oder an ausgewählte Geräte gesendet werden. So können z.B. Ankündigungen oder wichtige Informationen ausserhalb des RSS-Pushs gesendet werden. Zertifikate, Xcode & Swift I 08 Push Integration Swift 2.2 - App Aufbau und Funktionen Die App ist relativ einfach und simpel aufgebaut, damit es für den Nutzer keine Probleme in der Bedienung gibt. Als Startseite werden direkt in einem „UIScrollView“ die jeweiligen RSS Feeds verlinkt. Dazu wurden in Photoshop passende Titelbilder und Banner erstellt, welche jeweils mit einem passenden „UIWebView“ verbunden sind (Abb. 14). Jeder RSS Feed hat dazu passend eine eigene .swift Datei mit der notwendigen Domain zum Feed. Abb. 16) RSS Beaver Launchscreen Bei jedem neuen starten der App wird kurz der Launchscreen angzeigt. Dieser ist wie der komplette App-Aufbau sehr schlicht, flach und einfach gehalten. Abb. 14.) Startseite und geöffneter „Spiegel Online“ RSS Feed Durch die Startseite mit den Feeds lässt sich einfach scrollen und daraufhin kann ein passender Feed ausgewählt werden. Dieser öffnet sich dann so, wie rechts zu sehen. Innerhalb der App kann der Nutzer zusätzlich noch durch die „UITabBar“ auf der unteren Seite zwischen den Feeds, Einstellungen und Kontakt wechseln. Die Einstellungen ermöglichen (derzeit nur beispielhaft, eine programmierte Option mit echter Funktion ist aber in Planung) das aktivieren und deaktivieren von einzelnen RSS Feeds, damit selbst gewählt werden kann, welchen Push man bekommen möchte. Der Kontaktbereich bietet eine integrierte Kontaktmöglichkeit per Mail und ein Impressum. Der Kontaktbereich erhält für die programmierten Anteile ebenfalls eine eigene .swift Datei, welche die Mail Integration per „mailComposeViewController“ und das Impressum Pop-up per „UIAlertController“ ermöglicht (Abb. 15). Abb. 17) RSSBeaver Homescreen Icon Das Homescreen Icon besteht aus der Appfarbe und dem passenden Logo, welches durchgehend in der App und auf der Website benutzt wird. Abb. 18) WebViewController „.Swift“ Jeder einzelne RSS Feed hat eine eigene Seite und damit auch eine eigene .swift Datei, damit die Integration zur jeweiligen Domain durchgeführt werden kann. Abb. 15.) Mail und Impressum Die „ContactViewController.swift“ Datei mit den notwendigen Swift Codes. Zertifikate, Xcode & Swift I 09 App Aufbau und Funktionen Die Push Funktion Das Hauptfunktion der RSSBeaver Applikation ist die integrierte Push Benachrichtigung. Diese ermöglicht es dem Nutzer bei jeder wichtigen Neuigkeit, die im RSS-Feed der jeweiligen Seite erscheint, benachrichtigt zu werden. Der Prozess, bis die Push Benachrichtigungen fehlerfrei zum Gerät gesendet wurden, war ein sehr langwieriger. Nach der allgemeinen Integration war es möglich durch die Mac OS X App „APN Tester“ und die Device Token des Gerätes Push zu senden (Abb. 19). Abb. 19.) APN Tester Getestet wurde der Push zu aller erst durch einen APN Tester, welcher testweise Push Mitteilungen an einen Device Token sende kann. Daraufhin sollte diese Funktion auch über ein PHP Skript funktionieren. Dafür muss lediglich in der „samples.php“ der Text (und gegebenenfalls die „fk_device“) geändert werden und die Seite muss daraufhin im Browser neu geladen werden. Direkt im Anschluss wurde dann eine Push Benachrichtigung versendet und durch das anklicken der Mitteilung wurde dann auch die App geöffnet. Nachdem alles in der „Test App“ funktioniert hat, haben wir diese Funktion auch in die RSSBeaver App integriert. Abb. 20.) Manueller Push über „samples.php“ In der „samples.php“ konnte die „addMessageAlert“ Funktion einen beliebigen Text enthalten und an alle Geräte aus der Datenbank senden. Zu guter letzt fehlte nur noch der automatisierte Push, welcher durch ein PHP Skript und notwendige Frameworks einen RSS-Feed nach Neuigkeiten abfragt und diese dann aussendet. Es können jederzeit RSS Feeds hinzufügt oder wieder entfernt werden. Theoretisch wäre auch ein eigener Feed möglich, der z.B. einen Blog beinhaltet. Durch diese Funktion wurde die App komplett und ermöglichte genau das, was wir zu Beginn des Projektes geplant hatten: Automatisierter Push, der innerhalb eines Intervalls einen RSS Feed abfragt und die Mitteilungen an alle Geräte sendet, die die App installiert haben. Zum genauen Aufbau und der Funktion auf den folgenden Seiten mehr. Zertifikate, Xcode & Swift I 10 Die Push Funktion phpMyAdmin, sql und PHP Datenbank mit phpMyAdmin Um Push Notifications an mehrere Geräte gleichzeitig (und automatisiert) zu senden wird ein Server benötigt. Auf diesem Server muss eine Datenbank angelegt werden, in der alle Geräte gespeichert werden. Um dies zu ermöglichen wurden „sql“ Tabellen von easyapns.com verwendet. Dazu gehören die „apns_devices“ und „apns_messages“ Tabellen (Abb. 21). Diese wurden in der Datenbank installiert und durch den Swift Code in der „AppDelegate.swift“, wird die Datenbank automatisch aktualisert, falls ein Nutzer den Push aktiviert. Zudem werden auch manuell gepushte Benachrichtigungen in der Datenbank gespeichert und können abgerufen werden (Abb. 22). Abb. 21) sql Tabellen Die drei notwendigen sql Tabellen für die Push Notification in der Datenbank. Abb. 22) Manuell gepushte Benachrichtigungen Die Manuell gepushten Benachrichtigungen werden aufgezeichnet und in der „apns_messages“ Tabelle gespeichert. Die aus dem „SimplePie“ Feed Parser entstammende Tabelle „push configs“ ist für den automatisierten Push zuständig. Wie im Swift Code programmiert sind alle notwendigen Informationen über das Gerät in der „apns_device“ Tabelleneinsehbar. Dazu gehören die Device Token, das installierte iOS, der Gerätename und mehr (Abb. 23). Um überhaupt den Push zu ermöglichen wurde die Datenbank mit allen notwendigen Logininformationen in den PHP Skripten hinterlegt. Auf die „apns.php“ greift Xcode ebenfalls zurück, damit der Abgleich stattfinden kann. In der Datenbank muss nach der Erstellung und Integrierung aller Tabellen kein weiterer Aufwand betrieben werden. Der Push läuft entweder automatisch oder bei manuellem Push über das „samples.php“ Skript. Die Datenbank kann aber als Informationsquelle, zur Analyse und Überprüfung verwendet werden und ermöglicht somit einen Überblick über alle Geräte. Abb. 24) Ersten Push Notifications Die ersten Push Notifications. Diese wurden alle am Anfang noch manuell über die „samples.php“ gesendet. Die Mitteilungen finden sich noch in der „apns_messages“ wieder. Abb. 23) Registrierte Geräte mit Informationen Die abgefragten Geräteinformationen werden in der Datenbank gespeichert und können dort abgelesen werden. PHPmyAdmin, sql und PHP I 11 Datenbank mit PHPmyAdmin PHP Skripte und Frameworks Der wohl größte Bestandteil der Anwendung spielt sich komplett im Hintergrund ab. Damit sind die PHP Skripte und passenden Frameworks gemeint. Insgesamt wurde eine vielzahl an API‘s, Framworks und Templates in Verbindung mit Stunden an Videotutorials benötigt, um alles zum laufen zu bringen. Der größte Bestandteil ist dabei der „easyapns.com“ Teil, welcher zwei der „sql“ Tabellen und die Verknüpfung zwischen iOS Gerät und PHP/Datenbank ermöglicht. Innerhalb dieser Skripte findet der Datenbankabgleich, der manuelle Push und ein Teil des Zertifikatabgleiches, statt. Abb. 25.) Datenbank Login-Informationen aus der „apns.php“ Damit der Push funktioniert, benötigt die die „apns.php“ Zugriff auf die Datenbank. Für den automatischen Push wurden neben PHP Skripten etwas „.json“ verwendet, hauptsächlich aber Frameworks wie „Composer“, „SimplePie“ und „zendframework“, welche alle in den Quellen zu finden sind. Natürlich musste auch hier wieder das .pem Zertifikat mit eingebunden und der Pfad in der „push.php“ angegeben werden. Abb. 27) Automatische Push Notifications Die ersten automatisierten Push Notifications, welche direkt vom RSS Feed abgefragt und daraufhin versendet wurden. Das „push.php“ Skript benötigt erneut eigenen Datenbankzugang und im Grunde ähnliche Informationen, die bei manuellem Push ebenfalls benötigt wird. Jedoch werden zusätzlich in einem Intervall RSS Feeds abgefragt und falls ein neuer Eintrag zu finden ist, wird automatisch an alle Geräte eine Mitteilung gesendet. Abb. 26.) Intervallabfrage und Feeds laden Die Abfrage wird gestartet und alle Feeds werden geladen. Daraufhin wird geschaut, was neu ist und daraufhin an alle Nutzer mit aktiviertem Push gesendet. Sobald alle Framworks, API‘s, PHP Dateien, etc. auf den Server geladen wurden, wurden zu aller erst aufgrund der unzähligen neuen Einträge minutenlang Push Nachrichten gesendet. Nach etwa fünf Minuten hat sich dies aber beruhigt und nun werden derzeit beispielweise aus dem GMX und Spiegel-Online Feed Push Notifications gesendet, wenn neue Einträge vorhanden sind. Im Moment sind das etwa ein bis zwei Push Nachrichten in 10 Minuten, dies könnte jedoch variabel eingedämmt werden, in dem z.B. nur ein Feed benutzt wird. Für unsere Zwecke haben wir aber möglichst viele Feeds aktiviert, um regelmäßig Push zu erhalten. PHPmyAdmin, sql und PHP I 12 PHP Skripte und Frameworks App Screenshots Beispielhaft können diese Screenshots einen ersten Einblick in die App bieten. Für einen detaillierten Überblick kann das mitgeschickte Video oder die Xcode Datei angesehen werden. RSSBeaver Startseite Geöffneter Feed Empfangene Push Nachrichten RSSBeaver Launchscreen RSSBeaver Einstellungen RSSBeaver Kontakt App Screenshots I 13 Fazit Fazit Im Nachhinein betrachtet, ist dieses Projekt mehr als erfolgreich verlaufen und wurde mit einem tollem Ergebnis beziehungsweise Produkt zum Abschluss gebracht. Das von uns am Anfang entwickelte Ergebnis wurde am Ende komplett so umgesetzt, wie es geplant war. Zu Beginn des Projekts haben wir zunächst beschlossen, einen eigenes Webspace zu mieten, um die von uns erstellten Dateien zu testen. Darüber hinaus wollten wir die Homepage online stellen, damit diese für Jedermann frei zugänglich ist. Zudem war ein Webspace inklusive Datenbank für die iOS Applikation maßgeblich. Insgesamt hat uns die Arbeit in dem Modul „Multimediaarchitekturen“ große Freude bereitet. Trotz kleinerer Rückschläge haben wir das vorgenommene Pensum mit recht großem Aufwand in sehr kurzer Zeit bewältigen können, so dass wir nun erfreut sind, dieses Modul mit einem sehr zufrieden stellenden Ergebnis abschließen können. Zusammenfassend lässt sich sagen, dass unser Projekt unter der Leitung von Herrn Marcos Martinez sehr positiv verlaufen ist. Sowohl die thematischen Inhalte als auch unsere Teamarbeit haben uns sehr überzeugt. Wir könnten unseren Wissensstand um die digitalen Medien weiter festigen und sogar viel mehr noch ausbauen, sodass wir persönlich sagen können, dass wir uns fachlich weiterentwickelt haben. Fazit I 14 Quellen Webentwicklung - https://www.weblica.ch/learning-center/allgemein/86.html (Zugriff: 12. August 2016) - https://www.youtube.com/watch?v=g2taIe7ZFUA (Zugriff: 12. August 2016) - http://www.web-toolbox.net/webtoolbox/formulare/formularvorlage01-a.htm (Zugriff: 15. August 2016) - https://github.com/enginkizil/FeedEk (Zugriff: 17. August 2016) iOS App Entwicklung - https://www.youtube.com/watch?v=kffK6pX-PMg (Zugriff: 15. August 2016) - https://www.youtube.com/watch?v=nJDtrvEOr40 (Zugriff: 15. August 2016) - https://www.andrewcbancroft.com/2014/08/25/send-email-in-app-using-mfmailcomposeviewcontroller-with-swift/ (Zugriff: 16. August 2016) - http://stackoverflow.com/questions/24668818/how-to-dismiss-view-controller in-swift (Zugriff: 16. August 2016) Push Integration & PHP/sql/Frameworks - http://www.easyapns.com (Zugriff: 12. August 2016) - https://www.youtube.com/watch?v=3HGPnuiLHM0&index=16&list=WL (Zugriff: 12. August 2016) - https://www.youtube.com/watch?v=x4swrHvBqEw (Videoreihe 1-14, Zugriff: 14. August 2016) - https://getcomposer.org (Zugriff: 18. August 2016) - http://simplepie.org (Zugriff: 18. August 2016) - https://framework.zend.com/manual/2.2/en/modules/zendservice. apple.apns.html (Zugriff: 18. August 2016) Bild und Iconquellen: - http://fontawesome.io (Zugriff: 12. August 2016) - https://image.freepik.com/free-icon/hans-shake_318-23259.png (Zugriff: 12. August 2016) - https://colorlib.com/wp/free-psd-iphone-mockup-templates/ (Zugriff: 22. August 2016) - http://silhouettesfree.com/animals/wild-animals/beaversilhouette-image-2.png (Zugriff: 12. August 2016) - Spiegel Online, N24, n-tv, Tagesschau, T-Online, GMX (Logo & Bannerbilder; Zugriff: 16. August 2016) - Apple (iTunes) AppStore (Icons in den Einstellungen; Zugriff: 14. August 2016) Verwendete Programme: - Xcode (in Verbindung mit einem Developer Account) - Adobe Dreamweaver, Photoshop, Illustrator, InDesign - Apple Final Cut Pro X und Adobe Premiere Pro - APN Tester Quellen I 15 Eigenständigkeitserklärung Hiermit bestätigen wir, dass wir die vorliegende Arbeit selbständig verfasst und keine anderen, als die angegebenen Hilfsmittel benutzt haben. Jegliche Bilddateien, die aus anderen Werken (dazu gehören auch Internetquellen) entnommen sind, wurden unter Angabe der Quelle kenntlich gemacht. Dies gilt ebenfalls für alle verwendeten Grafiken und Bilddateien, die in der Applikation eingesetzt wurden. Malte Ohlsen Nils-Hendrik Welk Bremerhaven, 24.08.2016 Beverstedt, 24.08.2016 Malte Ohlsen Matrikel-Nr: 32732 Nils-Hendrik Welk Matrikel-Nr: 33151 Eigentständigkeitserklärung I 16