ShareKit 一套讓 iPhone app 內容分享出去的 Library

故事情境一、 John 有使用 Delicious,如果在 iPhone 上使用某套軟體看到了喜歡的連結網址,希望可以記載起來,如果有一顆 share 按鈕,這將會是不錯的功能。

故事情境二、 Marry 有用 Facebook,他在使用 iPhone app 裡面做了一個很不錯的效果,類似得到某某積分,如果可以把這個快樂事情簡單的 Share 到 Facebook 平台,這將會是多麼棒的成就感。

故事情境三、 Henry 在某某 iPhone app 裡面看到某句佳句,希望可以 tweet 到自己的 Twitter 上,如果 app 有內建這樣的 share,這樣也是不錯的體驗。

ShareKit 是一套 Open source,可以讓 iOS apps 方便做分享的 library。它支援的 Services 有 Delicious, Facebook, Instapaper, Twitter, Tumbir 等等。分享的內容可以是網址 URLs, 圖片, 文字甚至是檔案類型。ShareKit 會針對適當的 service 支援度,來提供並且處理好分享出去。它甚至可以 Offline Sharing,當今天沒有網路連線,依然可以分享,等網路接通順暢後,ShareKit 會把這些 pending 的項目寄送出去。

如何分享?使用 ShareKit 瞭解它的框架,即能明白它的運作方式,與未來想要幫忙擴充新的 Sharing service 才能順利。首先是 ShareItem,告知使用怎麼樣的 ShareItem ,裡面可以塞入網址, 文字或者圖片,各個對應到 Sharing URLs, Sharing images, Sharing Text, Sharing Files。將這些資訊包裝起來。

交給 SHKActionSheet,它就會根據傳入的 ShareItem 來打開選單,讓使用者可以挑選想要用那一種 Service 來分享出去,當使用者點選下去,可以再根據 index 來決定配對串接後面不同的 Share Service。


但是我們在分享每一個 Service,像最熱門的 Facebook、Twitter,這些分享的機制其實跟我們在開發任何其他系統分享一樣,我們還是要到各個平台先申請 Developer app,登記說我今天是開發登記哪一個,取得各個 API key 等等,再將這些 key 帶回來,回來到我們的 SHKConfig.h 來設定。例如要分享 Facebook,先到 developer Facebook 網頁登記,再回來 Facebook share 要填寫 SHKFacebookKey, SHKFacebookSecret。到 developer Twitter 官網登記,回來Twitter share 要填寫 SHKTwitterConsumerKey, SHKTwitterSecret, SHKTwitterCallbackUrl, SHKTwitterUseXAuth, SHKTwitterUsername 等等資訊。

當我們開發的 iPhone app 程式整合好了以上 ShareKit 後,即是測試和模擬使用者行為了。當使用時候,舉例今日在跑車 app 裡面瀏覽到某某最新型法拉利,按下分享按鈕選擇 Twitter,那麼畫面會先跑出詢問使用者,您確定要讓跑車 app 在 Twitter 上面登記的 APP 可以進來到你的 Twitter 帳號嗎?如果可以您的帳號是哪一個呢?即會在 App 裡面詢問使用者資訊,當填寫完畢後,這些資訊會僅存在每一位使用者他們自己的 app 裡面。當下次在分享時候,即可順利進行分享彈出編輯 Tweet 畫面了。而按下 send 就可以順利分享出去了。

那如果今天想要分享一串很長的網址呢?這樣在 Twitter 上使用習慣不是有字數限制嗎?ShareKit 也想到這點了。我們只要以同樣方式,到 bit.ly 上面用帳號申請某某 API key,那麼當我們在分享時候任何用到 URL 地方,ShareKit 會幫我們呼叫 bit.ly 進行縮址,如此一來在分享送出前,我們即可看到簡短漂亮的 bit.ly 網址了。當然了,如果再回到 bit.ly 帳號登入,這些紀錄也都存在,可以在官網 web 上面看到縮址紀錄以及其他是否點選的統計等等。

ShareKit 是一套蠻廣泛的分享框架 library,他是定義好要分享的內容,再搭配不同的 Service 來做後面分享。所以未來想要將還沒有增加的功能,加入進去即可。這套 Libray 有別於一般針對某某分享 Service 就開發一套專門的 share library 不同。

你也有用過此套 Library 嗎?或者有興趣使用嗎?可以參考 http://www.getsharekit.com/install/

Comments