Smereka

extensible personal
freeform database
and personal
information manager




Introduction
Features
Download

Developing plugins
Smereka in your language

Forum
Contact

Upgrade to
Smereka TreeProjects

English | Ukrainian
What are Smereka plugins?

Smereka is designed to be extensible. Currently, it's possible to extend the operation of Smereka in the following ways:
  • By defining new data types. Currently there are 7 data types in Smereka. It is possible to define new data types (for example, a drawing or a file link). After adding a new data type, one can add items of this type to any database.
  • By defining new export and import operations. Currently, only file import-export operations are supported, whereas export and import of Smereka items need not to do anything with files. This can be extended to include, for example, exporting to the web, or automated item generation.
The aforementioned extension can be achieved by authoring and deploying plugins. Plugins are executable Win32 dynamic-link libraries, which means that there's nothing to limit the imagination when designing a plugin.

In the future, Smereka will add interfaces for extending even more aspects of its operation

What are the prerequisites for creating a plugin?

For a programmer who'd like to write a plugin, the following skills are recommended:
  • C++ experience: required. Smereka's interfaces are heavily C++-oriented.
  • wxWidgets experience: recommended but not required. wxWidgets is a cross-platform C++ graphical user interface library, upon which Smereka is built. Anyone who ever wrote a Win32 or MFC application will grasp wxWidgets quickly by looking on examples provided in the Plugin SDK and Smereka source code itself. There are plenty of wxWidgets tutorials as well.
What are the tools for creating a plugin?

Since release 1.0.0, Smereka includes a minimal plugin SDK. The SDK comes in the form of three non-trivial, but simple plugins with well commented source code. They illustrate main concepts and approaches when creating plugins, and it is possible to clone and modify them to fit your needs. Additionally, the "design.sme" document describes the design of Smereka and the architecture of Smereka plugins. It is provided in the source code package of Smereka.

Download the source code of Smereka, including the plugin SDK, from the download page.