Feed aggregator

Commonality Sol [Global Themes (Plasma 6)]

KDE Store - Thu, 2024/03/14 - 8:56am
Riffing on Solaris CDE. No login themes for now.

Commonality Sol [Plasma Color Schemes]

KDE Store - Thu, 2024/03/14 - 8:44am
Part of global theme.

Midnight Moon [Wallpapers KDE Plasma]

KDE Store - Thu, 2024/03/14 - 8:31am
Midnight Moon - 2688 × 1536

Streamlining Multi-platform Development and Testing

Planet KDE - Thu, 2024/03/14 - 8:00am

In today’s pervasively digital landscape, building software for a single platform is a 1990s approach. Modern applications, even those designed for specific embedded targets, must be adaptable enough to run seamlessly across various platforms without sacrificing efficiency or reliability.

This is often easier said than done. Here are some key points to consider when developing and testing multi-platform embedded software.

Emulation and virtual machines

When developing software, especially in the initial stages, testing and debugging often don’t happen on the final hardware but on development machines. That, and a frequent lack of target hardware means it’s a good idea to produce a build that can run within a virtual machine or container. Dedicating time and effort in developing custom hardware emulation layers and specialized build images pay off by enabling anyone in the test or development team to run a virtualized version of the final product.

Multi-board variants

Many product lines offer multiple hardware variants, with differing screen sizes and capabilities. Depending on the severity of the differences, these variants might require dedicated builds, potentially extending the time and resources devoted to your project. To avoid proliferating build configurations, consider enabling the software to auto-adapt to its hardware environment, provided it can be done reliably and without too much effort.

Mobile companion apps

Does your embedded product need to interface with a companion mobile app? These apps often handle remote configuration, reporting, and user profiles, enhancing product functionality and user experience. If so, consider using a cross-platform tool kit or framework to build your software. These allow you to share your business logic and UI components between iOS, Android, and your embedded platform. You can choose to reuse UI components in a stripped-down version of your application written specifically for mobile, or write the application once and have it adjust its behavior depending on the screen size and other hardware differences.

Strategies for multi-platform development

The key to successful multi-platform development is striking a balance between efficiency and coverage. Here are some strategies to consider.

Cross-compilation decisions

When dealing with multiple platforms, decide if it’s necessary to cross-compile for every platform with each commit. While this ensures up-to-date software for all variants, it can significantly extend the length of the build cycle. Consider reserving certain platforms for daily or less frequent builds to maintain a balance between speed and thoroughness.

Build system setup

Establish a robust build system with dedicated build computers, well-defined build scripts, and effective notification systems. Assign one person to oversee the build system and infrastructure to ensure its reliability and maintenance.

Embrace continuous integration (CI)

Transitioning from a traditional build approach to a continuous integration (CI) system is beneficial in the long run, especially when you’re managing multiple platforms. However CI demands automated builds, comprehensive unit testing, and automated test scripts. Despite this up-front investment, CI pays off by reducing bugs, enhancing release reliability, and speeding up maintenance changes.

Comprehensive testing

As much as possible, incorporate the “hard” testing bits into your automated testing/CI process – in other words, integration and user interface testing. These tests, while more complex to set up, significantly contribute to the robustness of your software. What works flawlessly in an emulated desktop environment may behave differently on the actual hardware, so ensure your testing procedures also include hardware target testing.

Building multi-platform with quality

Developing and testing software for multiple platforms requires a commitment to maintaining quality. For additional insights into ensuring your software’s versatility, reliability, and efficiency across all target platforms, read our best practices guide on Designing Your First Embedded Device: The Development Environment.

About KDAB

If you like this article and want to read similar material, consider subscribing via our RSS feed.

Subscribe to KDAB TV for similar informative short video content.

KDAB provides market leading software consulting and development services and training in Qt, C++ and 3D/OpenGL. Contact us.

The post Streamlining Multi-platform Development and Testing appeared first on KDAB.

Apple Sonoma v2 SDDM plasma 6 [SDDM Login Themes]

KDE Store - Thu, 2024/03/14 - 5:57am
sonoma v2 theme version for use on plasma 6

OS Catalina [Full Icon Themes]

KDE Store - Thu, 2024/03/14 - 5:41am
[h2]Please up vote or press the plus sign to show your support.[/h2] born as a fork of "Mojave CT" and find the best imitation of macos catalina....

Deepin Icons 2022 [Full Icon Themes]

KDE Store - Thu, 2024/03/14 - 5:32am
Based on Fluent by vinceliuice, and inspired by the next deepin OS icons. [b]merits to the original...

Mkos-Big-Sur [Full Icon Themes]

KDE Store - Thu, 2024/03/14 - 5:31am
Icon set that imitate look to the icons of the new apple operating system version 11, created 100% in inkscape, no blurry backgrounds, instead I...

Windows-Beuty [Full Icon Themes]

KDE Store - Thu, 2024/03/14 - 5:31am
icon set based on windows-eleven and with some modifications to use in windows 12 theme

windows-eleven [Full Icon Themes]

KDE Store - Thu, 2024/03/14 - 5:29am
win 11 based icon set by yeyushengfan258 and Eleven-icon-theme by kuroe-hanako, inspired by original microsoft windows 11 icons, I recommend its...

Apple-Dark Theme [Plasma Themes]

KDE Store - Thu, 2024/03/14 - 3:46am
Plasma theme for miscellaneous global themes of kde, whit similar in appearance to macos.

Twitter [Plasma 5 Applets]

KDE Store - Thu, 2024/03/14 - 3:43am
A simple plasmoid to allow for fast access to google twitter directly from the KDE Panels/Desktop A wrapper around the twitter Website github ...

Brave browser [Plasma 5 Applets]

KDE Store - Thu, 2024/03/14 - 3:43am
brave browser kde widget // privacy Brave Search is a search engine developed by Brave Software, A simple plasmoid to allow for fast access...

Google-search [Plasma 5 Applets]

KDE Store - Thu, 2024/03/14 - 3:42am
google search A simple plasmoid to allow for fast access to google google search directly from the KDE Panels/Desktop A wrapper around the...

deepl [Plasma 5 Applets]

KDE Store - Thu, 2024/03/14 - 3:42am
DeepL Translator is a neural machine translation service that uses artificial neural networks to translate texts. A simple plasmoid to allow for...

Google-Gemini [Plasma 5 Applets]

KDE Store - Thu, 2024/03/14 - 3:42am
Google-Gemini A simple plasmoid to allow for fast access to google gemini directly from the KDE Panels/Desktop A wrapper around the gemini...

perplexity ai [Plasma 5 Applets]

KDE Store - Thu, 2024/03/14 - 3:41am
Perplexity AI is a conversational search engine and intelligent chatbot that uses artificial intelligence, natural language processing, and...

Simple Weather [Plasma 5] [Plasma 5 Weather]

KDE Store - Thu, 2024/03/14 - 3:36am
Needs ([b]sudo apt install plasma-widgets-addons[/b]) if you don't already have the default KDE weather widget installed. [b]Plasma 6 Widget:[/b]...

Simple Weather [Plasma 6] [Plasma 6 Weather]

KDE Store - Thu, 2024/03/14 - 3:35am
Needs ([b]sudo apt install plasma-widgets-addons[/b]) if you don't already have the default KDE weather widget installed. [b]Plasma 5 Widget:[/b]...

Simple Separator for panel plasma 6 [Plasma 6 Applets]

KDE Store - Thu, 2024/03/14 - 2:29am
a simple but working separator for the 6 plasma panel