Different apps might need to access or provide contacts.
For this purpose, Plasma Mobile uses the KPeople framework,
which provides read and write access to different sources.
The default KPeople backend is kpeople-vcard, which stores
its contacts in
Access to this contacts can be restricted by restricting
access to this directory.
Alternative backends currently include kpeople-sink for accessing remote contacts stored in dav source like Nextcloud.
KPeople provides Qt models for accessing different person related data. PersonsModel lists all available contacts. Actions for each contact can be accessed by providing KPeople.PersonActions with a personUri from the PersonsModel.
PersonsModel and PersonData also provide raw access to the VCard of a contact. VCard is a standard that is supported on many platforms and supports storing all kind of information about a person, including instant messenger contacts, phone number, names etc. It can be processed using a VCardConverter.
To make changes to a contact, its vcard can be edited
by setting the custom property
PersonData to the new raw vcard data.
New vcard data can be created using the Addressee class,
from which the VCardConverter can create a vcard.