狠狠撸

狠狠撸Share a Scribd company logo
Titanium Mobile
    でOAuth
     @k0sukey
自己紹介

? @k0sukey(いそべこーすけ)です
? アクトタワーの15階で働いています
? Titanium Mobile製のアプリを数本リリー
 スしました
こんなアプリを作りました
Titanium Mobile?
? ウェブ技術者にはお馴染みのJavaScript
 で、iOS/Androidネイティブのアプリを
 開発することができます

? Appcelerator社が提供する開発環境、
 Titanium StudioというIDEで提供されて
 います
よく引き合いに出される対抗馬たち


? Unity → 3Dゲーム
? PhoneGap → HTML5&JS&CSS3で書ける
? CoronaSDK → 2Dゲームとか
? ngCore → 2Dソーシャルゲーム
? GameSalada → GUIでゲーム開発
なぜTi?
? OSネイティブのUIが使える!
? モジュール(Obj-C、JAVA)で拡張がで
 きる

? 言われるほど重くないよ
? ヌルく開発ができる!と、思っていた
 らObj-Cを書いている自分がいる
他にも...
? JavaScript1.6に対応しています。forEach
 とかmapとか使えます

? Rubyな方、CoffeeScriptで書けますよ
? node.jsな方、CommonJSで書けますよ
 というか、推奨です

? vimとかemacsな方、MakeTiがあります
苦手なこと
? リアルタイム性の高いゲーム
 → それ、QuickTiGame2Dで

? イメージ(グラフ)描画
 → それ、webViewで

? バッドノウハウてんこ盛り!アンド
 キュメントてんこ盛り!
個人的にAndroidは
の道だと思います...
開発のサイクル
1. まずはTiのみでホットモックを作成

2. デザイナさんに配置する画像を依頼

3. 調整&テスト

4. リリース

5. 簡単なものであれば大体一月以内でリ
 リース可能です
本日のお題、
TiでOAuth!
よくある、アプリで
Twitterと連携して~
とかいうお話です
OAuth

? TiでOAuthというよりも、JavaScriptで
 OAuthするわけです

? と、言っても、OAuthするために便利な
 ライブラリがあるのです
jsOAuth
jsOAuth
? @bytespider さんが開発
 https://github.com/bytespider/jsOAuth
? Tiのことも考えて作られているので、そ
 のまま動きます。もちろんブラウザで
 も動きます

? でも、毎回そのまま書くのもダルい...
TiPlatformConnect
TiPlatformConnect
? 色々なプラットフォームへ簡単に接続
 するために、@ebyrn さんのtwitter-
 titaniumをforkして作りました

? jsOAuth-1.3.3.jsにも多少手を入れて、
 ファイルをアップロードできるように
 なっています
TiPlatformConnect

? 各プラットフォームのAPIを薄くラップ
 しています

? 現在サポートしているプラットフォー
 ムはTwitter、Tumblr、Flickr、Mixi、
 Foursquare(他にも募集中!)
TiPlatformConnect
? https://github.com/k0sukey/
  TiPlatformConnect
? 簡単なサンプルもついていますので、
  Titanium Studioでインポートすればその
  ままアプリが動きます(プラット
  フォームのアプリ登録は忘れずに!)
TwitterでOAuthの例
var twitter = require('twitter').Twitter({
!    consumerKey: 'XXXXXXXXXXXXXXXXXXXX',
!    consumerSecret: 'XXXXXXXXXXXXXXXXXXXX',
!    accessTokenKey: Ti.App.Properties.getString('twitterAccessTokenKey', ''),
!    accessTokenSecret: Ti.App.Properties.getString('twitterAccessTokenSecret', '')
});

twitter.addEventListener('login', function(e){
!    if (e.success) {
!    !    Ti.App.Properties.setString('twitterAccessTokenKey', e.accessTokenKey);
!    !    Ti.App.Properties.setString('twitterAccessTokenSecret', e.accessTokenSecret);

!     !   twitter.request('1/account/verify_credentials.json', {}, {}, 'GET', function(e){
!     !   !    if (e.success) {
!     !   !    !    var json = JSON.parse(e.result.text);

!     !   !    !    twitterLabel.setText(json.screen_name + ' on Twitter');
!     !   !    !    twitterRow.add(twitterSwitch);
!     !   !    !    twitterRow.touchEnabled = false;
!     !   !    !    twitterRow.selectionStyle = Ti.UI.iPhone.TableViewCellSelectionStyle.NONE;

!     !    !    !    if (event) {
!     !    !    !    !    twitterRow.removeEventListener('click', twitterAuthorize);
!     !    !    !    }
!     !    !    } else { // error proc... }
!     !    });
!     } else { // error proc… }
});

twitter.authorize();
デモ

More Related Content

Titanium MobileでOAuth

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n