FAQ

General

Why does the app take a while to start?

webRios runs R through WebAssembly, which takes 5-15 seconds to load and initialize on first launch. Subsequent launches are faster because your device caches the initialized runtime. See Getting Started for what to expect on your first launch.

What devices does webRios support?

iPhone and iPad, on iOS 26 or later. On iPhone a new install starts with a tab bar: Console, Editor, Plots, Environment, and More, which holds Files, Packages, Projects, History, Help and Settings. On iPad it starts with a sidebar; the 4-Pane Workspace shows the Editor, Console, Environment and a tabbed pane at once. Switch layouts in Settings > Layout.

Does the app need an internet connection?

Only for installing R packages, and for any R code you write that fetches data from the network. All R computation runs locally on your device, so you can write and run R code completely offline.

Can R code download data from the internet?

Yes. Since v1.2.0, curl and the packages built on it, such as httr2, work and can reach any server.

install.packages("httr2")
library(httr2)

resp <- req_perform(request("https://r-project.org"))
resp_status_desc(resp)
#> [1] "OK"

R’s own download.file(), url() and read.csv() work too, but only against servers that allow cross-origin requests; see Known Issues.

By default, requests go from your device to the site through a small proxy inside the app, not through a third-party server, and https traffic is encrypted end to end. If that proxy can’t start, webRios blocks R’s curl requests rather than quietly rerouting them, and tells you. Settings > R Session > Network can allow a public proxy instead.

The credit belongs to the webR project. R compiled to WebAssembly has no sockets; webR turns curl’s connections into WebSockets tunnelled through a SOCKS proxy. webRios supplies the proxy, which is the easy half. Thank you to the webR team for the hard half.

See Known Issues for more detail.

Does my R session persist between launches?

Partly, and you choose how much. Each launch starts a fresh R session. With Save Workspace on (Settings > R Session, off by default), your variables are saved to the current project when you leave the app or switch projects, and loaded when R starts. Each project keeps its own workspace.

Packages you loaded with library() are not re-attached, so put library() calls at the top of your scripts. Installed packages, your editor tabs, and the commands in the History tab are kept either way.

How much memory can R use?

R has approximately 300 MB of memory available. For most interactive analysis, this is sufficient. If you run out of memory:

  1. Remove large objects you no longer need with rm(), or from the Environment tab
  2. Run garbage collection (Settings > R Session > Run Garbage Collection)
  3. Clear your environment (Settings > R Session > Clear R Environment)

Plots in the gallery are image files on your device, so clearing them does not free R’s memory.

Why is the app so large?

webRios uses the webR WebAssembly binary, which is downloaded once and kept locally on your device (~30 MB compressed). This is what allows R to run without a server.

Editor and Files

How do I save my work?

In the Editor, tap the file icon in the toolbar to open the File menu, then choose Save (or press Cmd+S on a keyboard). You can also create new files, open existing ones, and export scripts as GitHub Gists. Your saved .R files appear in the Files tab and persist between sessions.

Open tabs are also autosaved, so unsaved work survives a relaunch. That is a safety net, not Save: only a saved file appears in Files.

Can I open R files from other apps?

Yes. In the Files app, touch and hold the file, tap Open With and choose webRios; in Mail, Messages and other apps, choose webRios wherever they offer another app. Scripts, R Markdown and Quarto open in the Editor, CSV and TSV in the import wizard, and .rds and .RData load into R after asking. A file from Mail or Messages moves into the current project; one elsewhere, such as iCloud Drive, opens in place. Share is different: in Files it offers Import to webRios, which keeps the file until you import it; see Shared files.

Where are my files stored?

Files are stored in the app’s sandboxed storage on your device. They persist between sessions but are deleted if you uninstall the app. You can import and export files through the Files tab, which also integrates with the iOS Files app and iCloud Drive.

Why do my quotes look different?

iOS sometimes inserts “smart quotes” (curly quotes) when typing. webRios automatically converts these to straight quotes that R understands, so you shouldn’t notice any issues.

Can I change the editor theme?

Yes. Nine built-in themes color the whole app. Pick one for light mode and one for dark in Settings > Appearance, where you can also create your own or import a VS Code or RStudio theme. Editor Themes previews four.

Running Code

What are the two ways to run code?

The Console is for one-off commands; the Editor is for scripts you save and re-run. In the Editor, green play runs the whole script and blue runs the selection. Either way R prints every result, as desktop R does. See Running Your Code.

Can I use ggplot2?

Yes! Install it from the Packages tab. Not all CRAN packages are available, only those compiled for WebAssembly by the webR project.

Can I interrupt running R code?

Yes. Tap Stop, beside the Console’s progress indicator or in place of the Editor’s Run button, or press Command-period. R stops where it is, prints “Interrupted” and keeps your variables, whichever screen started the code.

After a minute, a banner offers Stop and Restart R; Settings > R Session > Suggest Stopping After changes the minute or turns the banner off. A few compiled operations can’t be interrupted mid-step: the banner says so, and you can wait or restart R. See Stopping running code.

Plots

My plot isn’t showing up

Plots appear in the Plots tab after you run code that produces graphics. Make sure you switch to the Plots tab to see them; a badge counts new ones. Plots are stored even if you were on a different tab when the plot was created. To see each plot in the Console as well, set Settings > Appearance > New Plots to Gallery and Console.

Interactive plots from packages such as plotly and leaflet appear on an Interactive Plots card at the top of the gallery.

Can I export plots?

Yes. Tap a plot to open it full-screen, then use the share button to save to Photos, AirDrop, copy, or send to any app that accepts images. See Exporting Plots.

Packages

Why can’t I find a package?

Not all CRAN packages have WebAssembly builds. The webR project maintains a repository of compatible packages at repo.r-wasm.org. Most popular data science packages are available. Packages that depend on external system libraries (like database drivers) are the most likely to be missing. See A note about package availability for more.

Do installed packages persist?

Yes. Packages you install persist between app sessions and are stored in the app’s local storage. However, you still need to load them with library() each time you start a new session. See Loading packages after installation for details.

To stop a package coming back, remove it from the Environment tab’s Packages list, or run remove.packages("name") in the Console. Either one deletes the saved copy.

How do I install packages?

There are two ways. You can use the Packages tab to browse and install packages with a few taps, or you can run install.packages("name") in the Console or Editor. The app also offers Package Bundles that install groups of related packages in one tap.

Other R Apps

Is there an Android version?

Yes! webRoid is the Android companion app, available on Google Play. It shares the same webR engine, so R code, packages, and even custom themes work across both platforms. webRoid requires Android 15 or later.

How does webRios differ from R Programming Compiler?

R Programming Compiler sends your code to an external server for execution and returns the results, with a 20-second timeout per program. webRios runs R entirely on your device through WebAssembly, so your code never leaves your phone or tablet, there is no timeout, and you can work offline.

How does webRios differ from R Analyst?

R Analyst runs R locally using an older embedded R engine (R 4.2.1, last updated in early 2023) and does not support installing additional packages. webRios uses webR, which tracks recent R releases and lets you install packages from the webR repository.

What about running R through iSH (Alpine Linux)?

The iSH emulator can run Alpine Linux on iOS, and R can be installed through Alpine’s package manager. This gives you access to CRAN packages compiled for Alpine, but compiling packages on the device is extremely slow (hours for a single package like stringr) and typically requires cross-compiling on another machine.

Need More Help?

Check the Known Issues page for current limitations and workarounds, or visit the Support page to get in touch.