R-IDE 1.0.0

Welcome to R-IDE - created and maintained by Sascha Wildgrube.

Overview

R-IDE is the React-based IDE (as in "Integrated Development Environment") - the ultimate Studio alternative.

Features

R-IDE is an integrated development environment - a tool for pro-coders to build and maintain custom applications.

R-IDE shows and navigates to all application files contained in an application. These files are displayed as tabs (like in classic and ServiceNow Studio). When loading the same app again the previously open tabs are restored for each user and application - so picking up work where you left it is super-convenient.

R-IDE is built with pro-coders in mind who prefer to use and see technical names rather than display names.

R-IDE navigates to application files by their related table, by their class type and by their name.

R-IDE helps to navigate to important platform tools, capabilities and documentation needed to create custom applications.

R-IDE is yet a work-in-progress project. Crucial features like source control operations or code search are not yet fully implemented - so as of now R-IDE has to send you to classic Studio to perform these.

But why?

Shortly before the first release of R-IDE the new ServiceNow Studio was released. ServiceNow Studio aims at replacing the classic Studio, App Engine Studio and various other isolated builder tools on the platform. So who needs R-IDE anyway?

There is never a single tool that will meet the demands (and the taste) of everyone. So having multiple options to choose from is a value in itself. Further, competition sometimes boosts quality and motivates everyone to build the even better product.

The work on R-IDE (then called "ServiceNow IDE" - a name now occupied by the official ServiceNow IDE) started back in May 2023. It was clear for years that the classic Studio would not receive the love it needed. R-IDE was the perfect showcase for a React-based user interface. The Reactor app - which was built to demonstrate how React can be used to create stunning user interfaces on the ServiceNow platform - was initially released in September 2022 - but it yet required a relevant use case to show its real potential.

Rebuilding all the capabilities of the classic Studio (and adding even more) is not a project for a single weekend - so it took some time to reach a state in which using R-IDE finally became more efficient for day-to-day development work than classic Studio.

With the release of ServiceNow Studio in late 2024 a decision had to be made. Keep the work in its then unfinished state or add the missing bits for a real MVP that would not have to shy away from being compared to either classic Studio or the new ServiceNow Studio.

It's now up to the ServiceNow community to judge whether R-IDE was a waste of time or a great contribution.

Either way: it was fun to build it :D

Disclaimer

R-IDE is NOT an officially supported ServiceNow product.

R-IDE does NOT come with any kind of warranty. If you use it, you own it!

System Requirements

Installation

  1. Create an account on GitHub - if not done already.
  2. Create a personal access token for your GitHub account.
  3. Add credentials to access GitHub - use "Basic Auth".
  4. Fork the repository https://github.com/saschawildgrube/servicenow-devtools.
  5. Go to Studio and import the DevTools application from source control.
  6. Perform all installation steps for the DevTools application documented here: https://www.wildgrube.com/servicenow-devtools/ 
  7. Fork the repository https://github.com/saschawildgrube/servicenow-reactor.
  8. Go to Studio and import the Reactor application from source control.
  9. Perform all installation steps for the Reactor application documented here: https://www.wildgrube.com/servicenow-reactor/ 
  10. Fork the repository https://github.com/saschawildgrube/servicenow-ride.
  11. Go to Studio and import the R-IDE application from source control.
  12. Execute installation scripts.
    Run the following script as a background script in scope x_snc_ride:
  13. x_snc_devtools.InstallApp("x_snc_ride");

Reference

Configuration Options

Roles

  • x_snc_ride.developer

    The R-IDE Developer has access to the the R-IDE user interface. Access to applications and application files is controlled by the usual platform mechanisms.

React(or) Components

App

RIDEApp

The main R-IDE App.

app_sys_idstringThe Sys ID of the application to load. If no application Sys ID is specified, the R-IDE starts with the applicaton selection.

Controller

RIDEAppOpenController

Allows to select, create or import an app.

RIDEAppSelectController

Allows to select an existing app.

app_sys_idstringSets the application scope to start with. If set the selection contains a "Cancel" button that returns the provided application scope.
callbackSelectAppfunctionThe function to be called when an application has been selected.

RIDEController

The IDE Controller React component. The IDE Controller component manages the overall state of the IDE, allows to select an app and keeps track on which app is displayed.

app_sys_idstringOptional property that identified the application to start with. If the property is not set, the R-IDE UI starts with the application selection screen.

RIDECreateFileController

Allows to select an existing apps or to create a new one.

app_sys_idstringmandatoryThe Sys ID of the application for which a new Application File should be created.
callbackOnFileCreatedfunctionThe function to be called after a new application file has been created.

RIDETreeNavigationController

The RIDETreeNavigation component renders the R-IDE tree navigation based on the given app data object.

appdataobjectmandatoryAn object containing information about the application whose files should be navigated. See Script Include function GetAppData() for more information about its structure.
callbackOnClickfunctionThe function to be called when an item in the tree navigation is clicked.
callbackOnFilterResetfunctionThe function to be called when the string search filter value is reset by the user - e.g. by expanding all items.
filterstringThe string to be used as a filter to hide non-matching items in the tree navigation.

Theme / Fonts / CSS

RIDECSS

The main css definitions for the R-IDE application.

Dependencies

Technical Debts

No technical debt has been documented for this application.

License

Copyright 2024 by Sascha Wildgrube

Licensed under the Apache License, Version 2.0 (the "License")

You may not use R-IDE except in compliance with the License.

You may obtain a copy of the License at: https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Release Notes

1.0.0 - 2024-12-13

First baselined version