forked from ThinkR-open/engineering-shiny-book
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.Rmd
157 lines (121 loc) · 4.85 KB
/
index.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
---
title: "Engineering Production-Grade Shiny Apps"
author: "Colin Fay, Vincent Guyader, Cervan Girard, Sébastien Rochette"
date: "`r Sys.Date()`"
site: bookdown::bookdown_site
documentclass: book
bibliography: [book.bib, packages.bib]
biblio-style: apalike
link-citations: yes
description: "Engineering Production-Grade Shiny Apps"
favicon: img/favicon.ico
---
```{r index-1, include = FALSE}
knitr::opts_chunk$set(
comment = "",
cache = TRUE
)
```
# Introduction {-}
<style>
img.left {
float: left;
margin-right: 1em;
}
</style>
<img src="img/engineering-shiny.jpg" class = "left" width = "300px">
This book is currently under development.
It will be published in 2020 in the [R Series](https://www.crcpress.com/go/the-r-series) by Chapman & Hall.
## Motivation {-}
This book will not __get you started with Shiny__, nor __talk about how to deploy into production and scale your app__.
What we'll see is __the process of building the app__.
Why? Lots of blog posts and books talk about starting to use shiny or putting apps in production.
Very few (if any) talk about this grey area between getting started and pushing into production.
So this is what this book is going to talk about: building Shiny application.
We'll focus on the process, the workflow, and the tools we use at ThinkR when building big Shiny Apps.
Hence, if you're starting to read this book, we assume you have a working knowledge of how to build a small application, and want to know how to go one step further.
## Book structure {-}
+ Part 1 (Building big Shiny Apps) gives a general context about what is a successful Shiny Apps and what challenges arise when you're dealing with a large scale application.
It also introduces the `{golem}` package and more general concept about organising your workflow.
This first part will be light on code: you'll read more about conceptual ideas and organisation strategy.
+ Part 2 to 6 describes a series of steps you can take when you want to build a Shiny App, and the tooling associated with each step.
+ Part 7 (Optimizing) tackles the question of optimization, first by presenting some common caveats of Shiny Apps, and then showing how to optimize R code, and use JavaScript to lighten R work.
## About the authors {-}
// TODO
<li><a href="https://colinfay.me/">Colin Fay</a></li>
<li><a href="https://twitter.com/VincentGuyader">Vincent Guyader</a></li>
<li><a href="https://twitter.com/CervanGirard">Cervan Girard</a></li>
<li><a href="https://statnmap.com/">Sébastien Rochette</a></li>
## Want to help? {-}
Any feedbacks on the book is very welcome.
Feel free to [open an issue](https://github.com/ThinkR-open/building-shiny-apps-workflow/issues), or to make a PR if you spot a typo (I'm not a native english speaker, so there might be some waiting to be found ;) ).
## Other resources {-}
### Getting started with Shiny {-}
+ [Learn Shiny with RStudio](https://shiny.rstudio.com/tutorial/)
+ [Getting Started with Shiny](https://ourcodingclub.github.io/2017/03/07/shiny.html)
+ [(WIP) Mastering Shiny](https://github.com/jcheng5/shiny-book)
+ [A gRadual intRoduction to Shiny](https://laderast.github.io/gradual_shiny/)
### Shiny into production {-}
+ [Shiny in production: Principles, practices, and tools](https://resources.rstudio.com/rstudio-conf-2019/shiny-in-production-principles-practices-and-tools-joe-cheng)
+ [Shiny in Production](https://kellobri.github.io/shiny-prod-book/)
[Suggest a Resource!](https://github.com/ThinkR-open/building-shiny-apps-workflow/issues)
## Acknowledgments {-}
### Contributors to this book {-}
+ [Liz Roten](https://github.com/eroten){target="_blank"}, for proofreading chapter 1 and helping us with writing advices.
+ [Dan S. Reznik](https://github.com/dan-reznik){target="_blank"}, for proof-reading the JavaScript chapter.
// TODO :
```{r index-2, echo = FALSE}
# Some internal funs
right_link <- function(text, link){
htmltools::tagList(
htmltools::singleton(
htmltools::tags$style(
".right{ text-align: right;}"
)
),
htmltools::tags$div(
class = "right",
htmltools::tags$a(
href = link,
text
)
)
)
}
right_align<- function(text, link){
htmltools::tagList(
htmltools::singleton(
htmltools::tags$style(
".right{ text-align: right;}"
)
),
htmltools::tags$div(
class = "right",
text
)
)
}
with_tooltip <- function(text, tooltip){
htmltools::tags$span(
class = "tooltip",
text,
htmltools::tags$span(
class="tooltiptext",
tooltip
)
)
}
# Adding packages
if (!requireNamespace("remotes")){
install.packages("remotes")
}
if (!requireNamespace("cloc")){
remotes::install_github("hrbrmstr/cloc")
}
```
```{r index-3, include=FALSE}
# automatically create a bib database for R packages
knitr::write_bib(c(
.packages(), 'bookdown', 'knitr', 'rmarkdown'
), 'packages.bib')
```