Shinyは、 Webアプリケーション(アプリ)開発用のWebフレームワークです。元々はR言語で開発されていましたが、2022年からはPythonでも利用可能になりました。無料のオープンソースです。[ 2 ] 2012年にPosit(旧RStudio)のCTOであるJoe Cheng氏によって発表されました。 [ 3 ] Shinyの用途の一つは、高速プロトタイピングです。[ 4 ]
2022年には、Python向けのShinyの別実装が発表されました。[ 5 ]これはShinyの代替となるものではなく、両方の実装が同時に開発され、互いの機能をすべて備えているとは限りません。また、Shinyをクライアント上で実行できるShinyliveも存在します(つまり、プログラムコードはサーバー上で実行されず、サーバー負荷はコード自体の提供のみに軽減されます)。[ 6 ]
特徴
Shinyは、ユーザーが入力変数を通じて、計算を再実行したりグラフ(多くの場合、視覚化)を再レンダリングしたりする状況を指定できるリアクティブコンテキストを作成します。これはほぼ瞬時に実行されます。入力変数はユーザーインターフェースを介して評価され、テキストボックス、ラジオボタン、ドロップダウンリストなどのウィジェットを簡単に作成できます。[ 3 ] [ 7 ]
Shinyファイルは主に2つの部分から構成されており、それぞれを別々のファイルに保存することもできます。1つはユーザーインターフェースを格納するためのもので、その外観はデフォルトの設定によって制限されますが、他のRパッケージを通じて拡張可能です。もう1つはサーバー側の計算処理とプロット生成コードを格納するためのもので、Rの組み込み機能はすべて利用可能です。[ 3 ]
例
サンプルアプリのスクリーンショットこれはRの基本的な応用例である。[ 8 ]
ライブラリ(光沢のある)ui <- fluidPage ( textInput ( "name" , "お名前は何ですか?" ), textOutput ( "greeting" ) )server <- function ( input , output , session ) { output $ greeting <- renderText ({ paste0 ( "Hello " , input $ name )}) }shineApp ( UI 、サーバー)Pythonで書かれた同等のアプリケーションは次の通りです: [ 9 ]
ShinyからApp 、reactive 、render 、uiをインポートしますapp_ui = ui . page_fluid ( ui . input_text ( "name" , "お名前は何ですか?" ), ui . output_text ( "greeting" ), )def server (入力、出力、セッション):@render . text def greeting (): return f "Hello { input . name () } "app = App ( app_ui , server )Python用のShiny Express: [ 10 ]
shine.expressからinput 、render 、uiをインポートします。ui . input_text ( "name" , "あなたのお名前は何ですか?" )@render . text def greeting (): return f "Hello { input . name () } "Shinyのデプロイ/ホスティング
Shiny (R) の導入は、いくつかの一般的な方法で実現できます。
- Shiny Server(オープンソース):このオプションでは、Shinyアプリケーションをオンプレミスでホスティングできるため、ユーザーはライセンス費用を支払うことなくサーバー構成を制御できます。サーバーへの直接アクセスと制御を必要とする組織に最適です。
- Posit Connect [ 11 ](旧RStudio Connect):ユーザー認証、スケジュールされたレポート、ShinyアプリケーションやR Markdownを含む複数のコンテンツタイプのサポートなどの高度な機能を提供する商用オンプレミスソリューション。
- shineapps.io: [ 12 ] Positが管理するクラウドホスト型サービス。サーバー管理を必要とせず、Shinyアプリの容易な導入と拡張を可能にします。ユーザーフレンドリーな設計で、小規模なチームや個人開発者に最適です。shinyapps.ioサーバーでのShinyアプリのホスティングは、一定の制限までは無料ですが、有料プランは他のクラウドコンピューティングプラットフォームでのホスティングと比較して比較的高額です。[ 3 ]
- shineproxy.io: コンテナ化技術を使用してShinyアプリをオンプレミスおよびクラウドサーバーにデプロイするためのオープンソースツール。[ 13 ] [ 14 ]
参考文献
- ^ 「Shiny: R用Webアプリケーションフレームワーク」 2024年8月1日。
- ^ Doi, Jimmy; Potter, Gail; Wong, Jimmy; Alcaraz, Irvin; Chi, Peter (2016). 「RとShinyを用いた統計学のためのWebアプリケーション教育ツール」 .統計教育における技術革新. 9 (1). doi : 10.5070/T591027492 .
- ^ a b c d Kasprzak, Peter; Mitchell, Lachlan; Kravchuk, Olena; Timmins, Andy (2020). 「Shinyの研究6年間 - RにおけるWebツールの共同開発」(PDF) . The R Journal . 12 (2): 20– 42. doi : 10.32614/RJ-2021-004 . S2CID 231709443. 2022年3月12日閲覧。
- ^ Li, Yu (2020). 「R ShinyとDockerを用いた環境科学者向けクラウドベース環境意思決定支援システムの高速プロトタイピングに向けて」. Environmental Modelling & Software . 132 104797. doi : 10.1016/j.envsoft.2020.104797 . hdl : 20.500.11850/431312 . S2CID 221823072 .
- ^ Machlis, Sharon (2022年7月27日). 「RStudioがPython版Shinyを発表」 . InfoWorld . 2024年5月17日閲覧。
- ^ 「Shiny for Python - Shinylive: Shiny + WebAssembly」 . shine.rstudio.com . 2023年1月30日閲覧。
- ^ Kaufman, Aaron R. (2020年4月30日). 「R Shinyにおける斬新で柔軟かつ強力な調査デザインの実装」 . PLOS ONE . 15 (4) e0232424. Bibcode : 2020PLoSO..1532424K . doi : 10.1371/journal.pone.0232424 . PMC 7192460. PMID 32353057 .
- ^ Wickham, Hadley. 「初めてのShinyアプリ」. Mastering Shiny . 2024年10月25日閲覧。
- ^ 「Shiny for Python - Express vs. Core」 。 2024年10月28日閲覧。
- ^ 「Shiny for Python - 概要」 。 2024年10月25日閲覧。
- ^ "Posit" . Posit . 2024年11月1日閲覧。
- ^ "shinyapps.io" . www.shinyapps.io . 2022年5月24日閲覧。
- ^フェイ、コリン;ロシェット、セバスチャン。ガイアデル、ヴィンセント。ジラール、セルヴァン。第 13 章 アプリケーションをデプロイする |エンジニアリングプロダクショングレードの光沢のあるアプリ。
- ^ "Web アプリ: ShinyProxy 3.0.0 の機能と機能に関するアプリのパラメータ" .ハイゼ(ドイツ語)。 2023 年 3 月 6 日。2025 年7 月 25 日に取得。
外部リンク