Fork me on GitHub

Hey Java folks!


Quick clarification question


How different is using java on the frontend for desktop or mobile applications the same, or different as using it for the backend for web applications?


@brieana.noel I saw that phronomorphic/Adrian responded in #clojure but since no one else has, I figured I'd expand on his answer a bit. For desktop apps, you're going to end up using Swing or JavaFX for the UI (those are the two biggest UI libraries I know about) and they both definitely take a bit of effort to learn, but overall the experience building backend apps and desktop apps in Java is going to be about the same. For desktop apps, you'll want to look at some packaging tools that take "uberjar" versions of Java apps and turn them into turnkey installers or native apps for distribution (you can just double-click a JAR to run a desktop app if you've already got Java installed -- so it really depends on who your target audience is for this app: consumers or developers?).


For mobile applications, things are bit more restricted. You'd be targeting Android only I believe so there's a UI library/framework for that and the toolchain has a number of additional steps over regular backend Java development (the bytecode needs to be converted to run on Android and there are specialized tools for emulation, debugging, packaging and so on -- and if you want your app in the Play Store then you have a bunch of additional hoops to jump through).