Release Notes

App Store version history for webRios, most recent first.

v1.2.0 | Coming soon

Today’s App Store version is v1.1.2.

Stop Running Code

  • Tap Stop, or press Cmd+., and R stops where it is, variables intact. An endless loop no longer means quitting the app. See Stopping running code.
  • Stop works wherever code started: the Console, the Editor, Files, History and Help examples. The Editor’s Run button turns into Stop.
  • A banner explains long runs, steps that can’t be interrupted and code cancelled before it ran, and offers Restart R when that is the way out.
  • Settings > R Session > Suggest Stopping After sets what counts as long: 30 seconds, 1 minute (the default), 2 minutes, 5 minutes or Never. A run past that time is no longer written to the error log Send Feedback attaches.
  • Runs never overlap. A command sent while R is busy stays in the input field.

Whole Scripts

  • A script prints every result, as desktop R does, not only the last. Syntax errors point at the line you wrote.
  • In the iPad 4-Pane Workspace, Run sends the script as one piece, so an abline() after a blank line draws on the plot above it.
  • Scripts with Windows (CRLF) line endings run.

R 4.6.0

  • R 4.6.0 (webR 0.6.0), up from R 4.5.1.
  • Packages built for R 4.5 don’t work with it. They are removed on first launch, and the app offers to reinstall them in one tap. See After an update.

Getting Started

  • A Getting started checklist at the top of the Console replaces the first-launch tour: six first steps, ticked off as you do them, each with Show me. Close it any time. Settings > Help & Resources > Getting Started brings it back, or starts it over once all six are done. See Getting Started.
  • Show me scrolls the checklist to its step. For a package it types gapminder into Browse without raising the keyboard; for a file it explains Open With.
  • An empty Console offers commands to run with a tap, and the Editor has three example scripts.
  • When library() can’t find a package, the error offers to install it.

Console

  • The Console keeps up with a burst of output and comes to rest on the last line.
  • Scroll up and it stays put while output arrives. Scroll back to the end and it follows again.

Code Completion

  • Every row is R’s answer for what you have typed. A list left open used to show, and insert, a name from several keys back.
  • The list narrows as you type, including the first letter after $, ::, ( or a comma.
  • A name can continue with digits (write.csv2, log1p). A token that starts with a digit is a number and opens nothing.
  • R’s ... is left out; after write.csv( it used to be the only row.
  • In the Console the list floats over the end of the output, at most four rows tall, instead of pushing the output up.
  • Up, Down, Tab and Escape drive it from a hardware keyboard. See Code Completion.

Network Access from R

  • curl and the packages built on it, httr2 among them, work and reach any server.
  • download.file(), url() and read.csv() work against servers that allow cross-origin requests. See Known Issues.
  • By default, requests go through a proxy inside the app, not through a third-party server.
  • If that proxy can’t start, curl requests are blocked, not rerouted, and the app tells you. Settings > R Session > Network can allow a public proxy as a fallback, or always.
  • If iOS closes the proxy while the app is in the background, it restarts when you come back.
  • Made possible by webR, which tunnels R’s connections through a SOCKS proxy over WebSockets. webRios supplies the on-device half.

Plots

  • Plots can also appear in the Console (Settings > Appearance > New Plots).
  • htmlwidgets such as plotly, leaflet and DT now render, under Interactive Plots.
  • Widgets get the system font on a white page with a margin, unless they fill the page as plotly and leaflet do. DT tables are no longer Times against the screen edge, or black on black in dark mode.
  • Pinned plots survive a relaunch. Pin up to 20; pins no longer crowd out new plots.
  • Each plot is named after the code that drew it, for VoiceOver and as the full-size view’s title.
  • Clear All asks first and keeps pinned plots. Restarting R or a low-memory warning no longer removes plots. Share sends the full-size image.
  • The Plots badge counts every plot and widget a run makes.
  • A full-size plot sits as a card on the app’s background, matted in the Plot Background (White by default). In dark mode the mat no longer covers the title and status bar. The Compare view, Console plots and iPad plot windows use the same card.

Editor

  • Typing, scrolling and folding stay fast however long the script. Line numbers appear as soon as a script opens.
  • Tabs, split view, the output panel and Undo survive switching screens and restarting R. Tabs are saved a moment after each change.
  • Undo covers Replace, Toggle Comment, Duplicate Line, snippets, completions and Rename Variable. Find uses the system Find bar.
  • Save checks whether the file changed elsewhere and offers Overwrite or Keep Both. Files keep their text encoding.
  • Cmd+Return with nothing selected runs the whole statement on the cursor’s line, then moves to the next, so you can step through a script. See Running one statement at a time.
  • Editor and console fonts go up to 30 pt. The example scripts no longer wrap on an iPhone.
  • On iPad, each window has its own tabs.
  • Auto-indent on Return, with brace expansion. Closing a tab with unsaved changes asks first. Typing on a line with emoji no longer crashes.

Files and Projects

  • Open R scripts, R Markdown, Quarto, .rds/.RData and CSV/TSV files from Files, Mail and other apps.
  • PDFs open in Quick Look; .rds and .RData files load into R. The long-press menu adds Open in Editor, Import into R, Load into R and Share.
  • Run Script echoes the script in the Console, can be stopped, and reports its result.
  • Renaming, moving or deleting a file updates open tabs, Recent Files, R’s working directory and Spotlight.
  • Folders created under Projects become projects. With Save Workspace on, switching projects swaps R’s variables.
  • Opening a folder no longer freezes or crashes the app, as it could on any device in v1.1.2. New R Script no longer replaces an existing file, and the file browser stays inside Documents.

Data

  • The data frame viewer opens large data frames quickly, shows row names and handles tibbles. Filtering, sorting and search run in R.
  • Export as CSV saves to the current project and opens the share sheet; Export Current View saves only the rows shown.
  • Compare Data Frames is back in the Environment menu.
  • CSV import detects the delimiter and decimal mark and reads other encodings. Import to R in the CSV preview now loads the file.
  • The import preview counts lines correctly, CRLF files included, and a count of one reads “1 row” or “1 file”, not “file(s)”.

Help

  • Help pages have Back, show every section (Value included) and render tables.
  • See Also links reach installed packages that aren’t loaded, and ?pkg::topic in the Console opens that page.

Packages

  • Browse says what each package does, searches those descriptions, and works offline once loaded.
  • Saved packages restore several times faster at launch. remove.packages() also removes the saved copy.
  • Packages are saved in dependency order and checked on restore, so a save cut short never brings back a package without what it needs. Installing a package again adds any missing dependency. See Saving packages for offline use.
  • Package Details counts every package an install brings, not only direct dependencies. The Console names each package as it is saved.
  • A failed install no longer reports “Installation complete!”, and a finished one shows a checkmark.

iPad

  • File, Code, Run and View menus in the menu bar, with Restart R on Ctrl+Cmd+0 and each section on Cmd+1 to Cmd+8. Go to Line is now Cmd+L. See Keyboard Shortcuts.
  • The 4-Pane Workspace adds Projects and History tabs and a Layout button, and its dividers follow your finger.
  • The file browser can open a file in its own window.

iPhone

  • A new install starts in the Tab Bar layout, whose More tab holds Files, Packages, Projects, History, Help and Settings.
  • In the Sidebar layout, the page you just went Back from opens again on one tap. The same holds in an iPad window narrowed to one column.

iCloud Drive

  • Syncing scripts to iCloud Drive works. Earlier versions offered it and did nothing.
  • Scripts appear in the Files app under iCloud Drive > webRios. See iCloud Sync.

Themes

  • Export custom themes as .json. Import takes VS Code themes with comments, shorthand colors and pasted text.
  • A 1.1.2 editor theme carries over: a dark one sets the app to Dark, a light one to Light.
  • In the theme editor, a color set under Advanced Colors keeps its value when you change a key color or Dark Theme, and is saved and exported with the theme. Colors you haven’t set, such as the gutter and current-line highlight, follow the Background you pick, and line numbers keep their contrast.
  • Menu pickers take the theme’s accent color as soon as the theme, light or dark mode, or Increase Contrast changes.
  • Sharing a custom theme shows a picture of it in the share sheet.

Accessibility

  • Every control has a spoken name. Icon-only buttons are named for what they do, not for their symbol.
  • VoiceOver announces run results, errors, new plots and finished installs. History, Search in Files and Code Outline rows open with VoiceOver, Voice Control and Full Keyboard Access.
  • Rows read in one pass. Console output says its kind, so an error reads “Error: …” rather than relying on color.
  • Long-press actions are in VoiceOver’s Actions rotor.
  • Increase Contrast raises any theme to WCAG AA, custom and imported ones included.
  • Reduce Motion swaps sliding and springing for cross-fades.
  • Differentiate Without Color marks console errors and warnings with a symbol.
  • At the accessibility text sizes, the editor’s output pane and tab strip no longer clip or overlap, data grids and the import wizard grow, titles no longer break mid-word, and package names shrink before they break.
  • Default Light now meets AA. Its old colors measured as low as 2.2:1 on white.

See the Accessibility guide.

Startup

  • A slow web-cache clear at launch no longer strands the app on the loading screen. It moves on after three seconds.

Security

  • GitHub tokens for gist export are kept in the Keychain. Existing tokens move there at the next launch.

Requirements

  • webRios now requires iOS 26 or later.

v1.1.2 | March 2, 2026

Startup Reliability

  • Fixed a bug that could cause repeated startup failures by leaking server connections on each retry
  • Initialization errors are now detected and reported immediately instead of silently timing out after two minutes

Memory Pressure Handling

  • The app now detects when iOS reclaims memory and shows a clear message with the option to restart R
  • Plot caches are automatically trimmed when memory is low

Background Save Protection

  • Workspace saves when switching apps are now protected from interruption

Other Improvements

  • Packages tab added to the iPhone tab bar
  • History tab and workspace settings restored

v1.1.1 | February 16, 2026

Bug Fixes

  • Fixed a threading crash that could occur during startup on some devices
  • Fixed function signature display showing a stray “NULL” in Variable Details

Improved Startup Experience

  • Phased startup with a determinate progress bar showing real-time status
  • Redesigned error screen when R fails to start, with clearer messaging and a direct “Report Issue” button
  • Startup diagnostic log for troubleshooting

Feedback and Diagnostics

  • Overhauled feedback system with email support and log attachments
  • Separate startup log and error log viewers with copy-to-clipboard
  • First-launch reset option in debug tools

v1.1.0 | February 11, 2026

Code Completion and Signature Help

  • Intelligent autocomplete powered by R’s built-in completion engine
  • Function argument suggestions appear when you type ( or a comma
  • Package completions after :: and variable completions after $
  • Function signature tooltips show parameter hints while typing
  • Popups auto-dismiss and follow the cursor

Customizable Keyboard Shortcuts

  • Cmd+Enter to run a line, Cmd+Shift+Enter to run all, Option+Hyphen to insert the assignment arrow, and Cmd+Shift+M to insert the pipe operator
  • Fully customizable in Settings
  • iPad shortcut discoverability overlay when holding Cmd

Editor Improvements

  • Unified context-aware Run button that runs a selection, the current line, or the entire script
  • Line numbers and current line highlight toggled in Settings
  • Per-tab undo and redo with toolbar buttons
  • Code folding with inline previews

Plot Management

  • Full-screen export flow with system share sheet
  • Pin favorite plots to prevent cleanup

Data Tools

  • Redesigned Data Import Wizard with full read.csv() options
  • Column detail sheets with filtering, summary statistics, and charts

Workspace and Projects

  • Per-project R workspace isolation
  • Session persistence and working directory tracking

iPad Enhancements

  • Improved four-pane layout with better sizing
  • Inline help documentation in the Help tab
  • Compact Environment panel

Reliability and Performance

  • Restart R Session with unresponsive detection and recovery
  • Hardened JavaScript interactions with improved error handling and version validation
  • Fixed large package install truncation
  • Security and stability improvements

v1.0.0 | January 23, 2026

Initial release of webRios! Run R directly on your iPhone or iPad.

  • Full R console with syntax highlighting
  • Code editor with R-specific keyboard
  • Plot generation and export
  • Package management (install from r-wasm.org)
  • Variable environment inspector
  • File management with Files app integration
  • Works completely offline (no server required)