8

I have been following one of the capabilities Microsoft introduced for the Universal Windows Platform (UWP), namely app services. An app can now provide a service in the form of a background task that can be called by other apps to perform some task. It's something like a webservice on device.

Let's say a developer creates an application which provides an app service with the goal to provide that service to other apps, either their own or from other developers. Since there is no way to guarantee that an app will be present on the system at any given time, what can a developer do when they need to use the app service?

Implementing the service functionality for every app defeats the purpose and building apps that will not work when other apps are not installed sounds like a bad decision. So are app services intended only for controlled enterprise environments and not for the general public?

jonrsharpe
  • 1,318
  • 2
  • 12
  • 17
Corcus
  • 127
  • 4
  • Great question! I have heard nothing about this, but now I'm curious myself, and you framed the relevant points perfectly. – Jimmy Hoffa Oct 12 '15 at 12:29
  • Thanks :) I have also e-mailed Andy Wigley about this, if he responds I will post the answer here. – Corcus Oct 12 '15 at 12:33
  • If not required to launch the app at all, it sounds like a great way to have optional added value from having multiple co-operating apps deployed on a system. Examples would be things like a game letting the user select from music the user owns could be enhanced by using app services from popular media streaming services if they have the app deployed, or using a limited interface to a social media app to do social integration in an interactive application. – Lars Viklund Oct 12 '15 at 13:42
  • @LarsViklund If I'm getting it right the use case is: Popular apps have exposed app services, then other apps use them. That's not a bad scenario at all and one I hadn't thought of. It also solves the client problem of "how do I know the other service is there" since popular apps have a good chance of being installed. However, from a provider point of view, what if I want to provide the app service, and I am not one of the popular apps? It still troubles me how this can happen outside of controlled environments. – Corcus Oct 12 '15 at 14:17

1 Answers1

5

In the Linux world, where most users install software using package managers(except those who build it manually, and they are used to follow instructions form READMEs), this problem is solved by making the package format support dependencies. Each package declares what other packages it depends on(and what versions), so package manager make can sure these dependencies are installed.

Windows 10 introduces a package manager, and it supports dependencies(https://msdn.microsoft.com/en-us/library/windows/apps/dn934744.aspx), so if an app requires an app service to run, the app's package will add the app service's package as a dependency, and the package manager will install it. If another app requires the same app service and adds it as a dependency, the package manager will recognize that it is already installed and won't re-install it(unless a newer version is required)

Idan Arye
  • 12,032
  • 31
  • 40
  • 1
    I had not heard about the package manager for windows and reading into it, it sounds very promising. I believe this could be the answer in the future. A more adavnced user able to use powershell should have no problem. Right now though that package manager is not integrated with the store and a simple user downloading an app cannot (and should not) download another app to satisfy the depenency. I fear this is not an easy problem to solve. – Corcus Oct 13 '15 at 08:59