なおすけの落書き帳

てきとーに。

SLP KBIT AdventCalendar2014 @24日目

__________
    <○√
     ∥ 
     くく
しまった!今は性の6時間だ!
オレが止めているうちに耳を塞ぐんだ!
早く!早く!オレに構わずリア充から逃げろ!

なんこれ

この記事はSLP KBIT AdventCalendar2014 24日目の記事です。

Titaniumで過ごす聖なる夜

Titaniumとは、原子番号22、元素記号はTiの元素です。地球を構成する近くの成分として9番目に多い元素として有名ですね。
酸化物は非常に安定しており、空気中では不導態となるため、白金や金とほぼ同等の耐蝕性を持っています。

これを使って聖なる夜を過ごす方法について簡単に書きたいと思います。 アメリカンジョーク

冗談は置いといて

Titanium logo

Titaniumとは、Appcelerator社が提供している、JavaScriptiOS/Android/BlackBerryのネイティブアプリを開発することができる開発環境です。
プラットフォーム別に言語をわけて書く必要がなく、また、Webアプリケーション開発でおなじみな言語ということで、CEM、GMV、ETR関係なくモバイルアプリケーションが開発できるというわけです。
あ、ただしアプリのビルドにSDKが必要なので、WindowsではiOSの開発はできないです。怒るならAppleを怒ってくれ。俺は悪くない。

どんなことできるの

基本的に、Objective-CJavaで開発されたアプリができる処理のほとんどが実装できます。
具体的には

  • 加速度センサや電子コンパスの利用
  • 音声や動画の再生、録画、録音
  • HTTP通信
  • SQLiteによるデータベース管理

などなど。とても便利。 ただし、3Dゲームのようなものを開発するには余りむいていないです。
あと、メモリ管理の実装をすることが出来ないです。なので、デバイスの性能を100%使いたいという場合は、Titaniumは向いてないです。デバイスそれぞれ用にコード書いてください。

さんぷる

実際にはこんなかんじです。

/ this sets the background color of the master UIView (when there are no windows/tab groups on it)
Titanium.UI.setBackgroundColor('#000');
// create tab group
var tabGroup = Titanium.UI.createTabGroup();
//
// create base UI tab and root window
//
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
});
var label1 = Titanium.UI.createLabel({
    color:'#999',
    text:'I am Window 1',
    font:{fontSize:20,fontFamily:'Helvetica Neue'},
    textAlign:'center',
    width:'auto'
});
win1.add(label1);
//
// create controls tab and root window
//
var win2 = Titanium.UI.createWindow({
    title:'Tab 2',
    backgroundColor:'#fff'
});
var tab2 = Titanium.UI.createTab({
    icon:'KS_nav_ui.png',
    title:'Tab 2',
    window:win2
});
var label2 = Titanium.UI.createLabel({
    color:'#999',
    text:'I am Window 2',
    font:{fontSize:20,fontFamily:'Helvetica Neue'},
    textAlign:'center',
    width:'auto'
});
win2.add(label2);
//
//  add tabs
//
tabGroup.addTab(tab1);
tabGroup.addTab(tab2);
// open tab group
tabGroup.open();

これを実行すると、

http://www.infiniteloop.co.jp/blog/wp-content/uploads/2011/04/f69dfde284d3e845c8f7c50b4f3fbc8b-159x300.png

こんなかんじにアプリが実行されます。

ちなみに、Appcelerator社が公式にKitchenSinkというサンプルアプリケーションが公開しています。
基本的な機能は実装されているので、これを見るとだいたいの問題が解決します。

上級編

CoffeeScriptを使った開発も当然可能です。
Rubyとか使っている人にはこっちのほうが馴染みやすいと思います。
あと、IDEを使わず、コマンドラインで開発をすることも出来ます。詳しくはググってください。

まとめ

モバイルアプリケーションも楽しいですよ。
で、明日は誰が書くの()


参考文献