Plasma/Active/Apps: Difference between revisions

From KDE Community Wiki
< Plasma‎ | Active
 
(15 intermediate revisions by 9 users not shown)
Line 4: Line 4:
Applications for Plasma Active fall into the following categories:
Applications for Plasma Active fall into the following categories:


'''Plasma Active Apps''' are applications fully integrated with the Plasma Active UX . Plamsa 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 wether or not a specific application is suitable and eligible for inclusion in the default distribution of Plasma Active:
'''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 ==
== Generic Attributes and Characteristics ==
* The app is elegant, usefulness and helpfulness
* The app is elegant, useful and helpful
* The app is built with a spectrum of target devices in mind
* 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 hist system
* 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 uses professional artwork, either custom-made or parts from the Oxygen assets
* The app is content-aware (FIXME: define)
* 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 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 is state persistant: It can be silently shut down, and starts up in the same state, data and user-interface-wise
Line 23: Line 22:
== User Interface Considerations ==
== User Interface Considerations ==
* The app comes with a touchscreen-friendly user interface
* The app comes with a touchscreen-friendly user interface
* The apps does not use, or at least its functionality does not depend on context menues
* The apps does not use, or at least its functionality does not depend on context menus
* The app has an interchangeable user interface
* The app has an interchangeable user interface
* The application is resolution-adaptable or independant: 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)
* 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 of of course possible)
* 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 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
* The use of scalable graphics (e.g. SVG) is preferred over bitmap-based graphical elements
* For detailed UI guidelines, see the [[../Development/ActiveHIG | Human Interface Guidelines for Plasma Active]].


== Technical Properties ==
== Technical Properties ==
* The app is battery-friendly: It doesn't drain the CPU more than necessary, when inactive it's fully idle and does not wake up the CPU or other subsystems
* 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 written using QML and JavaScript where technically feasible
* The app is extensible using JavaScript where possible
* The app is extensible using JavaScript where possible


Line 62: Line 62:
* in-flight entertainment (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
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 information, check out Marco's blogposts about
[http://www.notmart.org/index.php/Software/One_plasmoid_3_platforms blog] [http://www.notmart.org/index.php/Software/Build_a_device_scalable_user_int entries]
* [http://www.notmart.org/index.php/Software/One_plasmoid_3_platforms platforms]
 
* [http://www.notmart.org/index.php/Software/Build_a_device_scalable_user_int scalable user interface]
* [http://notmart.org/blog/2013/01/active_images_and_devices/ images and devices]


== Example Default Apps ==
== Example Default Apps ==
Plasma Active features a number of high-quality applications. The following examples give an idea of the app landscape.
Plasma Active features a number of high-quality applications. The following examples give an idea of the app landscape.
=== Calligra Active ===
Calligra Active is an advanced document viewer built on the Calligra Engine. Calligra Active can view documents in the OpenDocument Format as well as Microsoft binary formats (doc/xls/ppt) and newer XML based formats (docx/xlsx/pptx). Calligra Active is specifically designed for the Plasma Active environment and well integrated into it.


=== Kontact Touch ===
=== 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.
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 ===
=== Marble To Go ===

Latest revision as of 17:25, 30 August 2013

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
  • For detailed UI guidelines, see the Human Interface Guidelines for Plasma Active.

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 information, check out Marco's blogposts about

Example Default Apps

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

Calligra Active

Calligra Active is an advanced document viewer built on the Calligra Engine. Calligra Active can view documents in the OpenDocument Format as well as Microsoft binary formats (doc/xls/ppt) and newer XML based formats (docx/xlsx/pptx). Calligra Active is specifically designed for the Plasma Active environment and well integrated into it.

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.

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