The easiest way to get started building your app is with the electrify()
function. This is a “metafunction” that calls the other functions of electricShine in the order that the package was intended to build apps.
If you want more control (e.g. icons haven’t yet been implemented)…until a more thorough vignette is written, you can use source code of electrify()
as a guide to step through the build process.
run_app()
Your package must have a function that starts your Shiny app.
functionName
argumnet of electrify()
:
The function must have an options
argument to pass to to shiny::shinyApp()
(example below). To modify the example: Replace the app_ui
with your package’s app_ui
function name. Replace the app_server
with your package’s app_server
function name.
run_app <- function(options = list()) {
shinyApp(ui = app_ui,
server = app_server,
options = options)
}
By running the electricShine::electrify()
function your R session will start doing the following things:
This will take some time depending on your internet speed, and computer. The build step is the longest and can take minutes (seems to be IO-limited so a fast hard drive will work best). An internet connection is required.
In the directory your specified in buildPath
, you will find a new folder named what you chose for appName
. Directly inside you will find the raw electron build. Your new electron .exe
can be found in buildPath/appName/dist
, where appName
is what you assigned electrify(appName = )
.
Advanced: If you want to test the electron app without installing. You can open cmd.exe and cd
to buildPath/appName
and if you have nodejs installed and in your PATH
, use the command npm start
to initiate the app.
Advanced: If you want to make changes before creating the exe- run the electricShine::electrify()
with build = FALSE
and make your changes within buildPath/appName
. When you’re ready to build the installer run the following, using the same buildPath
and appName
as in electricShine::electrify()
.
electricShine::run_build_release(nodejs_path = file.path(system.file(package = "electricShine"), "nodejs"),
app_path = file.path(buildPath, appName),
nodejs_version = "12.13.0")
You can also run npm release
from the app’s directory.