Lesson7 – アプリの共有

今や、便利な Shiny アプリを作れるようになりましたが、他の人と共有できますか?このレッスンでは、Shiny アプリを共有するいくつかの方法を紹介します。

Shiny アプリの共有については、2つの基本的な選択肢があります:

  1. Shiny アプリを R スクリプトとして共有する。これはアプリを共有する最も簡単な方法ですが、ユーザが自分のコンピュータに R をインストールしている(およびその使い方を知っている)必要があります。これまで、このチュートリアルでアプリを起動してきたように、ユーザもこれらのスクリプトを使用して自分の R セッションからアプリを起動することができます。
  2. Shiny アプリを Web ページとして共有する。これは間違いなく、Shinyアプリを共有する最もユーザフレンドリーな方法です。ユーザは、Web ブラウザを使用してインターネット経由でアプリにナビゲートできます。アプリは、完全にレンダリングされ、最新の状態になっており、直ぐに使えることが確認できるでしょう。

R スクリプトとして共有

R を使用すれば、誰でも Shiny アプリを実行できます。それには、app.R ファイルのコピーの他に、アプリで使用している補足資料(www フォルダや helpers.R ファイルなど)が必要です。

ファイルを他のユーザに送信するには、ファイル(zip ファイルなど)を電子メールで送信するか、オンラインにホストします。

ユーザは、ファイルを作業ディレクトリの app ディレクトリに置き、あなたが使用したものと同じ R コマンドでアプリを起動できます。

Shiny には、オンラインにホストされているファイルを簡単に使用できる3つのコマンド – runUrl、runGitHub、runGist – が組み込まれています。

runUrl

runUrl は、Weblink から直接 Shiny アプリケーションをダウンロードして起動します。

runURLを使用するには:

  • Shiny アプリケーションのディレクトリを zip ファイルとして保存する
  • Web ページのリンクに zip ファイルをホストする。リンクにアクセスできる人は、次のコマンドを実行すれば R の中から誰でもアプリを起動できます:

runGitHub

ファイルをホストする Web ページがない場合は、www.github.com に無料でホストすることができます。

GitHub は、単にファイルをホストするだけでなく、R 開発者にとって人気のあるプロジェクトホスティングサイトです。GitHub は、課題トラッカー、wiki、git バージョン管理システムとの緊密な統合など、コラボレーションをサポートするための多くの機能を提供します。 GitHub を使用するには、サインアップ(無料)してユーザ名を選択する必要があります。

GitHub でアプリを共有するには、GitHub にプロジェクトリポジトリを作成します。 次に、app.R ファイルとアプリが使用する補足ファイルを一緒にしてリポジトリへ保存します。

あなたのユーザは、下を実行することでアプリを起動できます:

runGist

匿名でファイルをオンラインに投稿したい場合、GitHub は gist.github.com でファイルを共有するための pasteboard サービスを提供しています。 このサービスを利用する場合、GitHub アカウントにサインアップする必要はありません。 GitHub アカウントを持っていても、簡単に素早く Shiny プロジェクトを共有することができます。

アプリを gist として共有するには:

  • app.Rファイルをコピーして gist Web ページに貼り付けます。
  • GitHub が指定する gist の URLを書き留めておきます。

gist を作成したら、ユーザは runGist(“<gist number>”) でアプリを起動できます。ここで、”<gist number>” は Gist の Web アドレスの最後に表示される番号です。

下は、gist としてホストされているアプリの例です。次により、このアプリを起動することができます:

web ページとして共有

上の方法すべてには、共通した制限があります。それは、自分のコンピュータに R と Shiny をインストールする必要がある点です。

しかし、Shiny は、R を持っていない(そしてそれを取得する意思のない)人々と出力を共有する完璧な機会を作り出します。 あなたの Shiny アプリは、世界で最も広く使われているコミュニケーションツールの 1 つである web ページであるのです。URL にアプリをホストすれば、ユーザはアプリを訪問することができます(生成するコードについて心配する必要はありません)。

Web ホスティングに精通している場合は、自分で Shiny アプリをホストすることができます。

より簡単な体験やサポートが必要な場合は、RStudio が Shiny アプリケーションを Web ページとしてホストする 4 つの方法を提供しています。

  1. shinyapps.io
  2. Shiny Server
  3. Shiny Server Pro
  4. RStudio Connect

Shinyapps.io

Shiny アプリケーションを Web ページに変換する最も簡単な方法は、Shinyapps のための RStudio のホスティングサービスである shinyapps.io を使用することです。

shinyapps.io を使用すると、R セッションから RStudio がホストするサーバに、直接アプリケーションをアップロードすることができます。サーバ管理ツールを含め、アプリを完全に制御できます。詳細については、shinyapps.io を参照してください。

Shiny Server

Shiny Server は、Shiny アプリをホストするために設計された Webサーバを構築する、Shiny のコンパニオンプログラムです。これは、無料のオープンソースで、GitHub から入手できます。

Shiny Server はサーバ・プログラムで、Linux サーバが Shiny アプリを Web ページとしてホストするために実行できます。Shiny Server を使用するには、Ubuntu 12.04 以降(64ビット)と CentOS/RHEL 5 (64 bit) を明示的にサポートする Linux サーバが必要です。明示的にサポートしているディストリビューションを使用していない場合でも、Shiny Server をソースからビルドすれば使用することができます。

同じ Shiny Server を使用して複数の Web ページに複数の Shiny アプリケーションをホストすることができ、ファイアウォールの後からアプリケーションを配置することができます。

Shiny Server のインストールと設定の詳細な手順については、Shiny Server ガイドを参照してください。

Shiny Server Pro

Shiny Server は、アプリを Web に取り込み、Shiny の公開ニーズをすべて引き受けます。しかし、営利目的で Shiny を使用する場合は、以下のような、ほとんどの有料サーバ・プログラムに付属するサーバ・ツールを使用することをお勧めします。

  • パスワードの認証
  • SSL サポート
  • 管理ツール
  • 優先サポート
  • 等々

必要な場合は、RStudio の有償プロフェッショナルバージョンの Shiny Server をチェックしてください。

RStudio Connect

RStudio Connect は、R を使用してチームで作成した作品のための新しいパブリッシングプラットフォームです。Shiny アプリケーション、R Markdown レポート、ダッシュボード、プロットなどを 1 つの便利な場所で共有できます。RStudio Connect を使用すると、ボタンを押すだけで RStudio IDE から発行でき、レポートや柔軟なセキュリティポリシーの実行をスケジュールできます。

RStudio Connect と提供される機能の詳細については、ここを見てください。

まとめ

Shiny アプリは簡単に共有できます。R スクリプトのカップルとして、または自身の URL を持つ完全に機能する Web アプリとして、アプリを共有することができます。各方法にはそれぞれの利点があります。

次のことを学習しました:

  • R のコピー、Shiny、アプリのファイルのコピーがあれば誰でもアプリを起動できます。
  • runUrl、runGitHub、runGist を使用すると、Web リンクから Shiny ファイルを簡単に共有および取得ができます。
  • shinyapps.io を使用すれば、アプリをそれ自身 URL にライブ web アプリにすることができます。
  • オープンソースの Shiny Server を使用して、Shiny アプリをホストする Linux サーバを構築することができます。
  • より詳細な制御が必要な場合や、大量のトラフィックを管理したい場合は、RStudio から Shiny Server Pro または RStudio Connect を購入することができます。

おめでとう。あなたは Shiny 開発プロセス全体を通して作業を完了しました。洗練された reactive なアプリケーションを構築し、配置し、他の人と共有することができます。ユーザはあなたのデータに接触し、新しい方法であなたのストーリーをフォローすることができます。

次は、Shiny の高度な機能を練習してみましょう。