Search code examples
pythonscalaservicecross-platformdaemons

Which Toolkit to develop Mac OSX/Windows Daemon service


I need to develop a daemon service which also has presence in System Tray. The system tray icon allows users to customize/access some options through right click menu. It might open a window as well manage those options in a better way.

The app would mostly be communicating with a RESTful service, posting and downloading files.

Now I know that for any daemon service, it needs to be native. However we don't have the luxury to maintain 3 different dev pipelines, specially since the app is experimental(but might land up in hands of users)

I have experience in Java/Scala, followed by C++/Python/JS. I would prefer java/Scala (existing codebase) but open to frameworks in other languages.

I was thinking of doing a scala based app with swing for windowing, but it is not pretty. Any ideas?


Solution

  • We have an App, same base code, running on Windows, OSX and Linux (with system tray) using these two set of components:

    • The Tanuki Java Service Wrapper to handle the lifecycle of the app. It also allows installing the component as a "native" windows service. Version 3.2.3 is under LGPL if that helps.

    • The Java 6 java.awt.SystemTray which is supported on most platforms. On OSX, we use a modified version of macify to implement OSX specific gimmicks like doc icons