Shinyに関わる最近の記事リンクまとめ

# 概要

- ShinyはRを用いたWebアプリケーション開発フレームワーク
- 近年は本番環境でも十分に使えるように開発が進行
- 本記事は最近のShinyに関わる内容のリンクをまとめている

# 前書き

　ShinyはRStudio社が開発したRを用いてWebアプリケーションを作るフレームワークです。すぐに落ちるとか多人数がアクセスすると重くて使えないとか言われておりましたが、[rstudio::conf 2019でShiny in production](https://speakerdeck.com/jcheng5/shiny-in-production)というトークがあったように、最近では本番環境でも十分に使えるように機能開発を進めていると感じられます。

　本記事は[TokyoR #81のShiny回](https://tokyor.connpass.com/event/141318/)を応援を目的として、最近のShinyに関わる記事やパッケージのリンクをまとめたものです（Shiny回が終了した後も随時更新予定）。

# RStudio公式関連

## フレームワーク
- [R Shiny - RStudio](https://shiny.rstudio.com)
    - R言語の記述だけでWebページが作れるパッケージ
    - UIから受け取る入力を用いて結果を動的に変えて表示できるため、分析レポートの共有に用いられることもある
    - Shiny単体で用いるよりも以下の拡張パッケージを使う場合が多い
- [shinydashboard](https://rstudio.github.io/shinydashboard/)
    - ダッシュボード作成しやすく拡張したパッケージ
- [flexdashboard](https://rmarkdown.rstudio.com/flexdashboard/)
    - RMarkdownと規定のレイアウトと組み合わせて、ダッシュボード作成しやすく拡張したパッケージ
- [crosstalk](https://rstudio.github.io/crosstalk/)
    - htmlwidgetsによる可視化結果を組み合わせられるパッケージ
    - Shinyの連携もできる(Shinyよりもhtmlwidgetsのアドオンパッケージ)

## オンラインブック
- [Mastering Shiny](https://mastering-shiny.org/)
- [Supplement to Shiny in Production](https://kellobri.github.io/shiny-prod-book/index.html)

## チートシート
- [The Shiny Cheat sheet](https://shiny.rstudio.com/articles/cheatsheet.html)


## パッケージ
- [shinytest](https://github.com/rstudio/shinytest)
- [shinyloadtest](https://rstudio.github.io/shinyloadtest/index.html)
- [promises](https://rstudio.github.io/promises/index.html)
- [reactlog](https://github.com/rstudio/reactlog)
- [shinymeta](https://rstudio.github.io/shinymeta/)

## 記事
- [Plot Caching](https://shiny.rstudio.com/articles/plot-caching.html)
- [Modularizing Shiny app code](https://shiny.rstudio.com/articles/modules.html)

## 動画
- [Shiny in production: Principles, practices, and tools](https://resources.rstudio.com/rstudio-conf-2019/shiny-in-production-principles-practices-and-tools-joe-cheng)
- [Shiny Modules](https://resources.rstudio.com/shiny-developer-conference/shinydevcon-shinymodules-ianlyttle-1080p)
- [Understanding Shiny Modules](https://www.rstudio.com/resources/webinars/understanding-shiny-modules/)


# RStudio公式外

## オンラインブック
- [Building Big Shiny Apps - A Workflow](https://thinkr-open.github.io/building-shiny-apps-workflow/)
- [Interactive web-based data visualization with R, plotly, and shiny](https://plotly-r.com)


## パッケージ
- [ShinyProxy](https://www.shinyproxy.io)
- [bs4Dash](https://rinterface.github.io/bs4Dash/)
- [shinydashboardPlus](https://rinterface.github.io/shinydashboardPlus/)
- [shinyF7](https://rinterface.github.io/shinyF7/)
- [shinysense](https://github.com/nstrayer/shinysense)
- [golem](https://github.com/ThinkR-open/golem)
- [glouton](https://github.com/ColinFay/glouton)
- [gargoyle](https://github.com/ColinFay/gargoyle)
- [shiny.semantic](https://github.com/Appsilon/shiny.semantic)
- [ipc](https://cran.r-project.org/web/packages/ipc/index.html)


## 記事
- [Hands-on demonstration of {golem}!](https://shinydevseries.com/post/golem-demo/)
- [Using Shiny responsibly in pharma](https://speakerdeck.com/jcheng5/using-shiny-responsibly-in-pharma)
- [UseR!2019: A Shiny Perspective](https://thisisnic.github.io/2019/07/28/user-2019/)
- [ShinyProxyを使ったEnterprise向けShiny Appのことはじめ](https://qiita.com/okiyuki99/items/428226aa402dd335764e)
- [Shiny Appの継続的インテグレーション(1) : ShinytestとtestthatでShiny Appのテストを行う](https://qiita.com/okiyuki99/items/ab70789a832ca79e3f6f)
- [Tokyo.R #81 応用セッション Shiny Appを支えるエンジニアリング](https://speakerdeck.com/okiyuki99/190928-tokyor81-shiny)
- [Reproducible Shiny apps](https://talks.cpsievert.me/20190816/shinymeta.pdf)
- [Automating the Delivery of Data Products in R](https://speakerdeck.com/kellobri/automating-the-delivery-of-data-products-in-r)
- [Art of the Feature Toggle](https://speakerdeck.com/kellobri/art-of-the-feature-toggle)
- [R Shiny in Production](https://medium.com/inlocotech/r-shiny-in-production-e2fb6a577fe0)
- [Shinyと再現可能性のすゝめ](https://docs.google.com/presentation/d/1aHRVEE05L7HO90TsTTFNsJZsVH-oI2umYlNR3NuXbac/edit?usp=sharing)
- [Best Practice: Development of Robust Shiny Dashboards as R Packages](https://www.inwt-statistics.com/read-blog/best-practice-development-of-robust-shiny-dashboards-as-r-packages.html)
- [The Shiny Module Design Pattern](https://drdoane.com/the-shiny-module-design-pattern/)
- [Shiny apps need more info! – our new shiny.info package](https://appsilon.com/more-info-for-shiny-apps/?nabc=1&nabe=4825491004194816)
- [Forget about Excel, Use these R Shiny Packages Instead](https://appsilon.com/forget-about-excel-use-r-shiny-packages-instead/)


# そのほかのShiny関連


## パッケージ
- [shinyWidgets Overview](http://shinyapps.dreamrs.fr/shinyWidgets/)
- [cssgrid](https://github.com/atusy/cssgrid/)
- [shinyMlr](https://github.com/mlr-org/shinyMlr)
- [resume](https://github.com/ColinFay/resume)
- [vebmedr](https://ijlyttle.github.io/vembedr/)
- [xplorerr](https://github.com/rsquaredacademy/xplorerr)
- [rintrojs](https://carlganz.github.io/rintrojs/index.html)
- [shinyjs](https://deanattali.com/shinyjs/)
- [bsplus](http://ijlyttle.github.io/bsplus/)

## [Certified Trainers](https://education.rstudio.com/trainers/)
- [Rhian Davies](https://education.rstudio.com/trainers/people/davies+rhian/)
- [Colin Gillespie](https://education.rstudio.com/trainers/people/gillespie+colin/)
- [Theo Roe](https://education.rstudio.com/trainers/people/roe+theo/)
- [Sebastian Voss](https://education.rstudio.com/trainers/people/voss+sebastian/)

## Shiny Contest
- [Announcing the 1st Shiny Contest](https://blog.rstudio.com/2019/01/07/first-shiny-contest/)
- [Winners of the 1st Shiny Contest](https://blog.rstudio.com/2019/04/05/first-shiny-contest-winners/)
- [1st Shiny Contest に参加しました](http://gingi99.hatenablog.com/entry/2019/04/06/232030)

## フォローしておくべきTwitterアカウント
- [Joe Cheng](https://twitter.com/jcheng)
- [Winston Chang](https://twitter.com/winston_chang)
- [Colin Fay](https://twitter.com/_ColinFay)
- [David Granjon](https://twitter.com/divadnojnarg)

## まとめページ
- [Developing Powerful Shiny Applications for Life Sciences](https://rpodcast.gitlab.io/shiny_pharma_jsm2019/)
- [Show Me Shiny - Gallery of R Web Apps](https://www.showmeshiny.com)
- [Awesome R packages that offer extended UI or server components for the R web framework Shiny](https://github.com/nanxstats/awesome-shiny-extensions)
- [Collection of links and source code for stat education resources made in Shiny](https://github.com/kbodwin/Shiny-Apps-for-Education)

## [The R Task Force](https://rtask.thinkr.fr/)
- [Dash with golem: First contact](https://rtask.thinkr.fr/dash-with-golem-the-beginning/)
- [Communication between modules and its whims](https://rtask.thinkr.fr/communication-between-modules-and-its-whims/)
- [shinyApp(), runApp(), shinyAppDir(), and a fourth option](https://rtask.thinkr.fr/shinyapp-runapp-shinyappdir-difference/)

## [Shiny Developer Series](https://shinydevseries.com/)
- [Episode 1: Shiny Development - Past and Future](https://shinydevseries.com/post/episode-1-shiny-development-past-and-future/)
- [Episode 2: {golem} and Effective Shiny Development Methods](https://shinydevseries.com/post/episode-2-golem/)
- [Episode 4: The RinteRface packages for production-ready Shiny UI](https://shinydevseries.com/post/episode-4-rinterface/)
- [Episode 5: shinysense and custom javascript visualizations](https://shinydevseries.com/post/episode-5-shinysense/)

## 記事
- [Shiny で input の変更が反映されるまでの時間を調整する (debounce / throttle)](https://blog.atusy.net/2019/08/04/shiny-throttle-and-debounce/)
- [Shiny で動的に図の数を変更する](https://blog.atusy.net/2019/08/09/shiny-dynamic-numer-of-plots/)