Sie sind auf Seite 1von 37

iPad Ebook Reader Application

Bachelorarbeit

vorgelegt von

Max Leingartner

Technische Universit t Graz a Institut f r Informationssysteme und Computer Medien u Betreuer: Univ.-Doz. Dipl.-Ing. Dr.techn. Martin Ebner 25. Oktober 2011

Zusammenfassung Die L3T App ist eine Anwendung fr das iPad von Apple und ist im Grunde u ein digitales Buch. Mit dieser App kann man alle Kapitel des Lehrbuchs fr u Lernen und Lehren mit Technologien herunterladen und lesen. Es besteht auch die Mglichkeit Lesezeichen zu verwalten, Annotationen hinzuzufgen und Text o u zu markieren. Fr Prsentationszwecke ist auch ein eigener Prsentationsmodus u a a eingebaut worden, mit dem sich alle Inhalte durch Projektion auf einem Bildschirm oder Leinwand prsentieren lassen. a

Inhaltsverzeichnis
1 Einleitung 1.1 Was ist eine App? . . 1.2 Was ist ein Tablet-PC? . 1.2.1 iPad . . . . . . . 1.3 Was ist ein eBook? . . . 2 Aufgabenstellung 3 Verwendete Technologien 3.1 Objective-C . . . . . . . 3.2 Xcode . . . . . . . . . . 3.3 Cocoa Touch . . . . . . 3.4 SQLite . . . . . . . . . . 3.5 XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 2 3 4 5 6 6 10 10 11 11 12 12 12 12 13 13 13 13 14 14 15 15 17 18 19 19 20 21 22 23 26 27 30 31

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

4 Hauptbestandteile der App 4.1 UIView . . . . . . . . . . . . 4.2 UIViewController . . . . . . . 4.3 UINavigationController . . . 4.4 UITableView . . . . . . . . . 4.5 Modal View Controllers . . . 4.6 UIScrollView . . . . . . . . . 4.7 UIPopoverController . . . . . 4.8 CGPDFDocument Reference 4.9 UIAlertView . . . . . . . . . 5 Die L3T App 5.1 Kapitelauswahl . . . . . . . . 5.2 PDF View . . . . . . . . . . . 5.2.1 Aufbau . . . . . . . . 5.2.2 Notizen . . . . . . . . 5.2.3 Markierungen . . . . . 5.2.4 Lesezeichen . . . . . . 5.3 L3T Browser . . . . . . . . . 5.4 Download View . . . . . . . . 5.5 Datenverwaltung (CoreData) 5.6 Prsentations-Modus . . . . . a 6 Anwendung 7 Diskussion 8 Ausblick

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

1
1.1

Einleitung
Was ist eine App?

Das Wort App [1] ist eine Kurzform fr das englische Wort Application. u Damit sind generell Anwendungen gemeint, die auf einem Betriebssystem installiert sind. Mittlerweile assoziiert man mit dem Wort App eigentlich immer ein Programm das fr Smartphones oder Tablet-Computer ausgelegt ist. Diese Apu ps werden dann uber den herstellerspezischen Shop, der direkt uber das Gert a erreichbar ist, heruntergeladen und installiert. Die Anzahl an unterschiedlichen Apps ist sehr gro, so gibt es zahlreiche Spiele, Broanwendungen, Ratgeber, Apps zur Unterhaltung und fr Sport. Bei Apple u u heit dieser Shop zum Beispiel App Store, dieser ist im Moment (Juni 2011) der Grte seiner Art und fhrt uber 350 000 Apps [2] in seinem Sortiment. o u

1.2

Was ist ein Tablet-PC?

Ein Tablet-PC ist ein kleiner, tragbarer Computer der per Stift oder dem Finger mittels Touchscreen bedient werden kann. Das Wort Tablet kommt aus dem englischen und bedeutet so viel wie Notizblock, womit der intendierte Zweck eines Tablet-PCs schon beschrieben ist. Mittlerweile jedoch hat sich der Anwendungsbereich eines solchen Tablets stark vergrert. Man kann damit im Internet surfen, Bcher lesen, Filme anschauen o u und sogar andere elektronische Gerte steuern, sofern man die passenden Apps a dazu hat. Eines der bekanntesten Beispiele ist sicherlich das von der Firma Apple.

1.2.1

iPad

Abbildung 1: Apple iPad.1 Das iPad (siehe Abbildung 1) ist ein Tablet-Computer der primr mit den Fina gern des Nutzers bedient wird. Es besteht praktisch nur aus einem berhrungsempndlichen u Bildschirm ohne eingebaute Tastatur oder eines Zeigegertes. Die Tastatur wird, a wenn bentigt, vom Programm aus- bzw eingeblendet. Es sind verschiedene o Multi-Touch-Gesten vorhanden, die einem den Aufruf von Funktionen erleichtern und so die Benutzung vereinfachen. Beispielsweise reicht es die Finger zu spreizen um in ein Bild hinein zu zoomen. Mit dem iPad ist Apple auch ein groer Vertreter am Musik-, Video- und eBookMarkt. Vor allem elektronische Zeitschriften und Zeitungen erfreuen sich immer grerer Beliebtheit. Diese Medien sind meist auch durch einen interaktiven o Teil erweitert, sodass sich auch Videos, Bildergalerien und Animationen als zustzliche Inhalte anzeigen lassen. a Auch die Anzahl an verfgbaren Apps im App Store ist beachtlich. Von den ca. u 350 000 Apps sind uber 65 000 Apps speziell fr das iPad entwickelt worden. u Das Produkt wurde am 27. Januar 2010 vor internationaler Presse vorgestellt. Am 3. April 2010 kam die erste Generation des iPads in den USA auf den Markt. Ein Monat nach Verkaufsstart wurden bereits eine Million Stck verkauft. Bis u Februar 2011 gingen weltweit 15 Millionen Einheiten uber den Ladentisch. [3]
1 http://www.lesen.net/wp-content/gallery/apple-tablet/hardware-01-20100127.jpg

1.3

Was ist ein eBook?

Ein eBook, im deutschen E-Book, ist dem Namen nach ein elektronisches Buch. So sind herkmmliche Bcher auch am Computer oder eben einem Tablet leso u bar. So hat man immer seine gesamte Bibliothek bei der Hand ohne viel Platz zu beanspruchen. Vor allem in den letzten Jahren kann man eine deutliche Bewegung in Richtung eBook-Markt erkennen. Es gibt spezielle Lesegerte, die a nur auf darauf ausgelegt sind solche eBooks darzustellen, sogenannte e-Reader. e-Reader unterscheiden sich zwar technologisch stark von Tablets aber verfolgen das gleiche Ziel. Als Beispiel gibt es den Kindle von Amazon (siehe Abbildung 2) oder den Sony Reader. Auch das iPad hat seinen eigenen eBook-Store in dem eBook erworben werden knnen[4]. o

Abbildung 2: Amazon Kindle.2

2 http://www.androidapptests.com/wp-content/uploads/2011/04/Amazon-Kindle-2.jpg

Aufgabenstellung

Das Ziel der Arbeit besteht darin, das Lehrbuch fr Lehren und Lernen mit u Technologien (L3T) mit all seinen Kapiteln am iPad als E-Book zugnglich zu a machen und dessen Potentiale aufzuzeigen. Dabei sollen die einzelnen Kapitel zuerst von der L3T Homepage3 auf das iPad geladen werden, sodass man nicht stndig mit dem Internet verbunden sein muss um ein Kapitel zu lesen. a Des Weiteren ist eine bestimmte Kapitel-Auswahl Ansicht erwnscht, anhand u deren es einfach sein soll bestimme Kapitel auszuwhlen oder zu lschen. a o Zustzliche Features wie ein Lesezeichen Men oder ein Web Browser mit Ina u halten rund um das Thema L3T sind ebenfalls angedacht. Bei der Anzeige der Kapitel wird Wert auf eine einfache Bedienung gelegt. Der Benutzer oder die Benutzerin soll in der Lage sein Notizen und Lesezeichen hinzuzufgen und die Mglichkeit haben Textstellen zu markieren oder zu kennu o zeichnen. Fr Prsentationen wre es auch sinnvoll einen Modus einzubauen, in dem der u a a Inhalt des Bildschirms auf einen externen Monitor oder auf eine Leinwand projiziert wird.

3 http://l3t.tugraz.at/index.php/LehrbuchEbner10

Verwendete Technologien

Ein kurzer Uberblick mit einer Beschreibung der verwendeten Technologien soll Verstndnis der nachfolgenden Kapitel erleichtern. a

3.1

Objective-C

Objective-C ist eine objektorientierte Programmiersprache und eine Erweiterung der Programmiersprache C. Diese Programmiersprache wird am hugsten a verwendet von Mac OS X und GNUstep. Objective-C wurde hauptschlich von Brad Cox und Tom Love in den 80er Jaha ren bei PPI, spter Stepstone, entwickelt, spter dann von NeXT in die GNU a a Compiler Collection integriert, um als Basis fr NextStep zu dienen. u Objective-C 2.0: Im Oktober 2007 hat Apple mit Mac OS X 10.5 Objective-C 2.0 ausgeliefert, eine Erweiterung von Objective-C, die moderne Garbage Collection, Synta xerweiterungen, Verbesserungen der Laufzeitleistung und 64-Bit-Untersttzung u umfasst [5] . Die GNU Laufzeitumgebung fr Objective-C untersttzt diese Erweiterungen u u seit GCC 4.6. Wesentliche Eigenschaften: - Dynamisches Binden - Dynamische Typisierung und typloses id - Nachrichten - Kategorien - Protokolle - RTTI/Reexion - Klassenobjekte

Syntax Die Syntax soll an einem Beispiel kurz erklrt werden: a // Klassenbezeichnung und Ableitung @interface Bruch : NSObject < Protokoll > // Instanzvariablen, fr jede Instanz angelegt. u { NSInteger zaehler; NSInteger nenner; } // Eigenschaften der Instanzen @property( assign ) NSInteger zaehler; @property( assign ) NSInteger nenner; // Methoden: - (void) printLn; - (float) floatValue; @end Klassenbezeichnung und Ableitung: @interface Bruch : NSObject < Protokoll > Jede Klasse beginnt mit einem @interface, darauf folgt der Name der Klasse. Nach dem Doppelpunkt wird die jeweilige Basisklasse angegeben. In den spitzen Klammern werden benutzte Protokolle angegeben. Instanzvariablen: In den geschweiften Klammern ndet man die Instanzvariablen. NSInteger zaehler; NSInteger nenner; Mit Anweisungen wie @public, @private, @protected und @package kann man die Sichtbarkeit der Variable steuern. - public Bedeutet dass jeder auf die Variable zugreifen darf - private Bedeutet dass der Zugri nur im Code derselben Klasse oder abgeleiteten Klassen erfolgen darf - package Bedeutet dass der Zugri nur in Klassen des Frameworks erfolgen darf 7

- protected Der Standard-Typ und wird nicht angeschrieben Eigenschaften: @property( Attributliste ) Typ name; Man kann verschiedene Eigenschaften zwischen Schreibschutz, Referenzierung und der Atomaritt whlen. a a - Fr den Schreibschutz kann man zwischen readonly und readwrite unteru scheiden. - Fr die Atomaritt gibt es das Attribut nonatomic . Dabei wird der Zugri u a fr Singlethread-Nutzung optimiert. u - Fr die Referenzierung gibt es die Mglichkeiten assign, retain und copy. u o Methodendeklarationen:

- (id)initWithZaehler:(NSInteger)zaehler andNenner:(NSInteger)nenner; Am Anfang steht immer ein +, fr eine Klassenmethode, oder ein -, fr eine u u Instanzmethode. Danach folgt der Typ des Rckgabewertes, gefolgt vom Namen u der Methode und optionalen Parametern. Parameter werden mit einer Beschreibung gefolgt von einem Doppelpunkt, dem Typ in Klammern und dem Bezeichner in die Methodendeklaration eingefgt. u Implementierung:

@implementation - (id)initWithZaehler:(NSInteger)zaehler andNenner:(NSInteger)nenner { // Code } @end Die Implementierung steht in einer separaten Datei, die standardmig auf a .m endet. Die Datei beginnt mit einem @implementation und endet mit einem @end. Dazwischen stehen die deklarierten Methoden. Es gibt auch die Mglichkeit mittels @synthesize Zugrismethoden fr die Eigenschaften erzeuo u gen zu lassen. @synthesize zaehler;

Nachrichten:

[Objekt Nachricht] Das Zielobjekt steht links in der eckigen Klammer und die Nachricht oder Funktion steht rechts davon. Bruch* bruch = [Bruch alloc]; // +alloc ist Klassenmethode Locking: Um eine ausreichende Sicherheit bei mehreren Threads zu gewhrleisten gibt a es die Option @synchronized. Dazu muss der zu behandelnde Code mit diesem Schlsselwort eingeleitet werden. u Exceptions: @try { // Code, der eine Exception auslsen knnte o o } // Klasse von Exceptions, die gefangen werden sollen @catch( NSException* exception ) { // Code, wenn eine Exception auftrat } @finally { // Code, der in jedem Falle ausgefhrt wird u } Exceptionhandling erfolgt in Objective-C mittels @try, @catch, @nally und @throw. In den @try Block kommt Code der Fehler auslsen knnte. Abgefano o gen werden solche Fehler mit dem @catch Block und Code der in jedem Fall ausgefhrt werden soll, steht im @nally Block. [5] u

3.2

Xcode

Xcode, mittlerweile bei Version 4 angekommen, ist eine Entwicklungsumgebung fr Mac OS X und iOS. Entwickelt wird in der bereits bekannten Programmieru sprache Objective-C und dem Cocoa-Framework. Es werden aber auch andere Sprachen wie C, C++, Java, Python, Ruby und Perl untersttzt. u Xcode besteht neben dem Editor und Compiler auch noch aus diversen anderen Tools zur Analyse von Programmen, Erstellung von Icons und zum Editieren von Kongurationsdateien. [6]

3.3

Cocoa Touch

Cocoa Touch ist ein Framework mit dessen Hilfe man iOS Apps erstellen kann, die auf iPhone, iPod Touch und iPad ausfhrbar sind. Das Framework basiert u auf dem Mac OS X Framework Cocoa und ist hauptschlich in Objective-C a geschrieben. Durch dieses Framework wird es den Entwicklern leicht gemacht verschiedenste Dienste und Technologien zu benutzen. [7] Hauptmerkmale - Core Animation - Core Audio - Core Data - Multitasking - Gesture Recognizers

10

3.4

SQLite

SQLite ist eine Programmbibliothek, die ein relationales Datenbanksystem enthlt. a Dieses System ist vor allem fr den mobilen Einsatz gedacht. u Eine SQLite-Datenbank besteht aus einer einzigen Datei und ist nur wenige hundert Kilobyte gro. Es ist eine abgespeckte Version von mySQL. Es gibt keine Verwaltung von Benutzer- und Zugrisberechtigungen, sowie Schreiboperationen unterschiedlicher Prozesse knnen nur nacheinander ausgefhrt o u werden[8].

3.5

XML

XML ist die Abkrzung fr Extensible Markup Language und ist eine Sprache u u zur Darstellung hierarchisch strukturierter Daten in Form von Textdaten. XML wird vor allem zum Datenaustausch zwischen Server und Client im Internet und zum Speichern von Daten benutzt. Die Sprache verwendet Strukturelemente welche die Daten enthalten. Dabei besitzt das XML Dokument genau ein Wurzelelement, das uerste Element. Alle Elemente besitzen einen Start -und a End-Tag, wie man es auch von HTML kennt[9].

11

Hauptbestandteile der App

Eine Beschreibung der am hugsten benutzten Klassen der L3T App. a

4.1

UIView

UIView ist sowohl zustndig fr die Darstellung der Daten, Texte, Bilder usw., a u als auch fr die Erkennung von Aktionen des Benutzers. u

4.2

UIViewController

Ein UIViewController ist fr die Verwaltung von ein oder mehreren UIView u Objekten zustndig. Der Controller kontrolliert das Verhalten am Bildschirm. a

4.3

UINavigationController

Ein Navigation Controller ist ideal dazu geeignet, hierarchisch angeordnete Inhalte darzustellen. Der Controller funktioniert wie ein Stapel, Stack bezeichnet, bei dem der zuletzt auf den Stack geschobene View Controller als erstes wieder heruntergenommen wird. Als erstes kommt der Basis Controller, dieser ist die Standard Ansicht des Navigation Controllers und muss immer angegeben werden. Wenn eine neue View auf den Stack gelegt wird, liegt diese uber der Basis Ansicht und wird auch als erste wieder heruntergenommen. Fr den Benutzer oder die Benutzerin gibt es hierfr eine Navigationsleiste am u u oberen Rand des Bildschirms. Falls also ein oder mehrere Views am Stack liegen, so kommt man mit der Navigationstaste in der oberen linken Ecke wieder zu den hierarchisch ubergeordneten Views und nimmt die aktuelle View vom Stack herunter (siehe Abbildung 3).

Abbildung 3: UINavigationController

12

4.4

UITableView

UITableView ist einfach gesagt eine Tabelle (siehe Abbildung 4). Damit kann man auf leichte Weise Listen von Informationen anzeigen und bearbeiten. So eine Tabelle sieht man meist in Kombination mit einem UINavigationController, da man dadurch sehr leicht zwischen der Liste und deren Daten navigieren kann.

Abbildung 4: UITableView

4.5

Modal View Controllers

Modal View Controllers werden benutzt um den Programmuss zu steuern. Diese speziellen Ansichten werden benutzt um den Benutzer oder die Benutzerin in einen anderen Bereich der App zu bringen, ihm Steuerungsmglichkeiten zu o geben oder einfach bestimmte Einstellungen vorzunehmen.

4.6

UIScrollView

Mit der UIScrollView Klasse gibt man dem Benutzer oder die Benutzerin die Mglichkeit, in seinem Anzeigebereich zu zoomen und zwischen Inhalten, wie o zum Beispiel PDF Seiten, zu blttern. a

4.7

UIPopoverController

Ein Popover ist eine Anzeige, die sich uber den eigentlichen Inhalt schiebt. Meist wird dem Benutzer dadurch eine Auswahlmglichkeit oder Eingabemglichkeit o o geboten.

13

4.8

CGPDFDocument Reference

Das CGPDFDocument ist dazu da PDF Dateien auf einem iOS Gert anzeigen a zu knnen. Es enthlt alle Informationen zur Anzahl der Seiten, Text und Bilder o a in einem PDF Dokument.

4.9

UIAlertView

Warnhinweise und Fehlermeldungen kann man dem Benutzer oder die Benutzerin sehr komfortabel mit der UIAlertView Klasse prsentieren (siehe Abbila dung 5). Dabei verdunkelt sich der Bildschirm und ein kleines Hinweisfenster erscheint, dass eine Reaktion vom Benutzer erwartet.

Abbildung 5: UIAlertView

14

Die L3T App

Abbildung 6: L3T Logo

Es folgt eine genaue Beschreibung des Aufbaus und der Funktionalitten der a L3T App. Logo der App siehe Abbildung 6. Hauptbestandteil der App ist der PDF Viewer, mit dem es mglich ist PDF Doo kumente anzuschauen, Lesezeichen zu erstellen, Notizen zu machen und Textstellen zu markieren. Daneben gibt es noch zustzliche Features wie den L3T a Browser und einen Prsentations-Modus. a

5.1

Kapitelauswahl

Um sich in der App zwischen verschiedenen Ansichten zu bewegen, gibt es einerseits eine Navigationsleiste (siehe Abbildung 7), fr bestimmte Features wie den u L3T Browser oder das Lesezeichen-Men. Um ein Kapitel auszuwhlen gibt es u a eine eigene Tabellenansicht (siehe Abbildung 8), die in einzelne Sektionen unterteilt ist, die es dem Benutzer oder der Benutzerin leichter macht eine Auswahl zu treen.

Abbildung 7: Navigationsleiste

Die Tabelle wurde mit einer UITableView Klasse umgesetzt. Es handelt sich um eine gruppierte Tabelle. Damit ist es mglich die einzelo nen Inhaltsgebiete unabhngig voneinander darzustellen. Die einzelnen Zeilen a enthalten jeweils den Titel des Kapitels, welche mittels einer Berhrung am u Bildschirm dargestellt werden. Die Daten hierzu werden mit der Funktion getChapters() aus der CoreDataManager Klasse geladen, nach Sektionen sortiert und in die Tabelle eingefgt. u

15

Abbildung 8: Kapitelauswahl

Falls es mehrere Versionen zu einem Kapitel gibt, so erscheint ein spezieller Button in der jeweiligen Zeile, der den Benutzer oder die Benutzerin zwischen den verschiedenen Versionen auswhlen lsst. Es ist auch mglich einzelne Kaa a o pitel zu lschen. Dazu wischt man einfach mit dem Finger uber die Zeile des o betreenden Kapitels und es erscheint daraufhin ein roter Button mit dem das Kapitel entfernt werden kann.

16

5.2

PDF View

Abbildung 9: PDF Ansicht

Die PDF View (siehe Abbildung 9) ist zustndig fr das Anzeigen der einzelnen a u Kapitel, in welcher es mglich ist Textstellen zu markieren, zu zeichnen, Notizen o zu machen und Lesezeichen zu setzen. Auch hier ist eine Navigationsleiste vorhanden mit einer Toolbar (siehe Abbildung 10).

Abbildung 10: Toolbar

17

Die Funktionen sind, von links nach rechts: - Notiz hinzufgen u - Markierungen vornehmen - Lesezeichenmen nen uo - Lesezeichen hinzufgen u

5.2.1

Aufbau

Diese View setzt sich aus mehreren ineinander verschachtelten UIViewControllern zusammen, welche im Weiteren als View Controller bezeichnet werden. Der uerste Controller ist eine Art Container mit der gleichnamigen Klasa se. Er beinhaltet eine Navigationsleiste bzw. Steuerungsleiste und das jeweilige, genete Kapitel. Der Container ist auch zustndig fr die Kommunikation zwio a u schen den verschiedenen Controllern. Der nchste View Controller ist zustndig fr die Darstellung des Kapitels. Die a a u Klasse hat den Namen PDFViewController. Dieser Controller hat Informationen uber die Anzahl der Seiten des Dokumentes und welche Seite dargestellt werden soll. Um es dem Benutzer zu ermglichen per Swipe Geste die Seiten zu wechseln, o wird eine UIScrollView erzeugt, die so breit ist, wie das Produkt aus der Anzahl der Seiten des Kapitels und der Breite des Bildschirms. scrollView.frame.size.width * kNumberOfPages Den Bildlauf ubernimmt die Klasse dann automatisch, es wird nur darauf geach tet wann ein Seitenwechsel passiert um dann die jeweilige neue Seite zu laden. Die Seiten werden also auf Anforderung erzeugt um die Ladezeiten in Grenzen zu halten. Jede einzelne dieser Seiten ist nun wiederum in einen View Controller verpackt, namens PageViewController. Dieser ist einerseits zustndig fr die Darstellung a u der Seite, aber auch fr smtliche Notizen und Zeichnungen, die auf dieser Seite u a vorhanden sind. Um zoomen zu ermglichen wurde auch in diesem Controller o eine Scroll View verwendet und entsprechend angepasst. Da die Anzeige von PDF Dokumenten kompliziert ist, habe ich mich eines OpenSource-Beispiels von Julius Oklamcak4 bedient. Der Code steht unter der Creative Commons Attribution Lizenz5 , ist eingebettet in die Klasse PDFViewTiled und ist ein Teil des PageViewControllers.
4 https://github.com/vfr/Reader/blob/master/Classes/PDFViewTiled.m 5 http://creativecommons.org/licenses/by/3.0/

18

5.2.2

Notizen

Wenn der Notiz setzen Modus aktiviert ist, so ist es dem Benutzer oder der Benutzerin mglich eine Notiz zu erstellen. Sobald der Benutzer oder die Benuto zerin mit dem Finger eine Stelle am Bildschirm berhrt hat, wird in der Klasse u PDFViewTiled ein Button erzeugt und auf der View platziert. Zugleich net o sich auch der Notizzettel als Popover uber dem Button der es dem Benutzer oder der Benutzerin ermglicht seine Notizen niederzuschreiben. Sobald eine Stelle o ausserhalb des Notizzettels berhrt wird, schliet sich dieser und speichert die u Daten in einer Datenbank ab, die in Beziehung zu dem jeweiligen Kapitel stehen. Diese Daten beinhalten die Notiz an sich, Titel, ID, die gerade aktive Seite des Dokumentes, als auch Position der Notiz am Dokument. Sollten beim Onen einer Seite schon Notizen in der Datenbank vorhanden sein, so wird das in der init Funktion der PDFViewTiled Klasse uberprft. Dabei weru den smtliche Notizen aus der Datenbank geholt, in ein Array gespeichert und a nacheinander auf dem Bildschirm platziert. Das Lschen einer Notiz erfolgt durch das Papierkorb-Symbol auf dem Notizo zettel. Dabei werden smtliche Daten, die in Verbindung mit der Notiz stehen a unwiderruich gelscht. o 5.2.3 Markierungen

Abbildung 11: Markierungen

Der Zeichnen -oder Markierungs- Modus wird im PageViewController gesteuert. Sobald dieser Modus aktiv ist, wird das Seitenwechseln deaktiviert.

19

Das Zeichnen erfolgt in der MyLineDrawingView Klasse. Dieser Klasse wird der Bereich ubergeben, auf dem gezeichnet werden kann und ladet smtliche Eina stellungen wie Pinselgre und Farbe. o Zum Zeichnen werden sogenannte Bezier Pfade verwendet. Zu jedem gezeichne ten Pfad wird die Farbe, Gre und Transparenz gespeichert, da sonst Anderungen o der Einstellungen sich nicht nur auf die nachfolgenden Pfade auswirken wrden, u sondern auch auf die vorher gettigten. a Beim Verlassen des Zeichnen-Modus wird aus der MyLineDrawingView ein Bild generiert. Dieses Bild wird im Documents Ordner der App unter Bercksichtigung u der Version abgespeichert. Bei jedem neuen Seitenaufruf wird dann uberprft, u ob eine Markierung zu dieser Seite vorhanden ist und uber diese Seite gelegt (siehe Abbildung 11). Die verschiedenen Einstellungen werden uber die PaintingOptionsPopover Klas se vorgenommen. Sobald Anderungen gettigt worden sind, werden diese gespeia chert und der MyLineDrawingView Klasse zugefhrt. u Das Lschen einer Markierung oder Zeichnung bewirkt ein Lschen des zuo o gehrigen Bildes im Dateisystem. Mehr ist dazu nicht notwendig. o 5.2.4 Lesezeichen

Ein Lesezeichen soll dem Leser helfen, die Stelle an der er oder sie zuletzt gelesen hat, schneller zu nden. In der L3T App gibt es dazu die Mglichkeit Lesezeichen o hinzuzufgen und diese in einem entsprechenden Men zu bearbeiten. u u Lesezeichen werden in einem Popover-Men angezeigt und knnen auch uber u o dieses gelscht werden. o Jedes Lesezeichen hat seinen eigenen Eintrag in einer Datenbank. Solch ein Eintrag hat als Eigenschaft die jeweilige Seite des Kapitels und den Titel des Lesezeichens gespeichert. Uber eine sogenannte Relation ist das Lesezeichen mit dem jeweiligen Kapitel verbunden und erleichtert dem Entwickler die Kontrolle uber die Datenverwaltung.

20

5.3

L3T Browser

Abbildung 12: L3T Browser Button

Der L3T Browser (siehe Abbildung 12) gibt dem Benutzer oder der Benutzerin weiterfhrende Informationen rund um L3T. Dazu gibt es ein vordeniertes u Lesezeichenmen mit Links zu: u - L3T - Buchbestellung - MISTER WONG - Facebook-Community - Twitter-Suche - Youtube-Channel - Die interaktive Landkarte - L3T on tour - citeulike - SlideShare - Flickr - VodPod

Grundlage des L3T Browsers ist eine UIWebView mit deren Hilfe man Webseiten in gewohnter Weise darstellen kann.

21

5.4

Download View

Abbildung 13: Download View Button

Die Download Ansicht besteht aus einem Modal View Controller, welcher mit einem Button in der Navigationsleiste (siehe Abbildung 13) erreichbar ist. In dieser werden zum ersten Programmstart alle Kapitel heruntergeladen. Dazu muss man nur den Button Kapitel herunterladen berhren und ein paar u Minuten warten. Die Kapitel werden im Documents Ordner der App gespeichert, bzw. die Informationen zu den einzelnen Kapiteln in einer Datenbank und werden dann automatisch in das Inhaltsverzeichnis eingefgt. u Die Daten hierfr werden dabei aus einer XML-Datei gelesen. Die Adresse zur u XML-Datei ist in der OJSGatewayCommunicationService Klasse gespeichert. In dieser XML sind alle Kapitel zum L3T Buch eingetragen und werden mit einem XML Parser herausgelesen. Da es bereits eine hnliche App fr das iPhone a u gibt, die iOJS App, wurde der XML-Parser aus dieser App herangezogen und angepasst. Der unten dargestellte Code ist ein Beispiel fr ein Kapitel des L3T Buches aus u dem XML Dokument. <article id="34"> <title> Barrierefreiheit - Grundlage gerechter webbasierter Lernchancen </title> <authors> <author> <firstName>Klaus</firstName> <lastName>Reich</lastName> </author> <author> <firstName>Klaus</firstName> <lastName>Miesenberger</lastName> </author> </authors> <abstract> E-Learning-Technologien ... </abstract> <subject> <topic>Lernen und Lehren mit Technologien</topic> 22

</subject> <files> <file id="520"> <fileUrl>/index.php/LehrbuchEbner10/article/download/34/45</fileUrl> <fileSize>3123323</fileSize> <originalFileName>34-520-1-PB.pdf</originalFileName> </file> </files> </article> Die L3T App ruft alle 2 Monate eine Funktion auf, die den Benutzer oder die Benutzerin daran erinnert neue Updates der Kapitel herunterzuladen sofern welche vorhanden sind. Um Kapitel zu erneuern muss man nur in die Download Ansicht wechseln und den Button berhren, der Rest funktioniert vollautomau tisch. Altere Versionen bleiben inklusive Markierungen und Notizen erhalten und sind uber das Inhaltsverzeichnis auswhlbar. a

5.5

Datenverwaltung (CoreData)

Abbildung 14: CoreData Model

Die Speicherung und das Abrufen von Daten erfolgt uber CoreData, welches selbst aber keine Datenbank ist. Diese arbeitet im Hintergrund von CoreData, eine SQLite Datenbank, die Daten in einer einzelnen SQLite Datei speichert. Die Erzeugung von Objekten wie man sie in der Abbildung erkennt, erfolgt uber eine grasche Benutzeroberche in Xcode (siehe Abbildung 14). In der a L3T App gibt es drei verschiedene Objekte, nmlich Chapter, Bookmark und a 23

Note, die jeweils fr die einzelnen Kapitel, Lesezeichen und Notizen stehen. Anu hand der Pfeile erkennt man die bidirektionale Beziehung in der die Objekte stehen. So kann zum Beispiel ein Kapitel mehrere Lesezeichen haben, aber das Lesezeichen hat im Gegensatz immer nur ein Kapitel zu dem es gehrt. o Chapter Objekt: Attribute: - abstract Zusammenfassung des Artikels - articleID Eine Zahl zum Identizieren des Artikels - authors Beinhaltet die Autoren des Artikels - currentPage Zurzeit genete Seite o - section Zu welcher der drei Kategorien der Artikel gehrt (Einfhrung, Vertiefung, o u Spezial) - title Titel des Artikels - url Adresse des PDF Dokumentes auf dem OJS Server - urlOnFilesystem Adresse des PDF Dokumentes auf dem iPad Filesystem - version Version des Artikels Relation: - bookmark Verbindung zu den Lesezeichen des Artikels. Gewhrt Zugri auf alle Lea sezeichen und Attribute des Bookmark Objektes - notes Verbindung zu den Notizen des Artikels. Gewhrt Zugri auf alle Notizen a und Attribute des Note Objektes

24

Bookmark Objekt: Attribute: - page Seite auf dem das Lesezeichen gesetzt wurde - title Titel des Lesezeichens im Lesezeichen-Men u Relation: - chapter Verbindung zu dem Artikel auf dem das Lesezeichen gesetzt wurde. Gewhrt a Zugri auf alle Attribute des Chapter Objektes Note Objekt: Attribute: - id Nummer zur Identikation der Notiz, da es mehrere Notizen auf einer Seite geben kann - page Seite auf dem die Notiz gesetzt wurde - text Inhalt der Notiz - xPos X-Koordinate der Position der Notiz auf dem Bildschirm - yPos Y-Koordinate der Position der Notiz auf dem Bildschirm Relation: - chapter Verbindung zu dem Artikel auf dem die Notiz gesetzt wurde. Gewhrt a Zugri auf alle Attribute des Chapter Objektes Die einzelnen Methoden um Kapitel, Lesezeichen und Notizen auszulesen stehen in der CoreDataManager Klasse.

25

5.6

Prsentations-Modus a

Mit dem Prsentations-Modus ist es mglich smtliche Inhalte die am iPad sichta o a bar sind auf einen externen Bildschirm oder Beamer anzuzeigen. Dazu braucht man nur das iPad und den externen Bildschirm mit einem entsprechenden Kabel verbinden. Der Bildschirm wird automatisch erkannt und das Bild wird auf beiden Gerten angezeigt. a Die Funktionsweise ist relativ simpel. Es wird eine Kopie des Bildes am iPad erzeugt und an den zweiten Bildschirm angepasst und dargestellt. Die Bildwiederholrate liegt hier bei 15 Bildern pro Sekunde, da eine hhere Frequenz nicht o notwendig ist.

26

Anwendung

Die L3T App ist darauf ausgelegt schnell und intuitiv bedienbar zu sein. Nach dem Start der App sind smtliche Funktionalitten mit einer einzigen Berhrung a a u des jeweiligen Buttons erreichbar. Es wurde auch Wert darauf gelegt, dass die standardisierten Bedienkonzepte beibehalten wurden und der Benutzer oder die Benutzerin keine neuen Vorgehensweisen lernen muss. So kann eine Zelle in der Kapitelansicht per swipe einfach gelscht werden, genauso wie man in der Dokumentansicht per pinch o hinein -und heraus-zoomen kann. Beim ersten Start der App wird zuerst die Download-Ansicht angezeigt, denn die einzelnen Kapitel des Buches werden nicht mit der App mitgeliefert. Ein Druck auf den Button Kapitel herunterladen reicht, um das komplette Buch herunterzuladen. Dem Benutzer oder der Benutzerin wird whrend des Ladea vorganges ein Fortschrittsbalken eingeblendet, um ihn darber zu informieren, u wie viel Zeit der Download noch in Anspruch nehmen wird. Die Download-Ansicht ist ubrigens immer erreichbar, um auch spter noch Akua talisierungen der Kapitel herunterladen zu knnen. o Die Dokumentansicht wird aufgerufen wenn man die jeweilige Zelle in der Kapitelansicht berhrt oder einen Eintrag aus dem Lesezeichenmen auswhlt. Diese u u a Ansicht ist somit fr das Anzeigen des Kapitels zustndig. u a Lesezeichen werden in dieser Ansicht einfach uber das + Symbol hinzugefgt u und sind fortan uber das Lesezeichenmen (siehe Abbildung 15) auswhlbar. u a

Abbildung 15: Lesezeichen

27

Um Notizen setzen knnen, wird der Notiz setzen Modus zuerst mit dem ento sprechenden Button aktiviert. Danach braucht man nur seinen Finger auf die gewnschte Stelle der Seite setzen und es wird ein kleiner Notizzettel platziert u der sich net (siehe Abbildung 16). Sobald eine Notiz gesetzt wurde, deaktio viert sich dieser Modus wieder automatisch.

Abbildung 16: Notizzettel

Die Anzahl an Notizen ist dabei nicht begrenzt, man kann so viele Notizen anlegen wie man mchte. Zum Lschen der Notizen ist auf dem Notizzettel in der o o rechten, unteren Ecke ein kleiner Papierkorb angebracht, der die ausgewhlte a Notiz entfernt. Eine weitere Mglichkeit der L3T App ist es Markierungen vorzunehmen. Dao mit kann man Text hervorheben oder Abstze markieren, hnlich wie in einem a a Zeichenprogramm. Um die verschiedene Einstellungen vorzunehmen gibt es eine eigene Toolbar (siehe Abbildung 17) mit einem Men um Werte wie Transparenz, Pinselgre oder u o Farbe zu ndern. Hier ist es auch mglich die Zeichnung wieder zu entfernen. a o Des weiteren gibt es in der Toolbar eine Schnellauswahl fr einen Textmarker u oder einen Pinsel und einen Button um den Zeichnen-Modus zu beenden und die Anderungen abzuspeichern.

28

Abbildung 17: Optionsmen u

29

Diskussion

Da ich schon grundlegende Erfahrung in der iPhone Programmierung hatte, war der Einstieg in die Entwicklung dieser iPad App nicht mehr all zu schwer. Die L3T App schaut auf den ersten Blick einfach aus, doch die App hatte durchaus ihre Herausforderungen. Begonnen hatte das mit dem Ausen der XML-Datei und dem Entschlsseln o u der Daten wie zum Beispiel der Versionsnummer und des richtigen Dokumentes. Durchaus interessant zu lernen war auch wie Xcode mittels CoreData auf Datenbanken zugreift. Dabei bekommt man als Programmierer den Eindruck, dass diese Technologie intelligent umgesetzt wurde, auch wenn es Einarbeitungszeit bentigt hatte. o Um einiges einfacher war die Kapitelansicht umzusetzen. Dabei handelt es sich ja im Grunde nur um eine Tabellen-Ansicht mit ein paar Optimierungen und Ergnzungen. Das Gleiche gilt fr den L3T Browser, der im Prinzip nur der a u Standard Browser von Cocoa-Touch ist und nur um Lesezeichen und eine Toolbar erweitert wurde. Der zeitintensivste Teil und auch das Hauptmerkmal der App war die Anzeige des PDF Dokumentes inklusive der Notizen, Markierungen und Lesezeichen. Das richtige Speichern von Notizen und Markierungen erforderte mehr Zeit als geplant, damit auch zu jedem Dokument und der zugehrigen Seite, die richtio gen Daten geladen werden. Verbesserungsvorschlge wren eventuell noch Notizen die sich bewegen lassen a a und Textstellen, die sich automatisch markieren bei Berhrung. Geschwindigu keitsverbesserungen wren mglich, wobei die Dokumente an sich schon sehr a o hochausende Bilder in sich haben und es deshalb zu lngeren Ladezeiten komo a men kann.

30

Ausblick

Buch und Medien in der heutigen Zeit. Das heutige Buch gibt es seit der Erndung des modernen Buchdruckes in der Mitte des 15. Jahrhunderts durch Johannes Gutenberg. Das ist ein ungewhnlich o langer Lebenszyklus fr ein Produkt. Somit stellt sich mir die Frage ob das Buch u an sich uberhaupt aussterben kann? Sind Tablet-PCs, wie das iPad, in der Lage das Buch zu verdrngen? a Meiner Meinung nach wird das in absehbarer Zeit nicht passieren. Das Buch hat noch einen zu hohen Stellenwert, das iPad wird eher noch als Spielerei angesehen. Ich empnde es auch angenehmer ein Buch oder Skriptum in der Hand zu haben und daraus zu lernen, als vor dem Computer oder am iPad zu sitzen und in einem PDF Dokument zu lesen. Auf einem elektronischen Gert ist es a anstrengender zu lesen als auf einem herkmmlichen Buch und deshalb ist es o meiner Ansicht nach schwieriger sich uber lngere Zeit auf ein eBook zu kona zentrieren. Diese Uberlegung wiederum bringt mich zu der Ansicht, dass Magazinen und Zeitschriften eine immer grere Bedeutung am Tablet-Markt beigemessen wero den wird. Zeitschriften sind meist erheblich krzer gehalten als Bcher, erfordern u u somit weniger Zeit und ermglichen auch ein kurzes Schmkern. o o Der grte Vorteil solcher elektronischen Zeitschriften ist aber in meinen Augen o die Mglichkeit der Interaktion des Benutzers mit den Inhalten. Ein besondeo res Beispiel ist sicherlich die App Our Choice[10], die von Push Pop Press entwickelt wurde, einem Digital Publishing-Unternehmen, das von dem Apple Entwickler Mike Matas gegrndet wurde. Die App selbst ist ein eBook, bei dem u smtliche Graken, Tabellen und Animationen interaktiv gestaltet sind und mit a Videos und Audio Kommentaren ergnzt wurden. Das Unternehmen stellt ihre a Technologie auch anderen Verlagen per Lizenz zur Verfgung, sodass die Prsenz u a an solch interaktiven eBooks sicherlich stark zunehmen wird. Wie sieht die Zukunft aus? Reine eBook Lesegerte wie der Amazon Kindle werden es schwer haben. Diese a Gerte haben nur ein Nutzungs-Schema, das heit sie sind nur auf das Lesen a von eBooks ausgelegt und haben wenig interaktive Features. Tablet-PCs wie das iPad haben verschiedenste Anwendungsbereiche, wie Spiele, eBooks, Multimedia, usw. , nur der Bildschirm ist ein kleines Manko. Jedoch wenn man im Freien ein eBook lesen mchte, so ist das auf einem Kindle deuto lich angenehmer als auf einem iPad, da dem Bildschirm vom iPad eine andere Technologie zugrunde liegt. Ich denke auch, dass sich das Nutzungsverhalten der Leser ndern wird. Man a hat seine Medien immer bei der Hand, ist stndig mobil, kann schnell zwischen a Medien wechseln, und kann Inhalte erstellen. Das alles gibt Platz fr neue Ideen u und neue Technologien an die wir jetzt noch nicht denken. Eine Art vernetz31

tes Lesen wre denkbar, mit ortsbezogenen Inhalten, oder auch vernetztes a Schreiben. Solche Dinge knnten Einuss auf unser Bildungssystem haben. o Schulbcher knnten gemeinsam gelesen werden und mit Lesezeichen und Komu o mentaren versehen werden, auf die jeder Schler Zugri hat[11]. u Tablet-PCs sind relativ neu am Markt und ich denke dass noch viel Neues kommen wird. Es ergeben sich immer wieder neue Mglichkeiten und neue Technoo logien, aber Mike Matas zeigt in welche Richtung es mit eBooks gehen knnte. o

32

Hyperlinks
[1] http://de.wikipedia.org/wiki/App (15.07.2011) [2] http://www.apple.com/at/iphone/apps-for-iphone/#heroOverview (15.07.2011) [3] http://de.wikipedia.org/wiki/Apple_iPad (16.07.2011) [4] http://de.wikipedia.org/wiki/E-Book (16.07.2011) [5] http://de.wikipedia.org/wiki/Objective-C (17.07.2011) [6] http://de.wikipedia.org/wiki/Xcode (17.07.2011) [7] http://developer.apple.com/technologies/ios/cocoa-touch. html(18.07.2011) [8] http://de.wikipedia.org/wiki/SQLite (18.07.2011) [9] http://de.wikipedia.org/wiki/Extensible_Markup_Language (19.07.2011) [10] http://www.ted.com/talks/mike_matas.html(25.07.2011) [11] http://www.scribd.com/doc/30860077/(25.07.2011)

33

Literatur
[1] Dave Mark, Jack Nutting, Je LaMarche (2011). Beginning iPhone 4 Development [2] Toby Boudreaux (2009). Programming the iPhone User Experience

34

Abbildungsverzeichnis
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Apple iPad.1 . . . . . . Amazon Kindle.2 . . . . UINavigationController UITableView . . . . . . UIAlertView . . . . . . L3T Logo . . . . . . . . Navigationsleiste . . . . Kapitelauswahl . . . . . PDF Ansicht . . . . . . Toolbar . . . . . . . . . Markierungen . . . . . . L3T Browser Button . . Download View Button CoreData Model . . . . Lesezeichen . . . . . . . Notizzettel . . . . . . . . Optionsmen . . . . . . u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 4 12 13 14 15 15 16 17 17 19 21 22 23 27 28 29

35

Das könnte Ihnen auch gefallen