Developer Guide for R Shiny Modules in geyser
R Package Developer Guide
Welcome to the R package Developer Guide for geyser (v0.7.2). This vignette documents the 5-function Shiny module architecture, namespace conventions, and module composition patterns used throughout the package.
5-Function Module Pattern
Every module in the geyser package adheres to a strict 5-function structure:
moduleNameInput(id): Generates input control widgets. Usesns <- NS(id)for UI namespacing.moduleNameOutput(id): Generates output display elements. Usesns <- NS(id).moduleNameUI(id): Combines Input and Output UI elements into a full layout panel.moduleNameServer(id, dataset = reactive(faithful)): Implements server reactive logic insidemoduleServer(id, function(input, output, session) {...}).moduleNameApp(dataset = faithful): Standalone testing wrapper app returning ashinyApp(ui, server)instance.
Exported R Modules
| Module | Source File | Purpose |
|---|---|---|
histApp() |
R/histApp.R |
Base R graphics histogram |
gghistApp() |
R/gghistApp.R |
ggplot2 histogram |
ggpointApp() |
R/ggpointApp.R |
ggplot2 scatter plot |
datasetsApp() |
R/datasetsApp.R |
Dataset selector (filters numeric cols) |
dataApp() |
R/dataApp.R |
Interactive DT data table viewer |
rowsApp() |
R/rowsApp.R |
Multi-module horizontal row container |
switchApp() |
R/switchApp.R |
Dynamic module switcher |
wrapperApp() |
R/wrapperApp.R |
Module wrapper demonstration |
Development Workflow
# Load development package
devtools::load_all()
# Test a module standalone
histApp()
# Re-build package documentation
devtools::document()For full hybrid repository architecture (including Python modules), see DEVELOPER.md in the repository root.