First, I should state that allowing an alternative app store alone opens a new security hole. Apple has to place a “hook” someone else can hang onto with much greater access to the system than apps might have. Certainly, Apple can try to secure this “hook”, but allowing an alternative app store allows malware to try to hang on that very large “hook” even when an individual doesn’t install an alternative app store or side load apps. Again, Apple can try to protect it, but with the number of lines of code these systems now have, it’s really impossible to think that wouldn’t open a new security hole. I’ve wondered for some time if we might be forced to move some of these platforms (or core, risky portions) into a language like ADA with SPARK annotations to provide much greater annotations, but that’s enormously expensive and time-consuming. I’ve developed in this world (as well as for Android, Mac, etc.).
I suspect Apple invests an extraordinary amount in developing the APIs, development tools, documentation, developer support, etc. that developers use. This is generally their intellectual property minus open source and outside libraries they link in, but, presumably, they meet license requirements for use of these and often contribute back significantly to open source projects. Maybe alternative app stores should have to develop their own tool chain (IDE, documentation, compilers, debuggers, …). Further, Apple could require Apple App Store hosting for access to many higher level APIs.
I posted previously that I suspect most apps spend the majority of their processing time in Apple APIs rather than app developer code — probably well over 15% or 30% of their time in most cases. Making a rather elaborate app today can often require very little code. I suspect most of the time is spent in Apple’s UI code, networking frameworks, storage frameworks, etc…….. Apple really provides the vast majority of the intellectual property for most apps in the app store to run. Apple could take the approach that apps on outside app stores don’t have access to most of their GUI frameworks, higher-level networking frameworks, etc…
One big danger, though, of going this direction is that Apps would create their own APIs and libraries — maybe sold to others. This would create apps that might approximate Apple’s UI in iOS but be different in subtle (or large) ways creating a different user experience for Apple App Store apps vs. others.
I’m rather certain the U.S. Congress (and the many other governmental bodies) that are considering these options haven’t thought through the various ways Apple might react. If we want great platforms, we want Apple to get money for their very signicant investment in APIs, tools, support, etc. so that we see further development.
It pains me a bit to think that Apple could have avoided the app store altogether and avoided this mess. They could have chosen corporate partners to develop a limited set of apps for the system. That would have limited choice incredibly. By opening up the system and their intellectual property to anyone who wanted to use them (and willing to pay for their IP as they designate), they’ve ended up with the possibility of being unable to monetize their investment. This discourages choice incredibly. For future projects (e.g. AR/VR goggles, cars, etc.) companies are going to have some more encouragement to make their entire system proprietary and only allow the installation of apps they explicitly develop or apps of corporate partners they choose (e.g. automobiles today, handheld GPS units, …). There may still be enough reason to create app stores for these platforms, but the reasons are dwindling — particularly if the return on investment for everything that goes into allowing outside developers is low. Again, this significantly limits consumer choice.