IPlugin
From KDevelop
Just like in KDevelop3, IPlugin is what all plugins need to inherit. But unlike KDevelop3 IPlugin is not meant to be subclassed via other interfaces. In KDevelop3 several interfaces were called "extension interfaces" (like KDevMakeFrontend, KDevCreateFile and others) and they subclassed KDevPlugin and provided their own .desktop files with servicetypes. This is not necessary anymore in KDevelop4. We have another extension framework in place (see Extension Interfaces and Plugins).
It was necessary to create KDevPluginInfo instance to instantiate any KDevPlugin implementation in KDevelop3. This is also not needed in KDevelop4. It is sufficient to write plugin information to plugin's .desktop file as described in KPluginInfo class documentation.