Author: Karsten Silz
Jul 5, 2021 4 min read


JFS 2021: "How Should Java Developers Build Front-Ends for Web, Mobile & Desktop Today?"

JJUG CCC 2021 Spring logo

Table Of Contents



I’m happy to give a German talk about “Wie sollten Java-Entwickler heute Front-Ends für Web, Mobile & Desktop bauen?” (“How Should Java Developers Build Front-Ends for Web, Mobile & Desktop Today?") at the Java Forum Stuttgart 2021. It’s the biggest Java conference in the South-West of Germany and an online conference again this year.



Nutzer greifen heute mit PCs und Mobilgeräten auf Applikationen zu. Es gibt zwei offensichtliche Wege, Front-Ends für diese Geräte zu bauen: Web-Applikationen und native Applikationen. Cross-Platform-Lösungen kombinieren Vorteile beider Ansätze. Beispiele sind React Native von Facebook oder Flutter von Google. Für reine Web-Entwicklungen kommen React von Facebook, Angular von Google und Vue.js infrage. Ich betrachte all diese Frameworks vom Standpunkt eines Java-Entwicklers und empfehle Frameworks für drei typische Szenarien: Reine Web-Anwendung, native iOS-/Android-Apps und Umgang mit Desktop.

Im Sommer 2019 entwickelte ich einen mobilen App-Prototyp mit Flutter, im Winter einen Prototyp einer Progressive Web Application. Ich entschied mich danach, Flutter für native mobile Apps in Projekt zu verwenden, das im Mai 2021 in Produktion ging. Aus meiner Projekt-Erfahrung heraus schildere ich Vorzüge von Flutter, aber auch typische Probleme und deren Lösungen.


Users access applications on PCs and mobile devices today. There are two obvious ways to build front-ends for these devices: Web applications and native applications. Cross-platform UI toolkits combine advantages from both approaches. Examples are Google’s Flutter, JavaFX, Facebook’s React Native, and Microsoft’s Xamarin. Important web application frameworks are Google’s Angular, JSF, Facebook’s React, Thymeleaf, Vaadin, and Vue.js. I will look at all these toolkits from the perspective of a Java developer and suggest which one to use in three common scenarios.

In 2019, I developed a mobile app prototype with Flutter and a progressive web application prototype. I then decided to use Flutter for native mobile apps in a project that went live in May 2021. Based on my experiences, I will highlight typical Flutter issues and how to solve them.

Why Should You Listen To Me?

I’m neither affiliated with the projects I’m discussing nor selling books or training courses. I share industry analysis and my project experiences to give you options for your next project. I use 12 criteria for my evaluation. You may use my criteria or pick your own or weigh my criteria differently than I do. But you need to apply your criteria in your own environment and make your own choices.


Flutter Hot Reload

Flutter Hot Reload makes code changes go live in the device/simulator immediately. It’s the main reason why working with Flutter can be such fun! I mentioned it in the talk. Here is a video demonstrating it.

Mobile App Prototype with Flutter

Although it’s a bit old, this is still a decent example of what a native Flutter app can look like. I’m not ready to share the app I’m working on - sorry!

In the summer of 2019, I built native iOS/Android apps with Flutter to validate a business problem. It took me about six weeks, and it was my first Flutter project. I used Google’s cloud service Firebase for login, No-SQL database, and file storage. I also built my own back-end with Java, JHipster, Spring Boot, and Angular.

Progressive Web Application Prototype

At the end of 2019, I built a progressive web app (PWA) to speed up app development. A PWA uses the “Service Worker” in a browser to install on your device and cache data. That was about four weeks, and it was my first PWA. I used Google Workbox for this but developed my own offline storage solution in the browser. I built my back-end with Java, JHipster, Spring Boot, and Angular.

Looking For Project in February 2022!

And now for some shameless self-promotion: I’m looking to join a project in February 2022, in Milton Keynes, London, or remote. I’ll work as a contractor or fixed-term employee but don’t take permanent positions. Interested? Then check out my resume & work samples!

Part 10 of 10 in the Conference Talks series.
IT-Tage 365 2021 June: "Pick Technologies & Tools Faster by Coding with JHipster" » | Start: Java Forum Stuttgart 2019: "When Using the Application Generator Jhipster Is Worth It - and When Not"

This week in "How to Build Java Applications Today":
No surprises in Java 17 LTS, Oracle Java free in production again, Java LTS every 2 years, Eclipse IDE 2021–09, Spring Data 2021.0.5 & 2020.0.13.

Sign up to my newsletter

comments powered by Disqus