Zshを使っていてかつTi GemでTitanium Mobileプロジェクトをジェネレートしたい人はご注意を

こんにちは!qnypの"そろそろこの入り方も潮時かなと感じている方"あさくらです。先日Ti Gemというフレームワークでハマったところがあったのでシェアしておこうと思います。

Ti Gemとは

Ti Gemは “A rapid development framework for titanium.” とあるようにTitanium Mobile(とTitanium Desktop)の開発を加速させるフレームワークです。名前の通りgemとして提供されていて、使用するにはRuby環境が必要なため少し面倒に感じるかもしれませんが、以下のようなフィーチャを備えていてなかなかいい感じです。

  • コマンドラインからテンプレートを使ってTitaniumプロジェクトをジェネレートできる
  • WindowやView単位のジェネレートも可能
  • コードはCoffeeScriptで記述されJasmineテストも一緒に出力してくれる
  • コンパイルやビルドコマンドも用意されている

早速使ってみたらうまくいきませんでした

READMEの内容をもとにセットアップを行いTitanium Mobileプロジェクトをジェネレートしようとしたのですが、タブ画像ファイルが無いよとエラーになってしまいました。

$ ti new Fuga com.qnyp.fuga iphone
...
~/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/fileutils.rb:1423:in `stat': No such file or directory - ~/Sites/titanium/sample_apps/Fuga/Resources/KS_nav_ui.png (Errno::ENOENT)

原因を調査してみました

issuesにそれっぽい課題が上がっていたので原因を調査してみました。

#27: Cannot Create Project (Master) - Issues - revans/Ti - GitHub

コードを読み進めるとエラー発生箇所ではtitanium.pyでジェネレートした初期コードを上書きしていることがわかりました。

https://github.com/revans/Ti/blob/master/lib/ti/generate/project.rb#L15

さらに読み進めていくと上書きされるべき初期コードを生成しているgenerate_titanium_project で該当のジェネレートコマンドがBashで実行されていることがわかりました。

https://github.com/revans/Ti/blob/master/lib/ti/generate/project.rb#L80

私はZshを利用しているのでREADMEtitaniumコマンドのalias.zsh_profileへ追記したのですが、肝心のジェネレートコマンドを実行するのはBashだったため"command not found"で必要な初期コードが生成されていなかった。というのが原因のようです。

じょうずにできました

上記を踏まえてREADMEにあるように.bash_profileへ設定を追加したところ無事にTitanium Mobileプロジェクトをジェネレートすることができました。CoffeeScript, Jasmine, Rubyなど個人的に好ましい技術が盛り込まれているTi Gemさんなのでいろいろ試していきたいです。まるっ

アニメファンのためのオンラインコミュニティ

qnyp(キュニップ)に参加すると、感想を読み書きしたり、感想をもとに自分の視聴記録を確認することができるようになって、アニメを見るのがより楽しくなります。

qnypを見てみる

タグ

  1. サービス (17)
  2. 新機能 (13)
  3. 技術 (20)
  4. 統計情報 (2)
  5. ビジネス (3)
  6. 雑談 (7)
  7. イベント (4)

年別アーカイブ

  1. 2019 (1)
  2. 2018 (1)
  3. 2017 (7)
  4. 2015 (2)
  5. 2014 (7)
  6. 2013 (9)
  7. 2012 (16)