Skip to content

Instantly share code, notes, and snippets.

@upinetree
Created August 18, 2013 07:48
Show Gist options
  • Save upinetree/d966dc882fd9a9f9909a to your computer and use it in GitHub Desktop.
Save upinetree/d966dc882fd9a9f9909a to your computer and use it in GitHub Desktop.
Ruby + TideSDKでクロスプラットフォームのデスクトップアプリを作る

Ruby + TideSDKでクロスプラットフォームのデスクトップアプリを作る

TideSDKとは

TideSDK | Create multi-platform desktop apps with HTML5, CSS3 and JavaScript

http://www.tidesdk.org

  • デスクトップアプリを作るためのツールキット
  • クロスプラットフォーム(Win, Mac, Linux)
  • HTML5, CSS3, Javascrptでつくる
  • Ruby, Python, PHPも使用可能

最初に注意

TideSDK 1.3.1 beta ではRuby 1.8.7のみサポート(Win, OS X)

http://tidesdk.multipart.net/docs/user-dev/generated/#!/guide/using_ruby-section-5

簡単なアプリ程度なら十分使えるので、割り切るか。 主要な処理はWeb側で行って、ローカルはファイル操作や表示などにするか。

インストール 〜 Hello World

ドキュメントはこちら

http://tidesdk.multipart.net/docs/user-dev/generated/

(JSDuck製のドキュメント良いなあ…)

大体ドキュメント見ればわかるので、補足説明だけ書く。

  • SDK本体とDeveloperの両方必要。Developerがあると色々と楽。
  • HelloWorld
  • デフォルトでは、アプリは最初にResources/index.htmlを参照する。
    • manifestファイルで変更可能
  • 内部のリンクは、"app://"で指定可能。Resourcesフォルダがrootになる
  • パッケージ化
    • パッケージ化は、Mac用ならMac上で、Windows用ならWindows上で、Linux用ならLinux上でそれぞれ行う必要がある。
    • CLIで行う方法もある

Rubyを使う

ドキュメント

http://tidesdk.multipart.net/docs/user-dev/generated/#!/guide/using_ruby

前述のとおり、Rubyバージョンは以下のようになっている。

  • Win, OS X -> 1.8
  • Linux -> 1.9

クロスプラットフォームアプリ作るなら1.8で書くのが妥当か。

使う前に、manifestファイルにRuby使うことを記載する。 でもDeveloperで設定するほうが楽。'Project Properties' -> 'Language Modules'でRubyをチェック。

次のような感じで書く。

  <script type="text/ruby">
    def hello(name)
      "Hello, " + name
    end
  </script>

  <div id="greeting"></div>
  <script>
    document.getElementById("greeting").innerHTML = hello("world");
  </script>

外部ファイルを読み込むこともできる。以下は同義。

  <script type="text/ruby" src="myfile.rb"/>

  <script type="text/ruby">
    require 'myfile.rb'
  </script>

javascriptとデータの受け渡しもできるみたいだ

Gemを使う

だいたいここに書いてある

danielbayerlein/tidesdk-template#1

  1. bundlerを使うので、Gemfileを作る
  • bundle init
  • Rubyは1.8.7
  1. Resourceフォルダ内にbundle install
  • bundle install --path Resource/ruby/gems
  • パッケージ化するのでResourceフォルダに入れないといけない
  • .bundle/configが作られたら、次回からはbundleのみでOK
  1. requireするために、先ほどのgemsフォルダを登録
    require 'rubygems'
    gem_path = File.join(
      File.expand_path(File.dirname(Ti.App.getPath)),
      '../Resources/ruby/gems/ruby/1.8'
    )
    Gem.use_paths(gem_path)
  1. Developerで実行!
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment