Titanium(タイタニウム)を使うのは楽しい!
最近、Titanium Mobileを使ってみました。というのも、やっぱりiPhoneアプリが作ってみたくて。iPhoneアプリというと、「Objective-C」。コンパイルが必要な言語の敷居に躊躇してしまい、踏み切れなかったワタシの背中を押してくれたアプリケーションがTitanium Mobileです。
試してみた結果、JavaScriptでiPhoneアプリが作れる!とは聞いていても、JavaScriptでやることには限界あるんじゃない?とか斜に構えていて、損したよ!
とりあえず、RSSを取得して、表示するアプリを作ってみました。
出来たアプリ
とりあえず、RSSを取得して、Webで表示...
作ってみて思ったのは、
- コンパイルが面倒
- UIをJavaScriptで作るのは大変
- でも、お手軽さはスゴイ。iPhoneアプリを簡単に用意することはできそう
- アクションゲームとか、派手なゲームを作るのには向いていなさそう
- RSSなどのXMLよりも、jsonが標準的になってる?という印象
- OAuthの認証はライブラリがあってTwitterと連動、というのが一例に
- 名前は、タイタニウムと呼ぶらしい
- JavaScriptの使い方で求められることが色々とあるような...
雑誌でわかる
ちょうど雑誌でも書かれているので買って読むといいよ!
- 作者: 西岡祐弥,濱田章吾,横山彰子,浜本階生,ミック,uupaa,塙与志夫,はまちや2,大沢和宏,中島聡,矢野りん,中島拓,浦嶌啓太,角田直行,佐々木一,倉井龍太郎,深町英太郎,岩永賢明,高橋健一,柴田博志,井上誠一郎,大谷弘喜,荻野淳也,原悠,増井俊之,WEB+DB PRESS編集部
- 出版社/メーカー: 技術評論社
- 発売日: 2011/02/24
- メディア: 大型本
- 購入: 37人 クリック: 2,058回
- この商品を含むブログ (38件) を見る
追記:2011-06-11
本も出たみたいです
Titanium Mobileで開発するiPhone/Androidアプリ (Smart Mobile Developer)
- 作者: 北尾雅人,増井雄一郎
- 出版社/メーカー: 翔泳社
- 発売日: 2011/06/10
- メディア: 大型本
- 購入: 5人 クリック: 370回
- この商品を含むブログ (48件) を見る
ソース
app.js
Titanium.UI.setBackgroundColor('#000'); var tabGroup = Titanium.UI.createTabGroup({}); var baseWin = Titanium.UI.createWindow({ url:'table.js', title:'', backgroundColor:'#fff' }); var tab1 = Titanium.UI.createTab({ window:baseWin }); baseWin.hideTabBar(); tabGroup.addTab(tab1); tabGroup.open();
table.js
var baseWin = Ti.UI.currentWindow; // table var tableWin = Ti.UI.currentWindow; var data = []; var tableView = Ti.UI.createTableView({ data:data }); // feed function updateFeed(feed) { var feedData = []; var title = feed.getElementsByTagName("title").item(0).text; baseWin.title = title; var items = feed.getElementsByTagName("item"); for (var i=0; i<items.length; i++) { var item = items.item(i); var title = item.getElementsByTagName("title").item(0).text; var row = Titanium.UI.createTableViewRow( { hasDetail:true, height: 'auto', layout: 'absolute' } ); var commentLabel = Ti.UI.createLabel(); commentLabel.text = title; row.add(commentLabel) feedData.push(row); } tableView.setData(feedData); // detail tableView.addEventListener( 'click', function(element) { var items = feed.getElementsByTagName("item"); var item = items.item(element.index); var detail = ''; var detailWin = Titanium.UI.createWindow({ url:'detail.js', permalink:item.getElementsByTagName("link").item(0).text }); Ti.UI.currentTab.open(detailWin); } ); } // get var xhr = Ti.Network.createHTTPClient(); var url = 'http://d.hatena.ne.jp/d4-1977/rss2'; xhr.open('GET', url); xhr.onload = function() { var feed = this.responseXML.documentElement; updateFeed(feed); } xhr.send(); // tableWin.add(tableView);
detail.js
var detailWin = Ti.UI.currentWindow; var webView = Ti.UI.createWebView({ url: detailWin.permalink }); detailWin.add(webView);