Mobile RSS Feed News Applikation mit automatisierten Push

Werbung
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
Herunterladen