Promo/Guidance/Specific KDE Technology/Plasma

From KDE Community Wiki

Why use Plasma when creating a consumer device?

Talking Points

  • Plasma builds on Qt, using Qt's powerful presentation layer tools such as QML, QtWebKit, QScript, etc. while filling the gaps Qt leaves. It isn't Qt or Plasma, but Qt and Plasma for maximum effect.
  • Plasma provides a comprehensive system for creating complete, high-quality device environments with minimal design and development costs and timelines.
  • Plasma allows you to create apps with one deliverable package and deploy it with high fidelity on multiple devices with different physical form factors and feature sets.
  • Plasma lets you work on the parts that are important to you while not having to reinvent every wheel in the process.

Meme

Plasma builds on Qt, adding significant value in terms of being able to create complete device environments at low cost with a high degree of finished quality.

Purpose

Help decision makers (e.g. managers) understand the concrete benefits of using Plasma for smartphones, tablets, netbooks, set-top boxes and other CE devices so that they choose to make it part of their platform strategy.

Elevator Pitch

Plasma provides a compelling balance between the needs for customization and control with the benefits of a pre-built, ready-made system for building device environments with. It is highly component based, with a large pool of ready made components, all of which can be customized, replaced or added to independently to create a compelling product with.

Plasma is multi-device ("one Plasmoid, multiple device targets", a unique feature), multi-platform (ARM, Intel; MeeGo, generic Linux, BSD, Windows..) and multi-language (QtQuick, Javascript, HTML5, Python, Ruby, C++). Compared to today's alternatives, Plasma is more portable, more open and generally faster to develop with and delivers high quality results. It also integrates very well with existing device oriented operating systems such as MeeGo.

Full(er) Presentation

Plasma provides an optimal balance between "customizable" and "ready-made" for device environments. It fills the gaps between the powerful presentation layers in Qt, such as QtQuick, and what is needed to create a complete product. In doing so, Plasma provides a comprehensive system for creating complete, high-quality device environments with minimal design and development costs and timelines.

Specifically, Plasma provides a component model that enables the creation of full applications, called "Plasmoids", as well a means to manage their presentation and delivery.

This component model is designed with a strong separation between data and visualization so that creating Plasmoids is fast and testing is easy. They can be written in QML, HTML5, Javascript, native C++, Python, etc. Deployment of Plasmoids locally, over the network and via custom app stores is also provided for.

Plasmoids are device independent thanks to scalable vector graphics (SVG) and the data/visualization separation. Plasmoids can also offer device-specific interfaces and features which are automatically selected based on the environment. It allows the development of Plasmoids in a single deliverable package that can be deployed with high fidelity on multiple device targets, even though those devices may have different screen sizes, input methods, hardware capabilities, user interface guidelines or feature sets.

Plasma also comes with a large number of stock components that can be selected from. These include data access components for hardware and system information (battery, network, etc.), Plasmoids for a variety of common tasks (power management, networking, Twitter, weather, etc.) and tools such as on-screen keyboards.

Both the data providers and the visualizations can be customized or swapped out independently from any other part of the system. This means you get to pick which components to use, which to customize and which to completely replace or augment with your own. This lets you work on the parts that are important to you while not having to reinvent every wheel in the process.

Due to Plasma's flexibility, not only are Plasmoids supported, but any component that uses Qt can be included. This includes, for instance, Google Gadgets out of the box.

The sum total result is that you have full control over the final product without having to create and support the stack yourself. In combination with operating systems like MeeGo, complete device environments can be brought to market with a minimum of cost and effort without sacrificing quality, branding or flexibility while maintaining compatibility with other devices.

Miscellaneous Notes

Relationship between widgets, gadgets, applets and plasmoids:

All items on the plasma canvas are named "Widgets". Subsets of widgets would be Plasmoids (native plasma widgets), Google Gadgets, Apple Widgets etcetera.

Plasma is a proven development system, being itself under active development and refinement since being introduced publicly in January 2008. At the time of its introduction, Plasma was considered part of the UX platform of the future. Its possibilities have hardly been tapped (or something like that).