רשימת תפוצה

חפש באתר:

Loading

פייסבוק
5to9-תמונות מ
שיחות בפורום

 

 

« iLoop בכנס Israel mobile summit | Main | iloop בכנס WIPJAM TLV »
יום רביעי
ינו042012

Twitter Integration on iOS 5

אם התנסתם בעבר בשילוב אפשרות תמיכה לשיתוף ב-Twitter באפליקציה שלכם, סביר להניח שזאת לא חוויה שזכורה עליכם לטובה. אם עדיין לא התנסתם בשילוב האפשרות הזו, כנראה שעכשיו זה זמן מצוין להתחיל!


אפתח את המאמר הקצר הזה עם כמה מספרים על Twitter, הלקוחים מההרצאה של Apple בנושא:

  • 200 מליון משתמשים.
  • מילארד טוויטים בשבוע.
  • 5,530 טוויטים בשניה במהלך רעידת האדמה ביפן.
  • 3,000 אפליקציות עם אינטגרציה לטוויטר.

כחלק מהשיפורים והתוספות של Apple ב-iOS 5, התווספה היכולת לשלב אינטגרציה לטוויטר בצורה מאוד פשוטה, שתחסוך מכם את כל כאב הראש המעורב בשימוש ב-OAuth או בחלק מה-OpenSource-ים הקיימים לטיפול בנושא.


נתמקד ביכולת הפשוטה והנפוצה ביותר שמפתחים נוהגים לשלב באפליקציות שלהם: מתן אפשרות למשתמש לפרסם Tweet בחשבון ה-Twitter שלו ישירות מהאפליקציה, בדרך כלל גם עם טקסט קבוע מראש. לא תאמינו עד כמה זה פשוט לביצוע. מוכנים? :-)


1. הוסיפו את ה-Framework הרלוונטי (Twitter.framework) לפרויקט שלכם.

2. הוסיפו import עבור Twitter/Twitter.h לקובץ בו תרצו להוסיף את האפשרות הזו.

3. הוסיפו כפתור שבלחיצה עליו ייקרא למתודה כלשהי.

4. הוסיפו את המימוש הבא למתודה הזו:

// Create the tweetSheet

TWTweetComposeViewController *tweetSheet = [[TWTweetComposeViewController alloc] init];

 

// Display the tweetSheet modally

[self presentModalViewController:tweetSheet animated:YES];

(במידה ואינכם משתמשים ב-ARC, אל תשכחו להוסיף גם release בסוף השימוש).

5. הריצו את הפרויקט ובדקו מה קורה כשהמשתמש לוחץ על הכפתור.

זה באמת כל כך פשוט!


מה שיקרה כשתלחצו על הכפתור הוא שבמידה והמשתמש רשום לחשבון הטוויטר שלו תחת ה-settings במכשיר, פשוט יקפוץ tweetSheet שיאפשר לו להזין טקסט שיתפרסם בחשבון שלו לאחר לחיצה על כפתור האישור. זה בעצם יוצר מצב של single sign on עבור Twitter ב-iOS. כלומר, ברגע שהמשתמש נרשם לחשבון שלו על המכשיר, הוא לא יצטרך להזין שוב את שם המשתמש והססמא שלו על מנת להשתמש באפליקציה שלנו - שזה כמובן יתרון ושיפור משמעותי בחוויית המשתמש.


במידה והמשתמש לא מחובר, תקפוץ הודעה שמסבירה לו את זה ותאפשר לו בלחיצה אחת לעבור ל-settings ולהתחבר לחשבון על מנת שיוכל להשתמש ביכולת הזו.

 

 

נסיים עם כמה כלים נוספים שיכולים להיות מאוד רלוונטיים בשימוש ביכולת הזו:

- ניתן לבדוק האם השירות זמין (כלומר, האם המשתמש מחובר כרגע לשירות על המכשיר שלו), על ידי שימוש ב-canSendTweet. כלומר:

if ([TWTweetComposeViewController canSendTweet])

{

   // Do something relevant to a user that’s now connected to Twitter

}

במקרה הזה ניתן אולי לא להציג למשתמש בכלל את כפתור השיתוף בטוויטר או ביצוע כל פעולה אחרת שתחליטו שמתאימה במצב הזה. במידה ולא מבצעים את הבדיקה הזו (כמו בדוגמא שהראתי קודם לכן) והמשתמש לא מחובר באותו רגע, תופיע הודעה מתאימה ותאפשר לו לבצע את החיבור במסך ה-Settings על המכשיר.


- ניתן לקבוע Completion Handler שיבוצע ברקע שהמשתמש מסיים את האינטראקציה עם ה-tweetSheet על ידי שימוש במאפיין ה-completionHandler. במידה ולא מבצעים זאת, כמו בדוגמא שביצענו קודם לכן, החלון המודאלי פשוט משוחרר בסיום השימוש.


- אפשר להוסיף attachments ל-tweetSheet. זה יכול להיות טקסט (setInitialText), תמונה (addImage) או לינק (addURL). ה-framework כבר יידע לשנות את גודל התמונה במידה שצריך, להעלות את התמונה לשרת ולבצע url shortening.


כל אחת מהמתודות הללו מחזירה ערך בוליאני שאומר האם היא הצליחה או לא. סיבה אחת לכשלון יכולה להיות טקסט ארוך מ-140 תווים. מומלץ לבדוק את הערך הבוליאני של כל המתודות הרלוונטיות על מנת לוודא שניתן לשלוח את הטוויט ללא בעיה.


- צריך להציג את ה-view רק בצורה מודאלית.

- יש לקבוע את כל המאפיינים לפני ההצגה של החלון.

- יש לשים לב גם שתמונות גדולות עלולות להשפיע על הביצועים (מאחר ומבוצעים תהליכים להקטין אותן ולהעלותן לשרת).

 

וזהו! זה כל מה שצריך על מנת להוסיף תמיכה בסיסית בטוויטר לאפליקציה שלכם. ה-API החדש של Apple מספק גישה לכל ה-API של Twitter על ידי שימוש, למשל, ב-TWRequest. אבל על זה נדבר כבר בפעם אחרת...

בינתיים, תוכלו ללמוד יותר על הנושא במסמכים של Apple:

 

PrintView Printer Friendly Version

EmailEmail Article to Friend

Reader Comments

There are no comments for this journal entry. To create a new comment, use the form below.

PostPost a New Comment

Enter your information below to add a new comment.

My response is on my own website »
Author Email (optional):
Author URL (optional):
Post:
 
Some HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>