iOS 5 et le framework Twitter premières étapes

Avec la sortie d'iOS 5, les développeurs disposent d'un cadre compact mais puissant pour intégrer rapidement Twitter dans une application. Ce tutoriel vous apprendra comment rendre la vie beaucoup plus facile en utilisant le framework Twitter!

Dans cette série de tutoriels en deux parties, je parlerai du cadre Twitter introduit avec iOS 5. La première partie couvre TWTweetComposeViewController, ce qui rend la composition et l’envoi de tweets aussi simples que la présentation d’un contrôleur de vue modale. La deuxième partie est plus avancée puisque nous examinons de plus près TWRequest, une classe conçue pour interagir avec l’API de Twitter de manière fiable et simple. L'une des fonctionnalités dont la plupart d'entre vous apprécieront la gestion intégrée de l'authentification. Il supprime complètement les maux de tête associés à l'authentification. Si OAuth vous a donné des cauchemars et des maux de tête, alors vous allez adorer le framework Twitter!


Résumé du projet

Dans ce tutoriel, je vais vous montrer comment intégrer le framework Twitter dans une application existante et comment utiliser TWTweetComposeViewController pour composer et envoyer des tweets à partir de vos applications. Nous allons créer une application à partir de rien et ajouter la possibilité d'envoyer des tweets depuis l'application avec un effort étonnamment réduit..


Avant de commencer

Depuis iOS 5, Twitter est étroitement intégré au système d'exploitation et c'est l'une des raisons pour lesquelles l'interaction avec Twitter est devenue très facile. Le système d'exploitation stocke maintenant votre compte Twitter, ce qui signifie que l'utilisateur n'a pas besoin de ressaisir ses informations d'identification Twitter pour chaque application souhaitant communiquer avec Twitter. En tant que développeur, il vous suffit de demander l'accès au compte Twitter de l'utilisateur, ce qui améliore considérablement l'expérience utilisateur. Un autre avantage pour le développeur est que l’authentification est gérée par le système d’exploitation..

Cela signifie également qu'un compte Twitter doit être installé sur votre appareil (ou votre simulateur iOS) si vous souhaitez suivre ce didacticiel. Vous pouvez le vérifier en ouvrant le Réglages application sur votre appareil (ou simulateur iOS) et en sélectionnant Gazouillement de la liste. Cela vous indiquera quels comptes sont associés à votre appareil. Pour ajouter un compte, appuyez sur Ajouter un compte et entrez vos identifiants Twitter. Cela fait, commençons à construire notre application.


Configuration du projet

Créez un nouveau projet dans Xcode en sélectionnant le Application à vue unique modèle de la liste des modèles. Nommez votre application Gazouillement, entrez un identifiant d'entreprise, définissez iPhone pour la famille d'appareils, et vérifiez Utiliser le comptage automatique des références. Assurez-vous de décocher les cases restantes pour ce projet. Indiquez à Xcode où vous souhaitez enregistrer votre projet et appuyez sur Créer.


Configuration de l'interface utilisateur

Notre application va être très simple en termes d'interface utilisateur, nous n'avons besoin que de créer une action dans le fichier d'en-tête de notre contrôleur de vue. Faisons-le maintenant.

Rendez-vous sur ViewController.h et créer un IBAction nommé tweet:. L'action sera déclenchée par un bouton que nous ajouterons au fichier xib de notre contrôleur de vue. N'oubliez pas d'ajouter une implémentation vide de notre action à ViewController.m pour éviter les avertissements du compilateur.

 #importation  @interface ViewController: UIViewController - (IBAction) tweet: expéditeur (id); @fin
 - (IBAction) tweet: expéditeur (id) 

La configuration de l'interface utilisateur dans le fichier xib de notre contrôleur de vue ne prend que quelques secondes. Faites glisser un UIButton par exemple à la vue du contrôleur de la vue et lui donner un titre de Tweet. La seule chose qui nous reste à faire est de relier notre action et notre bouton. Contrôle glisser du bouton au Propriétaire du fichier et sélectionnez notre action dans le menu qui apparaît. Cela va lier notre action au bouton UIControlEventTouchUpInside, c'est ce que nous voulons. C'est tout ce que nous devons faire dans notre fichier xib pour ce tutoriel..


Ajout du framework Twitter

Avant de pouvoir utiliser le cadre Twitter, nous devons l’ajouter à notre projet. Sélectionnez notre projet dans le Navigateur de projet et sélectionnez notre cible dans la liste des cibles. Ouvrez le Phases de construction onglet en haut, ouvrez le Lien binaire avec des bibliothèques tiroir, cliquez sur le bouton plus, puis choisissez Twitter.framework de la liste. En haut de notre fichier d'en-tête du contrôleur, nous devons également ajouter une instruction d'importation qui importe les en-têtes du cadre Twitter. Nous sommes maintenant prêts à commencer à tweeter.

 #importation 

Rendez-vous sur le fichier d'implémentation de notre contrôleur de vue et mettons en œuvre notre tweet: méthode. Je vais vous guider étape par étape dans la mise en œuvre..

La première chose à faire est de vérifier s’il est possible d’envoyer un tweet à partir du périphérique actuel. Nous faisons cela en envoyant TWTweetComposeViewController le message canSendTweet. Notez qu'il s'agit d'une méthode de classe. En coulisse, le cadre Twitter vérifie (1) si Twitter est accessible et (2) si un compte Twitter (ou plus) est disponible sur l'appareil. Pour vous donner un exemple, si l'utilisateur n'a pas de connexion réseau, cette méthode renverra NON, car il ne peut pas accéder à Twitter. Bien sûr, nous sommes de bons développeurs et nous affichons un affichage d'alerte approprié lorsqu'il n'est pas possible d'envoyer un tweet. Construisez et exécutez votre application pour vous assurer que nous pouvons envoyer des tweets.

 if ([TWTweetComposeViewController canSendTweet]) NSLog (@ "Je peux envoyer des tweets.");  else // Afficher la vue d'alerte lorsque l'application ne peut pas envoyer de tweets NSString * message = @ "L'application ne peut pas envoyer de tweet pour le moment. Elle ne peut pas atteindre Twitter ou ne possède pas de compte Twitter associé à cet appareil. . "; UIAlertView * alertView = [[UIAlertView alloc] initWithTitle: @ "Oups" message: délégué de message: nil cancelButtonTitle: @ "Dismiss" otherButtonTitles: nil]; [alertView show]; 

Si nous pouvons envoyer un tweet, nous initialisons notre TWTweetComposeViewController. TWTweetComposeViewController est une sous-classe de UIViewController et est conçu pour présenter la vue de composition du tweet et envoyer un tweet à Twitter. Nous pouvons configurer le TWTweetComposeViewController dans une certaine mesure, en définissant un texte initial et en ajoutant une image ou une URL au tweet. Fixons un texte initial.

 // Initialiser Tweet Compose View Controller TWTweetComposeViewController * vc = [[TWTweetComposeViewController alloc] init]; // Définition du texte initial [vc setInitialText: @ "Ce tweet a été envoyé à l'aide du nouveau cadre Twitter disponible dans iOS 5."];

Enfin, nous présentons le contrôleur de vue de composition de tweet modalement. Construisez et exécutez votre application et regardez ce que nous avons jusqu'à présent.

 // Affiche le contrôleur de vue de composition en mode modal [self presentViewController: vc animé: YES achèvement: nil];

Comme vous pouvez le constater, la beauté de l'envoi de tweets à l'aide de la TWTweetComposeViewController est que vous avez très peu de frais généraux en tant que développeur. Vous n'avez pas à vous soucier de l'interface utilisateur et l'envoi de tweets se fait en arrière-plan. L’utilisateur peut également ajouter son emplacement au tweet en appuyant sur le bouton Ajouter un emplacement bouton en bas à gauche de la vue de composition du tweet.

Je veux vous montrer quelques autres choses à propos de TWTweetComposeViewController. Revenons à la mise en œuvre de notre tweet: méthode et ajoutons une image à notre tweet. Avant de le faire, faites glisser une image que vous voulez partager avec le monde dans votre projet et assurez-vous de la copier dans votre projet et de l'ajouter à votre cible..

L'ajout de l'image à votre tweet est très facile et ne nécessite que deux lignes de code. Générez et exécutez votre application une fois de plus et voyez comment l'image est maintenant attachée à votre tweet avec un trombone. Comme je l'ai mentionné plus tôt, vous pouvez également ajouter des URL. Même si la vue de composition du tweet affiche l'image et les URL en tant que pièces jointes de votre tweet, il est important de noter que les images et les URL réduisent le nombre de caractères de votre tweet, qui est limité à 140 caractères maximum..

 // Ajout d'une image UIImage * image = [UIImage imageNamed: @ "sample.jpg"]; [vc addImage: image];

Si vous souhaitez supprimer une image ou une URL d'un tweet, vous appelez removeAllImages et removeAllURLs, respectivement, sur votre instance de TWTweetComposeViewController. Vous pouvez ajouter plusieurs URL à un tweet, mais il semble que vous ne pouvez ajouter qu'une image par tweet. Il est difficile de savoir s'il s'agit d'un choix délibéré fait par Apple ou d'un bug dans le cadre de Twitter. Comme vous l'avez vu précédemment, la méthode pour supprimer des images d'un tweet est la suivante: removeAllImages, c'est-à-dire pluriel.

Pour terminer ce tutoriel, j'aimerais parler d'un autre aspect de TWTweetComposeViewController, c'est-à-dire l'option permettant de déclarer un gestionnaire d'achèvement. Il s'agit d'un bloc qui est exécuté lorsque l'utilisateur a appuyé sur le bouton d'annulation ou lorsque le tweet a été envoyé avec succès à Twitter. Le gestionnaire d’achèvement prend un argument, un indicateur vous informant si la publication du tweet a été annulée (TWTweetComposeViewControllerResultCancelled) ou si le tweet a été envoyé à Twitter (TWTweetComposeViewControllerResultDone). Le gestionnaire d'achèvement est un bon endroit pour ignorer le contrôleur de vue de composition de tweet. Jetez un coup d’œil à la mise en œuvre complète de notre tweet: méthode.

 - (IBAction) tweet: (id) expéditeur if ([TWTweetComposeViewController canSendTweet]) // Initialiser Tweet Composer Afficher le contrôleur TWTweetComposeViewController * vc = [[TWTweetComposeViewController alloc] init]; // Définition du texte initial [vc setInitialText: @ "Ce tweet a été envoyé à l'aide du nouveau cadre Twitter disponible dans iOS 5."]; // Ajout d'une image UIImage * image = [UIImage imageNamed: @ "sample.jpg"]; [vc addImage: image]; // Ajout d'une URL NSURL * url = [NSURL URLWithString: @ "http://mobile.tutsplus.com"]; [vc addURL: url]; // Définition d'un gestionnaire de fin d'exécution [vc setCompletionHandler: ^ (résultat TWTweetComposeViewControllerResult)) [auto-licenciéModalViewControllerAnimated: YES]; ]; // Affiche le contrôleur de vue de composition en mode modal [self presentViewController: vc animé: YES achèvement: nil];  else // Afficher la vue d'alerte lorsque l'application ne peut pas envoyer de tweets NSString * message = @ "L'application ne peut pas envoyer de tweet pour le moment. Elle ne peut pas atteindre Twitter ou ne possède pas de compte Twitter associé à cet appareil. . "; UIAlertView * alertView = [[UIAlertView alloc] initWithTitle: @ "Oups" message: délégué de message: nil cancelButtonTitle: @ "Dismiss" otherButtonTitles: nil]; [alertView show]; 

Conclusion

L'envoi de tweets depuis votre application est devenu incroyablement facile grâce à l'intégration étroite de Twitter et du système d'exploitation. Encore TWTweetComposeViewController peut ne pas vous donner pas assez de flexibilité. Ou peut-être souhaitez-vous parler directement à l'API Twitter? le TWRequest La classe est la solution que vous recherchez. Je vais parler de TWRequest dans la deuxième partie de cette série en deux parties. Restez à l'écoute!