Skip to content

Structual tips

MarcusW edited this page Feb 27, 2016 · 1 revision

To ease contributions and make it possible to implement different user interfaces without duplicating any backend code it's recommended to split up the drop application into two parts: Backend and Frontend.

For example the vala-implementation for linux is built out of a daemon called "dropd" that handles incoming and outgoing transmissions using a server and clients. The gui applications (like "drop-dialog") can connect to that daemon using DBus and start new transmissions or list all discovered devices. When an incoming or outgoing transmission has been started a new DBus interface is created that handles the whole transmission. This one needs to be controlled by the user interface.

This reference implementation has the big advantage that we can now write different gui-applications that integrate perfectly into the major different desktop enviroments of the linux world without needing much code. A new gui-application can also use a new library called "libdrop-1.0" that does all the DBus stuff, so you only need to write the user interface and call some methods of the library.