Best Cross-Platform App Framework to use to support plugin.
It just occurred to me that a better way to have done DevAdjust (relative develop adjustments and presets), which suffers from lack of non-modal accessibility, would have been to create an application which presents the UI and talks to a background task in a plugin (via file IO), to apply the develop settings. In fact, many plugins could benefit from a distributed design, off-loading to real apps the things that they are best at e.g. non-modal UI, and interfacing to plugins to do the dirty work, e.g. writing the catalog.
Anyway, I was just wondering if anyone has any idea what would be the best platform for such an app these days. Flash/Flex/AIR?, Java?, dotNet?, Silverlight?, wxWidgets?, Qt?, Eclipse RCP?, ZooLib?, ...
I'm starting to favor wxWidgets with a wxLua binding for a plugin's app counterpart, here's an example app:
frame = wx.wxFrame(wx.NULL, wx.wxID_ANY, "wxLua Minimal Demo",
wx.wxDefaultPosition, wx.wxSize(450, 450),
wx.wxDEFAULT_FRAME_STYLE)
-- create a simple file menu
local fileMenu = wx.wxMenu()
fileMenu:Append(wx.wxID_EXIT, "E&xit", "Quit the program")
-- create a simple help menu
local helpMenu = wx.wxMenu()
helpMenu:Append(wx.wxID_ABOUT, "&About",
"About the wxLua Minimal Application")
-- create a menu bar and append the file and help menus
local menuBar = wx.wxMenuBar()
menuBar:Append(fileMenu, "&File")
menuBar:Append(helpMenu, "&Help")
-- attach the menu bar into the frame
frame:SetMenuBar(menuBar)
-- create a simple status bar
frame:CreateStatusBar(1)
frame:SetStatusText("Welcome to wxLua.")
-- connect the selection event of the exit menu item to an
-- event handler that closes the window
frame:Connect(wx.wxID_EXIT, wx.wxEVT_COMMAND_MENU_SELECTED,
function (event) frame:Close(true) end )
-- connect the selection event of the about menu item
frame:Connect(wx.wxID_ABOUT, wx.wxEVT_COMMAND_MENU_SELECTED,
function (event)
wx.wxMessageBox('This is the "About" dialog of the Minimal wxLua sample.',
"About wxLua",
wx.wxOK + wx.wxICON_INFORMATION,
frame)
end )
-- finally, show the frame window
frame:Show(true)
-------------------------
PS - I downloaded wxLua and had this little app up and running in seconds. Its kinda bare-bones/simple&easy, but seems to work well, and there's gotta be some advantages in using the same language for the app as the plugin. On the other hand, Python has more code libraries readily available to support app dev. Anyway, it seems to make more sense to me these days to use a scripting language with cross-platform native UI support for desktop app dev than a traditional programming language like C++/C# or Java, and it seems to make more sense to use a true OS app rather than Flex or Silverlight which are more oriented toward graphics and internet deployment. Not sure what ZooLib would do, and Qt looks nice but contrary to what I read in one place, its expensive.
Any thoughts?
Thanks,
Rob
