Create an SDK plugin for the Ubuntu Download Manager
The Ubuntu Download Manager is the centralized service within ubuntu that allows to perform downloads. The Ubuntu SDK does not provide a QML plugin and this should be solved.
Blueprint information
- Status:
- Started
- Approver:
- Manuel de la Peña
- Priority:
- Undefined
- Drafter:
- Manuel de la Peña
- Direction:
- Needs approval
- Assignee:
- Manuel de la Peña
- Definition:
- Approved
- Series goal:
- Accepted for trusty
- Implementation:
- Started
- Milestone target:
- ubuntu-14.04-beta-1
- Started by
- Manuel de la Peña
- Completed by
Related branches
Related bugs
Whiteboard
In the previous cycle the Ubuntu Download Manager was added as the main service to perform long lasting downloads in Ubuntu Touch[1]. At the time there were plans to add an SDK so that app developers could take advantage of the service, unfortunately the deadline could not be met.
At the time a draft SDK was done[2]. In this blueprint we want to ensure that the proposed SDK is valid for app developers and how we could be the usage of the API better.
Points to consider:
* The fact that DBus is used must be hidden from the average app developer. How can we do this. Should we use callbacks that are called or should the SDK behave like a synchronous API.
* What happens with the life-cycle of the application. Should the SDK take care of serializing. What to do when the app is paused or killed?
* What to do with already downloaded files? Do we need a garbage collection strategy, should the app developer take care of that?
* How about testing? Do we add a testing infrastructure to fake downloads? Is this needed?
[1] https:/
[2] https:/
Work Items
Work items:
[mandel] Provide an API draf, taking into account potential lifetime issues and dbus async methods: TODO
[mandel] Provide dbus API for the metada database used by u-d-m: TODO
[mandel] Provide a client c++ library to talk with the dbus API: TODO
[mandel] Package client c++ library and -dev library: TODO
[mandel] Provide a common shared library shared between the u-d-m daemon and the a client c++ lib: TODO
[mandel] Pacakge common shared library and -dev library: TODO
[mandel] Provide a QML plugin to be added to the SDK: TODO
[mandel] Provide testing infrastructure for downloads: TODO
[mandel] Provide apparmor profile for click applications that want to use the u-d-m: TODO
Dependency tree
* Blueprints in grey have been implemented.