App Extensions as a monetizing opportunity actually arrived with the Windows 10 Anniversary Update. However, Microsoft has introduced the extension mechanism into the Edge web browser. This allows developers to extend Microsoft Edge to add new capabilities. This is built off the App Extension capability, which allows dev’s to declare its hosts extensions in its manifest. Developers can declare their extensions implements that a named mechanism. With the Edge integration, apps that host extensions can use the AppExtensionCatalog API to name all the installed extensions. Microsoft says App Extensions opens up monetizing abilities not available on other platforms. The company says the following type of developers will be helped by the ability:
Developers who host extensibility to their apps can now earn commission on sales of extensions and other store purchases triggered by the installation of those extensions. App developers who build extensions can now have a store to put their extension in and their extensions get discovered in the context of the app when they are needed. App developers can make it easy to use their app’s service with the Microsoft Affiliate Program.
Creating app extensibility comes with some challenges. For example, in normal circumstances developers need to create their own commerce engine. Also, extensions are connected to the protocol and deployment mechanism defined by the host app.
Leveraging the Universal Windows Platform
With Windows 10, the challenges of app extensibility are largely removed. Apps are capable of exposing services to other apps. Microsoft explains how UWP makes the process easier: “Apps can even expose multiple services, each with a different protocol, depending on the usage model. The communication between apps via App Services is through an async protocol sending value sets of simple values – you can even share files via tokens with the SharedStorageAccessManager class. To use an app’s service, you need to know the name of the app, the name of the service and the protocol that it’s expecting. Once you know that, the calling app can send and receive message to and from the app that is running the app service.”