アップル 2010年秋 スペシャルイベント、Twitter 用ライブラリ XAuthTwitterEngine に機能を追加して公開

アップル 2010年秋 スペシャルイベントが 9月1日 (September. 1, 2010 at 10 a.m. Pacific Time : 日本時間9月2日深夜午前2時) に Yerba Buena Center で開かれました。スペシャルイベントのストリーミング動画は

Apple - Apple Events - Apple Special Event September 2010
http://events.apple.com.edgesuite.net/1009qpeijrfn/event/index.html

で見ることができます。iTunes Podcast

Apple Keynotes - Apple Special Event, September 2010
http://itunes.apple.com/jp/podcast/apple-keynotes/id275834665

でも配信されています。

今回のイベントで発表されたのは新 iPod ラインナップ、iOSプレビュー、新 iTunes とサービス、新 Apple TV でした。

iPod nanoiPod shuffle には興味がありませんが、新 iPod touch は、拙作 iYKRSS を Retina ディスプレイには対応させるために購入しようか悩んでいます。カメラ機能も購買意欲をそそられます。

以前 id:KYoshiaki:20100627、紹介したように自作した iPadRSSリーダー iYKRSSHD と Twitter アプリ iYKTwitter は毎日使用しています。ところが、Twitter の認証方式が OAuth 認証必須になり、Basic 認証が廃止されました。それで iYKTwitter を OAuth 認証に対応させる必要が生じました。

ネットで調べてみると OAuth 対応は難しそうなので OAuth 認証の簡易版 xAuth が良さそうです。

xAuth を使うために以下のサイトを

xAuthを使うための手続き - タイトルは未定
http://d.hatena.ne.jp/nakaji999/20100623/1277306203
xAuthの申請をしてみた « Today’s Replay
http://tmokita.sakura.ne.jp/wpress/2010/06/28/xauth%E3%81%AE%E7%94%B3%E8%AB%8B%E3%82%92%E3%81%97%E3%81%A6%E3%81%BF%E3%81%9F/

を参考にしました。

Create cool applications! | dev.twitter.com
http://dev.twitter.com/

まず、最初に上の URL で Twitter アカウントでサインインし、2. Register an app をクリックするとアプリケーション登録申請ページが開きます。自作アプリを登録します。ただし、アプリケーション名で Twitter という文字を含んでいるとエラーになります。私の場合、iYKTwitter では登録できませんでした。それでアプリケーション名を iYKTweetHD に変更しました。これで OAuth 認証が使えるようになりました。

OAuth 認証の簡易版 xAuth を利用するためには api@twitter.com にメールを送って、有効にしてもらう必要があります。メールに送る内容については、先ほど紹介した下記 2つのページが参考になります。

xAuthを使うための手続き - タイトルは未定
http://d.hatena.ne.jp/nakaji999/20100623/1277306203
xAuthの申請をしてみた « Today’s Replay
http://tmokita.sakura.ne.jp/wpress/2010/06/28/xauth%E3%81%AE%E7%94%B3%E8%AB%8B%E3%82%92%E3%81%97%E3%81%A6%E3%81%BF%E3%81%9F/

それぞれ申請するアプリの platform に合わせて送信する内容を置き換えてください。私の場合は iPadiOS 3.2 です。また、下記本家サイトを確認すると

Using xAuth | dev.twitter.com
http://dev.twitter.com/pages/xauth
xAuth access is restricted to approved applications. If your application is a
desktop or mobile application and the standard web OAuth flow or PIN-code
out-of-band flow is not right for you, send a detailed message to api@twitter.com
to request xAuth privileges. Include the name of your application,
the consumer key, the application ID (if available), and a summary of how xAuth
is best-suited for your application.

consumer key も必要そうなのでメールで送りました。スクリーンショットについては、私は MobileMe に加入しているので、Sites フォルダにスクリーンショットファイルを置いて下記 URL をメールに書いて送りました。

http://homepage.mac.com/'メンバー名'/'スクリーンショットファイル'

次の日にメールで xAuth が使用可能になったと返事が届きました。

xAuth を自力で実装するのは無理なので、参考になるライブラリを探しました。XAuthTwitterEngine が良さそうです。

最初に見つけた XAuthTwitterEngine ライブラリは

aral's XAuthTwitterEngine at master - GitHub
http://github.com/aral/XAuthTwitterEngine

です。さらにフォークを探してみるとリストに対応した

penso's XAuthTwitterEngine at master - GitHub
http://github.com/penso/XAuthTwitterEngine

を発見しました。ところがファイルがすべて揃っていません。仕方がないので自分で作成しました。また statuses/home_timeline や retweeted_status も実装されていないようなので追加しました。私が個人的に利用するために作成したものなので status の id が文字列に変更されています。注意してください。それにしてもきれいなソースには驚かされました。大変勉強になります。

github の使い方がよく分からないので、はてなのファイルアップロード機能利用して機能を追加した XAuthTwitterEngine Zip ファイルをアップロードしておきます。下記リンクからダウンロードできます。ただし、下記リンクのファイル名をクリックするとダウンロードされたファイル名が変化しますので、横の矢印↓をクリックしてダウンロードしてください。

Yoshiaki-XAuthTwitterEngine.zip 直

Yoshiaki-XAuthTwitterEngine.zip
http://kyoshiaki.sakura.ne.jp/osx/Hatena/Yoshiaki-XAuthTwitterEngine.zip

簡単な説明は、Zipファイルに同封された ReadMe-j.rtf に記載しておきました。公開に問題があったら、取り消しするかもしれません。質問についてはコメントを利用してください。返事は遅くなるかもしれません。

最後に XAuthTwitterEngine を利用して作った自作 Twitter アプリ iYKTweetHD の実行画面を添付しておきます。



私的利用、自作 Twitter アプリ < iYKTwitter >

@iphone_dev_jp [ http://twitter.com/iphone_dev_jp ] 閲覧目的で、遅ればせながら Twitter @KYoshiaki [ http://twitter.com/KYoshiaki ] を始めてみました。とりあえず、次のアプリをダウンロードしてみました。

iPhone
カテゴリ/ソーシャルネットワーク
Twittelator Pro
\600
http://itunes.apple.com/jp/app/twittelator-pro/id288963578?mt=8
リスト対応
Tweetie 2
\350
http://itunes.apple.com/jp/app/tweetie-2/id333903271?mt=8
リスト対応
TwitBird Premium
¥230
http://itunes.apple.com/jp/app/twitbird-premium/id307876729?mt=8
リスト対応
Tweetery
\230
http://itunes.apple.com/jp/app/tweetery-twitter-made-easy/id334303843?mt=8
Twitterrific
無料
http://itunes.apple.com/jp/app/twitterrific/id284540316?mt=8
有料版もある
Echofon for Twiiter
無料
http://itunes.apple.com/jp/app/echofon-for-twitter/id286756410?mt=8
NatsuLion for iPhone
無料
http://itunes.apple.com/jp/app/natsulion-for-iphone/id289977677?mt=8
TweetDeck for iPhone
無料
http://itunes.apple.com/jp/app/tweetdeck-for-iphone/id318518757?mt=8

私自身、Twitter についてよく理解していません。時間的余裕もないので、発言もしていません。そのため、ホームとリストの閲覧が、私の Twitter の利用目的なっています。リストに対応した Twitter アプリを探すと、次の3つが対応していました。

Twittelator Pro
Tweetie 2
TwitBird Premium

一番使いやすかったのが Twittelator Pro でした。ただし、最新の発言が20個までしか読むことができません。1日に1,2回しか起動しない私には物足りません。

Twitter API Wiki / API Overview
http://apiwiki.twitter.com/API-Overview

それで Twitter API が REST を使用しているので、試しに自分専用の Twitter アプリを作ってみることにしました。私専用なので、リストとホームが見れるようにし、発言の仕組みは省くことにしました。

Twitter API Wiki / Twitter API Documentation
http://apiwiki.twitter.com/Twitter-API-Documentation

の statuses/home_timeline を確認しました。

Twitter API Wiki / Twitter REST API Method: statuses home_timeline
http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-statuses-home_timeline
http://api.twitter.com/1/statuses/home_timeline.format

format は、拙作 iYKRSS [ http://itunes.com/apps/iYKRSS ] のソースが再利用できるので xml を選びました。

また、Requires Authentication で OAuth は難しそうなので Basic Auth を利用することにしました。

Basic access authentication - Wikipedia, the free encyclopedia
http://en.wikipedia.org/wiki/Basic_authentication
2010/11/14(Sun) 現在 Twitter の認証方式で Basic 認証 (Basic Auth) は、廃止になりました。OAuth 認証の簡易版 xAuth を利用した記事を [  id:KYoshiaki:20100919 ] で公開しています。

最初 Basic Auth は、

Uniform Resource Locators (URL)
http://www.ietf.org/rfc/rfc1738.txt?number=1738
3.1. Common Internet Scheme Syntax
//:@:/

で大丈夫なのかと思いましたが、非公開リストのデータの取得に失敗するので、MGTwitterEngine を参考にしました。MGTwitterEngine のソースは Terminal 上で

svn checkout http://svn.cocoasourcecode.com/MGTemplateEngine

を実行するすればダウンロードできます。

since_id で指定すれば、簡単に発言を遡ってダウンロードできるものと思っていたのですが、最新20個しかダウンロードしてくれません。

仕方のないので、パラメーター count を使って 最新の発言 200 個をダウンロードし、前回の最新発言 id 以降のデータを探し、追加するようにしました。結局、未読の発言を最大 200 個まで遡ることができるようになりました。

また、リストの取得には

Twitter API Wiki / Twitter REST API Method: GET lists
http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-GET-lists

を利用し、follow しているリストは GET list subscriptions

Twitter API Wiki / Twitter REST API Method: GET list subscriptions
http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-GET-list-subscriptions

で取得できるようです。

簡単にテキストから URL 抽出をしたかってので、

iPhoneアプリ正規表現を使う - 24/7 twenty-four seven
http://d.hatena.ne.jp/KishikawaKatsumi/20081031/1225463896

を参考に正規表現を利用しました。RegexKitLite を使用するには libicucore.dylib をリンクする必要があります。

一番簡単なリンク方法は Xcode でターゲット名を選択し、

‘メニュー/ファイル/情報を見る’ か Option キーを押したまま、’メニュー/ファイル/インスペクタを表示’ を選びます。

ターゲット “iYKTwitter” の情報というウインドウが表示されるはずです。

‘一般’ タブをクリックし、リンク済みライブラリの下の ‘+’ ボタンを押し、スクロールして libicucore.dylib を追加してください。

libicucore.dylib を Frameworks のフォルダに移動しておくと良いかもしれません。

何とか、動作できるようになりました。プロフィール画像や日付の表示には対応していませんが、私的に利用するには十分です。最後にスクリンキャプチャーを付けておきます。



 Mac OS X 10.6 Snow Leopard、Apple Special Event September 2009、QuickTime Player の新規画面収録

Mac OS X 10.6 Snow Leopard 発売、Apple Special Event September 2009 と大変慌ただしい時期でした。

まず、 Mac OS X 10.6 Snow Leopard から、Apple Store (Japan) で 2009/08/26(Wed) に Mac OS X 10.6 Snow Leopard シングルユーザーを予約しました。発売日 2009/08/28(Fri) に届きました。

インストールする前に、念のため iPhone SDK 3.0 (Leopard) を ‘/Developer’ フォルダにあるファイル ‘About Xcode and iPhone SDK.pdf’ を参考にアンインストールしました。

私の場合、ターミナル上で

sudo /Developer/Library/uninstall-devtools --mode=all

を実行しただけです。

Mac OS X 10.6 Snow Leopard ファミリーパックの一部の人で、メディア不良によりインストールに失敗する人もいたようですが、Mac OS X 10.6 Snow Leopard シングルユーザー版のインストールには成功しました。

最初の起動時に実行される ‘/System/Library/CoreServices/設定アシスタント.app’ が設定途中で終了してしまったのですが、実害がないので、そのままにしています。(MobileMe などの設定は、既に登録してあります。)

数日利用して問題がないので Time Machine で使用される Time Capsule のハードディスクを消去して作り直しました。

‘アプリケーション/ユーティリティ/AirMac ユーティリティ.app’ で Time Capsule を選択し、’手動設定’ ボタンを押し、ツールバーの ‘ディスク’ をクリック、’ディスク’ タブを選択、左中央にリスト表示されている ‘Time Capsule ディスク’ をクリックすると、右側に ‘アーカイブ…’ ‘消去… ボタン’ が現れるはずです。リスト ’Data’ をクリックすると右側の表示内容が変わるので、注意してください。後は ‘消去…’ ボタンを押すだけです。

Apple Special Event September 2009 で iPhone OS 3.1 が公開されたので

iPhone Dev Center - Apple Developer Connection
http://developer.apple.com/iphone/

から

iPhone SDK 3.1 with Xcode 3.2 (Snow Leopard)

をダウンロードしインストールしました。

iTunes を使って iPod touch の OS を 3.1.1 にアップデートし、拙作 iYKRSS をビルドして iPod touch に転送してみました。キーチェーンなども問題なく iYKRSS は正しく動作しているようでです。

最初、Xcode のオーガナイザで iPod touch の認識に失敗し、エラーが出たのですが、iPod touch の電源を切って再起動すれば認識されました。

また iTunes 9 の Genius Mixes などの設定に

iTunes 9 Tips and Tricks - Solve the Mysteries of the New iTunes | Mac|Life
http://www.maclife.com/article/howtos/itunes_9_tips_and_tricks_solve_mysteries_new_itunes

上記 URL を参考にしました。

Mac OS X 10.6 Snow Leopard をインストールした直後、サービスを利用しているフリーウェアのショートカットキーが無効になっていました。システム環境設定のキーボード、’キーボードショートカットキー’ タブを選び、左側のリストから ‘サービス’ を選択し、ショートカットキーを有効にしてください。利用している人がいるとは思えませんが、拙作 NSService [ http://kyoshiaki.sakura.ne.jp/osx/panther.html#nsse11 ] を Universal Binary でビルド [ id:KYoshiaki:20071209 ]し直している人は、テキスト/’Today dot’、’Today Slash’ が該当します。

Apple Special Event September 2009 について

Apple - QuickTime - Apple Special Event September 2009
http://events.apple.com.edgesuite.net/0909oijasdv/event/index.html?internal=ijalrmacu
Apple Keynotes (iTunes Podcasts)
http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=275834665

ビデオ撮影、FMチューナー搭載の第5世代 iPod nanoiPod touch (late 2009) が発売されました。

私自身、iPod nano にはあまり興味がないので、iPod touch (late 2009) になるのですが、カメラ機能が搭載されなかったので、購入するのか悩みました。iPod touch 8GB はハードウェアに変更がないので、論外ですが、iPod touch 32GB、64GB は高速化されています。

結局 iPod touch 32GB を Apple Store (Japan) で注文してしまいました。その後、カメラ搭載の iPod touch が近々発売されるという、うわさもあるので失敗したかと思っています。下記 URL のようにジョブス氏が発言しているので、どこまでが本当かわかりませんが!

iPod touchにカメラがないのは「ゲーム機だから」(ジョブズ談)
http://japanese.engadget.com/2009/09/10/ipod-touch/

最後に ‘/アプリケーション/QuickTime Player.app’ のメニュー ‘ファイル/新規画面収録’ を利用して ‘iPhone シュミレータ’ 上の iYKRSS


iYKRSS
無料
http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=321871985&mt=8

の実行画面を録画してものを付けておきます。

動画編集には iMovie を利用しました。QuickTime Player はデスクトップ全体しか録画できないので、iMovie の起動画面中央のマイク、i マーク間の格子(切り取り・回転)をクリックし、右上画面で画像を回転させ、切り取る範囲を選び、デスクトップ全体から iPhone シュミレータの画面を切り取りました。(実際は、表示エリアを指定してあるだけで、保存時に切り取られます。)

iYKRSS バ−ジョン 1.0.0 の米国のカスタマレビューにあった発言のように、 RSS フィードの未読判別が難しいので、インジケーターを付けてみました。意外と便利です。画像を添付しておきます。iTunes App Store の公開は、まだまだ先になりそうですが!