CinJUG: "How Should Java Developers Build Front-Ends for Web, Mobile, and Desktop Today?"
Venue
The Cincinnati Java User’s Group hosts monthly talks. I was honored to talk about “How Should Java Developers Build Front-Ends for Web, Mobile, and Desktop Today?” on Wednesday, January 20, 2021.
Thank you to Mark Wehby and James Carman for organizing this!
Abstract
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 Facebook’s React Native, Google’s Flutter, Microsoft’s Xamarin, and JavaFX. I will look at these toolkits from the perspective of a Java developer. My talk will suggest which toolkits to use, what their sweet spots are, and when you should avoid them.
In 2019, I developed a mobile app prototype with Flutter and a progressive web application. I then decided to use Flutter for native mobile apps in my current project. I’ll demo these apps and select development tools in the talk. Finally, I will highlight typical issues with Flutter and how to solve them.
Slides
Here are the slides as PDF. They are 7 MB:
You can also get the slides in their original Keynote format. “Keynote” is Apple’s presentation application. Why would you do that? I animated the slides so they are more pleasant to watch. Or maybe you want to peek under the hood to see how I achieved specific effects. These slides include two videos and are 40 MB in size!
Attributions
The slides use the following images:
- One Finger Touch by Felix Westphal from the Noun Project
- Sceptic Emoticon from Wikimedia Commons
- Apple Watch from Wikimedia Commons
- Samsung Galaxy Watch from Wikimedia Commons
- Apple TV from Wikimedia Commons
- Google Chromecast Ultra from Wikimedia Commons
- HTML 5 logo from Pixabay
Demos
My talk mentions a Flutter prototype I built in the summer of 2019. Here it is:
My talks also mentions a Progressive Web App prototype I built at the end of 2019. Here you go:
Getting Started
Flutter & Dart
The Flutter website is a good place to get familiar with Flutter. Flutter uses the Dart programming language. Both Flutter and Dart can use plugins that have a great portal.
Installing Flutter
Here are the instructions, straight from the Flutter website:
Learning Dart
You start with the Dart language tour. Java developers take the “Intro to Dart for Java Developers” next. Then you have options:
- Google has several free tutorials for Dart.
- Code with Andreas has a 10-hours Dart course.
Learning Flutter
Here’s a selection of Flutter tutorials and courses:
- Google has a number of free tutorials for Flutter.
- freeCodeCamp has at least two free Flutter courses:
- a one-hour course for mobile apps, and
- a three-hour course that claims to include desktop & web, too.
- Code with Andreas has two paid courses:
- a 2.5-hours “Flutter REST API Crash Course” (I took it & liked it a lot!), and
- a 21-hours course on Flutter & Google Firebase.
- Finally, academind has a 41-hour Flutter course. I used the 2019 version to learn Flutter and can highly recommend it!
Part 8 of 15
in the Talks
series.
« LJC Community Talk: "How Should Java Developers Build Front-Ends for Web, Mobile & Desktop Today?"
|
CinJUG: "Pick Technologies & Tools Faster by Coding with JHipster" »
| Start: LJC Lightning Talk: Eclipse OpenJ9: Memory Diet for Your JVM Applications
Developer job ads down 32% year over year, Stack Overflow questions dropped 55% since ChatGPT. I now recommend IntelliJ Community Edition because many AI code assistants don't run in Eclipse. Job ads for Quarkus hit an all-time high.
Read my newsletter