Plasma/Active/Apps

From KDE Community Wiki
< Plasma‎ | Active
Revision as of 15:13, 6 April 2011 by Unormal (talk | contribs) (Typo)

Plasma Active Apps

Recommendations for designers and developers

Applications for Plasma Active fall into the following categories:

Plasma Active Apps are applications fully integrated with the Plasma Active UX . Plasma Active apps come with one or more user interfaces, suitable for different target devices. The Plasma framework provides mechanisms for making it easy to comply with high standards by providing tools and mechanisms to build a great Plasma Active App. Naturally, it is up to the designers and developers of individual apps to create an app that complies as far as possible with Plasma Active App recommendations. We handle the following list of recommendations to evaluate whether or not a specific application is suitable and eligible for inclusion in the default distribution of Plasma Active:

Generic Attributes and Characteristics

  • The app is elegant, useful and helpful
  • The app is built with a spectrum of target devices in mind
  • The app uses Plasma Quick to integrate visually, interaction-wise and technically with the rest of the host system
  • The app uses professional artwork, either custom-made or parts from the Oxygen assets
  • The app is context-aware and provides information already known by the system (for example location, time etc)
  • The app works offline, either through caching mechanisms, or is at least not "broken" when the device is offline (especially when started, it should not rely on a net connection being availabe)
  • The app is state persistant: It can be silently shut down, and starts up in the same state, data and user-interface-wise
  • The app responds to device events, such as location, (rotation) position, sensors, etc.
  • The app is translatable and supports localization (preferably automatically through geolocation mechanisms)
  • The app is of high technical quality: it doesn't crash, is functional and well-maintained
  • The app is Free Software, preferably GPLv2+ and/or LGPLv2+.
  • The app separates visualization and data

User Interface Considerations

  • The app comes with a touchscreen-friendly user interface
  • The apps does not use, or at least its functionality does not depend on context menus
  • The app has an interchangeable user interface
  • The application is resolution-adaptable or -independent: It either scales to different screen sizes, or better yet, it comes with specific, runtime-interchangeable user interfaces, suitable for a range of form factors (for example by using different sets of QML Files, Plasma::Package offers a mechanism for that)
  • No use of traditional, widget-based menu-, tool- and statusbars (though a DBus-menu, touch-friendly mechanism is of course possible)
  • The app does not use pop-up windows, the user interface is contained as much as possible into one visual and interactive flow
  • The use of scalable graphics (e.g. SVG) is preferred over bitmap-based graphical elements

Technical Properties

  • The app is battery-friendly: it doesn't load the CPU more than necessary, when inactive it is fully idle and does not wake up the CPU or other subsystems
  • The app is written using QML and JavaScript where technically feasible.
  • The app is extensible using JavaScript where possible

Packaging and Distribution

Plasma Active Apps can be distributed through the following mechanisms:

  • Default installation: The application is part of the default installation and comes with the system out of the box
  • RPM repositories: The app can be installed through the packaging system, i.e. as RPM Package via corresponding repositories
  • OCS / GetHotNewStuff: The application can be downloaded through the GetHotNewStuff system
  • Synchotron: The application is installed via an OCS (Open Collaboration Services), from developers' Synchotron instances
  • Local Package: The app is distributed in the Plasma Package format, and can be installed from the local storage
  • The application has a rotation-friendly user interface -- it can be used in portrait or landscape mode

Target Device Form Factors

The following form factors are in the scope of Plasma Active.

  • Tablet
    • 7"-10"
    • resolution ~1024x600,
    • (multi)touch input + hardware buttons
    • environmental sensors (for example GPS, accelerometers, positioning sensors)
  • Set top box
    • TV as display,
    • typical resolution 1920x1080 (full HD), HD-ready also supported
  • Clamshell / touch-netbook
    • typical resolution 1024x600
    • display size 8" - 12"
    • keyboard and touch input
  • Smartphone (FIXME: specs)
  • in-vehicle infotainment (IVI) (FIXME: specs)
  • in-flight entertainment (FIXME: specs)

The inital focus of Plasma Active is to get a fully functional system onto tablets, and then extend efforts to more devices). Marco Martin's blog explains the mechanism Active Apps use to adapt to different target devices. For more informations see these blog entries


Example Default Apps

Plasma Active features a number of high-quality applications. The following examples give an idea of the app landscape.

Kontact Touch

Kontact Touch is the mobile version of KDE's Kontact suite. It provides a powerful, scalable and touchscreen-friendly email client backed by the Akonadi PIM cache.

Calligra Mobile

Mobile office suite based on KOffice, the Calligra team is working on a user interface suitable for mobile devices.

Marble To Go

Mobile geolocation and navigation app.

Full screen Plasma widgets with a tablet profile

If written correctly, the Plasma Desktop widget, besides adapting to a workspace with a different form factor and input methods, they can also easily switch between being small and simple workspace widgets and full screen applications, adapting their user interface and layout accordingly, thanks to the mechanism called device specific package profiles.

Other applications

In principle, it is possible to use other applications in Plasma Active. Using these applications is not fully supported but we are working on making these applications work as well as possible given the different input device and hardware specs. It depends mostly on the specific application whether this is workable on a given target device, or not. Examples for other applications include:

  • Normal 'desktop' applications, which are usually run on desktop or laptop-type machines
  • Third party Widgets used in Plasma (for example Mac OSX Dashboard widgets, Yahoo widgets, etc.)
  • Other touchscreen applications, that are not using KDE frameworks, and thus do not tightly integrate with other applications