Submit Search
Upload
TitaniumによるiPhone/Androidアプリ開発
•
18 likes
•
2,832 views
Ryutaro Kurai
Follow
Titanium Mobileを用いたiPhoneアプリ開発について、実例をまじえつつ概説します。OAuthを利用したTwitter APIへのアクセスについても実例をおみせします。
Read less
Read more
Technology
Slideshow view
Report
Share
Slideshow view
Report
Share
1 of 40
Download now
Download to read offline
Recommended
Titanium Development
Titanium Development
Daisuke Sugai
Google Developer Day 2010 Japan: クールな Android アプリを作るには (安生真, 山下盛史, 江川崇)
Google Developer Day 2010 Japan: クールな Android アプリを作るには (安生真, 山下盛史, 江川崇)
Google Developer Relations Team
Titaniumって何?
Titaniumって何?
Toshiro Yagi
Titanium mokumoku 20140319
Titanium mokumoku 20140319
Tsuyoshi Hyuga
Android Wearの概要とアプリ開発の基礎
Android Wearの概要とアプリ開発の基礎
Kenichi Kambara
ボケてが300万DL到達までに行ったグロースハックを少し紹介
ボケてが300万DL到達までに行ったグロースハックを少し紹介
Osamu Ise
2015年度研究室プレ卒研用Android講座1
2015年度研究室プレ卒研用Android講座1
Hokuto Tateyama
リンク機構を有するロボットをGazeboで動かす
リンク機構を有するロボットをGazeboで動かす
tomohiro kuwano
Recommended
Titanium Development
Titanium Development
Daisuke Sugai
Google Developer Day 2010 Japan: クールな Android アプリを作るには (安生真, 山下盛史, 江川崇)
Google Developer Day 2010 Japan: クールな Android アプリを作るには (安生真, 山下盛史, 江川崇)
Google Developer Relations Team
Titaniumって何?
Titaniumって何?
Toshiro Yagi
Titanium mokumoku 20140319
Titanium mokumoku 20140319
Tsuyoshi Hyuga
Android Wearの概要とアプリ開発の基礎
Android Wearの概要とアプリ開発の基礎
Kenichi Kambara
ボケてが300万DL到達までに行ったグロースハックを少し紹介
ボケてが300万DL到達までに行ったグロースハックを少し紹介
Osamu Ise
2015年度研究室プレ卒研用Android講座1
2015年度研究室プレ卒研用Android講座1
Hokuto Tateyama
リンク機構を有するロボットをGazeboで動かす
リンク機構を有するロボットをGazeboで動かす
tomohiro kuwano
TitaniumとNode.jsは兄弟
TitaniumとNode.jsは兄弟
Toshiro Yagi
[社内向け]Titanium勉強会
[社内向け]Titanium勉強会
Rei Matsushita
Titanium+twilio
Titanium+twilio
Toshiro Yagi
Ti九州
Ti九州
Toshiro Yagi
Titanium
Titanium
yono05
iPhone/Android アプリをまとめて省エネ開発する技術
iPhone/Android アプリをまとめて省エネ開発する技術
vaccho
TitaniumMobile Alloyの紹介
TitaniumMobile Alloyの紹介
Shin O
"たいたにうむ"な1ヶ月間 @Titaniumもくもく会 #16
"たいたにうむ"な1ヶ月間 @Titaniumもくもく会 #16
Yoshiaki Yoshida
About Titanium Mobile
About Titanium Mobile
Issei Nakamura
拝啓、プロダクトオーナー様。
拝啓、プロダクトオーナー様。
GuildWorks
拝啓、プロダクトオーナー様。
拝啓、プロダクトオーナー様。
toshihiro ichitani
2011年5月28日 Android勉強会プレゼン資料
2011年5月28日 Android勉強会プレゼン資料
Eiichi Yoshikawa
Switching to Indie iOS Development
Switching to Indie iOS Development
Ed Magnin
20130817 Titanium勉強会(午前)
20130817 Titanium勉強会(午前)
Toshiro Yagi
いわてTitanium勉強会#1
いわてTitanium勉強会#1
Toshiro Yagi
Ti.trap
Ti.trap
Tsuyoshi Hyuga
Titanium Mobile ~本当にあったこわい話~
Titanium Mobile ~本当にあったこわい話~
Atsushi Harada
第2回 近JASA セミナー 「組み込みの世界に影響を与える エンタープライズiOS」
第2回 近JASA セミナー 「組み込みの世界に影響を与える エンタープライズiOS」
feedtailor
Androidエンジニアになってからの1年間の感想と振り返り
Androidエンジニアになってからの1年間の感想と振り返り
ichirokato5
Titanium初心者によるAlloy地雷原始末記
Titanium初心者によるAlloy地雷原始末記
Kazuro Fukuhara
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
More Related Content
Similar to TitaniumによるiPhone/Androidアプリ開発
TitaniumとNode.jsは兄弟
TitaniumとNode.jsは兄弟
Toshiro Yagi
[社内向け]Titanium勉強会
[社内向け]Titanium勉強会
Rei Matsushita
Titanium+twilio
Titanium+twilio
Toshiro Yagi
Ti九州
Ti九州
Toshiro Yagi
Titanium
Titanium
yono05
iPhone/Android アプリをまとめて省エネ開発する技術
iPhone/Android アプリをまとめて省エネ開発する技術
vaccho
TitaniumMobile Alloyの紹介
TitaniumMobile Alloyの紹介
Shin O
"たいたにうむ"な1ヶ月間 @Titaniumもくもく会 #16
"たいたにうむ"な1ヶ月間 @Titaniumもくもく会 #16
Yoshiaki Yoshida
About Titanium Mobile
About Titanium Mobile
Issei Nakamura
拝啓、プロダクトオーナー様。
拝啓、プロダクトオーナー様。
GuildWorks
拝啓、プロダクトオーナー様。
拝啓、プロダクトオーナー様。
toshihiro ichitani
2011年5月28日 Android勉強会プレゼン資料
2011年5月28日 Android勉強会プレゼン資料
Eiichi Yoshikawa
Switching to Indie iOS Development
Switching to Indie iOS Development
Ed Magnin
20130817 Titanium勉強会(午前)
20130817 Titanium勉強会(午前)
Toshiro Yagi
いわてTitanium勉強会#1
いわてTitanium勉強会#1
Toshiro Yagi
Ti.trap
Ti.trap
Tsuyoshi Hyuga
Titanium Mobile ~本当にあったこわい話~
Titanium Mobile ~本当にあったこわい話~
Atsushi Harada
第2回 近JASA セミナー 「組み込みの世界に影響を与える エンタープライズiOS」
第2回 近JASA セミナー 「組み込みの世界に影響を与える エンタープライズiOS」
feedtailor
Androidエンジニアになってからの1年間の感想と振り返り
Androidエンジニアになってからの1年間の感想と振り返り
ichirokato5
Titanium初心者によるAlloy地雷原始末記
Titanium初心者によるAlloy地雷原始末記
Kazuro Fukuhara
Similar to TitaniumによるiPhone/Androidアプリ開発
(20)
TitaniumとNode.jsは兄弟
TitaniumとNode.jsは兄弟
[社内向け]Titanium勉強会
[社内向け]Titanium勉強会
Titanium+twilio
Titanium+twilio
Ti九州
Ti九州
Titanium
Titanium
iPhone/Android アプリをまとめて省エネ開発する技術
iPhone/Android アプリをまとめて省エネ開発する技術
TitaniumMobile Alloyの紹介
TitaniumMobile Alloyの紹介
"たいたにうむ"な1ヶ月間 @Titaniumもくもく会 #16
"たいたにうむ"な1ヶ月間 @Titaniumもくもく会 #16
About Titanium Mobile
About Titanium Mobile
拝啓、プロダクトオーナー様。
拝啓、プロダクトオーナー様。
拝啓、プロダクトオーナー様。
拝啓、プロダクトオーナー様。
2011年5月28日 Android勉強会プレゼン資料
2011年5月28日 Android勉強会プレゼン資料
Switching to Indie iOS Development
Switching to Indie iOS Development
20130817 Titanium勉強会(午前)
20130817 Titanium勉強会(午前)
いわてTitanium勉強会#1
いわてTitanium勉強会#1
Ti.trap
Ti.trap
Titanium Mobile ~本当にあったこわい話~
Titanium Mobile ~本当にあったこわい話~
第2回 近JASA セミナー 「組み込みの世界に影響を与える エンタープライズiOS」
第2回 近JASA セミナー 「組み込みの世界に影響を与える エンタープライズiOS」
Androidエンジニアになってからの1年間の感想と振り返り
Androidエンジニアになってからの1年間の感想と振り返り
Titanium初心者によるAlloy地雷原始末記
Titanium初心者によるAlloy地雷原始末記
Recently uploaded
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
Recently uploaded
(9)
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
TitaniumによるiPhone/Androidアプリ開発
1.
Titaniumによる iPhone/Androidアプリ開発 株式会社 はてな アプリケーションエンジニア 倉井龍太郎
2.
自己紹介 倉井龍太郎 ( id:r_kurain,
@kurain ) ブックマーク チーム / アプリケーションエンジニア ブックマークアプリ( iPhone, iPad ) Monolith (iPhone)
3.
Titanium やばい 夜中に興奮して blog
に書いたら人気エントリに 以来、社内の Titanium厨として認識されています Titanium の為に Android を買いました!
4.
Agenda iPhone 向けの開発を実演します Titanium で開発すると何がうれしいのか Titanium
で出来ること、出来ないこと
5.
Titaniumとは? Javascript で iPhone/Android
“ネイティブ”アプリ開発 Titanium Mobile が正式名称 Appcelerator が開発 有償サポート Apache License v2.0 画像は Titanium Web サイトより引用
6.
Appcelerator いまやたら熱い会社 Titanium Desktop $9m の資金調達 Paypal
と提携 @masuidrive さんが入社
7.
実演 必要環境 OS X Snow
Leopard XCode + iOS SDK (4.2 対応 ) Android SDK (Android 開発をする場合のみ) まずは見たいですよね
8.
実演
9.
ディレクトリ構造 Project Name README/LICENSE/CHANGELOG/tiapp.xml Resources iphone Default.png appicon.png
10.
生成されるコード var tabGroup =
Titanium.UI.createTabGroup(); var win1 = Titanium.UI.createWindow({ title:'Tab 1', backgroundColor:'#fff' }); var tab1 = Titanium.UI.createTab({ icon:'KS_nav_views.png', title:'Tab 1', window:win1 }); tabGroup.addTab(tab1); tabGroup.open();
11.
これでも動く var win1 =
Titanium.UI.createWindow({ title:'Tab 1', backgroundColor:'#fff' }); var label = Titanium.UI.createLabel({ text:'Hello World', }); win1.add(label); win1.open();
12.
ここまでの利点 コード短いですよね! エミュレータ起動までが高速(2回目以降) メモリ管理が不要です
13.
Twitter Client 実例として Twitter
Client を作ります OAuth 認証して 自分のタイムラインが見える Tweet を投稿できる
14.
画面イメージ
15.
KitchenSink やりたいことが決まったら Sample を探す 公式デモアプリ https://github.com/appcelerator/KitchenSink project
import して自分でビルド デモします
16.
まずは TableView Tweet の
Timeline を表示する UITableView と同じ Titanium.UI.TableView に対して Ti.UI.TableViewRow の配列を渡すだけ
17.
table_view.js var data =
[]; var tableView = Ti.UI.createTableView( { !! data:data ! } );! Ti.UI.currentWindow.add(tableView);
18.
JS 指定で createWindow var
win = Titanium.UI.createWindow( { title:'Tab 1', url:'table_view.js', backgroundColor:'#fff' } );
19.
実演
20.
Tweet 取得 まずは認証なしの API
から Tweet を取得 Titanium.Network.HTTPClient を使います
21.
HTTP Request Ti.Network.HTTPClient var screen_name
= 'kurain'; var url = "http://api.twitter.com/1/statuses/ user_timeline.json?screen_name="+screen_name; var xhr = Ti.Network.createHTTPClient(); xhr.open("GET",url); xhr.onload = function() { var tweets = JSON.parse(this.responseText); } xhr.send();
22.
Callback xhr.onload = function()
{ var tweets = JSON.parse(this.responseText); var data = []; for(var i=0;i<tweets.length;i++) { var row = Ti.UI.createTableViewRow(); var label = Ti.UI.createLabel( { text: tweets[i].text } ); row.add(label); data.push(row); } var tableView = Titanium.UI.createTableView( { ! ! data:data ! } ); Titanium.UI.currentWindow.add(tableView); }
23.
Demo
24.
画像も付けてみる Twitter Icon を出してみましょう 自分のしか出ませんが Tweet
の左側に margin をとって 画像を差し込みます
25.
Ti.UI.ImageView var url =
tweets[i].user.profile_image_url var image = Ti.UI.createImageView( { image:url, left: 0, width: 48, height: 48 } ); row.add(image);
26.
デモ
27.
他にも便利機能が色々 Pull to refresh Dynamic
Scrolling Edit and Move すべてサンプルがあるので実装が簡単です!
28.
OAuth APIの殆どは OAuth 認証が必須 oauth-adapter http://code.google.com/p/oauth-adapter/ Javascript
で書かれた OAuth library 認証画面の表示も
29.
OAuth-Adapter Ti.include('oauth_adapter.js'); var oAuthAdapter =
new OAuthAdapter( 'your-consumer-secret', 'your-consumer-key', 'HMAC-SHA1' ); oAuthAdapter.loadAccessToke('twitter');
30.
OAuth Send oAuthAdapter.send( 'https://api.twitter.com/1/statuses/ update.json', [['status', '@kurain
Say Hello to #titanium!']], 'Twitter', //Message Title 'Published.', //Succeed Message 'Not published.' //Failed Message );
31.
OAuth 認証 if (oAuthAdapter.isAuthorized()
== false) { var receivePin = function() { oAuthAdapter.getAccessToken( 'https://api.twitter.com/oauth/access_token' ); oAuthAdapter.saveAccessToken('twitter'); }; oAuthAdapter.showAuthorizeUI( 'https://api.twitter.com/oauth/authorize?' + oAuthAdapter.getRequestToken( 'https://api.twitter.com/oauth/request_token' ), receivePin ); }
32.
OAuth認証の次は status のアップデートと OAuth
認証をセットにして 関数を作成 ナビゲーションバーの右肩にボタンをつけます
33.
NavigationBar var r =
Titanium.UI.createButton( { ! systemButton:Titanium.UI.iPhone.SystemButton.ADD } ); //addEventListener に注目!! r.addEventListener('click',function() { ! tweet('Hoge!'); } ); Titanium.UI.currentWindow.setRightNavButton(r);
34.
デモ
35.
その他の特徴 Objective-C で Plugin
が書けます TiBar という Barcode 認識ライブラリもあるうようで す @masuidrive さんによる AdMob plugin もあります。
36.
出来ないこと 直接の OpenGL の利用は今のところ無理そう 細やかなメモリ管理 close
しても解放されなかったり ガチガチの速度チューニング
37.
で、Androidは? まだまだこれからな予感 OS依存のコードもある 変更なしに同じコードが動くわけではない エミュレータ遅い 自分で debugger をつないで実機で試すべき?
38.
参考文献 titanium-mobile-doc-ja http://code.google.com/p/titanium-mobile-doc-ja/ APIの解説, 入門PDF, Build
Rakefile, etc.. id:donayama さん
39.
まとめ Titanium による簡単アプリ作成をしてみました ライブラリによりOAuthの利用も可能です コードの短さ、開発の速さを実演 出来ない事もありますが、なかなか面白いです。
40.
Thank you.
Download now