連載第3回となる今回は、Rhodesがどのように動いているのかを覗いてみる。前回使用したソースを見ながら、Rhodesでのデータ処理やDBとのやり取り、どのように画面生成を行っているのかを見ていきたい。

Rhodesのアーキテクチャ

 Rhodesで作成されたアプリは、他のマルチプラットフォーム対応のフレームワークとは少し違うアーキテクチャとなっている。

Rhodesアーキテクチャ
[画像のクリックで拡大表示]

 上図の構成図はおおざっぱに記述したものだが、Rhodesの中には実はRuby VM(Ruby1.9.1/XRuby)が搭載されており、その上で外部拡張が用意され、さらにはWebサーバーまで搭載されている。まるで、Webアプリケーションがサーバーも含めそのまま一つのアプリとして提供されている形だ。このRuby VMを各スマートフォンのOSごとに用意することで、一つのソースで多数のプラットフォームへの対応を実現している。

 一見Apple社の「App Store」への登録はできないのではないかと思われるかもしれない。しかしRhodesではRubyのスクリプト動的に評価している訳ではない。一度「YARV」と呼ばれるRuby1.9.0から採用された仮想マシン用のバイトコードにRubyのコードを変換したものをアプリの中に設置し、RubyVMにて実行する形を取っている。そのため、AppStoreの規約に抵触しないアプリを作成することが可能となっている。

この先は会員の登録が必要です。今なら有料会員(月額プラン)が2020年1月末まで無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら