A common question I get is “What is the best UI to use with a Spring Boot?”
UIs, also known as “User Interfaces” come in many different flavors.
The UI application might be a desktop application writing in Java Swing, FX, or some other technology.
The UI application could also be a mobile application written for iOS or Android.
Is Angular JS the best UI for Spring Boot?
Is React the best UI for Spring Boot?
What about Vue.JS, is that better for Spring Boot?
Let me explain why it really does not matter.
Client Server Revisited
Back in the 1990s, the big buzz word was ‘client server’.
Companies wanted to use PCs to provide rich user experiences, and offload the computational workload from the server.
Somethings don’t change much.
While, Spring Boot is a server side technology. Spring Boot executes in the context of a server.
The client and the server are two completely different computer systems, separated by a communications API.
It’s important to remember these are two completely different computer systems. Something that can get blurred when we are developing locally.
Thus, communication to Spring Boot is done via HTTP and JSON payloads. The communication layer completely abstracts the UI technology from the server side technology.
The communication layer makes the client technology and server technology agnostic to each other. Meaning if they support HTTP and JSON, they can communicate.
A Spring Boot application will support AngularJS, ReactJS, and Vue.JS equally well.
Even if the client is a native mobile application using iOS or Android, if the communication to the server is performed via RESTful interfaces, there is no difference.
The inverse is equally true.
What is the best server side technology to use with Angular JS or React?
Is .NET or Ruby better than Spring Boot?
Again, does not matter.
An Angular JS application will not function differently using a Ruby server vs a Spring Boot Server.
Things to Consider
If you need to determine what is the best UI to use with Spring Boot, focus on evaluating the UI technology options themselves.
Allow the merits of the UI frameworks you are considering to drive your decision.
Focus on which option supports the needs of your project and your team the best?
The client side technology and server side technology are independent of each other.