With this question I'm only interested in obtaining some clarity on a best approach to using packages while working with a Shiny app. Despite the fact that, contrary to good practice on asking R-related questions, the question does not contain code or reproducible example, I hope that it touches on practical and relevant matters.
Problem
I'm working on a modular Shiny app that has the following structure:
- server.R- contains some key functions and first few initial graphics
- ui.R- provides basic user interface framework
- data- folder with some data files that are not sourced dynamically- list.csv- sample file with data
- ...- other data files
 
- functionsAndModules- folder with- *.Rfiles pertaining to functions and modules- functionCleanGeo.R- simple function cleaning some data frames of format:- cleanDataFrame <- function(data) { ... return(cleanDta) }
- moduleTimeSeries.R- module providing time series analysis doing the following things:- generating user interface
- sourcing data
- generating charts
 
- ...R- other modules and functions saved as- *.Rfiles.
 
Libraries
What I would like to know is how to approach loading packages that would be most optimal for the app structure outlined above. In particular, I would like to know:
- When it's sufficient to load libraries only in - global.Rand when (if at all) it may be required to load libraries across module files and/or- server.R/- ui.r?- 1.2. For example when using - shinyTreepackage I load it in- server.Rand- ui.Ras, it is my understanding that this flows from examples. Modules and functions use- dplyr/- tidyrcombination, would it be sufficient to load those packages in- global.R?
- My preferred method for loading packages looks like that: - Vectorize(require)(package = c("ggvis", "SPARQL", "jsonlite", "dplyr", "tidyr", "magrittr"), character.only = TRUE), will it work fine with the architecture described above?
 
     
    