« See all posts

How Easy Could an Application Development Be?

Posted by Alexander Dymo on April 21, 2005

Today I was working on a specific part of pretty large project. The goal of that part is to help the user to organize information which he is looking for. Workflow for that user was designed in a way to prevent him from searching randomly in web browsers or local (network) disks. Each time the information (web or local resource) is found it should be categorized automatically (depending on a current search "context").

An application I develop is ought to force that kind of workflow. Obviously I need to have a "restricted" web browser and file manager. I'm quite confident that it's easy to do with KDE libraries. It's just a matter of embedding corresponding parts. But at the same time I though that it's too boring to develop main window for the application and other stuff which is related to browsing (like tabs).

I had been thinking how to make the application prototype faster for less than a minute when a sudden and cool idea came to my mind. KDevelop Platform! What else can make me feel happy and let me finish my prototype in few minutes?

Indeed, I have been working on transformation of KDevelop IDE to the Platform to build new applications for quite some time. I put some efforts to make sure that two current platform applications (IDE and Assistant) use the same plugins and architecture. And it seems that the time has come for me to benefit from that effort.

I'll make a little overview for those who haven't heard of KDevelop Platform so far. The clean platform application (built by just copy-n-paste method from docs) is a main window (shell) with two major capabilities. It is able to

  1. load and embed parts by mime type (or manually)
  2. load and embed KDevelop plugins
  3. define which plugins are loaded using so-called "profile"

Ok, back to the application. Copy-n-paste method worked and after several minutes spent on creating makefiles I had my application running. I defined "GlobalFileManagement" and "UISwitching" in my profile and got the file manager and UI settings page for free by less than a second.

Then I wrote KDevelop plugin (using KDevelop application wizard, of course ;)) that added a URL requester combo on the toolbar to let the user open web pages in embedded khtml part. That took another couple of minutes (mostly spent on compilation and makefile.am hacking).

As a result, I had a feature-rich application protorype in less than an hour thanks to the KDevelop Platform. Despite the platform is being positioned as a way to build IDE-like applications, my application is not an IDE, it's like a web browser and file manager and (thanks again to the platform architecture) a universal file viewer. I wrote only 35 lines of code to do that. Another 678 lines was either generated by kdevelop application wizard or copied and pasted from the docs.

What can I say after that? KDevelop Platform is cool :) but there are few things to work on.

First, it takes too much time to set up and compile a platform application. We need to provide platform application template for KDevelop application wizard.

Second, it would be cool to do things described above in one of scripting languages to avoid makefile hacking and compilation. I'm confident that platform application in Ruby could have been written in ~10 minutes. Heh, I need to work on Ruby bindings probably.

Next: KDevelop Conference. Day -2, Day -1
Previous: What's the Buzz About Virtual Machines?