You are on page 1of 37

OE R

Alexander Grabner
Matrikelnummer: 1030748

Wi k i

Bachelor Arbeit
Thema: Entwicklung einer OER-Wiki-Suche-App fr iOS

Technische Universitt Graz


Institut fr Informationssysteme und Computer Medien

Betreuer: Univ.-Doz. Dipl.-Ing. Dr. techn. Martin Ebner


September 2013

Inhaltsverzeichnis
1 Einleitung 2 Stand der Technik 2.1 Open Educational 2.2 Wikis . . . . . . . 2.3 Lizenzen . . . . . 2.4 Applikationen . . 3 Umsetzung 3.1 API . . . . 3.2 Objective C 3.3 Aufbau . . . 3.4 Applikation 3.5 Men . . . . 4 Diskussion 5 Zusammenfassung und Ausblick Literaturverzeichnis Abbildungsverzeichnis Quellcodeverzeichnis 1 3 3 4 6 9 10 10 13 16 17 24 29 30 31 34 35

Resources . . . . . . . . . . . . . . . . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

1 Einleitung
Ziel dieser Arbeit ist die Erstellung einer iOS-App, die versucht in verschiedenen OER-Wikis Informationen zu einem Suchbegri zu nden.

Das praktische Ziel dieser Bachelor Arbeit besteht in der Entwicklung einer mobilen Applikation fr das Smartphone-Betriebssystem iOS1 der Firma Apple INC2 . Diese App soll in mehreren Open Educational Resources Wikis nach Informationen zu einem gegebenen Begri suchen. Dabei soll ber eine klar denierte Schnittstelle auf die Datenbanken einer Vielzahl unterschiedlicher OER-Wikis zugegrien werden, um potentielle Artikel fr die Benutzerin oder den Benutzer zu nden. Eine Suche ist erfolgreich, wenn ein oder mehrere Artikel zu einer Anfrage gefunden werden. Die Suchergebnisse sollen fr die Benutzerin oder den Benutzer graphisch ansprechend arrangiert und prsentiert werden. Dabei soll das Design der Applikation intuitiv und gleichzeitig funktionell sein. Bei der graphischen Aufbereitung der Artikel soll vor allem die gefundene Information im Vordergrund stehen und eine gute bersicht des Inhalts gegeben werden. Die Darstellung der Resultate soll nicht nur Text beinhalten, sondern auch zustzliche Struktur-Elemente wie Hypertext, Tabellen, Bilder und Videos. Durch Hyperlinks soll es zudem mglich sein zwischen verschiedenen Artikeln zu wechseln, ohne die Applikation zu verlassen und einen separaten Webbrowser nen zu mssen. Da das Layout der Artikel typischerweise nicht fr mobile Endgerte, sondern fr klassische Monitore konzipiert ist, muss eine Lsung gefunden werden, um die Darstellung der vorhandenen Informationen auf kleinen Bildschirmen zu optimieren.

1 2

http://www.apple.com/ios/ zuletzt besucht am 7. September 2013 http://www.apple.com/ zuletzt besucht am 7. September 2013

Im Vorfeld der Arbeit sind die rechtlichen Rahmenbedingungen fr die Verwendung der Ressourcen der Wikis abzuklren. Die entsprechenden Nutzungslizenzen mssen beachtet werden und auch an die Benutzerin oder den Benutzer der App weitergeben werden. Gegebenenfalls muss die Zustimmung der Copyright-Inhaberinnen und -Inhaber eingeholt werden oder es mssen alternative Lsungen gefunden werden. Des Weiteren soll im Zuge der Vorbereitung eine umfangreiche Recherche zu den involvierten Themen durchgefhrt werden. So besteht das lern-theoretische Ziel dieser Arbeit darin, im Zuge der Realisierung fundiertes Wissen in den Bereichen Open Educational Resources, Nutzungslizenzen, Objective C und App-Entwicklung sowie Informationsdesign zu erwerben. Vorhandene Kenntnisse in Web-Technologien, Planung und Design von Software sollen vertieft werden. Nachdem der Prototyp der Applikation den Anforderungen entsprechend fertig gestellt und sorgfltig getestet wurde, soll die Applikation im Apple App Store3 unter dem Entwickleraccount der TU Graz4 verentlicht werden. Sobald der App Reviewing Process5 positiv bestanden wurde, knnen Besitzerinnen und Besitzer von iOS-Gerten die Applikation kostenlos aus dem Apple App Store beziehen und benutzen. Die Applikationen soll modular aufgebaut und leicht erweiterbar sein. Dadurch wird gewhrleistet, dass nderungen der Spezikationen schnell adaptiert werden knnen und auch zuknftig Features mhelos nachgerstet werden knnen. Wie fr mobile Applikationen typisch, endet der Lebenszyklus der Software nicht mit dem Release, sondern umfasst gewissenhafte Weiterentwicklung und Wartung des Programms. Der Name der Applikation soll kurz und aussagekrftig sein. Zudem soll ein gewisser Wiedererkennungswert gegeben sein und ein starker Bezug zu den behandelten Themen signalisiert werden. Der Titel der App lautet OER Wiki.

https://itunes.apple.com/genre/ios/id36?mt=8 zuletzt besucht am 7. September 2013 http://app.tugraz.at zuletzt besucht am 6. September 2013 5 https://developer.apple.com/appstore/guidelines.html zuletzt besucht am 6. September 2013
4

2 Stand der Technik


Eingangs werden die Begrie und Themen, die in der Arbeit abgehandelt werden, ausfhrlich erklrt.

2.1

Open Educational Resources

Eine uerst prgnante und vielfach zitierte Denition des Begris Open Educational Resources (OER) stammt aus dem Review of the Open Educational Resources Movement von Atkins, Brown und Hammond:

OER are teaching, learning, and research resources that reside in the public domain or have been released under an intellectual property license that permits their free use or re-purposing by others. [1, Seite 8, Kapitel 1.1]

Open Educational Resources sind freie Lern- und Lehrmaterialien. Diese Materialen knnen Artikel, Bcher, Videos, Graken oder Software sein. Aber auch Dinge wie Tests, Module oder ganze Kurse zhlen zu solchen freien Ressourcen. Kurz gesagt alle Arten von Materialen und Techniken, die als Untersttzung beim Lernen oder Lehren dienen knnen [1, Seite 8, Kapitel 1.1]. Besondere Bedeutung kommt jedoch dem Wort frei zu. Denn Open Educational Resources sind freie Lern- und Lehrmaterialien in doppelter Hinsicht. Erstens frei im Sinne von frei zugnglich. Das bedeutet, dass OER-Materialien von jedem kostenlos bezogen werden knnen. Das Internet bietet sich auf Grund des leichten Zugangs zu groen Mengen an Informationen und der schnellen Verbreitbarkeit von Inhalten als Zugangsmedium an. Jedoch knnen Open Educational Resources auch oine in Bibliotheken, universitren Einrichtungen, Schulen oder sonstigen Bildungssttten verfgbar sein.

Open Educational Resources sind zweitens frei in dem Sinn, dass ihre Verwendung fr das Lernen und die Lehre dezidiert durch die Urheberinnen und Urheber erlaubt wurde [2, Seite 5, Kapitel 5, Oene Lehr- und Forschungsressourcen]. Das bedeutet, dass sich die Inhalte und Materialien entweder in der Public Domain benden oder unter einer oenen Lizenz stehen, die die Benutzung, Vernderung und Weiterverbreitung ermglicht [3, Seite 7, Glossary of terms]. Der Begri OER entstand 2002 whrend einem UNESCO1 Meeting, das von der William and Flora Hewlett Foundation2 untersttzt wurde [4, Seite 3-4, Kapitel 1.1]. Seither ist die OER-Bewegung stetig gewachsen und Institutionen und Regierungen rund um den Globus konnten fr die Idee von weltweiten freien Bildungsmaterialien begeistert werden. Doch vielfach taucht die Frage auf, wer diese kostenlosen Lernund Lehrinhalte erstellen soll. Das Ziel ist es hoch qualitative Ressourcen zu erzeugen, ohne dass dabei die Kosten explodieren. Eine Mglichkeit nanzierbare OER Projekte zu schaen, stellen Wikis dar.

2.2

Wikis

Um Wrter, die den doppelsilbigen Laut wiki enthalten, herrscht auf Grund von unglcklichen Namensgebungen eine allgemeine Verwirrung. An dieser Stelle soll nun versucht werden Klarheit in Bezug auf diese Begrie zu schaen. Wiki Als Wiki wird typischerweise eine Web-2.0-Applikation bezeichnet, die ber einen Browser aufgerufen werden kann. Hinter dieser Applikation steht eine groe Datenbank, aus der Inhalte angezeigt, aber gleichzeitig auch verndert werden knnen. Das Wort wiki 3 stammt ursprnglich aus dem Hawaiianischen und bedeutet schnell und genau das ist das Schlsselwort. Ein Wiki ermglicht die schnelle und einfache Bearbeitung von Inhalten. In der Regel sind das Artikel zu einem bestimmten Thema. Diese Artikel knnen ber ein Web Interface interaktiv bearbeitet werden. Die nderungen treten sofort nach dem Speichern in Kraft. Web-Elemente wie Hyperlinks, Tabellen, Bilder oder Videos knnen mhelos eingebaut werden. Programmierkenntnisse sind nicht notwendig.
http://www.unesco.at/ zuletzt besucht am 6. September 2013 http://www.hewlett.org/ zuletzt besucht am 6. September 2013 3 http://de.wiktionary.org/wiki/Wiki zuletzt besucht am 6. September 2013
2 1

Die Grundphilosophie eines Wikis liegt darin, dass die Inhalte freiwillig und unentgeltlich von Benutzerinnen und Benutzern fr andere Benutzerinnen und Benutzer geschaen werden. Dadurch, dass jeder die Inhalte bearbeiten kann, werden die Informationen stndig verbessert und aktuell gehalten. Schlussendlich entsteht durch die gemeinsame Zusammenarbeit von vielen eine groe und qualitativ hochwertige Sammlung an Inhalten [10, Seite 1-23, Kapitel 1]. OER-Wiki Ein Wiki eignet sich somit hervorragend als Basis fr ein OER-Projekt. Es wird nicht nur das Problem der teuren Erstellung von Materialien gelst, sondern es werden auch einfache Rahmenbedingungen geschaen, um einer Vielzahl von Menschen das Mitwirken in OER-Projekten zu ermglichen. OER-Wikis sind demnach Wikis, die freie Artikel und Inhalte zu Lern-, Lehr- und Forschungsthemen in ihren Datenbanken halten. Diese Beschreibung trit auf sehr viele Wikis zu. Ein Beispiel fr ein OER-Wiki ist das TU Graz Wiki4 . Wikipedia Wikipedia ist eine Online-Enzyklopdie, die in 242 Sprachen verfgbar ist5 . Fr jede dieser Sprachen gibt es ein eigenes Wiki, das der gewhnlichen Internetbenutzerin und dem gewhnlichen Internetbenutzer in ihrer oder seiner jeweiligen Sprache bekannt sein sollte. Das englische Wikipedia Wiki6 ist mit 4,3 Millionen Artikeln und 11 Millionen Clicks pro Stunde das grte Wiki weltweit [Stand September 2013]. Das deutsche Wikipedia Wiki fasst stolze 1,5 Millionen Artikel und zhlt noch immer zu den 10 grten Wikis weltweit7 . Alle 242 Wikis zusammen bilden die Wikipedia. Diese Wikis sind ebenfalls OER-Wikis [11, Seite 97-103, Kapitel 7]. Wikimedia Die Wikimedia Foundation8 ist jene Institution, die Wikipedia betreibt. Wikipedia ist aber nicht das einzige Projekt der Organisation. Weitere bekannte Projekte sind Wiktionary, Wikibooks oder Wikiversity9 . Jedes dieser Projekte ist hnlich wie Wikipedia aus einer Menge von Wikis unterschiedlicher Sprachen aufgebaut.
http://oer.tugraz.at/ zuletzt besucht am 7. September 2013 http://stats.wikimedia.org/EN/ zuletzt besucht am 6. September 2013 6 http://en.wikipedia.org/ zuletzt besucht am 8. September 2013 7 http://meta.wikimedia.org/wiki/List_of_largest_wikis zuletzt besucht am 6. September 2013 8 http://wikimediafoundation.org/ zuletzt besucht am 6. September 2013 9 http://wikimediafoundation.org/wiki/Our_projects zuletzt besucht am 6. September 2013
5 4

Eine Ausnahme bildet das Projekt Wikimedia Commons, das ein Wiki ist und eine Sammlung von Bilder, Videos und Dateien fr alle Wikimedia Wikis darstellt. Die Wikimedia Foundation ist eine Non-Prot-Organisation, die sich groteils durch Spenden nanziert. Auf Werbung in den Wikis wird bewusst verzichtet. Mediawiki Mediawiki ist jene Software, die das Backend der Wikipedia Wikis und der anderen Wikis der Wikimedia Foundation bildet. Die Software ist in PHP geschrieben und der Quellcode steht frei zur Verfgung. Jeder kann das Programm downloaden und ein eigenes Wiki auf einem Server aufsetzen10 . Die Wikis von Wikipedia sind zwar die bekanntesten ihrer Art, aber bei weitem nicht die einzigen. Die Liste der aktuellen Mediawiki-Wikis zhlt fast 52.000 Eintrge. Auerdem ist zu beachten, dass Mediawiki zwar die populrste Wiki-Software ist, aber nicht die einzige. Es gibts hunderte Software-Alternativen in unterschiedlichen Programmiersprachen11 .

2.3

Lizenzen

Viele Inhalte im Internet knnen frei im Sinne von kostenlos heruntergeladen werden. Das bedeutet aber nicht, dass diese Inhalte auch ohne Restriktionen verwendet, verndert, verentlicht und weiterverbreitet werden knnen. Jedes Werk unterliegt prinzipiell dem Urheberrecht seiner Schpferinnen und Schpfer. Wird das Urheberrecht missachtet, so wird eine Straftat begangen. Verentlicht jemand beispielsweise ein geschtztes Buch, macht sich diese Person bewusst der Piraterie und des Plagiarismus schuldig. Es muss mit den strafrechtlichen Konsequenzen dieses Rechtsbruchs gerechnet werden. Die Urheberinnen und Urheber knnen Anklage erheben und es kann zu einem Gerichtsverfahren kommen [13, Piraterie, Kapitel 1]. Zudem gelten in beinahe allen Lndern der Erde unterschiedliche Gesetze. Gerade beim Zugri ber das Internet mssen diese nationalen Bestimmungen bercksichtigt werden, da der Datenuss in der Regel grenzberschreitend stattndet. Doch gerade bei Open Educational Resources und Wikis ist es ein Kernbedrfnis die Partizipation vieler zu frdern. Jeder soll in der Lage sein die Materialien zu
10 11

http://www.mediawiki.org/wiki/Download/ zuletzt besucht am 6. September 2013 http://c2.com/cgi/wiki?WikiEngines zuletzt besucht am 6. September 2013

verndern und weiterverbreiten zu knnen. Damit dies nicht nur technisch, sondern auch rechtlich mglich ist, kann die Urheberin oder der Urheber die Inhalte unter eine oene Lizenz stellen oder sie in die Public Domain entlassen. Public Domain Die Urheberin oder der Urheber kann smtliche Rechte an einem Werk abtreten und somit ihr oder sein Copyright ablegen. Ein Inhalt, der in der Public Domain12 liegt, kann von jedem verwendet, verndert, verentlicht und weiterverbreitet werden. Sogar kommerzielle Weiterverbreitung ist vom rechtlichen Standpunkt aus legal. Creative Commons Lizenzen Um den Inhaberinnen und Inhabern des Urheberrechts etwas mehr Kontrolle ber das weitere Schicksal ihrer Werke zu geben, werden oene Lizenzen verwendet. Ein Inhalt, der unter einer oenen Lizenz steht, kann unter bestimmten Bedingungen und unter Einhaltung bestimmter Voraussetzungen von jedem verwendet, verndert, verentlicht und weiterverbreitet werden. Oft wird von einem Copyleft gesprochen, das als abgeschwchtes Copyright angesehen werden kann. Obwohl es viele oene Lizenzen gibt, werden im Bereich von Wikis hauptschlich Creative Commons Lizenzen genutzt [15, Seite 40-60, Kapitel 2]. Creative Commons13 (CC) ist eine gemeinntzige Organisiation, die 2001 in den USA gegrndet wurde. Ziel der Organisation ist es allgemeingltige Rechtstexte zu schaffen, die die Verwendung, Vernderung und Weiterverbreitung von Werken regeln. Dazu verentlicht Creative Commons Standard-Lizenzen, die es auch juristischen Laien ermglichen, die Nutzungsbedingungen fr ihre Inhalte in einer einfachen Art und Weise rechtlich abzustecken. Abbildung 1 zeigt die vier Grundmodule:

BY NC
12 13

SA ND

Abbildung 1: Die Creative Commons Module, Creative Commons Attribution 3.0


http://creativecommons.org/publicdomain/ zuletzt besucht am 7. September 2013 http://creativecommons.org/ zuletzt besucht am 7. September 2013

by / by Autor Name der Urheberin oder des Urhebers muss genannt werden sa / Share Alike Darf nur unter der gleichen Lizenz weiterverbreitet werden nc / Non Commercial Darf nicht kommerziell verbreitet werden nd / No Derivates Darf nicht verndert werden Durch die Kombination dieser Module entstehen die konkreten Lizenzen. Die Bedeutung der einzelnen Lizenzen entspricht der Bedeutung der enthaltenen Module. So verlangt die CC-BY-SA Lizenz beispielsweise die Namensnennung der Urheberin oder des Urhebers und gleichzeitig ist eine Weitergabe nur unter gleichen Lizenzbedingungen mglich. Abbildung 2 zeigt die sechs aktuellen Lizenzen, die oziell von Creative Commons angeboten werden. Neben den internationalen Fassungen dieser Lizenzen gibt es auerdem noch Portierungen fr einzelne Lnder, die die jeweiligen nationalen Gesetze bercksichtigen.

Abbildung 2: Die Creative Commons Lizenzen, Creative Commons Attribution 3.0

Die Creative-Commons-Lizenzen eignen sich optimal fr OER-Projekte, da sie ein einfaches Tool sowohl fr die Benutzung als auch fr die Erstellung und die Bearbeitung von Inhalten darstellen. Durch die 4 simplen Module knnen die Nutzungsbedingungen eines Inhalts mit einem Blick verstanden werden. Zudem kann sicher gestellt werden, dass ein Werk auch nach der Vernderung unter einer oenen Lizenz bleibt. In Abbildung 3 wird ein weiters Beispiel fr die korrekte Verwendung eines CC-lizensierten Werkes gezeigt [Quelle14 Autor15 Lizenz16 ].
http://www.unesco.org/new/en/communication-and-information/access-to-knowledge/ open-educational-resources/global-oer-logo/ zuletzt besucht am 7. September 2013 15 http://www.jonathasmello.com/ zuletzt besucht am 7. September 2013 16 http://creativecommons.org/licenses/by/3.0/ zuletzt besucht am 7. September 2013
14

Abbildung 3: Das globale OER Logo von Jonathas Mello ist verfgbar unter der Lizenz Creative Commons Attribution 3.0 Unported

2.4

Applikationen

Im Apple App Store nden sich neben der oziellen Wikipedia App17 , eine ganze Heerschar von alternativen Readern fr Wikipedia-Artikel18 19 20 . Daneben gibt es viele Apps, die auf die Suche in einem speziellen Wiki beschrnkt sind21 22 . Zum Suchbegri OER wird nur eine Hand voll Applikationen gefunden, die jeweils eine spezische Datenbank nach Open Educational Resources durchsuchen23 24 . Eine App, die in mehreren Wikis gleichzeitig sucht, die gefunden Informationen kombiniert und zudem den Fokus auf Open Educational Resources legt, ist somit ein komplettes Novum. Auerdem sind viele der zuvor angesprochenen Apps kostenpichtig oder verlangen In-App-Purchases, um bestimmte Artikel zu sehen. Ziel dieser Arbeit ist es eine Applikation zu entwickeln, die diese vorhandene Lcke fllt.

17

https://itunes.apple.com/at/app/wikipedia-mobile/id324715238?mt=8 zuletzt besucht am 7. September 2013 18 https://itunes.apple.com/at/app/minipedia-offline-wiki-wikipedia/id473512078? mt=8 zuletzt besucht am 7. September 2013 19 https://itunes.apple.com/at/app/articles-wikipedia-reader/id364881979?mt=8 zuletzt besucht am 7. September 2013 20 https://itunes.apple.com/at/app/simplepedia-simple-wikipedia/id329676510?mt=8 zuletzt besucht am 7. September 2013 21 https://itunes.apple.com/at/app/pokemon-wiki/id432318562?mt=8 zuletzt besucht am 7. September 2013 22 https://itunes.apple.com/at/app/gb-console-games-wiki/id430606620?mt=8 zuletzt besucht am 7. September 2013 23 https://itunes.apple.com/at/app/oer/id630166391?mt=8 zuletzt besucht am 7. September 2013 24 https://itunes.apple.com/at/app/merlot-oer-search/id541266116?mt=8 zuletzt besucht am 7. September 2013

3 Umsetzung
3.1 API

Die wichtigste Frage im Kontext dieser Applikationen lautet: Wie wird auf die Daten der Wikis zugegrien? Es ergeben sich zwei Optionen. Die Daten werden lokal am Smartphone gehalten oder bei Bedarf aus dem Internet bezogen. Die Entscheidung fllt klar zu Gunsten der letzteren Variante aus: Erstens verfgen mobile Gerte typischerweise nicht ber gengend Speicherplatz, um eine ganze Wiki-Datenbank oder gar mehrere zu halten. Zweitens muss eine lokale Datenbank laufend aktualisiert werden, wodurch ein enormes Datenvolumen verbraucht wird. Drittens haben Smartphones weitaus weniger Rechenleistung, um Such-Probleme zu lsen als dezidierte Web-Server. Die einzig logische Konsequenz besteht also darin, rechenintensive Tasks auf die Wikis selbst auszulagern und sich auf dem Smartphone auf die reine Prsentation der Daten zu beschrnken. Die Software Mediawiki bietet eine klar denierte Entwickler-Schnittstelle (Application Programming Interface, kurz API). Durch diese API kann auf die Datenbank eines Wiki, welches auf Mediawiki basiert, zugegrien werden. Die API bietet unzhlige Funktionen wie das Suchen von Daten, Extrahieren von Daten, Verndern von Daten, Login/out von Accounts und mehr. Dadurch wird es Entwicklerinnen und Entwicklern leicht gemacht Wiki-Funktionalitten in ihre Software einzubauen [16, Kapitel: action, format]. Um eine API-Anfrage zu starten, wird ein HTTP GET Request an das gewnschte Wiki gesendet. Genauer gesagt wird ein Request an einen Server, auf dem die Software Mediawiki luft, geschickt. Die gewnschten Funktionsaufrufe und -parameter werden dabei in die URL des HTTP GET Request gepackt. Der Server antwortet mit einem HTTP GET Reply, in dessen Body sich die Antwort bendet.

10

In der Regel wird die gewnschte Funktion als action und das gewnschte DateiFormat der Antwort als format in der URL der Anfrage speziziert. Zudem knnen weitere optionale Parameter angefgt werden. Die einzelnen Statements folgen der Syntax key=value und werden durch ein & getrennt. Als Datei-Format verwendet diese App fr alle Anfragen JavaScript Object Notation1 (JSON), da es sich hierbei um ein schlankes und leicht lesbares Datei-Format handelt, welches im Web oft zum Datenaustausch verwendet wird. Die Applikation reduziert die Kommunikation mit den Wikis auf 3 wesentliche API-Anfragen. Die Anfragen dienen entweder dem Finden von potentiellen Artikeln oder dem Download eines spezischen Artikels.

Open Search

1 http://oer.tugraz.at/api.php?action=opensearch 2 &format=json 3 &search=OER Quellcode 1: API-Such-Anfrage

Um ein Wiki nach potentiellen Artikeln zu einem gegebenen Suchbegri zu befragen, wird eine API-Anfrage mit action=opensearch gestellt (siehe Quellcode 1). Dabei muss auch noch der Suchbegri, in diesem Fall OER angegeben werden. Die Antwort des Servers enthlt eine Liste mit den Titeln von maximal 10 Artikeln, die am besten zu diesem Suchbegri passen (siehe Quellcode 2).

1 ["OER",["OER-Angebote", 2 "OER-Nachrichten", 3 "OER-Projekte"]] Quellcode 2: API-Such-Antwort

http://www.json.org/ zuletzt besucht am 8. September 2013

11

Parse

1 http://oer.tugraz.at/api.php?action=parse 2 &format=json 3 &prop=text|displaytitle|headhtml 4 &page=CC_BY Quellcode 3: API-Artikel/Parse-Anfrage

Zu einem gegebenen Artikel-Titel wird der Artikel selbst durch den Aufruf der Funktion action=parse (siehe Quellcode 3) angefordert. Der Titel des gewnschten Inhalts lautet in diesem Fall CC_BY . Um die Datenbertragung mglichst gering zu halten, werden mit prop nur jene Daten angefordert, die unbedingt erforderlich sind. Dadurch wird die Downloadgeschwindigkeit erhht und das Datenvolumen der Benutzerin oder des Benutzers geschont.

Random

1 http://oer.tugraz.at/api.php?action=query 2 &format=json 3 &list=random 4 &rnlimit=10 Quellcode 4: API-Zufalls-Anfrage

Des Weiteren ist es mglich, eine Liste mit zuflligen Titeln zu erhalten (siehe Quellcode 4). Die Antwort eines Random Request ist gleich strukturiert wie jene einer Open Search (siehe Quellcode 2). Wiederum wird der konkrete Artikel mit einer action=parse Anfrage geladen. Diese Funktion bietet eine hervorragende Mglichkeit, um neue Inhalte zu entdecken.

12

1 http://oer.tugraz.at/api.php?... 2 http://oer.tugraz.at/w/api.php?... 3 http://oer.tugraz.at/wiki/api.php?... Quellcode 5: API unterschiedliche URLs

Beim Zugri auf die Datenbank eines Wikis kann es vorkommen, dass ein w/ oder wiki/ an die URL des Wiki angehngt werden muss (siehe Quellcode 5). Diese Eigenheit ist auf unterschiedliche Versionen der Mediawiki Software und persnliche Installationsprferenzen der Wiki-Betreiberinnen und Betreiber zurckzufhren.

3.2

Objective C

Zur Entwicklung von iOS und Mac Applikationen bietet Apple die IDE Xcode2 an. Diese Software, die nur fr das Betriebssystem OS X3 von Apple verfgbar ist, stellt eine umfangreiche Entwicklungsumgebung fr iOS Applikationen bereit. Xcode verfgt neben einem Source-Code-Editor mit herausragender Autovervollstndigung ber einen iOS Simulator mit integriertem Debugger. Weiters stehen Performance Analyse Tools, ein Datei Explorer und ein Interface Builder zur Untersttzung der Entwicklung bereit.

Programmiersprache Zur Programmierung von iOS und Mac Software wird die Sprache Objective C verwendet [17, Seite 19-82, Kapitel 2]. Hierbei handelt es sich um eine auf C aufsetzende Sprache, die zustzliche Konstrukte einfhrt, um objektorientierte Programmierung zu ermglichen. hnlich wie in C++ werden Klassendenitionen von den konkreten Implementierungen getrennt. Die Denitionen werden in class.h Files postuliert, die Realisierungen in class.m Dateien. Ableitungen von Klassen sind mglich und in der Regel lassen sich alle Klassen in ihrer Erbhierarchie auf die Urklasse NSObject zurckfhren (siehe Quellcode 6).
2 3

https://developer.apple.com/xcode/ zuletzt besucht am 9. September 2013 http://www.apple.com/at/osx/ zuletzt besucht am 9. September 2013

13

Public-Methoden werden in class.h Files deniert, private Methoden in class.m Dateien. Im Unterschied dazu ist der Zugri auf Instanzvariablen, die in der Headerdatei deniert wurden, nicht entlich.

1 2 3 4 5 6 7 8 9

@interface Wiki : NSObject { // instance variables NSString *name; // non public variable } // public method -(NSString *)getName; @end Quellcode 6: Objective C Beispiel

Properties Properties in Objective C bieten eine elegante Mglichkeit, um den Zugri auf Instanzvariablen entlich zu machen. Fr jede Property wird automatisch eine private Variable inklusive der passenden Getter- und Setter-Methoden erzeugt. Der entscheidende Vorteil dieser Konstrukte liegt jedoch darin, dass Mittels dot-Notation auf die Variable zugegrien werden kann und das auch in fremden Methoden und Klassen. Es fhlt sich also so an, als wre die Variable public (siehe Quellcode 7). Fr jede Property muss ein entsprechendes @synthesize im class.m File der Klasse aufgerufen werden.

1 2 3 4 5

@interface Wiki : NSObject <WikiProtocol> { } @property NSString *name; @end Quellcode 7: Objective C Properties und Protocols

14

Protocols Protocols haben in Objective C hnliche Bedeutung wie Interfaces in Java. Ein Protocol ist im Prinzip eine Liste von Funktions-Headern, die von einer Klasse implementiert werden. Dies ermglicht Mehrfachvererbung in Objective C. Eine Klasse kann mehrere Protocols implementieren. Diese werden in spitzen Klammern nach dem Klassennamen im class.h File angefhrt (siehe Quellcode 7). Categories Categories bieten die Mglichkeit bestehende Klassen zu erweitern. Dies macht besonders fr vorgegebenen Klassen wie UIViewController Sinn, deren Implementierung ansonsten nicht verndert werden kann. Im Prinzip werden einer gegebenen Klasse durch eine Category weitere public Methoden hinzugefgt. Properties, Protocols und Categories sind mchtige Programmierkonstrukte und wurden alle samt zur Implementierung der Applikation verwendet. ARC Mit iOS 5 wurde das sogenannte Automatic Reference Counting (ARC) eingefhrt. ARC ist eine Erweiterung des bestehenden Speichermanagementsystems. Das Kernkonzept von ARC besteht darin, der Programmiererin oder dem Programmierer die Verwaltung des dynamisch allokierbaren Speichers abzunehmen. Objekte, fr die dynamischer Speicher angefordert wurde, mssen nicht mehr von Hand freigegeben werden. Im Unterschied zum Garbadge Collector in Java wird nicht zur Laufzeit entschieden, wann Speicher deallokiert wird. Jedes Objekt erhlt einen Counter, der die Anzahl der Referenzen auf das betreende Objekt widerspiegelt. Wenn alle Referenzen auf ein allokiertes Objekt bewusst oder unbewusst verloren gegangen sind, kann der zugehrige Speicher freigegeben werden. Der Compiler kann erkennen, an welchen Punkten im Programm dies der Fall ist und fgt Statements zur Freigabe der allokierten Ressourcen genau an den entsprechenden Stellen ein [19, Seite 399-420, Kapitel 17]. Da die Verwendung von ARC von Apple empfohlen wird und iOS 5 noch weitere ntzliche Funktionen einfhrt, setzt diese Applikation das Featureset von iOS 5 voraus. Diese Iteration des Betriebssystems ist fr iPhones ab dem 3GS, iPod Touch ab der 3. Generation und alle iPads verfgbar.

15

3.3

Aufbau

ViewController
CenterViewController

Model
Downloader

MenuViewController

Wiki

Abbildung 4: Strukturbild der App

Auf Grund der bereits vorhandenen Basisklassen fllt es leicht die Applikation nach dem Designprinzip Model-View-Controller zu entwerfen. Dadurch kann die Darstellung der Inhalte von den Berechnungen im Hintergrund getrennt werden. So wird gewhrleistet, dass die graphische Benutzeroberche der Applikation schnell und unabhngig von der Logik des Modells verndert werden kann. Apple fasst die Komponenten View und Controller in der Klasse UIViewController zusammen. Jede Ansicht verfgt somit ber einen eigenen Controller, der beim Auslsen gewisser Events wie zum Beispiel dem Drcken eines Buttons eine Aktion im Hintergrund startet. Meist wird dies das Nachladen von Daten aus dem Web sein. Hierfr kommunizieren die ViewController mit der Klasse Downloader . Der Downloader bernimmt die Kommunikation mit den Wikis und regelt andere Vorgnge im Hintergrund. Wenn neue Daten vorhanden sind, informiert er die ViewController, die wiederum die graphische Benutzeroberche updaten.

16

3.4

Applikation

Beim Start der Applikation wird eine schlichte Ansicht, die Center View (siehe Abbildung 5) geladen. Sie zeigt eine Suchleiste, einen Button und eine kleine Animation. Das Keyboard erscheint sofort und die App wartet auf Sucheingaben der Benutzerin oder des Benutzers.

Abbildung 5: Center View

Suche Wenn ein Begri eingegeben wurde und die Suchtaste gedrckt wurde, ruft der CenterViewController eine Subklasse von UIViewController eine Funktion des Downloader auf. Damit der Downloader die Datenbanken von allen der Applikation bekannten Wikis nach dem Begri durchsuchen kann, muss er an jedes Wiki eine API Such Anfrage (siehe Quellcode 2) schicken. Die bentigten URLs werden aus den URLs der Wikis generiert und anschlieend werden mit der in iOS 5 eingefhrten Funktion sendAsynchronousRequest HTTP GET Requests gestellt. Der Vorteil dieser Funktion liegt darin, dass fr jede HTTP Kommunikation ein eigener Thread erzeugt wird, der den Datenaustausch behandelt. 17

Dadurch wird der Haupt-Thread (GUI-Thread) entlastet und das User Interface blockiert nicht, sondern kann weiterhin ssig bedient werden. So knnen die Downloads parallelisiert werden und es kann eine groe Anzahl von Wikis durchsucht werden, ohne Geschwindigkeitseinbuen hinnehmen zu mssen [18, Kapitel 8.4]. Sobald ein Thread seinen Download beendet hat, hngt er einen Completion-Block in die Operation Queue des Haupt-Thread. Dadurch wird sicher gestellt, dass die Bearbeitung der Antworten nur sequentiell und nicht parallel erfolgt. Race Conditions knnen auf diese Weise vermieden werden. In diesem Completion-Block wird die Antwort des Wiki Servers (siehe Quellcode 2) mit Hilfe der Klasse NSJSONSerialization in ein NSDictionary geparst, dass anschlieend einfach ausgelesen werden kann. Das Dictionary kann wie eine Map angesprochen werden und liefert einen Value zu einem gegebenen Key. Der Haupt-Thread wartet bis alle Downloads erfolgreich oder fehlerhaft beendet wurden und erstellt eine Liste aller gefundener Titel inklusive der zugehrigen Wikis. Diese Liste wird anschlieend in einer Result View (siehe Abbildung 6) angezeigt.

Abbildung 6: Result View

Abbildung 7: Article View

18

Die Benutzerin oder der Benutzer kann einen Titel aus der Result View (siehe Abbildung 6) auswhlen. Sobald ein Titel ausgewhlt wurde, wird eine API-Parse-Anfrage (siehe Quellcode 3) gestartet, um den Artikel, der hinter diesem Titel liegt, zu laden. Wiederum wird ein asynchroner Download gestartet, doch diesmal mit einem anderen Completion-Block. Ein erfolgreich geladener Artikel wird nach dem Download in einer Article View (siehe Abbildung 7) angezeigt. Enthlt die Liste der gefundenen Artikel zu einem Suchbegri nur genau einen Titel, so wird die Result View nicht angezeigt und stattdessen wird der Artikel zu diesem Titel direkt mit einer Parse Anfrage geladen und in einer Article View angezeigt. Beim Drcken des Random Button (siehe Abbildung 5) wird wieder der Downloader aktiv. In diesem Fall wird ein zuflliges, aktives Wiki ausgewhlt, an das eine APIZufalls-Anfrage (siehe Quellcode 4) gesendet wird. Die Antwort des Wiki enthlt eine Liste von zehn zuflligen Titeln. An und fr sich wrde ein Titel gengen, doch es hat sich gezeigt, dass bei Zufallsanfragen oft Inhalte des Typs Datei oder Benutzer returniert werden. Solche Inhalte knnen durch die Mediawiki API nicht direkt bezogen werden und somit auch nicht als Artikel dargestellt werden. Der Downloader whlt also einen geeigneten Zufallstitel, der dann ber eine Parse-Anfrage (siehe Quellcode 3) geladen und in einer Article View angezeigt wird. Artikel Die Artikel knnen durch die Mediawiki API entweder in ihrer ursprnglichen Datenbankformatierung oder in HTML Tags formatiert abgerufen werden. Die ursprngliche Formatierung msste am Smartphone nach dem Download geparst werden, um die internen Statements der Wiki-Datenbank in darstellbare iOS Elemente umzurechnen. Dies bentigt viel Rechenleistung und Zeit. Zudem ist die DatenbankFormatierung der einzelnen Wikis je nach Version der Software unterschiedlich und daher nicht einheitlich. In Anbetracht der Umstnde stellt diese Variante keine zufriedenstellende Option dar. Damit die vorhandenen Ressourcen geschont werden, werden die Artikel als HTML formatierte Strings geladen. Da die Artikel in der Regel nicht nur Text, sondern auch Elemente wie Hypertext, Bilder, Videos, Tabellen und mehr enthalten und typischerweise in einem Browser betrachtet werden, empehlt sich die Darstellung der Inhalte mit der Cocoa Klasse UIWebView , welche im Prinzip einen vollwertigen Browser darstellt (siehe Abbildung 7). 19

Eine UIWebView kann lokale HTML Strings anzeigen oder externe Websiten anhand einer URL laden. Doch reine HTML Strings ohne Layout sind weder in einer Webview noch in einem Browser anschaulich. Eine Erweiterung fr Mediawiki bietet zwar die Mglichkeit optimiertes Mobile-HTML mit Inline-CSS zu parsen4 , doch diese Erweiterung ist nur auf einem Bruchteil aller Wiki-Server verfgbar. Daher muss ein eigener Stylesheet entworfen werden. Beispiele fr das Layout des Style Sheets werden in den Screenshots gezeigt (siehe Abbildungen 7, 8, 10, 11). Bei der Anzeige von lokalen HTML Strings knnen zustzlich Bilder von einer bestimmten URL nachgeladen werden, jedoch kann nicht gleichzeitig ein lokaler Stylesheet geladen werden. Dies wird durch die Same Origin Policy5 , die einen Sicherheitsmechanismus moderner Browser darstellt, verboten. Diese Einschrnkung kann jedoch umgangen werden, indem der Inhalt des Stylesheets als String geladen wird, in <style>...</style> Tags gepackt wird und vor den eigentlichen HTML String gesetzt wird. Im Zuge der Entwicklung des Stylesheets hat sich gezeigt, dass viele Artikel InlineCSS enthalten, das nicht ohne weiteres berschrieben werden kann. Besonders Tabellen und Graken sind hiervon betroen. Inline-CSS kann zwar mit einem !important Statement nach der entsprechenden Option in einem externen Stylesheet berschrieben werden, doch dafr muss die id oder class des Elements bekannt sein. Da diese Parameter nicht standardisiert sind und von den Autoren der Wiki-Artikel selbst gewhlt werden knnen, knnen nicht alle Inline-CSS Statements berschrieben werden. Dies resultiert zum Beispiel in Tabellen, die breiter sind als die Bildschirmabmessungen. Dieser Umstand strt aber nicht weiter, zumal die App auch fr die Nutzung in Landscape Orientation optimiert ist (siehe Abbildung 8). Lizenzen Da Nutzungslizenzen im Zusammenhang mit Open Educational Resources und Wikis eine wichtige Rolle spielen, sollen die Lizenzinformationen der Artikel nicht nur beachtet, sondern auch mglichst deutlich an die Benutzerinnen und Benutzer weitergegeben werden. Es gestaltet sich jedoch schwieriger als erwartet die Lizenzinformationen der Wiki-Artikel zu beziehen.
4

https://www.mediawiki.org/wiki/Extension:MobileFrontend, zuletzt besucht am 9. September 2013 5 http://code.google.com/p/browsersec/wiki/Part2#Same-origin_policy zuletzt besucht am 9. September 2013

20

Abbildung 8: Artikel in Landscape Orientation

Grundstzlich bietet die API eine Funktion, um die Nutzungsinformationen eines Artikels abzurufen6 . Um diese Methode aufzurufen, muss eine weitere API-Anfrage gestellt werden. Doch das ist noch nicht die Lsung des Problems, denn viele Wikis laufen nicht auf einer aktuellen Version von Mediawiki und verfgen ber keine Implementierung dieser Funktion. Die Lizenzinformationen knnen in diesem Fall nicht fr die API abgerufen werden. Bei Wikis, die eine Implementierung der oben beschriebenen Methode besitzen, kann die zustzlich notwendige HTTP Anfrage zum Erhalt der Lizenzinformationen mit einem Trick umgangen werden. Beim Parsen der Artikel besteht die Mglichkeit zustzlich das HEAD HTML anzufordern (siehe Quellcode 1). Wenn ein Wiki die Funktion zum Abruf der Nutzungslizenzen implementiert hat, dann ndet sich im HEAD HTML jedes Artikels die Zeile <link rel=copyright href=http://...> . Diese Zeile enthlt einen Link zu der entsprechenden Lizenz, unter der der zugehrige Artikel steht. Da beinahe alle Wiki-Artikel unter einer Creative Commons Lizenz stehen, kann anhand des Links im HEAD HTML erkannt werden, um welche CC Lizenz es sich handelt. Sobald die Lizenz bestimmt wurde, wird ein entsprechender HTML Footer erstellt, der am Ende jedes Artikels zu nden ist (siehe Abbildung 10).

http://www.mediawiki.org/wiki/API:Meta zuletzt besucht am 9. September 2013

21

Abbildung 9: Lizenz Website

Der Footer enthlt das typische Creative Commons Lizenz Icon so wie einen Link zum Wiki und einen Link zur Desktop Ansicht des gerade betrachteten Artikels. Zustzlich signalisiert ein grnes Symbol am unteren Rand des Bildschirms, dass es sich bei diesem Artikel um einen CC lizensierten Inhalt handelt und informiert die Benutzerin oder den Benutzer gleichzeitig darber unter welcher Lizenz der Artikel steht. Ein Klick auf das grne Symbol oder den Footer verlinkt auf diese Lizenz (siehe Abbildung 9). Wenn die Lizenzinformationen nicht abgerufen werden knnen, wird ein rotes Symbol gezeigt und eine Information im HTML Footer weist die Benutzerin oder den Benutzer darauf hin, dass Lizenzinformationen auf der Desktop Seite des Wikis gefunden werden knnen. Ein Klick auf das rote Symbol oder den Footer verlinkt auf die Desktop Seite des Artikels (siehe Abbildung 11).

22

Abbildung 10: Artikel mit HTML Footer

Abbildung 11: Artikel ohne Lizenzinformationen

Browsing Die Article View soll Beitrge nicht nur anzeigen knnen, sondern auch das Browsen zwischen verschiedenen Artikeln ermglichen. Es soll mhelos zwischen Artikeln und Webseiten gewechselt werden knnen, ohne die App zu verlassen. Um dies zu Erreichen ist es notwendig die Methode webView:shouldStartLoadWithRequest des UIWebViewDelegateProtocol zu berladen. Wird ein Hyperlink gedrckt, so wird die oben beschriebene Methode aktiviert. Ein Scanner untersucht, ob es sich bei dem Hyperlink um einen Link zu einem bekannten Wiki handelt. Wenn ja, dann wird der Titel des Artikels aus der URL extrahiert und die UIWebView wird am Laden der URL Request gehindert. Stattdessen wird der gewnschte Artikel durch eine API-Parse-Anfrage (siehe Quellcode 3) geladen und anschlieend angezeigt. Die Klasse UIWebView bietet zwar eine Verlaufs Funktion, jedoch scheinen lokale HTML Strings in diesem Verlauf nicht auf. Aus diesem Grund wurde fr die Article View eine eigene Browsing History implementiert, die das Vor- und Zurckschalten zwischen internen Artikeln und externen Websiten ermglicht. Diese History kann durch die Pfeile am unteren Bildschirmrand gesteuert werden (siehe Abbildung 11).

23

3.5

Men

Zur Konguration der App und fr weitere Funktionalitten steht das Men zur Verfgung (siehe Abbildung 12). Dieses kann in jeder der 3 Hauptansichten (Center View: Abbildung 5, Result View: Abbildung 6, Article View: Abbildung 7) durch einen Klick des Men Icons in der Navigationsleiste rechts oben oder durch eine Swipe Gesture von rechts nach links aktiviert werden.

Abbildung 12: Das Men

Das Grundgerst fr das Sliding Menu stammt von MutalMobile7 . Die Men Graphiken basieren auf Icons von Brankic19798 . Die Hinweis-Pop-Ups entstanden durch Modikation einer Vorlage von scalessec9 . Alle Templates sind frei verfgbar und stehen unter einer entsprechenden Lizenz, die die Nutzung gestatten. Bei den Icons der Wikis (siehe Abbildung 13) handelt es sich um reine Eigenproduktionen.
7

https://github.com/mutualmobile/MMDrawerController zuletzt besucht am 9. September 2013 8 http://www.brankic1979.com/icons/ zuletzt besucht am 9. September 2013 9 https://github.com/scalessec/Toast zuletzt besucht am 9. September 2013

24

Wiki Operationen Neben den bereits bekannten Funktionen Suche und Zufallssuche bietet das Men die Mglichkeit Wikis auszuwhlen, in denen gesucht werden soll. Die Werkseinstellung der App bietet 12 verschiedene OER-Wikis an. Mchte die Benutzerin oder der Benutzer in einem dieser Wikis nicht suchen, kann dieses Wiki durch einen Klick deaktiviert werden (siehe Abbildung 13). Die App stellt jedoch sicher, dass zumindest ein Wiki aktiv ist, da ansonsten keine Suche gestartet werden knnte.

Abbildung 13: Aktivieren und Deaktivieren von Wikis

Da die Anzahl der OER-Wikis stndig wchst und mit den 12 Start-Wikis das vorhandene Spektrum bei weitem nicht abgedeckt ist, besteht die Mglichkeit eigene Wikis hinzuzufgen (siehe Abbildung 14). Dabei muss nur die URL des Wikis und ein Name angegeben werden. Nachdem die URL gescannt wurde, wird sie genormt. Das bedeutet, dass einige Verbesserungen durchgefhrt werden, wie zum Beispiel das Anfgen eines vergessenen www oder http:// . Dadurch wird die Erkennungsrate maximiert.

25

Die App prft durch eine Zufallsanfrage (siehe Quellcode 4), ob hinter der URL ein auf Mediawiki basierendes Wiki steht. Dabei werden mehrere asynchrone Tests parallel ausgefhrt, um ein Wiki zu erkennen. Auerdem wird berprft, ob die URL ein Postx bentigt (siehe Quellcode 5). Enthlt die HTTP GET Response des vermeidlichen Wiki nach dem Parsen einen Artikel-Titel und wirft keine Exception, so ist das Wiki gltig. Selbst erstellte Wikis knnen bei Bedarf auch wieder gelscht werden (siehe Abbildung 15). Wikis, die Teil der Werkseinstellung sind, knnen im Men nur deaktiviert werden.

Abbildung 14: Hinzufgen von Wikis

Abbildung 15: Lschen von erstellten Wikis

Bookmark Operationen Die Benutzerin oder der Benutzer kann Bookmarks oder Favoriten erstellen. In der Article View gengt ein Klick auf das Herz Symbol (siehe Abbildung 7), um ein Bookmark zu setzen oder zu entfernen. Ein rotes Herz zeigt an, dass der momentane Artikel zu den Favoriten gehrt (siehe Abbildung 7), ein graues Herz bedeutet, dass dieser Artikel noch nicht gebookmarkt wurde (siehe Abbildung 9). Externe Websiten knnen genau so wie interne Artikel Bookmarks sein. 26

Im Men Show Bookmarks (siehe Abbildung 16) knnen Favoriten durch einen Klick auf den entsprechenden Titel automatisch in der Article View geladen werden. Es ist ebenfalls mglich Bookmarks im Men zu lschen (siehe Abbildung 17). Smtliche Wiki- und Bookmark-Kongurationen werden in JSON Files gespeichert und stehen auch nach dem Beenden und Neustarten der App zu Verfgung. Die Kongurationen werden direkt beim ndern der gewnschten Optionen aktualisiert.

Abbildung 16: Bookmarks

bersicht

der

Abbildung 17: Lschen der Bookmarks

Weitere Optionen Unter der Option Send Bookmarks ist es mglich eine Liste der aktuellen Bookmarks als Email zu verschicken. Die Email wird automatisch generiert. Diese Option ermglicht es Bookmarks zu teilen und andere auf interessante Beitrge aufmerksam zu machen. Zugleich knnen Bookmarks an die Benutzerin oder den Benutzer selbst adressiert werden. Dadurch knnen unterwegs gefundene Informationen auch am Desktop schnell wiedergefunden werden, um OER Inhalte in eigene Projekte einzubauen oder um an Wiki-Artikeln mitzuwirken. Der Menpunkt Share bietet das Teilen von Artikel in bekannten Sozialen Medien wie Facebook oder Twitter an. 27

Unter License (siehe Abbildung 18) ndet die Benutzerin oder der Benutzer eine kurze Erklrung zu Creative Commons Lizenzen und deren Verwendung.

Abbildung 18: Erklrung zu Lizenzen

Der Reiter About (siehe Abbildung 19) bietet schlielich ein kurzes persnliches Statement und eine Liste der verwendeten Open Source Software so wie Kontaktmglichkeiten fr Ideen und Anregungen zur App.

Abbildung 19: Information zur App

28

4 Diskussion
Zur Entwicklung von iOS Applikationen gibt es enorme Mengen an Literatur, Dokumentation, Beispielen und Diskussionen. Das erleichtert die Entwicklung, auch wenn die Problemstellungen teilweise nicht trivial sind. Xcode bietet eine hervorragende Entwicklungsumgebung, die das Entwickeln und Testen von Apps extrem vereinfacht und beschleunigt. Dadurch knnen schnell Fortschritte erzielt werden und das Programmieren bereitet Freude. Leider ist das Testen auf dem eigenen Device nur mit einem kostenpichtigen Apple Developer Account mglich. Dadurch, dass beinahe smtliche Tasks auf die Wiki Server ausgelagert werden, knnen die vorhandenen Ressourcen geschont werden. Dies fhrt zu lngeren Akkulaufzeiten, steigert die Geschwindigkeit und fhrt allgemein zu einer besseren User Experience. Ein resultierender Nachteil ist jedoch, dass eine aktive Internetverbindung vorausgesetzt wird, um die App verwenden zu knnen. Der Entwurf einer mobilen Applikationen erfordert viel Geduld und ausgedehnte Tests. Apps, die abstrzen oder nicht ssig laufen, werden auf Smartphones als besonders unangenehm wahrgenommen. Es sollte strukturiert und klar programmiert werden, um einen runden Gesamteindruck zu erzeugen. Zu einer iOS App gehrt ohne Zweifel auch ein solides graphisches Design. Durch das Personalisieren von Interface Elementen kann nicht nur ein hochwertiger Eindruck geschaen werden, Benutzerinnen und Benutzer verwenden gut designte Applikationen auch lieber und fter. Eine App bietet eine wohl strukturierte bersicht, statt einem Internet-Dschungel an Informationen, und ist fr viele Menschen hilfreich. Diese App bietet einen leichten Zugang zu freien Lern- und Lehrinhalten und kann interessante Resultate nden, die eine Google Suche eventuell nicht ans Tageslicht bringen wrde. Vielleicht kann sie sogar in manchen Menschen das Interesse an Open Educational Resources wecken.

29

5 Zusammenfassung und Ausblick


Zusammenfassend kann gesagt werden, dass die Entwicklung der Applikation ein Erfolg war. Nach umfangreichen Recherchen, einigen verworfenen Konzepten und vielen Stunden des Trial and Error, konnten die Problemstellungen die zu Beginn der Arbeit ungeklrt waren, zuerst verstanden, dann analysiert und schlussendlich gelst werden. Am Ende dieser Arbeit steht nicht nur eine Software, die alle Ideen aus der Aufgabenstellung umsetzt, sondern auch eine App, die Prinzipien moderner, mobiler Softwareentwicklung implementiert. Doch noch viel wertvoller als die Applikation selbst ist das Wissen, das im Laufe dieser Arbeit erworben wurde. Vielleicht knnen Wiki Betreiber durch das Engagement von Entwicklerinnen und Entwicklern so wie Benutzerinnen und Benutzern, dazu bewegt werden ihre Wiki Server aktuell zu halten. Auch wenn der Prozess des Updatens mhsam ist, bringt eine aktuelle Version von Mediawiki viele Vorteile und erleichtert vor allem Entwicklerinnen und Entwicklern das Leben. Wie eingangs erwhnt endet der Entwicklungszyklus einer App nicht mit dem Release. Gerade in der iOS Welt steht mit iOS 7 ein radikaler Designumbruch bevor. Beinahe allen Applikationen drfen mit einer graphischen Frischzellenkur rechnen, um sich weiterhin nahtlos in das System einzufgen. Diese Applikation hat noch viel Potential fr Erweiterungen, so knnte in zuknftigen Versionen eine iPad App realisiert werden oder Instant-Search in Suchfelder integriert werden. Viele Erweiterungen sind denkbar und ein paar von diesen Ideen nden mit Sicherheit ihren Weg in die Source-Code-Zeilen von OER Wiki.

30

Literaturverzeichnis
[1] Allen L. Hammond Daniel E. Atkins John Seely Brown. A Review of the Open Educational Resources (OER) Movement: Achievements, Challenges, and New Opportunities. Report to the William and Flora Hewlett Foundation. Online verfgbar unter http://www.hewlett.org/uploads/files/ReviewoftheOERMovement.pdf; zuletzt besucht am 6. September 2013. 2007 (siehe S. 3). [2] Martin Ebner Sandra Schn. L3T Lehrbuch fr Lernen und Lehren mit Technologien. 2. Auage. E-Book Online verfgbar unter http://l3t.eu/homepage/das-buch/ebook-2013; zuletzt besucht am 6. September 2013. sterreich, Graz, 2013. isbn: 9783844265941 (siehe S. 4). [3] Commonwealth of Learning. Guidelines for Open Educational Resources (OER) in Higher Education. Online verfgbar unter http://www.col.org/PublicationDocuments/Guidelines_OER_HE.pdf; zuletzt besucht am 6. September 2013. 055 West Hastings, Suite 1200, Vancouver, British Columbia, Canada, 2011. isbn: 978-1-894975-42-1 (siehe S. 4). [4] Dr. Jan Hyln. Open Educational Resources: Opportunities and Challenges. Study, OECDs Centre for Educational Research and Innovation. Online verfgbar unter http://library.oum.edu.my/oumlib/sites/default/files/file_ attachments/odl-resources/386010/oer-opportunities.pdf; zuletzt besucht am 6. September 2013. Paris, France, 2006 (siehe S. 4). [5] David Wiley. On the Sustainability of Open Educational Resource Initiatives in Higher Education. In: Centre for Educational Research and Innovation (CERI) (2007). Online verfgbar unter http://www.oecd.org/edu/ceri/38645447.pdf; zuletzt besucht am 6. September 2013.

31

[6] Stamenka Uvalic-Trumbic Neil Butcher Asha Kanwar. A Basic Guide to Open Educational Resources. Online verfgbar unter http://www.col.org/PublicationDocuments/Basic-Guide-To-OER.pdf; zuletzt besucht am 6. September 2013. 055 West Hastings, Suite 1200, Vancouver, British Columbia, Canada, 2011. isbn: 978-1-894975-41-4. [7] Sandra Schn(Schaert). Strategic Integration of Open Educational Resources in Higher Education. 1. Education and Media, Salzburg Research. Jakob Haringer Strasse 5/III, 5020, Salzburg, Austria: Springer Berlin Heidelberg, 2010. isbn: 978-3-642-03581-4. [8] Wanjira Kinuthia Rory McGreal und Stewart Marshall. Open Educational Resources: Innovation, Research and Practice. Online verfgbar unter http://www.col.org/PublicationDocuments/pub_PS_OER-IRP_web.pdf; zuletzt besucht am 6. September 2013. Commonwealth of Learning und Athabasca University, Vancouver, 2013. isbn: 978-1-894975-62-9. [9] Guntram Geser. Open Educational Practices and Resources, OLCOS Roadmap 2012. Online verfgbar unter http://www.olcos.org/cms/upload/docs/olcos_roadmap.pdf; zuletzt besucht am 6. September 2013. EduMedia Group, Salzburg Research, 2007. isbn: 3-902448-08-3. [10] Heigl R. Ebersbach A. Glaser M. und Warta A. Wiki : Kooperation im Web. 2. Auage. Online verfgbar unter http://www.springer.com/cda/ content/document/cda_downloaddocument/9783540351108c1.pdf?SGWID=0-0-45-446905-p173751407; zuletzt besucht am 6. September 2013. Springer Verlag, 2008. isbn: 978-3-540-35111-5 (siehe S. 5). [11] Dr. Christian Stegbauer. Wikipedia : Das Rtsel der Kooperation. Online verfgbar unter http://books.google.at/books?id=BXy1QLPM0nUC; zuletzt besucht am 6. September 2013. VS Verlag fur Sozialwissenschaften GmbH, 2009. isbn: 9783531916910 (siehe S. 5). [12] Markus Glaser Anja Ebersbach. Informatik Spektrum : Wiki. Springer Verlag, 2005. isbn: 0170-6012. [13] Lawrence Lessig. Freie Kultur : Wesen und Zukunft der Kreativitt. Online verfgbar unter http://www.fosdoc.de/downloads/OSP_lessig_freiekultur.pdf; zuletzt besucht am 7. September 2013. Penguin Books, 2004. isbn: 978-3-937514-15-4 (siehe S. 6).

32

[14] Dr. Till Kreutzer. Open Content Lizenzen : Ein Leitfaden fr die Praxis. Online verfgbar unter http://irights.info/userfiles/DUK_opencontent_FINAL.pdf; zuletzt besucht am 7. September 2013. Deutsche UNESCO-Kommission e.V., 2011. isbn: 978-3-940785-32-9. [15] Christian Forsterleitner Leonhard Dobusch. FREIE NETZE. FREIES WISSEN. Online verfgbar unter http://www.freienetze.at/pdfs/fnfw(komplett).pdf; zuletzt besucht am 7. September 2013. Wien Echo media verlag ges.m.b.h., 2007. isbn: 3-901761-64-0 (siehe S. 7). [16] MediaWiki API documentation. Online verfgbar unter http://oer.tugraz.at/api.php; zuletzt besucht am 7. September 2013. Wikimedia Foundation. 2013 (siehe S. 10). [17] Maher Ali. Advanced iOS 4 Programming: Developing Mobile Applications for Apple iPhone, iPad, and iPod touch. Online verfgbar unter http://bookshelf.theopensourcelibrary.org/2010_Wiley_ AdvancediOS4Programming.pdf; zuletzt besucht am 9. September 2013. Wiley, 2010. isbn: 978-0470971239 (siehe S. 13). [18] Clemens Wagner Klaus M. Rodewig. Apps programmieren fr iPhone und iPad. E-Book online verfgbar unter http://openbook.galileocomputing. de/apps_programmieren_fuer_iphone_und_ipad/; zuletzt besucht am 9. September 2013. Galileo Computing, 2012. isbn: 978-3-8362-1915-0 (siehe S. 18). [19] Stephen G. Kochan. Programming in Objective-C. E-Book online verfgbar unter http://books.google.at/books?id=KSmwLl8fRp0C&dq=ios+arc&hl= de&source=gbs_navlinks_s; zuletzt besucht am 9. September 2013. Pearson Education, 2012. isbn: 978-0-321-81190-5 (siehe S. 15).

33

Abbildungsverzeichnis
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Die Creative Commons Module, Creative Commons Attribution 3.0 . Die Creative Commons Lizenzen, Creative Commons Attribution 3.0 Das globale OER Logo von Jonathas Mello ist verfgbar unter der Lizenz Creative Commons Attribution 3.0 Unported . . . . . . . . . . Strukturbild der App . . . . . . . . . . . . . . . . . . . . . . . . . . . Center View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Result View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Article View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Artikel in Landscape Orientation . . . . . . . . . . . . . . . . . . . . Lizenz Website . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Artikel mit HTML Footer . . . . . . . . . . . . . . . . . . . . . . . . Artikel ohne Lizenzinformationen . . . . . . . . . . . . . . . . . . . . Das Men . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Aktivieren und Deaktivieren von Wikis . . . . . . . . . . . . . . . . . Hinzufgen von Wikis . . . . . . . . . . . . . . . . . . . . . . . . . . Lschen von erstellten Wikis . . . . . . . . . . . . . . . . . . . . . . . bersicht der Bookmarks . . . . . . . . . . . . . . . . . . . . . . . . . Lschen der Bookmarks . . . . . . . . . . . . . . . . . . . . . . . . . Erklrung zu Lizenzen . . . . . . . . . . . . . . . . . . . . . . . . . . Information zur App . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 8 9 16 17 18 18 21 22 23 23 24 25 26 26 27 27 28 28

34

Quellcodeverzeichnis
1 2 3 4 5 6 7 API-Such-Anfrage . . . . . . . . . . . API-Such-Antwort . . . . . . . . . . API-Artikel/Parse-Anfrage . . . . . . API-Zufalls-Anfrage . . . . . . . . . API unterschiedliche URLs . . . . . . Objective C Beispiel . . . . . . . . . Objective C Properties und Protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 11 12 12 13 14 14

35