Con il rilascio di iOS 5, un piccolo ma potente framework è disponibile per gli sviluppatori per integrare rapidamente Twitter all'interno di un'applicazione. Questo tutorial ti insegnerà come rendere la vita molto più semplice usando il framework di Twitter!
In questa serie di tutorial in due parti, parlerò del framework di Twitter che è stato introdotto con iOS 5. Le prime parti TWTweetComposeViewController
, che rende la composizione e l'invio di tweet semplici come la presentazione di un controller di visualizzazione modale. La seconda parte è più avanzata quando diamo un'occhiata più da vicino a TWRequest, una classe progettata per interagire con l'API di Twitter in modo affidabile e diretto. Una delle funzionalità che la maggior parte di voi apprezzerà è la gestione integrata dell'autenticazione. Rimuove completamente i mal di testa associati all'autenticazione. Se OAuth ti ha dato incubi e mal di testa, allora adorerai il framework di Twitter!
In questo tutorial, ti mostrerò come integrare la struttura di Twitter in un'applicazione esistente e come usarla TWTweetComposeViewController
comporre e inviare tweet dalle tue applicazioni. Costruiremo un'applicazione da zero e aggiungeremo la possibilità di inviare tweet dall'interno dell'applicazione con uno sforzo sorprendentemente piccolo.
Dal momento che iOS 5, Twitter è strettamente integrato con il sistema operativo e questo è uno dei motivi per cui l'interazione con Twitter è diventata molto semplice. Il sistema operativo ora memorizza il tuo account Twitter e questo significa che l'utente non ha bisogno di reinserire le sue credenziali Twitter per ogni applicazione che vuole parlare con Twitter. Come sviluppatore, devi solo richiedere l'accesso all'account Twitter dell'utente, il che si traduce in un'esperienza utente molto migliore. Un altro vantaggio per lo sviluppatore è che l'autenticazione è gestita dal sistema operativo.
Ciò significa anche che deve essere installato un account Twitter sul tuo dispositivo (o iOS Simulator) se desideri completare questo tutorial. Puoi verificarlo aprendo il impostazioni applicazione sul dispositivo (o iOS Simulator) e selezionando cinguettio dalla lista. Questo ti mostrerà quali account sono associati al tuo dispositivo. Per aggiungere un account, toccare Aggiungi account e inserisci le tue credenziali Twitter. Con quello fuori mano, iniziamo a costruire la nostra applicazione.
Crea un nuovo progetto in Xcode selezionando il Applicazione vista singola modello dall'elenco di modelli. Dai un nome alla tua domanda cinguettio, inserire un identificativo aziendale, impostare i phone per la famiglia di dispositivi e controllare Utilizzare il conteggio di riferimento automatico. Assicurati di deselezionare le caselle di controllo rimanenti per questo progetto. Dillo a Xcode dove vuoi salvare il tuo progetto e colpire Creare.
La nostra applicazione sarà molto semplice in termini di interfaccia utente, abbiamo solo bisogno di creare un'azione nel file di intestazione del nostro controller di visualizzazione. Facciamolo adesso.
Dirigetevi verso ViewController.h e creare un IBAction
di nome Tweet:. L'azione verrà attivata da un pulsante che aggiungeremo al file xib del nostro controller di visualizzazione. Non dimenticare di aggiungere un'implementazione vuota della nostra azione a ViewController.m per prevenire eventuali avvisi del compilatore.
#importare@interface ViewController: UIViewController - (IBAction) tweet: (id) mittente; @fine
- (IBAction) tweet: (id) mittente
L'impostazione dell'interfaccia utente nel file xib del nostro controller di visualizzazione richiederà solo pochi secondi. Trascina a UIButton
istanza alla vista del controller della vista e dargli un titolo di Tweet. Tutto quello che ci resta da fare è collegare la nostra azione e il pulsante. Controllo trascinamento dal pulsante a Proprietario del file e seleziona la nostra azione dal menu che si apre. Questo collegherà la nostra azione ai pulsanti UIControlEventTouchUpInside
, che è quello che vogliamo Questo è tutto ciò che dobbiamo fare nel nostro file xib per questo tutorial.
Prima di poter iniziare a utilizzare il framework di Twitter, è necessario aggiungerlo al nostro progetto. Seleziona il nostro progetto nel Project Navigator e seleziona il nostro obiettivo dalla lista dei bersagli. Apri il Costruisci fasi scheda in alto, apri il Collega binario con le librerie cassetto, fare clic sul pulsante più e scegliere Twitter.framework dalla lista. Nella parte superiore del file di intestazione del controller della vista, è inoltre necessario aggiungere una dichiarazione di importazione che importi le intestazioni del framework di Twitter. Ora siamo pronti per iniziare a twittare.
#importare
Andate al file di implementazione del nostro controller di visualizzazione e implementiamo il nostro Tweet: metodo. Ti guiderò attraverso l'implementazione passo dopo passo.
La prima cosa che dobbiamo fare è controllare se è possibile inviare un tweet dal dispositivo corrente. Lo facciamo inviando TWTweetComposeViewController
il messaggio canSendTweet. Si noti che questo è un metodo di classe. Dietro le quinte, il framework Twitter controllerà (1) se Twitter è accessibile e (2) se un account Twitter (o più) è disponibile sul dispositivo. Per dare un esempio, se l'utente non ha una connessione di rete, questo metodo tornerà NO, perché non può accedere a Twitter. Certo, siamo bravi sviluppatori e visualizziamo una vista di avviso appropriata quando non è possibile inviare un tweet. Crea ed esegui la tua applicazione per assicurarti di poter inviare tweet.
if ([TWTweetComposeViewController canSendTweet]) NSLog (@ "Posso inviare tweet."); else // Mostra vista avviso quando l'applicazione non può inviare tweet NSString * message = @ "L'applicazione non può inviare un tweet al momento. Questo perché non può raggiungere Twitter o non hai un account Twitter associato a questo dispositivo . "; UIAlertView * alertView = [[UIAlertView alloc] initWithTitle: @ "Oops" message: message delegate: nil cancelButtonTitle: @ "Dismiss" otherButtonTitles: nil]; [show di alertView];
Se possiamo inviare un tweet, inizializziamo il nostro TWTweetComposeViewController
. TWTweetComposeViewController
è una sottoclasse di UIViewController
ed è progettato per presentare la vista di composizione del tweet e inviare un tweet a Twitter. Possiamo configurare il TWTweetComposeViewController
in una certa misura impostando un testo iniziale e aggiungendo un'immagine o un URL al tweet. Impostiamo un testo iniziale.
// Inizializza Tweet Componi Visualizza controller TWTweetComposeViewController * vc = [[TWTweetComposeViewController alloc] init]; // Settin The Initial Text [vc setInitialText: @ "Questo tweet è stato inviato utilizzando il nuovo framework Twitter disponibile su iOS 5."];
Infine, presentiamo il controller di visualizzazione di composizione tweet modally. Costruisci ed esegui la tua applicazione e dai un'occhiata a ciò che abbiamo ottenuto finora.
// Visualizza Tweet Compose View Controller Modally [autopresenteViewController: vc animato: SÌ completamento: nil];
Come puoi vedere, la bellezza di inviare tweet usando il TWTweetComposeViewController
è che hai poco overhead come sviluppatore. Non è necessario preoccuparsi dell'interfaccia utente e l'invio di tweet avviene in background. L'utente può anche aggiungere la propria posizione al tweet toccando il pulsante Aggiungi luogo pulsante in basso a sinistra nella vista di composizione del tweet.
Voglio mostrarti qualcos'altro TWTweetComposeViewController
. Torna all'attuazione del nostro Tweet: metodo e aggiungiamo un'immagine al nostro tweet. Prima di fare ciò, trascina un'immagine che vuoi condividere con il mondo nel tuo progetto e assicurati di copiarla nel tuo progetto e di aggiungerla al tuo obiettivo.
Aggiungere l'immagine al tuo tweet è molto semplice e richiede solo due righe di codice. Costruisci e avvia la tua applicazione ancora una volta e guarda come l'immagine è ora allegata al tuo tweet con una graffetta. Come ho detto prima, puoi anche aggiungere URL. Anche se la vista di composizione del tweet mostra l'immagine e gli URL come allegati del tweet, è importante notare che le immagini e gli URL riducono il numero di caratteri del tweet, che è limitato a 140 caratteri max.
// Aggiunta di un'immagine UIImage * image = [UIImage imageNamed: @ "sample.jpg"]; [vc addImage: image];
Se vuoi rimuovere un'immagine o un URL da un tweet, chiami removeAllImages e removeAllURLs, rispettivamente, sulla tua istanza di TWTweetComposeViewController
. Puoi aggiungere più URL a un tweet, ma sembra che tu possa solo aggiungere un'immagine per tweet. Non è chiaro se si tratti di una scelta deliberata fatta da Apple o di un bug nel framework di Twitter. Come hai visto prima, il metodo per rimuovere le immagini da un tweet è removeAllImages, cioè, plurale.
Per terminare questo tutorial, mi piacerebbe parlare di un altro aspetto di TWTweetComposeViewController
, cioè, l'opzione per dichiarare un gestore di completamento. Questo è un blocco che viene eseguito quando l'utente ha toccato il pulsante Annulla o quando il tweet è stato inviato correttamente a Twitter. Il gestore di completamento accetta un argomento, una bandiera che informa se la pubblicazione del tweet è stata annullata (TWTweetComposeViewControllerResultCancelled) o se il tweet è stato inviato a Twitter (TWTweetComposeViewControllerResultDone). Il gestore di completamento è un buon posto per chiudere il controller di visualizzazione di composizione tweet. Dai un'occhiata alla completa implementazione del nostro Tweet: metodo.
- (IBAction) tweet: (id) sender if ([TWTweetComposeViewController canSendTweet]) // Inizializza Tweet Compose View Controller TWTweetComposeViewController * vc = [[TWTweetComposeViewController alloc] init]; // Settin The Initial Text [vc setInitialText: @ "Questo tweet è stato inviato utilizzando il nuovo framework Twitter disponibile su iOS 5."]; // Aggiunta di un'immagine UIImage * image = [UIImage imageNamed: @ "sample.jpg"]; [vc addImage: image]; // Aggiunta di un URL NSURL * url = [NSURL URLWithString: @ "http://mobile.tutsplus.com"]; [vc addURL: url]; // Impostazione di un gestore completo [vc setCompletionHandler: ^ (TWTweetComposeViewControllerResult result) [self dismissModalViewControllerAnimated: YES]; ]; // Visualizza Tweet Compose View Controller Modally [autopresenteViewController: vc animato: SÌ completamento: nil]; else // Mostra vista avviso quando l'applicazione non può inviare tweet NSString * message = @ "L'applicazione non può inviare un tweet al momento. Questo perché non può raggiungere Twitter o non hai un account Twitter associato a questo dispositivo . "; UIAlertView * alertView = [[UIAlertView alloc] initWithTitle: @ "Oops" message: message delegate: nil cancelButtonTitle: @ "Dismiss" otherButtonTitles: nil]; [show di alertView];
L'invio di tweet dall'applicazione è diventato incredibilmente facile grazie alla stretta integrazione di Twitter e del sistema operativo. Ancora TWTweetComposeViewController
potrebbe non darti una flessibilità sufficiente. O forse vuoi parlare direttamente con l'API di Twitter? Il TWRequest
class è la soluzione che stai cercando. parlerò di TWRequest
nella seconda parte di questa serie in due parti. Rimanete sintonizzati!