タグ

ブックマーク / higelog.brassworks.jp (8)

  • RubyMotionはiOS SDKに疎い人にもオススメできる - ひげろぐ

    iOSで作りたいモノが特にないのでこの頃あんまりアクティブに触ってはいないけど、一方で所感が確かな物になってきたので書いておきたい。 RubyMotionがリリースされたばかりの頃はiOS SDKの知識が必要なので敷居が高いのではと書いたが、それから三ヶ月弱立った現在、iOS SDKに疎くても気にせず開発できる環境が整ってきた。またREPLの存在によりiOS SDKを学ぶにも役に立つものだと思うようになった。 加えてどれほどの物が作れるのか、ということとサポートの話など。 Rubyらしく書く BubbleWrapのようなRubyらしく書いていけるライブラリが順調に育っていて当初よりかなり良い感じになっている。 iOS SDKの知識がなくてもかなりの所までいけるようになっているんじゃないだろうか。 他にもDSL的なライブラリがいろいろできて盛り上がっているので、今後も「Rubyらしく」という

  • Ti.Appにオブジェクトをくっつけてグローバル変数的に使う - ひげろぐ

    Ti.Appはグローバルなオブジェクトなので、これにメソッドやプロパティをくっつけるとTi.Appを介してどこからでも使えるようになる。 Ti.Appってそうやって使っていいものなのかという疑問は残るが、いろんなソース片を見る限り割と普通に使われているテクニックな模様。 サンプルコード 究極に簡単なものをひとつ。 app.js Ti.App.foo = "FOO!"; var win = Ti.UI.createWindow({url: 'lib/win1.js', title:'Window 1'}); win.open(); lib/win1.js alert(Ti.App.foo); 使いどころ NavigatoinGroupを、TabGroupまかせではなく、直接使おうとしたときなんかは使いどころだと思う。 Window間でいちいち変数を持ち回るのもめんどくさいので。 セッション変

  • TitaniumでiOSのLocalNotification - ひげろぐ

    iOSのLocalNotificationを利用すると指定した時刻にNotificationを出すことができる。 端末がスリープ状態の時やアプリが起動していない(サスペンドでもない)状況でもユーザーに通知を出すことが可能。 利用用途は目覚まし時計とかスケジュール管理ツールの時間通知など。 サンプルコード 起動してから3秒後に通知を出すサンプル。 app.js var notification; Ti.API.info("notification schduled"); notification = Ti.App.iOS.scheduleLocalNotification({ date: new Date(new Date().getTime() + 3000), repeat: "daily" alertBody: "起動から3秒後", alertAction: "アプリを開く", bad

    hisasann
    hisasann 2012/03/09
    push
  • アプリをレジュームした時に処理を実行する - ひげろぐ

    アプリをレジュームした時に処理を実行する 一度起動したアプリを閉じて、再度開いた時(レジュームした時)にTi.Appのresumeというイベントが発火する。 ちなみに閉じた時にはpauseイベントが呼ばれる。 レジューム時にはWindowのfocusイベントが呼ばれないので困っていたが、これで何とかなりそうだ。 それにしてもドキュメントェ・・・ サンプルコード なにはともあれサンプルコード。 app.js var win = Ti.UI.createWindow(); win.addEventListener("focus", function(){ Ti.API.info("focus!"); }); win.open(); Ti.App.addEventListener("resume", function(e){ Ti.API.info("resume!"); }); Ti.App.

  • TitaniumのロジックとUIのプロパティ定義を分離する - ひげろぐ

    UIの部品をたくさん追加するとコードの見通しが悪くなってくるので、なんとかしたいと思った。 そこでUIのプロパティを指定するオブジェクトを別の場所で定義して分離することにしてみた。 Ti.includeを使うとコードの分離は簡単なので、方法は至って単純。 styles.jsというファイルにプロパティの定義を追い出す。 2010/02/12追記 Titamium Mobile 1.5からJSSというものが使えるようになっていて、以下のstyles.jsでやっていることをCSSっぽく書ける。 ただ1.5の時点ではiOSで問題があり、JSSの更新が二度目以降のビルドに反映されず、更新を確認するためには都度build以下を削除しないといけないようなことになっているようだ。 元のコード まずは分離前。 hoge.js いたって普通に書いたコード。 UI部品が少ないうちは問題ないが、部品が増えてくると

    hisasann
    hisasann 2012/02/16
    こうゆう仕組みを独自で作る必要がある
  • TitaniumのJSSという機能 - ひげろぐ

    1.5.1から追加された機能で、オブジェクトの外見をJavaScript StyleSheetでカスタマイズできる。 コンパイルされたファイルを消してビルドし直さないと修正が反映されないという大きな問題があったが、1.6.0で修正されている。 要はHTMLに対するCSSのようなもの。 構造とデザインを分離できるという利点がある。 でもまだ正直あんまり練れた機能ではないかも。 基的な使い方 概要 *.jsにあわせて*.jssファイルを作る(ex. app.js => app.jss, menu.js => menu.jss) *.jssでID別、クラス別、オブジェクトのタイプ別にスタイルを定義する *.jsでIDまたはクラスを指定してオブジェクトを作成する *.iphone.jssや.*.android.jssのようにプラットフォーム別にファイルを分けることができる global.jssを

    hisasann
    hisasann 2012/02/16
    微妙!
  • TitaniumでjQueryを使う - ひげろぐ

    Appcelerator Developer Center – Use of Jquery windowとかdocumentオブジェクトがないせいで動かないので、空のオブジェクトを定義してやるという方法。 そんなやり方でいいのか。 jQuery 1.5だと上のやり方のままでは動かなかったのでちょっと修正して動いたのが以下のコード。 var window = {}; var document = { getElementById: function(){}, createComment: function(){}, documentElement: { insertBefore: function(){}, removeChild: function(){} }, createElement: function(e){ return obj = { innerHTML: "", append

    hisasann
    hisasann 2012/02/16
    「windowとかdocumentオブジェクトがないせいで動かないので、空のオブジェクトを定義してやるという方法。」
  • Titaniumでナビゲーションバーを使った遷移をする方法二つ - ひげろぐ

    TabGroupを使ったやり方と、NavigationGroupを使ったやり方がある。 TabGroupを使う オーソドックスなやり方。 TabGroupを作成し、Tabを追加。 Tabからウィンドウを開くやり方。 Tabにナビゲーションバーで遷移する機能がついている。遷移の状態はTabごとに保持される。 app.js var win, tab, tg; win = Ti.UI.createWindow({url: "first.js"}); win.hideTabBar(); tab = Ti.UI.createTab({window: win}); tg = Ti.UI.createTabGroup(); tg.addTab(tab); tg.open(); タブバーは必要がなければ隠す。 first.js Ti.UI.currentWindow.title = "Window 1";

    hisasann
    hisasann 2012/02/15
    後者が流行り?
  • 1