Administration App: Desktop App or Web App?

koeks525

Executive Member
Joined
Jul 14, 2012
Messages
6,013
Reaction score
1,199
Location
Canada
Hi Everyone,

So I am currently rebuilding my BTech IT project - adding a lot of improvements and enhancements. This is to ensure I don't get rusty so early. The client app is an Android app. I want to make an admin app, so the system can be managed in a user friendly manner. I am stuck deciding whether I make the admin app a web application or a desktop application. Quick thinking suggests I should go web because there won't be a need to install stuff, and it will work on almost every system. Desktop apps are apparently dead.

So, which route would you guys pick?
 
Web, no hardware devices to interface to (eg : handheld scanner).
 
Web in an app ie a PWA (Progressive Web Application).. use electron to do the wrapping and install.

Eg. Atom, Skype etc
 
Hi Everyone,

So I am currently rebuilding my BTech IT project - adding a lot of improvements and enhancements. This is to ensure I don't get rusty so early. The client app is an Android app. I want to make an admin app, so the system can be managed in a user friendly manner. I am stuck deciding whether I make the admin app a web application or a desktop application. Quick thinking suggests I should go web because there won't be a need to install stuff, and it will work on almost every system. Desktop apps are apparently dead.

So, which route would you guys pick?

Why not both?

https://developers.google.com/web/progressive-web-apps/
 
Do you need third-party hardware support like camera, Wi-Fi, NFC, etc? No? Web app is probably better.
Do note if it does something resource intensive, a native app might be better. Can't really comment properly unless you tell us what the project does.

I like web apps, recently made both a JavaFX app (actually worked quite nicely, a lot better than the Swing alternative) and a Spring one. Spring was quick and easy as I could use building blocks from bootstrap and know that they scale well, JavaFX was slightly more of a mission as I had to use a get screen size and then use a ratio for the size of everything, but it was noticeably slightly faster in terms of using the system on slower machines (both were just an easy login + message sending inc. of images and videos). Could also be how I coded it, though the only difference was the GUI. There was no noticeable difference on my higher end laptop (slow machines were 1st gen i3 laptops with like 4GB of RAM, faster was my i7 4720HQ with 16GB RAM).

If you need to wrap it in Electron, that would be annoying. Dislike Slack because of this.
The web app, you can host the server on one machine and allow multiple clients to connect to the web address, logging in there. No hosting, you control the server, etc.

EDIT: Look at making a PWA: https://www.windowscentral.com/faq-progressive-web-apps-windows-10 W10 supposedly supports this now/soon, not sure though.
https://medium.com/@deepusnath/4-po...essive-web-apps-pwa-to-your-team-8dc66bcf6011 is also interesting.
And another interesting one: https://www.windowscentral.com/faq-progressive-web-apps-windows-10
 
Last edited:
Hi Everyone,

So I am currently rebuilding my BTech IT project - adding a lot of improvements and enhancements. This is to ensure I don't get rusty so early. The client app is an Android app. I want to make an admin app, so the system can be managed in a user friendly manner. I am stuck deciding whether I make the admin app a web application or a desktop application. Quick thinking suggests I should go web because there won't be a need to install stuff, and it will work on almost every system. Desktop apps are apparently dead.

So, which route would you guys pick?
Desktop Apps certainly aren't dead; it really depends on the feature set of the app.
For a simple administration interface to a backend; web certainly will be an easier route.
 
Last edited:
Do you need third-party hardware support like camera, Wi-Fi, NFC, etc? No? Web app is probably better.
Do note if it does something resource intensive, a native app might be better. Can't really comment properly unless you tell us what the project does.

I like web apps, recently made both a JavaFX app (actually worked quite nicely, a lot better than the Swing alternative) and a Spring one. Spring was quick and easy as I could use building blocks from bootstrap and know that they scale well, JavaFX was slightly more of a mission as I had to use a get screen size and then use a ratio for the size of everything, but it was noticeably slightly faster in terms of using the system on slower machines (both were just an easy login + message sending inc. of images and videos). Could also be how I coded it, though the only difference was the GUI. There was no noticeable difference on my higher end laptop (slow machines were 1st gen i3 laptops with like 4GB of RAM, faster was my i7 4720HQ with 16GB RAM).

If you need to wrap it in Electron, that would be annoying. Dislike Slack because of this.
The web app, you can host the server on one machine and allow multiple clients to connect to the web address, logging in there. No hosting, you control the server, etc.

EDIT: Look at making a PWA: https://www.windowscentral.com/faq-progressive-web-apps-windows-10 W10 supposedly supports this now/soon, not sure though.
https://medium.com/@deepusnath/4-po...essive-web-apps-pwa-to-your-team-8dc66bcf6011 is also interesting.
And another interesting one: https://www.windowscentral.com/faq-progressive-web-apps-windows-10
Agreed all this Electron type of rubbish is awful on my Mac... FFS even very simple rubbish UI consumes GB of RAM and performance sucks. I refuse to support any app that is built on a crap foundation. The end of Moore's law didn't promote slowing computing down with garbage apps; the push was for greater concurrency and parallelism.

Btw from the options you listed JavaFX is certainly the better option.
 
Every time somebody says desktop apps are dead, I'm 99% convinced the person behind that keyboard is a sock puppet from Goldman Tech...

I recently built an application for Al'Baraka bank. I cannot go into detail on what it is for, but it will be used "verify" transactions as banking security is somewhat of a specialty.

They specifically wanted a desktop application.
 
Last edited:
Every time somebody says desktop apps are dead, I'm 99% convinced the person behind that keyboard is a sock puppet from Goldman Tech...

I recently built an application for Al'Baraka bank. I cannot go into detail on what it is for, but it will be used "verify" transactions as banking security is somewhat of a specialty.

They specifically wanted a desktop application.
Yep, a bank with a lot of money for development. :p

Everything is a trade off, if you can throw more money at it, you should go for native for security, PWA should be a lot more secure than the normal web apps, e.g. forcing usage of only https and more control of the environment and is a lot cheaper/quicker to develop than native (web app vs PWA: https://hackernoon.com/progressive-web-apps-the-future-of-mobile-web-app-development-f29257b0dea2).

Pick 2:
Cost vs ease of use vs security.
 
Yep, a bank with a lot of money for development. :p

Everything is a trade off, if you can throw more money at it, you should go for native for security, PWA should be a lot more secure than the normal web apps, e.g. forcing usage of only https and more control of the environment and is a lot cheaper/quicker to develop than native (web app vs PWA: https://hackernoon.com/progressive-web-apps-the-future-of-mobile-web-app-development-f29257b0dea2).

Pick 2:
Cost vs ease of use vs security.
Looks like we're going to disagree a bit today.
This is not simply a matter of money, and I think the thought process behind these types of decisions is flawed, but without a tangible problem this discussion will never progress beyond opinions.

My point is that its not a forgone conclusion either way, the situation and feature set should always drive the choices and not the other way around.
 
Looks like we're going to disagree a bit today.
This is not simply a matter of money, and I think the thought process behind these types of decisions is flawed, but without a tangible problem this discussion will never progress beyond opinions.

My point is that its not a forgone conclusion either way, the situation and feature set should always drive the choices and not the other way around.
Not sure where the disagreement in your statement is?
Cost != only money. Also includes time, dev skillset (native would require learning the language/specific API for the platform, cross-platform would be one), etc.
Do you disagree with everything being a trade-off? Would need you to expand on this as everything is definitely a trade-off. If it's in regards to a native app being more expensive/slower to develop, then I really don't get it, since writing/maintaining one code base is always easier/quicker than writing for multiple.

Your requirements set the app that you build, Solarion made a bank app where they have a higher budget, with more emphasis on security and specific performance optimizations, where it's better to maintain a code base for each platform, which makes sense for the requirements. If it's a quick app that should e.g. only show weather and the performance of Flutter/react is good enough cross-platform, then pick that as it's faster (and probably cheaper) to implement.
 
Every time somebody says desktop apps are dead, I'm 99% convinced the person behind that keyboard is a sock puppet from Goldman Tech...

I recently built an application for Al'Baraka bank. I cannot go into detail on what it is for, but it will be used "verify" transactions as banking security is somewhat of a specialty.

They specifically wanted a desktop application.

The environment dictates the software in the end.That desktop app for a bank is not used by the individuals like a banking app would be, so in your instance desktop would have been prefered.

Desktop isnt dead though, 95% of my work involves c# winforms, but then you are developing for a companies internal systems and not an app like system available to the public.
 
Not sure where the disagreement in your statement is?
Cost != only money. Also includes time, dev skillset (native would require learning the language/specific API for the platform, cross-platform would be one), etc.
Do you disagree with everything being a trade-off? Would need you to expand on this as everything is definitely a trade-off. If it's in regards to a native app being more expensive/slower to develop, then I really don't get it, since writing/maintaining one code base is always easier/quicker than writing for multiple.
The Internet is littered with puff pieces prescribing how much more efficient it is to maintain a single code base across platforms. Which for the most part is dishonest; a mobile app has a lot of code driving the UI and that isn't common across platforms; unless of course you're building web page apps; and flutter is no different in that regard. So the question remain exactly what % of the code base is truly reusable across platforms -- in my experience it's really not that much.

Next question to ask is whether the propensity for a crappier UX can really be justified for very little actual code reuse across platforms -- companies like Facebook and others were at least honest to admit they tried the cross platform thing; openly admitted they made a mistake because it had a major impact on UX; hence they reverted to native apps.

Your requirements set the app that you build, Solarion made a bank app where they have a higher budget, with more emphasis on security and specific performance optimizations, where it's better to maintain a code base for each platform, which makes sense for the requirements. If it's a quick app that should e.g. only show weather and the performance of Flutter/react is good enough cross-platform, then pick that as it's faster (and probably cheaper) to implement.
Re Flutter performance; stop buying into the marketing BS; think about how much effort Microsoft, Apple, Oracle, Mozilla, and others actually spend on trying to convince you their languages and API is fast; they don't. So let's ask why is Google's Flutter marketing spiel so focus on it?

How fast is Flutter?
TL;DR
Not as good as native. The Flutter implementation is still twice as CPU-intensive. and uses 3 times the RAM.
The numbers don’t lie. When it comes to frequent UI updates, you can’t have your cake and eat it.

The Five Mistakes Startups Make When Building for Mobile
TL;DR
MYTH #1: Building apps natively per platform is a waste of time and money.
REALITY: If you want a five-star app, build natively. Period.

When companies go the easy route, they don’t realize that all they're doing is creating a crappy experience for everyone everywhere.
 
The Internet is littered with puff pieces prescribing how much more efficient it is to maintain a single code base across platforms. Which for the most part is dishonest; a mobile app has a lot of code driving the UI and that isn't common across platforms; unless of course you're building web page apps; and flutter is no different in that regard. So the question remain exactly what % of the code base is truly reusable across platforms -- in my experience it's really not that much.
The entire GUI is cross-platform shared code as far as I am aware? If the GUI is a tiny portion of your app, go native, again, balance trade-offs.
Next question to ask is whether the propensity for a crappier UX can really be justified for very little actual code reuse across platforms -- companies like Facebook and others were at least honest to admit they tried the cross platform thing; openly admitted they made a mistake because it had a major impact on UX; hence they reverted to native apps.
Tbh, I find it crazy that FB didn't go native to begin with considering how much money is in every second they display to a user, those 0.5s faster response times for millions of people is a huge impact and they have a large and experienced dev team that can easily manage multiple native apps.

Again, not a use-case for cross-platform.
Re Flutter performance; stop buying into the marketing BS; think about how much effort Microsoft, Apple, Oracle, Mozilla, and others actually spend on trying to convince you their languages and API is fast; they don't. So let's ask why is Google's Flutter marketing spiel so focus on it?

How fast is Flutter?
(Microsoft doesn't brag about Xamarin performance? Huh? :p)
The how fast is flutter article is interesting, thanks for linking it.
I'll just link the results for reference:
1535023788289.png
The above is for a stop-watch app that was built in both native and flutter.

So the trade-off here was to add 7% CPU usage, resulting in 15%, and an extra 14MB of memory from 8MB. This with devices averaging between 1 and 3GB of memory, if not more, with an iPhone 6 from 2014. I do wonder what the performance difference would be on their newer models.
Now the question is, was that trade-off worth it? That flutter app can now be released for android as well, looking exactly the same. The numbers are negligble for most users, so they wouldn't care, so it's probably acceptable to ship the flutter version of it with pretty much no negative consequences.

Again, at no point did I say going cross-platform would be better than native. I think that's where we're losing each other.
Publish 2015-02-07 according to the Meta tags, hate when articles don't add those at the beginning of the article.

One interesting quote from that article:
Instead, they rely on HTML5, hybrid applications and cross-platform toolkits, but none of these work well enough to build the high-end mobile experiences users expect, Thawar says. They will eventually, but they don’t right now.
This is an interesting read: https://www.altexsoft.com/blog/mobi...marin-cross-platform-development-in-practice/
 
Top
Sign up to the MyBroadband newsletter
X