Oracle APEX (or Oracle Application Express) is an online low-code application builder that allows users to develop a database-drive application, customize the application's UI, and then give their users access to the application via URL. Oracle APEX includes a suite of pre-built productivity applications and examples, such as a Survey Builder, Bug Tracking, P-Track project management, etc
$0.32
OCPU per hour
React
Score 9.3 out of 10
N/A
React is a JavaScript library for building user interfaces. React enables users to create interactive UIs. Design simple views for each state in an application, and React will update and render just the right components when data changes. React is available free and open source under the MIT license.
It is appropriate for database application development supporting data driven processes, online transaction processing, BI/reports/analytics ... for addressing about any business data processing need I can think of. Oracle Application Express is fantastic for creating beautiful rich user interfaces with support for all major browsers rendering well on a range of devices. It is less appropriate for applications requiring native low level access to device peripherals and is less appropriate for applications that must execute offline without network/internet connection to supporting application and database servers.
React is a JavaScript user interface construction library that works well for:
Developing web apps with dynamic and complicated user interfaces.
creating reusable UI elements that may be used in other applications.
creating single-page applications with dynamic content updates that don't require a page reload.
The Virtual DOM's effective updating mechanism allows it to handle large volumes of data updates.
React, on the other hand, might be less suitable for:
Websites that are simple, stagnant, and have no interaction. Other libraries or simple HTML, CSS, and JavaScript may be a better fit in such circumstances.
Web sockets may be a better choice for applications that need real-time updates, such as chat or gaming apps.
When creating mobile apps, React Native is a better option.
Server side rendering only, as React is designed to run on the client side.
Solid backing by large organization (Facebook) thats committed to keeping the development on the project. In my mind, this is the number one priority for any library because without this: time is wasted on getting up-to speed on a library that you will never use, have a codebase with a library thats hard to maintain because few years down the lane, hiring devs to maintain an unsupported library is very difficult.
As with any libraries, open source community's support is critical for success of any framework because this allows for more pre-built components that could be used right out-of-box => makes Development using React a breeze.
React's Stateful and Stateless components make organizing your code a breeze. These components would also allow for writing clean Unit Tests on the logic.
React's component lifecycle. It offers a variety of lifecycle methods, that allows for handling different scenarios of loading and manipulating data in the UI.
I found React's documentation very well maintained with plenty of examples explaining each feature.
Responsiveness is a very important criteria in selecting a UI and React is very responsive. It does some neat optimizations on re-rendering using virtual DOM and would only re-render parts of the DOM that changed. These optimizations makes React Applications feel really fast.
React Native would allow for building applications that span across web and mobile interfaces (iOS and Android). This makes learning React even more enticing, because using a single library, you could build applications that span across Web, iOS and Android.
create-react-app is an effort by Facebook (creators of React) that makes getting started with React really easy. It does all the heavy lifting of configurations for you and allow you to focus on just development.
Small footprint, minified React + React DOM is under 150Kb, that makes loading UI's with react really fast.
React + Enzyme (backed by Airbnb) + Sinon + Mocha + Chai makes unit testing the UI components fun and improves the overall maintainability of the project.
For complex APEX applications you need to be a pro expert in PL/SQL
Debugging in APEX can be complicated if there is a logical error. Syntax errors will end up shown as ORA errors
Lack of designer interface. Even though you are designing a form you need to do it by means of APEX interface using a series of steps, no UI for design
Oracle specific not applicable for other databases
React's state management can get hairy if you have a deeply nested component and need to pass things up or down the tree very far. This is where libraries like Redux come in, however.
The progressive nature of its development and change cycles can leave information outdated online faster than other frameworks. This can make finding help or documentation on 3rd party sites frustrating.
The learning curve on "thinking in React" can be slightly higher than other more familiar patterns of web development.
Building an app in it can be cumbersome to set up with webpack, but things like Create React App can get you going in a jiffy.
I felt very comfortable using Oracle Application Express from the start. I designed my data model and quickly developed the basic CRUD pages for master tables. Then I designed the main functionality and was able to test and deploy it in a couple of days work. I will probably share the app with other members of the team and continue adding some features in the short term.
Because it's very easy to develop, fast, secure, has a lot of features. It's like a prototyping tool such as figma, but it can be used as a real product. Dynamic action, plugin, rest api, minimize a lot of coding, a lot of templates, PWA, really bring Oracle APEX functionality to be able to solve most common internal users pain points.
There are a few things that may take some getting used to when coming to a modern JS frontend. Tools like Babel and Webpack (or abstractions that hide their details from you) are often a starting point and JSX can be confusing at first. But assuming the developer is already familiar with modern frontend tools, React is a very natural fit and makes creating user interfaces a joy.
Very active and knowledgeable community support includes quick and helpful responses from the Oracle employees on the product development team. I've never had to raise an official support request - everything is dealt with via forums and user groups - or via direct emails. The supposrt commuinty is one of the great things about Apex.
Since it's open-source and very popular, the community support for React and related tools and libraries is excellent. There are a lot of people using the same tools, and so issues tend to get fixed quickly and "recipes" are easy to come by. And since it's backed by Facebook, they have a dedicated engineering team working on the progression of React.
Using it on the cloud is really simple, the entire process of configuring and provisioning an Oracle Database takes only a few minutes (less than 10) and then Oracle APEX is already deployed on the database, so you just have to start using it. I would strongly recommend using APEX on Oracle Cloud Free Tier.
Oracle APEX and Oracle Visual Builder are both low-code development platforms within the Oracle ecosystem, but they serve different purposes. Oracle APEX is more suited for the people who are familiar with SQL, PLSQL. It provides rapid application development features based on data residing in Oracle database. It's a low code platform and best suited for web based applications/extensions based on Oracle DB that may use REST APIs and other web services. It also provides mobile application support. Oracle Visual Builder is best suited for web applications based on Oracle Cloud services. It utilizes javascript based drag-drop UI builder. It's very deeply integrated with Oracle Fusion Cloud platform.
There are other options for building SPAs, and the two most common aside from React are Vue and Angular. React has been the leader of the pack for a while and has been an innovator. Angular is good for companies that want an opinionated framework so that it standardizes practices. However, Angular is known to be more difficult to work with and unnecessarily complex. Vue is seen as taking the best from React and Angular, and it is built for incremental upgrades. Vue has a passionate and growing user base, but it hasn't quite caught React in popularity.
It has increased our development output over Forms greatly. For instance, when starting at my current company, I was able to replace our aging ASP Intranet site within 4 months when our IT manager had budgeted over a year for the task.
We've been able to standardize under one technology, incorporating previously unsupportable disparate systems under one roof.
It's free with an Oracle Database so the only investment was our time, something we now have more of thanks to Application Express.
Since we're still in the conversion cycle, all the data is not in. But React has had a positive impact on Developer productivity and the ability to produce efficient, highly flexible UX. This in turn, enhances our customer experience, which is generally the most important component of our ROI.
Conversion has been difficult since it requires a change of mindset. Most developers have adapted quite well, but the process has been lengthy, and 2 years in, we are still not fully converted. This essentially is a temporary negative impact on ROI.