Local Client Specification

From MacroDeckDevWiki

Jump to: navigation, search

This document covers what the local client should do. It should be written in a good language -- under no circumstances will .NET be considered a good language family -- and should do the following things:

  • Synchronize data. This is what it does.
  • Be program-oriented. For example, let's say the local client can synchronize contacts. You'd scan the hard drive for applications that can be used to synchronize contacts. If you find Thunderbird, Outlook Express, and Outlook, the local client will display all three applications, and will show an action something like "Synchronize contacts" under each application.
  • Support plugins, so a widget developer could make a plugin to sync between one application and MacroDeck. For example, an event widget creator might make a plugin that synchronizes Outlook's events with their data.

The local client should also run on MacOS X, Windows, and Linux/Unix. Preferably, a Qt and GTK+ frontend should be provided, but if you can only provide one, support it highly (i.e. make it integrate with GNOME/KDE as expected). If you can support the new UI crap in Vista and work in at least Windows XP and Windows 2000, that'd be good too.

You should be able to perform whatever synchronize actions via XML-RPC/SOAP. Do not under any circumstances modify MacroDeck to support the local client! If you need to add a missing sync feature, feel free to do so to a service. But do not add semi-proprietary features to MacroDeck to support the local client! If you don't know how to use XML-RPC or SOAP outside of .NET, learn. Google is your friend.

Also, currently, Java is an acceptible language, if you can make the UI not suck on every OS it needs to run on. This means that you should make sure it looks like a native app on Windows, MacOS X, and Linux/Unix.

Contents

Preferred UI Design

Image:MacroDeck_-_Local_Client_Sample.png

This is what I mean by "program oriented". Plugins define what they can do for each program they support. However, a plugin might not implement all of the synchronize features for a program. For example, you might have an Outlook Event Sync plugin and an Outlook Calendar Sync plugin, both of which support Outlook, and do different things.

Communication With MacroDeck

Communication with MacroDeck will happen using DataService's SOAP API. Specific synchronization features do not yet exist, however all that is needed should be possible with the APIs currently provided.

Roadmap / Milestones

  1. Documentation about plugin development (100% finished)
  2. sync connector to macrodeck (Webservice, SOAP) (70% finished)
    1. Still missing an account for testing
  3. SWT Frame application in Java, plugin mechanism (100% finished)
  4. deployment mechanism (70% finished)
    1. created Zip-File for Windows
    2. Should be deployed to http://download.macrodeck.com
  5. update mechanism for plugins and client application (100% finished)
    1. Updatesite should be deployed to http://update.macrodeck.com

DONE

27.09.2006
  • Created RCP base application with the following Features
    • usable on Win32 (XP/2000/98/Vista), MacOS(Carbon) and Linux(GTK)
    • Splash screen
    • Menu
    • Toolbar
    • TreeView for Plugin Preferences
    • Description Viewer
    • Help-System
    • About dialog with plugin and configuration details
  • Deployment structure
    • bundled with jre
    • licencing issues
    • Launcher (for windows)
    • Product config
28.09.2006
  • Bug fixed in help (not installed problem)
  • Integrated Update/Install mechanism for plugins
    • resides in help menu
29.09.2006
  • Help content of lca integrated into help plugin
08.10.2006
  • Customize product (pictures, icons, ...)
    • icons
    • create a logo
  • Define extension points for plugin developers
  • Documented how to extend help plugin for plugin developers
  • Welcome Page
    • Whats new?
    • Download Plugins
    • Start setup
    • Go to Workbench
  • Extension-point for UI(marker)
    • Treeview for plugins
      • Categories
    • Baseclass for prefs-view
      • ILCAPluginPrefsView
  • Services WSDL
    • get WSDL files for current service (email)
    • generate Java Classes from WSDL
    • DataService, SyncService, UserInfo
    • User-Loginkonfig
    • API for Services
      • Extension Points for Services?
      • Documentation
  • Update
    • Plugin-Releases Website
      • update description for different platforms
      • Upload possibility to website (Ask Chad for FTP?)
      • root feature -> product
13.10.2006
  • renamed all plugins/projects/packages to com.macrodeck...
  • added original icons
  • added Tray support
    • added Window visible/invisible handling according to tray
  • added implementation to import bookmarks from Firefox
    • preference page for installation location is necessry - possible to find it out automatically
  • added SyncService Interface
  • added authcode generation with SHA-512

TODO

Links

Personal tools