← Back to context

Comment by WorldMaker

8 years ago

You can sideload applications in Windows 10 mobile easily enough. Like Android it's been on by default for some time and just a matter of downloading an .appx package file. The ability to sideload doesn't help if there aren't apps to sideload.

I don't think the problem was ever the openness of the platform. An open platform doesn't guarantee developers either (look at decades of people not support Linux ports of their applications as an obvious example).

The problem with sideloading is that it requires a lot of hops. So many hops nobody does this.

Usually "a hop" is represented by some required certificate, a special "container" the app needs to follow, a special API voodoo call you should make to sideload the app. It quickly decays from being a reliable reproducible computer science, and turns into the joke of marketing greed you would never trust.

  • From a user experience standpoint: sideloading is just "install this app". Click a link on a website to an APK for Android or APPX for Windows and watch it install. It doesn't get much easier than that. Fewer hurdles and security concerns than installing some random EXE that may be a wrapper for an MSI and needs Administrator rights to your machine for who knows what reason. The install experience for an APPX link is really nice in Windows these days. It's a great user experience.

    From a developer standpoint: those "hops" have been your job for decades. Complaining about them says more about whether or not you are good at your job than the platform itself is suitable to applications.

    Windows has always encouraged executable signing, and downloading unsigned EXEs from random websites has always been a bad idea. (The SmartScreen warnings for them these days have become appropriately diresome.) Other platforms have signing requirements, too.

    Containers have always existed: ZIP, CAB, MSI, etc. If I was forced to write a container by hand-formed scripts, the APPX format is much easier than MSI or most other installer packages for classic Windows desktop: it's a zip file with a pretty easy to read XML manifest.

    (With the Desktop Bridge, no application developers have an excuse to use an EXE or MSI installer anymore if they are only supporting Windows 10. If you can build an EXE or MSI, you can build an APPX. Build an APPX.)

    There's no special voodoo API calls needed to sideload an app on Windows. Users just double-click an APPX package and magic happens [since the Anniversary Update in November of last year], they get a simple installer dialog. (You can use PowerShell to automate installing APPX packages, but you don't have to. It's an advantage to power users, not voodoo to pass to normal users.)

    As for "reproducible"? APPX installs are way more reproducible than EXE/MSI installs. It's a pretty slick system if you bother to look under the hood. It's also rather well documented in that case that you do.

    I can't assuage any conspiracy theories about marketing greed, but looking at sideloading from a technical perspective, it certainly isn't "a lot of hops" and "nobody does this" is a matter of perspective; I've got several packages in development that currently are outside of the Windows Store.

    • The given problem is not in the UX standpoint, it's a developers' problem.

      As a developer of WinAPI app, I can just click on .EXE file. I can use CreateProcess to run it. I can use command shell to run it, right? And so on. I'm free.

      The UWP is a different story: as a developer, I can do exactly nothing. I cannot run .EXE. I cannot run .APPX. I cannot run from command shell. I cannot distribute .EXE. I cannot distribute .APPX.

      Instead, as a developer of an UWP app, I have to use exclusively Visual Studio in order to run my app. That's all. I cannot launch my just compiled app from command line. I cannot launch automated UI test. I cannot distribute the app. I cannot use XCopy. Bummer, nothing. I'm a monkey in a dystopian walled garden.

      Why would I invest in such a platform? Why should I play bureaucracy games with certificates on my own machine? Why, as a developer, I have no access to "Launch from Layout" API, but Visual Studio has? Doesn't anyone think it's not competitive, to say the least?

      The list goes on and on. But yes, from a MBA or an occasional lurker standpoint the skies are blue. Really, what could go wrong.

      5 replies →