Kendo UI is a JavaScript UI toolkit that allows users to build responsive web-based apps integrated into their framework of choice (jQuery, Angular, React, or Vue). The vendor’s value proposition is that Kendo UI offers a large library of popular and configurable components ranging from sophisticated grids and charts to basic buttons, so users don’t have to waste development time building their UI. The vendor also says the large library of customizable themes means users can easily deploy a…
$999
per developer, royalty-free
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.
Kendo UI works well if developing web UI applications which have simple layout designs. - Good A scenario where there are a lot of Kendo widgets on a single UI page, and each has a complex initialization. - Not so good
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.
Kendo Grid for presenting a timeline of research grants as they are being approved. Our users love the ability to export the data to various mime formats.
Kendo Scheduler for presenting the upcoming calendar events in the available conference rooms in a building. This is used together with a 3rd party vendor API for appointment booking.
Kendo Treeview is used to present a hierarchy of topics that our users can navigate through easily.
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.
Kendo UI is always moving forward and staying current with latest development trends. While that is beneficial, that can cause some issues when supporting customers (particularly government) that don't move their IT infrastructure along nearly as fast. A prime example is web font icons. Great and easy to use, but where Kendo UI utilizes web font icons as the sole means of displaying an icon, not all organizations (again, especially government) allow the use of these. There have been times where Kendo UI became unusable and we had to downgrade to a version a few years old. Makes continued payment for licenses sometimes feel wasted as we may not be able to always use the new releases
Kendo UI has a wonderful feedback system and they do indeed listen to the community. However, there do seem to be some instances where there is large support for a new feature/component and it never gets addressed. It is easy to understand that not all ideas are easy or even prudent to implement, but would be nice to see a better follow-up on ideas with a current status
Refreshing Kendo UI grids is simple, yet the standard API method causes the grid to return to the default state. We have many use cases where we would love to update the grid data but need current grid state (such as expanded detail rows, sorts, filters, etc) preserved after the grid is updated so that users do not have to perform grid actions again to return to the desired state.
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.
Since we are using Kendo on a legacy product, there is likely a time when we will no longer support it. We are evaluating Kendo for our future product, in which case we may continue to use Kendo for an extended period of time.
My initial score would be 10, but I am aware of the high price for its implementation. Therefore, I would recommend it only in large projects where a large profit margin can be obtained. But in general, I recommend it. I am currently using it without problems.
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.
Overall, we are satisfied with the support offered by the Progress Kendo UI team. We had raised few helpline incidents in the past and they have been resolved timely by the team. Also, we were satisfied with the level of information and support provided by the team.
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.
I think the main thing is to get into a Kendo mindset. Components that I've used in the past had a much different mindset and I think it got in my way. Sometimes I would use something different if I felt that the Kendo component was being too obstinate. I would go back later and replace that with the Kendo component when I had time to work with it further.
I did not experience the other product that has such an integrated and user-friendly feature. It works more like an everyday query with the UI element in a totally aesthetic and attractive view. With the Kendo library, we don't need to develop every UI component from the beginning. It was one of the faster development of applications.
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.
Positive impact is that it helps development team to focus on business logic rather than developing UI control and that resulted in good productivity savings. productivity saving is significant (like 30% of product development cost).
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.