Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Geleitwort
Vorwort
1 Hello iPhone
2 Grundlagen
3 Views und Viewcontroller
4 Alles unter Kontrolle
5 Daten, Tabellen und Controller
6 Models, Layer, Animationen
7 Programmieren, aber sicher
8 Datenserialisierung und Internetzugriff
9 Jahrmarkt der Nützlichkeiten
A Sicherer Entwicklungszyklus
Stichwort

Download:
- ZIP, ca. 49,9 MB
Buch bestellen
Ihre Meinung?

Spacer
Apps programmieren für iPhone und iPad von Klaus M. Rodewig, Clemens Wagner
Das umfassende Handbuch
Buch: Apps programmieren für iPhone und iPad

Apps programmieren für iPhone und iPad
Galileo Computing
1000 S., geb., mit DVD
39,90 Euro, ISBN 978-3-8362-1915-0
Pfeil 5 Daten, Tabellen und Controller
Pfeil 5.1 Benachrichtigungen
Pfeil 5.1.1 Benachrichtigungen empfangen
Pfeil 5.1.2 Eigene Benachrichtigungen verschicken
Pfeil 5.2 Layoutanpassungen und Viewrotationen
Pfeil 5.2.1 Flexible Views dank Autosizing
Pfeil 5.2.2 Lang lebe das Rotationsprinzip!
Pfeil 5.2.3 Anpassung des Layouts
Pfeil 5.3 Autolayout
Pfeil 5.3.1 Restriktionen im Interface Builder festlegen
Pfeil 5.3.2 Restriktionen per Programmcode erstellen
Pfeil 5.3.3 Autolayout und Lokalisierung
Pfeil 5.4 Core Data
Pfeil 5.4.1 Datenmodellierung
Pfeil 5.4.2 Implementierung von Entitätstypen
Pfeil 5.4.3 Einbindung von Core Data
Pfeil 5.4.4 Der Objektkontext
Pfeil 5.4.5 Die Nachrichten des Objektkontexts
Pfeil 5.4.6 Anlegen und Ändern von Entitäten in der Praxis
Pfeil 5.5 Texte, Bilder und Töne verwalten
Pfeil 5.5.1 Die Tastatur betritt die Bühne
Pfeil 5.5.2 Fotos aufnehmen
Pfeil 5.5.3 Töne aufnehmen und abspielen
Pfeil 5.6 Tableviews und Core Data
Pfeil 5.6.1 Tableviews
Pfeil 5.6.2 Tabellenzellen gestalten
Pfeil 5.6.3 Tableviews unter iOS 5
Pfeil 5.6.4 Buttons in Tabellenzellen
Pfeil 5.6.5 Zellen löschen
Pfeil 5.7 Core Data II: Die Rückkehr der Objekte
Pfeil 5.7.1 Prädikate
Pfeil 5.7.2 Aktualisierung des Tableviews
Pfeil 5.7.3 Das Delegate des Fetchedresultscontrollers
Pfeil 5.7.4 Tabelleneinträge suchen
Pfeil 5.8 Twitter
Pfeil 5.8.1 Der Twitter-Account
Pfeil 5.8.2 Hinzufügen des Twitter-Frameworks
Pfeil 5.8.3 Integration in das Fototagebuch
Pfeil 5.9 Collectionviews
Pfeil 5.9.1 Der Collectionviewcontroller
Pfeil 5.9.2 Gitterdarstellung
Pfeil 5.9.3 Zellen und die Datenquelle
Pfeil 5.9.4 Ergänzende Views
Pfeil 5.9.5 Freie Layouts
Pfeil 5.9.6 Freie Layouts und ergänzende Views
Pfeil 5.9.7 Zellen auswählen
Pfeil 5.9.8 Decorationviews

Galileo Computing - Zum Seitenanfang

5.8 TwitterZur nächsten Überschrift

Mit iOS 5 hat Apple über das Twitter-Framework die native Unterstützung von Twitter eingeführt. Es wird Ihnen eventuell schon in den Einstellungen von iOS 5 aufgefallen sein: Twitter ist ebenso integraler Bestandteil von iOS wie die iCloud.

Twitter?

Falls Ihnen Twitter auf Anhieb nichts sagt, ist das nicht weiter schlimm. Man kann gut ohne Twitter leben. Wir wollen hier niemanden zur Online-Sucht verleiten. Falls Sie jetzt trotzdem neugierig geworden sind, gucken Sie sich Twitter einfach mal an: www.twitter.com.

Die auf Twitter veröffentlichten Nachrichten nennt man Tweets. Diesen Begriff werden wir im Folgenden auch verwenden.

Die iOS-API bietet zwei Möglichkeiten der Kommunikation mit Twitter. Die erste ist das direkte Senden von Tweets aus einer App an ein Twitter-Konto. Dabei können Sie Text, Bilder und URLs versenden. Zum Benutzer hin öffnen Sie dafür mit dem TWTweetComposeViewController ein Formular, in das der Benutzer Text einfügen kann. Sie können dem Formular einen Text vorgeben, ein Bild anhängen und eine URL übergeben.

Die zweite Art der Kommunikation ist die Klasse TWRequest. Diese Klasse erlaubt den direkten Zugriff auf die Twitter-API. Unter Verwendung dieser Klasse können Sie sich einen eigenen Twitter-Client programmieren, Tweets und Profile abrufen und auch sonst alle Funktionen abbilden, die Twitter anbietet.

In unserem Fototagebuch bietet sich die erste Variante an: die Verwendung des TWTweetComposeViewController. Diesen werden wir so in die App integrieren, dass der Benutzer jeden Eintrag auf Knopfdruck samt Bild bei Twitter veröffentlichen kann.


Galileo Computing - Zum Seitenanfang

5.8.1 Der Twitter-AccountZur nächsten ÜberschriftZur vorigen Überschrift

Damit Sie das Twitter-Framework erfolgreich in einer App nutzen können, muss ein Twitter-Account in den iOS-Systemeinstellungen vorhanden sein. Falls das noch nicht passiert ist, öffnen Sie auf Ihrem iDevice die Einstellungen und tragen dort unter Twitter die Zugangsdaten für Ihren Twitter-Account ein (siehe Abbildung 5.35). Falls Sie noch keinen Twitter-Account besitzen, legen Sie sich auf http://www.twitter.com einen solchen an.

Abbildung

Abbildung 5.35 Twitter-Einstellungen im iOS

Über den TWTweetComposeViewController können Sie jedem Tweet automatisch Ihren aktuellen Standort übergeben. Damit diese Funktion innerhalb des Fototagebuchs verfügbar ist, aktivieren Sie in den Twitter-Einstellungen von iOS die betreffende Option (siehe Abbildung 5.36).

Abbildung

Abbildung 5.36 Zugriff auf Standortdaten

Damit ist Ihr iDevice für den Versand von Twitter-Nachrichten über das Twitter-Framework bereit.


Galileo Computing - Zum Seitenanfang

5.8.2 Hinzufügen des Twitter-FrameworksZur nächsten ÜberschriftZur vorigen Überschrift

Öffnen Sie nun das Fototagebuch-Projekt, und fügen Sie als Erstes das Twitter-Framework dem Projekt hinzu. Dieser Schritt ist notwendig, damit der Compiler (bzw. der Linker) die entsprechenden Bibliotheken in die App einbauen kann. Die Einstellung dafür finden Sie in Xcode, wenn Sie im Project navigator das Projekt auswählen, in der Spalte rechts neben dem Project navigator das Target PhotoDiary wählen und im Hauptfenster im Tab Summary nach unten scrollen, bis der Abschnitt Linked Frameworks and Libaries erscheint. Dort öffnen Sie mit dem Plus-Button den Dialog zum Hinzufügen weiterer Bibliotheken (siehe Abbildung 5.37).

Projektstand im Git-Repository

Um das Fototagebuch auf dem Stand vor dem Einbau der Twitter-Funktionalität aus dem Git-Repository auszuchecken, wählen Sie bitte den Commit mit dem Hash e6190f8.

Der komplette Hash ist e6190f81886a60baa8e06818b2613a498886e939.

Abbildung

Abbildung 5.37 Hinzufügen einer Bibliothek

In diesem Dialog können Sie durch Texteingabe die Ansicht filtern. Suchen Sie nach dem Twitter-Framework, und binden es mit dem Add-Button ein (siehe Abbildung 5.38).

Abbildung

Abbildung 5.38 Einbinden des Twitter-Frameworks


Galileo Computing - Zum Seitenanfang

5.8.3 Integration in das FototagebuchZur vorigen Überschrift

Der nächste Schritt ist die Entscheidung, an welcher Stelle der App eine Twitter-Integration sinnvoll wäre. Da der gemeine Benutzer Twitter wohl dafür benutzen wird, seine Follower darüber zu informieren, wo er sich gerade aufhält, ist ein guter Platz für die Twitter-Integration der View, in dem man einen neuen Tagebucheintrag anlegt. Gemäß dem MVC-Muster ist der View selbst kein geeigneter Ort für den Code, daher wählen Sie den ItemViewController, um die App mit Twitter anzureichern. Der ItemViewController ist von der Plattform unabhängig (iPhone oder iPad), sodass wir den Twitter-Code nur an einer Stelle einbauen und pflegen müssen.

Öffnen Sie also die Datei ItemViewController.h, und binden Sie zunächst die Header-Datei des Twitter-Frameworks ein:

#import <UIKit/UIKit.h>
#import "DiaryEntry.h"
#import "AudioRecorderController.h"
#import <Twitter/Twitter.h>
[...]

Durch den Import der Header-Datei kennt der Compiler nun die Eigenschaften des im vorangegangenen Schritt eingebundenen Twitter-Frameworks.

Jetzt kommt die eigentliche Arbeit. Wir werden einen neuen Button zur GUI hinzufügen, über den der Benutzer den TWTweetComposeViewController aufrufen kann. Beim Aufruf des TWTweetComposeViewController werden wir den Text des aktuellen Fototagebuch-Eintrags übernehmen sowie das betreffende Foto.

Öffnen Sie also nun den Itemviewcontroller. Je nach Versionsstand des Projektes finden Sie diesen in der Datei ItemViewController.xib oder im Storyboard (MainStoryboard.storyboard bzw. MainStoryboard-iPad.storyboard). Wenn Sie das Projekt mit dem Git-Hash e6190f8 ausgecheckt haben, ist das Projekt noch nicht auf Storyboards umgestellt. In diesem Fall verwenden Sie bitte die Datei ItemViewController.xib. Beim Projektstand mit Storyboards müssen Sie zwei Views bearbeiten: einmal den View für das iPhone im MainStoryboard und einmal den View für das iPad im MainStoryboard-iPad. Der betreffende View liegt dort im Viewcontroller "Eintrag". Die nachfolgend beschriebenen Schritte für den View der iPhone-Version müssen Sie analog für das iPad wiederholen.

Fügen Sie der Toolbar am unteren Ende des Views ein weiteres Bar Button Item hinzu (siehe Abbildung 5.39).

Abbildung

Abbildung 5.39 Ein weiteres Bar Button Item

Platzieren Sie das Bar Button Item ganz unten links auf dem View: dort, wo noch ein Platz frei ist (siehe Abbildung 5.40).

Abbildung

Abbildung 5.40 Der designierte Twitter-Button

Im Projektverzeichnis des Fototagebuches finden Sie zwei Grafiken für den Button: twitter.png und twitter@2x.png. Wenn Sie beide Grafiken in Ihr Projektverzeichnis ziehen, können Sie dem Button anschließend die Grafik zuweisen. Wählen Sie dazu zunächst den Button aus, und weisen Sie ihm anschließend im Attributes inspector die Grafik twitter.png zu (siehe Abbildung 5.41).

Abbildung

Abbildung 5.41 Zuweisen der Grafik an den Twitter-Button

Im selben Einstellungsbereich des Attributes inspector entfernen Sie dann noch den Haken an der Checkbox Enabled.

Erzeugen Sie anschließend in der Header-Datei des Itemviewcontrollers ein Outlet sowie eine Action für den Button. Dem Outlet geben Sie den Bezeichner tweetButton und der Action den Namen composeTweet:

[...]
@property (nonatomic, weak) IBOutlet Zeilenumbruch
UIBarButtonItem *tweetButton;
[...]
- (IBAction)composeTweet:(id)sender;
[...]

In der Implementierungsdatei muss dann die entsprechende synthesize-Anweisung für die Property stehen:

@synthesize tweetButton;

Die Möglichkeit, einen Tweet zu verfassen, soll dann gegeben sein, wenn ein Text für einen Fototagebuch-Eintrag vorhanden ist – kein Text, kein Tweet. Daher haben wir den Twitter-Button auf der GUI der App standardmäßig deaktiviert. Um den Button zu aktivieren, sobald Text vorhanden ist, erweitern wir die Methode saveText: in der Datei ItemViewController.m um die fett gedruckte Zeile:

- (IBAction)saveText:(id)inSender {
self.tweetButton.enabled = YES;
[self.view endEditing:YES];
self.item.text = self.textView.text;
[self saveItem];
}

Listing 5.69 Twitter-Button aktivieren

Diese Methode wird aufgerufen, sobald der Benutzer die Texteingabe mit dem Save-Button beendet (siehe Abbildung 5.42). Damit ist davon auszugehen, dass Text vorhanden ist, den zu twittern sich lohnen könnte.

Abbildung

Abbildung 5.42 Der »Save«-Button aktiviert den Twitter-Button.

Ist der Twitter-Button aktiviert, ruft das Betätigen desselben die Methode composeTweet: auf – die entsprechende Verknüpfung haben Sie ja bereits erstellt. Daher ist es jetzt an der Zeit, die Methode zu implementieren. Fügen Sie in die Implementierungsdatei des Itemviewcontrollers die folgende Methode ein:

- (IBAction)composeTweet:(id)sender {
if([TWTweetComposeViewController canSendTweet]){
Medium *theMedium = [self.item Zeilenumbruch
mediumForType:kMediumTypeImage];
TWTweetComposeViewController *tweet = Zeilenumbruch
[[TWTweetComposeViewController alloc] init];
[tweet setInitialText:[textView text]];
[tweet addImage:[UIImage Zeilenumbruch
imageWithData:theMedium.data]];
[self presentViewController:tweet Zeilenumbruch
animated:YES completion:NULL];
} else {
UIAlertView *alert = [[UIAlertView Zeilenumbruch
alloc] initWithTitle:@"Obacht!"
message:@"Bitte Twitter-Account Zeilenumbruch
in den Systemeinstellungen einrichten."
delegate:self
cancelButtonTitle:@"Ok"
otherButtonTitles:nil];
[alert show];
}
}

Listing 5.70 Twittercontroller anzeigen

Die Methode prüft in der zweiten Zeile zunächst, ob in den Systemeinstellungen von iOS ein Twitter-Account eingerichtet ist (Methode canSendTweet). Ist dies der Fall, erzeugt die Methode in der dritten Zeile ein Objekt vom Typ Medium, mit Namen theMedium, um das Bild des aktuellen Eintrags aufzunehmen. Schließlich erzeugt die Methode ein neues Objekt vom Typ TWTweetComposeViewController.

Die Methode übergibt diesem Objekt den Text des aktuellen Fototagebuch-Eintrags über die Methode setInitialText: und fügt auch noch noch das gespeicherte Bild über addImage:, in dem es einem neuen Objekt vom Typ UIImage die Daten des Objekts theMedium übergibt. Damit sind die erforderlichen Parameter für den TWTweetComposeViewController gesetzt. Die Methode zeigt den Viewcontroller dann über die Methode presentViewController:animated:completion: an.

Der Else-Block zeigt eine Warnung über einen Alertviews, wenn kein Twitter-Account in den Systemeinstellungen eingerichtet ist.

Damit ist die Twitter-Integration fertig! Starten Sie die App auf einem iDevice, fügen Sie einen neuen Eintrag zum Fototagebuch hinzu (oder öffnen Sie einen bestehenden Eintrag), und drücken Sie den neuen Twitter-Button (siehe Abbildung 5.43).

Abbildung

Abbildung 5.43 Nach der Text-Eingabe ist der Twitter-Button aktiviert.

Es erscheint der TWTweetComposeViewController mit dem Text des Eintrags und dem Foto (sofern vorhanden). Den Text können Sie im TWTweetComposeViewController vor dem Absenden noch beliebig editieren (siehe Abbildung 5.44).

Abbildung

Abbildung 5.44 Der TWTweetComposeViewController

Durch Betätigen des Send-Buttons schicken Sie den Tweet ab. Das Ergebnis erscheint unmittelbar auf Ihrer Twitter-Seite (siehe Abbildung 5.45).

Abbildung

Abbildung 5.45 Der neue Tweet auf »www.twitter.com« in der Übersicht

In der Detailansicht ist auch das Foto zu sehen (siehe Abbildung 5.46).

Abbildung

Abbildung 5.46 Tweet mit Foto. Heureka!

Die Länge von Tweets

Die Länge eines Tweets ist seitens Twitter auf 140 Zeichen beschränkt. Pro angehängtem Bild und URL verringert sich die Anzahl um jeweils 19 Zeichen. Daher ist es ratsam, die Länge des an den TWTweetComposeViewController übergebenen Strings entsprechend zu begrenzen. Da wir in unserer Implementierung nur Text und ein Bild haben, kann sich die Länge des Tweets maximal um 19 Zeichen verringern.



Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.







<< zurück
  Zum Katalog
Zum Katalog: Apps programmieren für iPhone und iPad

Apps programmieren für iPhone und iPad
Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Katalog: Einstieg in Objective-C 2.0 und Cocoa





 Einstieg in
 Objective-C 2.0
 und Cocoa


Zum Katalog: Apps entwickeln für iPhone und iPad - Videotraining






 Apps entwickeln für
 iPhone und iPad -
 Videotraining


Zum Katalog: Apps mit HTML5 und CSS3






 Apps mit HTML5
 und CSS3


Zum Katalog: iPhone- und iPad-Apps entwickeln






 iPhone- und
 iPad-Apps entwickeln


Zum Katalog: Android 4






 Android 4


Zum Katalog: Android-Apps entwickeln - Videotraining






 Android-Apps
 entwickeln -
 Videotraining


Zum Katalog: Windows Store Apps mit XAML und C#






 Windows Store Apps
 mit XAML und C#


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo





Copyright © Galileo Press 2013
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de