Seuraavat vaiheet

What to do after finishing your first simple Kirigami application

What we have built

Over the past few tutorials you have built a basic but functional Kirigami application that lets you add, edit, and delete date countdowns. In doing so we have learned about Kirigami and QtQuick components, some of how QML works, basic application layouts, and more. Not bad at all!

You now have a grasp of the basics that make up many of KDE's most popular applications. You might be asking yourself: what now?

Well, don't worry: we have taken the time to provide some pointers as to where you can go from here.

Contributing to KDE projects

One of the best ways to improve your development skills is by putting them into practice. KDE's community is welcoming and always looking for more passionate developers!

We have several pieces of documentation that can help guide you towards becoming a contributor. We recommend you take a look at the developer-specific section of our Development Guide which can help you learn more about the KDE Community's development workflow. We also recommend you take a look at our documentation for KDE's GitLab instance, called Invent, as you will likely need to interact with it during the development process. The KDE Community interacts mainly through Matrix, and we also have a page on the community wiki that will guide you through setting up with your very own account.

With your newfound skills you are in a good position to begin contributing to Kirigami projects. Thankfully, many of KDE's most popular applications and components are built with this framework. Here are a list of projects you are welcome to help with.

Beginner-friendly Kirigami projects

ProjectWhat it isLinks

Calindori
A touch friendly calendar application designed for mobile devices.KDE Apps page
KDE Invent page

Koko
An image viewer designed for desktop and touch devices.Userbase page
KDE Invent page

Kontrast
A color contrast checker that tells you if your color combinations are accessible for people with color vision deficiencies.KDE Apps page
KDE Invent page

Licentia
An app to help you choose the license to go with your project.KDE Apps page
KDE Invent page

Plasma Welcome
A welcome app for the Plasma desktop that lets you create new pages with QML.KDE Invent page

More complex Kirigami projects

ProjectWhat it isLinks

Discover
An application that helps you find and install applications, games, and tools.KDE Apps page
KDE Userbase page
KDE Invent page

Elisa
A music player that strives to be simple and nice to use.Home page
KDE Apps page
KDE Community Wiki page
KDE Invent page

KDE Connect
A multi-platform app that allows your devices to communicate (eg: your phone and your computer).Home page
KDE Community Wiki page
KDE Invent page

Kongress
A companion application for conference attendees.KDE Invent page

NeoChat
A client for Matrix, the decentralized communication protocol for instant messaging.KDE Apps page
KDE Invent page

Miten oppia lisää

Not feeling quite ready yet? That's okay too.

Many of the projects listed above are invaluable learning resources. You can poke through the code and see how experienced developers have created fully-featured applications, and use these techniques yourself.

If you feel you need a more gentle approach, we have also compiled some resources we think you might find useful.

The backend and C++

While we have learned a lot about QML, we haven't really touched upon how to handle backend code all that much. This is, however, an essential facet of KDE application development.

C++/Qt with Kirigami

In the advanced section of this Kirigami documentation we have some pages that can help you get started:

SivuTopic
Understanding CMakeListsLearn all about CMake and how to compile your applications.
Figuring out main.cppGetting to grips with the central C++ file that handles your application's initialisation.
Connect logic to your QML user interfaceAdd advanced functionality to your Kirigami application and connect it to your UI.
About PageAdd an "About Page" to your UI.

Beginner C++ resources

If you are completely new to C++, there are numerous resources available throughout the web. Here are some that may be useful.

ResourceTopic
Wikibooks C++A comprehensive wikibook with C++ lessons and exercises
W3Schools C++A set of C++ tutorials and other resources aimed at beginners
LearnCppTutorials to get to grips with C++
cppreferenceA reference site for C++

We also provide a list of continuously updated resources to learn C++ in this wiki page.

Creating classic KDE applications using QtWidgets

If you'd like to work on KDE applications such as Dolphin, Kontact, or Kate, you will need to learn how to use QtWidgets, which uses a completely different way of developing user interfaces with Qt. More complex KDE applications or applications that follow a traditional design tend to be built with QtWidgets.

QtWidgets is somewhat more daunting to work with than QML (and much more C++ intensive!). Luckily, we have a set of tutorials in the KDE Docs that will help you become more familiar with them.

More QML and QtQuick

The Qt project is extensive, and so are QML and QtQuick. There is a lot of functionality we haven't covered, but there is a lot of documentation we can pull from to find out more.

More Kirigami

This documentation includes a lot more about Kirigami. You can poke through some of the Components pages to find out more about some of the QML components that Kirigami provides for you to use.

We recommend you also take a look at Kirigami Gallery, an application designed by KDE developers to demonstrate Kirigami's tools and capabilities. It provides both interactive examples of Kirigami components as well as links to the source code of these examples so you can see how they were built.

Vain taivas on rajana!

Don't be intimidated by all the material on here! No one starts off being able to create something like Plasma from scratch. But KDE is no multi-billion dollar company with a high barrier for entry (we have no five-round coding interviews!) and as long as you are nice, you will be welcomed.

Onnea matkaan!