Hi,

I have been developing a project called KTutorial for quite some time
and I feel that it is now in a mature enough state to be publicized.
So here I go :)

KTutorial is a library (and a graphical editor) for interactive
tutorials in KDE applications. The tutorials are embedded in the
applications themselves, and react to the actions of the user. For
example, if the user clicks on a button, the tutorial advances and
shows new information to the user.

Now some details about the project will follow. If you prefer to just
see the project in action, after the details you will find links to
some videos ;)

The tutorials can be written in C++ or in a script language supported
by Kross (Javascript is recommended, as its backend is installed by
default; Python or Ruby, on the other hand, may not be installed in
the system). Instead of programming them, the tutorials can be made
using KTutorial editor, which is the graphical editor of the project
(in the end, the editor just exports the tutorials to Javascript to be
used by the library).

The editor provides an introspection system to ease the making of
tutorials. This system, which works using D-Bus, can be used to know,
for example, the signals that an object in the target application (the
application the tutorial is being made for) can emit. Unfortunately,
right now the editor has a very technical orientation; I would like to
make it more usable by non-technical users in the next release.

One of the key points of KTutorial is that, besides calling the setup
method of KTutorial, you do not have to modify the code of the
application. You can, though, and it will make certain tutorials
easier to write or more interactive (specially scripted tutorials),
but you do not have to. KTutorial "observes" what happens in the
application and reacts to it, but it does not need explicit
notifications from the application. To achieve this, KTutorial makes
extensive use of Qt Meta-Object system (signals and properties).

Finally, although KTutorial provides a default interface for KDE
applications, you can customize the interface instead of using the
default one (which is a dialog to show the tutorials, and a floating
widget to show the tutorials themselves).

Having said all this, there is a problem you must be aware of.
Although it can be used by applications at this time, it is still in
development, and it does not have a stable API (so no stable ABI
either) yet. Anyway, the FindKTutorial CMake module has version
support, so it can be looked for the exact version instead of
accepting any version equal to or higher than X.Y.Z.

Also note that, even being a library, it is licensed under the GPLv3+
(not the LGPL), so it can be used only by free (as in freedom)
applications.

OK, now it is time to show the project in action. To do this, I have
recorded three videos showing tutorials made with KTutorial for
showFoto, Kdenlive and Gwenview:
http://ktutorial.sourceforge.net/files/showfoto-levelsAdjust.ogv
(based on http://userbase.kde.org/Showfoto/Levels_Adjust)
http://ktutorial.sourceforge.net/files/kdenlive-simpleSlideTransitionBetweenTwoClips.ogv
http://ktutorial.sourceforge.net/files/gwenview-fullScreenInterface.ogv

An explanation of the changes made in each application, the tutorial
sources made with KTutorial editor, and the patch to add support for
KTutorial in each application can be seen in these blog posts:
http://ktutorial.wordpress.com/2012/08/24/example-of-ktutorial-for-the-real-world-showfoto/
http://ktutorial.wordpress.com/2012/08/28/example-of-ktutorial-for-the-real-world-kdenlive/
http://ktutorial.wordpress.com/2012/08/30/example-of-ktutorial-for-the-real-world-gwenview/

If after all this you have any interest in KTutorial, please see the
project web page for downloads and documentation:
http://ktutorial.sourceforge.net/

Also, if you think that I should publicize the project somewhere else
(besides this mailing list, I mean) I would like to know about it.
Thanks!

And thanks for reading too :)

>> Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<

Reply via email to