I discovered that an individual developer account ...
# random
s
I discovered that an individual developer account for the Microsoft Store only requires a one-time $19 fee. With this, Microsoft will sign your binaries and provide an update mechanism - far cheaper than purchasing a code-signing certificate yourself. Plus, apps no longer need to be UWP; they can be any EXE, including JVM apps like mine. Even better, users can now install apps from the store without needing to sign in or even create a Microsoft account. Honestly, Microsoft has finally made the Microsoft Store both good and useful, and Iโ€™m genuinely surprised! To test it out, I just made my Thumbnail Fixer available on the store: https://apps.microsoft.com/detail/9n0kk665lrmb ๐ŸŽ‰ @mikehearn The Conveyor docs gave me that hint. Thank you a lot for that! ๐Ÿ™๐Ÿป I think the docs say $19 per year, but itโ€™s actually only one-time. ๐Ÿ™‚
๐Ÿ”ฅ 8
๐Ÿ’ก 5
๐Ÿ‘€ 2
very nice 3
kodee happy 2
d
Cheers, appreciate this knowledge about the MS store's increasing friendliness to Devs - might have otherwise passed me by ๐Ÿ‘. By contrast the iOS and Android stores, for mobile at least, seem to be slowly becoming more restrictive.
๐Ÿ’ฏ 1
๐Ÿ™‚ 2
m
That's great! Unfortunately the MS Store does have some downsides. They have a tendency to pick policy fights for some reason over permissions, that Windows grants automatically if you distribute outside the store.
It's also hard to implement all the update modes that Conveyor supports this way. Still the price can't be beaten.
๐Ÿ‘ 1
s
They have a tendency to pick policy fights for some reason over permissions
I copy & pasted the answers to the questions you wrote down in the docs. Gladly they accepted that. ๐Ÿ™‚
m
Hah! It's good to hear that all the sweat and blood that's gone into the docs and these features really is helping. Usually we only hear about the times it doesn't work ๐Ÿ™‚
๐Ÿ˜„ 2
f
(Maybe offtopic?) Iโ€™m curious about the JVM part of this. Does the user need to have a JVM pre-installed to run your app? Does it come with a JVM? (Seems a waste of disk space if all your apps need JVM and also ship with JVM ๐Ÿค” )
m
JVM is bundled and Windows is capable of deduplicating the files on disk and in RAM if they match, so there's no waste of disk space or memory.
๐Ÿ‘€ 1
At least in theory. In practice everyone likes to ship slightly different spins of the JVM, different versions, etc. The pace of development and fragmentation of vendors is much higher than in the past. Also, not many users will have many JVM apps running simultaneously that are distributed using Store/MSIX technology, which is required for the deduplication to happen.
โ˜๏ธ 1
Nonetheless, MS have thought about this. If the number of JVM using apps goes up, and they are distributed using the latest Windows features (not necessarily the store, just their package management system), and people can agree on what JVM builds to use, then it is efficient. In fact installing new apps won't even redownload the JVM. The files on disk are hard-linked into place automatically
๐Ÿ’ฏ 1
s
Does the user need to have a JVM pre-installed to run your app? Does it come with a JVM?
Relying on a pre-installed JVMโ€”especially since its version may vary - is highly risky, and I strongly advise against it. I learned this the hard way 20 years ago and have bundled the JVM ever since to maintain full control. While the JVM does take up some space, modularization keeps its size manageable - typically around 90 MB. This is why Hydraulic Conveyor also includes a bundled JVM.
Also, everything Mike just said. I doubt weโ€™ll reach a consensus on using a pre-installed JVM, but hope is the last to die.
m
If it became an actual problem we could do something about that. The differences between JVM vendors isn't big, and most devs don't have a strong opinion on which they use, I think. Conveyor could push people in a particular direction with smart defaults. The jimage format is a bigger issue. Everyone has a different set of modules they use, and they all get smushed together into a single file. The JVM could be designed to split modules out into different files but the jlink design is sort of against that. So you'd need to agree on a base set of modules too, or change how the JVM loads classes to support >1 modules file. Overall IMO it's not worth it at this time. What would be more worth it, is a hybrid return to the JRE/WebStart model, where people who don't want to spend time on signing, stores etc can distribute their app via a kind of "app browser" or sandboxed self-service model and where someone else signs and distributes the binaries for you. This would give a similar developer experience to the old WebStart/applet model where you could just upload some JARs and then users have easy access to it.
๐Ÿ‘ 1
Whoever does that service would pick the JVM and module set to include.
s
Absolutely. Apple banned Java from Macs a couple of years ago and so this all went into the wrong direction. For now, bundling a JVM it is. I like the idea of smart defaults in Conveyor. So at least all apps distributed by that could share the same JVM installation. That would apply surely apply to all my future Desktop side-projects, because Hydraulic Conveyor is just great. โค๏ธ
m
๐Ÿ‘
m
A good candidate for a commonly used JDK for that purpose could be the one from JetBrains . I recently tried
Copy code
jbrsdk_jcef-21.0.6-osx-x64-b825.77
and
Copy code
jbrsdk-21.0.6-osx-x64-b825.77
and they both worked out of the box to build a Compose for Desktop application. The reason to pick this distribution is that it is supposed to contain several improvements specifically for the desktop and Jewel requires it anyway.
๐Ÿ‘ 1
๐Ÿ‘€ 2
For those who are interested, WebStart is still alive:
๐Ÿ‘ 1
s
@Stefan Oltmann did you simply upload the .exe installer or go through any msix repackaging? I tried the former and package validation currently fails with
Silent install check
and
Code sign check
which makes it look like I still need to sign it myself
s
@S. I just use Hydraulic Conveyor. Less hassle. ๐Ÿ˜…
s
I see. my app is not open source and the "one hour of wages" subscription doesn't exactly add up for pet projects so I hoped you achieved this with just the compose plugin
s
Why is your pet project not open source?
s
because I can do it myself ๐Ÿ˜Ž
s
How did you it?
s
used the MSIX Packager Tool to create a MSIX from the exe installer
s
Do you have a link / tutorial on this? I guess I need more info to reproduce that. ๐Ÿ˜„
s
this here https://apps.microsoft.com/detail/9N5LW3JBCXKF but I don't have a tutorial. the package details like publisher and display names need to be obtained from your MS partner center, I think the rest is straight forward
might be worth writing up a guide, but I'm currently busy fighting new google play store regulations...
s
Yeah, conveyor has a guide for most of the stuff. Iโ€™m particularly interested in a grade script that can turn a createDistributable result into a MS store compatible MSIX (instead of the MSI we get from jpackage) I understand that you donโ€™t want to make your project open source, but maybe you want to share the part that handles that.
Or is that a manual process using the UI of the MSIX Packaging Tool you mentioned? ๐Ÿ‘€
s
No that's manual. I suppose if you want all that fully automated then something like conveyer is best