3.2 Shinyアプリの作成方法

Shinyアプリを作成するには,RStudioを利用するのが便利である. RStudioを起動した状態で,メニューの「File」→「New File」→「Shiny Web App…」を選択すると,Shinyアプリの雛形が作成される. 作成された雛形は,RStudioの「Files」パネルの「app.R」をダブルクリックすることで開くことができる.

実際に上記の方法でShinyアプリを作成してみよう。

3.2.1 Shinyアプリの構成

Shinyアプリは,大きく分けて以下の2つのファイルから構成される.

  1. ui.R:ユーザーインターフェースを定義するファイル
  2. server.R:サーバー側の処理を定義するファイル

ユーザーに見える部分、つまりブラウザ上に表示される部分を定義するのがui.Rである。これをクライアント側の処理と呼んだりする。 一方でブラウザ上の変更に応じて、データの読み込みや計算などを行うのがserver.Rである。これをサーバー側の処理と呼んだりする。 サーバー側の処理は普段意識することがないのでイメージしづらいかもしれない。

3.2.2 サーバーとクライアント

Google検索を例にサーバーとクライアントについて説明してみよう。 Googleの検索画面を開くと、細かい表示は個々の環境に依存するが、一旦それらは無視して検索のための入力ボックスがあるだろう。 ここに検索したいキーワードを入力すると、検索結果が表示される。 当たり前の何気ない動作だがこの処理はまさにサーバーとクライアントによって行われている。

検索ボックスにキーワードを入力すると、ブラウザはGoogleのサーバーにキーワードを送信する。 サーバーは受け取ったキーワードをもとに検索を行い、その結果をブラウザにし、ブラウザは受け取った結果を表示する。

このような構成にするメリットは多々あるが、基本的には表示する側とデータを処理する側とで作業を分担することによると言える。 例えばGoogle検索は世界中で公開されている大量のウェブサイトの中から、キーワードに合致するものをほんのわずかな時間で探し出す。 このような処理をブラウザ側で行うとすると、そのブラウザを動かしている端末(つまり個人のPCやスマートフォン)のリソースを消費することになる。

しかし、一般的に考えて数ペタバイトに及ぶデータを検索するような処理を個人のPCで行っても結果を1秒以下で得ることは難しいだろう。 そこでそのような処理の重い作業は高スペックなサーバーに任せることで、個人のPCのリソースを節約することができる。