Qt QML Desktop-Anwendung – Fallstudie Games Launcher

Das Qt Framework mit seiner großen Vielfalt an Modulen kann für die Umsetzung aller Arten von Projekten verwendet werden, von Bedienfeldern für Militärroboter über medizinische Anwendungen bis hin zu Launchern und Updateprogrammen für Videospiele. In letzterem Fall hatten wir das Vergnügen, eine Anwendung zu implementieren. Wenn Sie sich fragen, wie diese Desktop-Anwendung entstanden ist, können Sie es in diesem Artikel nachlesen. Vergessen Sie nicht, sich in unserem Portfolio über unsere anderen Projekte zu informieren.

Technologies used

Zweck und Anforderungen 

Eonic Games Launcher ist ein Softwareprojekt zur Erstellung einer Windows-Anwendung zur Verwaltung der von Eonic Games Company veröffentlichten Spiele. Das Hauptziel war es, den Spielern das Herunterladen, Aktualisieren und Verwalten ihrer Spiele zu erleichtern. All dies kann mit einer ansprechenden und benutzerfreundlichen Anwendung erreicht werden. Darüber hinaus sollte der Launcher nicht nur eine Plattform für Spiele sein, sondern auch für alle Arten von Inhalten, die mit Eonic Games und seinen Aktivitäten zu tun haben – einschließlich Nachrichten, Videos und Blog-Einträgen, um die Nutzer auf dem Laufenden zu halten.

Solche Desktop-Anwendungen funktionieren jedoch nicht von selbst. Hinter den Kulissen der Anwendungsentwicklung muss es einen Backend-Service geben. Im Fall von Eonic Games Launcher besteht das Backend aus zwei Servern: Einem Dienst, der auf bidirektionaler TCP-Kommunikation basiert, und einem HTTP-basierten Dienst. Diese Trennung war notwendig, da verschiedene Funktionen und Änderungen, die für zukünftige Versionen geplant waren, diesen Ansatz erforderten. Dies machte die Anwendung zukunftssicher, was in der Anwendungsentwicklung sehr wichtig ist.

Unsere Aufgabe bestand also darin, eine Qt Quick GUI-Anwendung zusammen mit der Programmlogik zur Verarbeitung aller Daten zu entwickeln. Da sich die Spieleindustrie hauptsächlich auf die Microsoft Windows Plattform konzentriert, war dieses Betriebssystem das Ziel für die Veröffentlichung des Programms.

Qt-Technologie ist genial 

Das Qt Framework ist eine ausgezeichnete Wahl für die Entwicklung von Anwendungen, insbesondere für diese. Es ist eine gute Wahl, weil es nicht nur bei der GUI-Entwicklung hilft, sondern auch verschiedene Geschäftslogikfunktionen wie Datenbanken, Netzwerke und vieles mehr bietet. Qt bietet eine große Auswahl an benutzerfreundlichen Tools, die die Entwicklung bequem und schnell machen.

Diese Technologie ist in der Spieleindustrie sehr bekannt und wird für die Entwicklung von Launchern für verschiedene Spiele wie „Mount & Blade: Warband“ oder „Age of Wonders III“ verwendet. Sogar große Unternehmen verwenden Qt Framework für ihre Spiele-Hubs – Origin und Battle.net sind großartige Beispiele für Desktop-Anwendungen mit schönen Benutzeroberflächen, die mit Qt geschrieben wurden.

Es ist jedoch wichtig zu wissen, dass diese Technologie nicht nur auf Desktop-Anwendungen beschränkt ist. Mit dem Qt Framework können Sie problemlos mobile, plattformübergreifende oder eingebettete Anwendungen entwickeln.

Warum Qt für dieses Projekt?

Die Wahl des Qt Frameworks als Haupttechnologie und GUI Framework für dieses Projekt war eine hervorragende Lösung, die den Erwartungen des Kunden entsprach. Erstens basiert dieses Framework auf C++, einer beliebten Sprache, die für ihre Effizienz bekannt ist. Daher sind wir sicher, dass die Benutzerfreundlichkeit nicht durch lange Ladezeiten oder eine schlechte Verwaltung der Systemressourcen beeinträchtigt wird, wenn es um komplexere Probleme geht, wie z.B. die Überprüfung, ob alle Spieldateien auf dem neuesten Stand sind.

Darüber hinaus können Sie eine breite Palette von offenen C++-Bibliotheken verwenden, anstatt Zeit damit zu verschwenden, eine Lösung von Grund auf neu zu entwickeln. Dies verbessert den Prozess der Anwendungsentwicklung und kann nützlich sein, wenn Sie eine bestimmte Funktionalität für Ihre Anwendung benötigen.

Ein weiterer großer Vorteil des Qt Frameworks ist das Qt Quick Module, eine Bibliothek zum Schreiben von QML-Anwendungen. Es bietet eine visuelle Oberfläche und gleichzeitig alles, was man braucht, um eine reichhaltige Benutzeroberfläche mit der Programmiersprache QML zu erstellen. Es ist ein großartiges Werkzeug, um reaktionsschnelle, auffällige, flüssig animierte und benutzerfreundliche GUI-Anwendungen zu erstellen.

QML ist in C++ geschrieben, läuft nativ auf den Zielgeräten und nutzt die Hardwarebeschleunigung. Die Sprache profitiert außerdem von Just-In-Time- und Ahead-Of-Time-Kompilierung. Dies und eine intuitive Syntax machen sie zu einem leistungsfähigen Werkzeug. Aus diesem Grund haben wir die Programmiersprache QML zusammen mit dem Modul Qt Quick für die Implementierung der Benutzeroberfläche des Eonic Games Launchers verwendet.

Qt wird außerdem mit einer Reihe von Werkzeugen ausgeliefert, die Softwareentwicklern und -designern das Leben erleichtern. Gute Beispiele sind Qt Creator – eine IDE für die Qt QML Programmierung und Qt Design Studio – ein Tool, mit dem man die Benutzeroberfläche von QML-Anwendungen fast ohne Programmierung erstellen kann. Es ist sogar möglich, das Figma-Projekt direkt in die Sprache QML zu exportieren.

Sind Qt und Qt Quick die richtige Wahl für die plattformübergreifende Entwicklung von Desktop-Anwendungen?

Obwohl diese Anwendung für eine einzige Plattform veröffentlicht wurde, kann sie auch unter Mac OS und Linux ausgeführt werden. In der Tat ist Qt eines der besten Frameworks für die plattformübergreifende Entwicklung von Desktop-Anwendungen. In diesem Blogbeitrag haben wir Qt mit anderen Frameworks verglichen, um herauszufinden, welches für diesen Zweck am besten geeignet ist.

Tatsächlich bezeichnen wir Qt gerne als die Technologie, die das breiteste Spektrum an Hardwareplattformen und Betriebssystemen unterstützt. Tatsächlich ist Qt nicht auf Desktop-Plattformen beschränkt. Mit Qt können Sie auch mobile Anwendungen und Software für eingebettete Plattformen entwickeln. Und das alles mit derselben Codebasis. Sogar Webanwendungen können mit diesem Framework entwickelt werden.

Projektansatz und Herausforderungen   

Life of high-quality software doesn’t begin when the team starts writing code – it starts well beforehand during the consultation phase with the client. In Scythe Studio we provide comprehensive consulting and architecture design, offered to all clients who have chosen our services. During this stage, we perform an in-depth analysis of requirements, client needs, use cases, and much more. Thanks to it, we end up with a clear vision of the product supported by graphs and documentation, as well as a full set of tasks for the team. With this background prepared, we can move on to developing the application to meet our client’s needs. You can find out more about our services here.

In order to allow a client to check the progress of the project we used a CI/CD system for generating an easy-to-use installer, every time new changes are applied to the app. CI/CD system provides another advantage – it builds an app on every code update and runs tests, allowing it to maintain high-quality and stable code.

 

Das Leben einer qualitativ hochwertigen Software beginnt nicht erst, wenn das Team mit dem Schreiben des Codes beginnt – es beginnt schon lange vorher, in der Beratungsphase mit dem Kunden. Bei Scythe Studio bieten wir allen Kunden, die unsere Dienstleistungen in Anspruch nehmen, eine umfassende Beratung und Architekturplanung an. In dieser Phase führen wir eine gründliche Analyse der Anforderungen, Kundenbedürfnisse, Anwendungsfälle und vieles mehr durch. Als Ergebnis dieser Analyse haben wir eine klare Vision des Produkts, unterstützt durch Grafiken und Dokumentation, sowie einen vollständigen Aufgabenkatalog für das Team. Mit diesem Hintergrundwissen können wir mit der Entwicklung der Anwendung beginnen, um die Anforderungen unseres Kunden zu erfüllen. Weitere Informationen zu unseren Dienstleistungen finden Sie hier.

Um dem Kunden die Möglichkeit zu geben, den Fortschritt des Projekts zu verfolgen, haben wir ein CI/CD-System implementiert welches bei jeder neuen Änderung einen benutzerfreundlichen Installer generiert. Das CI/CD System hat noch einen weiteren Vorteil – es erstellt bei jeder Codeaktualisierung eine App und führt Tests durch, so dass ein qualitativ hochwertiger und stabiler Code aufrechterhalten werden kann.

Qt QML and C++ Entwicklungsteil

Wir haben begonnen, das Herzstück des Launchers zu erstellen – den Spielebereich. In diesem Teil der Anwendung werden alle Informationen über die verfügbaren Spiele angezeigt. Von hier aus kann der Benutzer eine Vielzahl von spielbezogenen Aktionen durchführen: Herunterladen, Aktualisieren, Reparieren, Anpassen der Einstellungen, Auswählen der gewünschten Server und Kanäle.

Die meisten Operationen werden mit Live-Daten durchgeführt, die vom Server abgerufen werden, was zu Problemen mit langen Ladezeiten aufgrund der Datenverarbeitung führen kann. Dank der in der Programmiersprache C++ implementierten Logik konnten wir eine blitzschnelle Datenverarbeitung gewährleisten, so dass die Anwendung für den Benutzer flüssig und reaktionsschnell ist.

 

Qt QML application development

 

Der nächste wichtige Bereich war die Nachrichtenseite, auf der die Benutzer viele verschiedene Arten von Inhalten zu den Spielen finden konnten. Um ein Erlebnis zu bieten, das dem Surfen auf einer Nachrichtenwebsite möglichst nahekommt, wurde WebView verwendet, ein Webbrowser, der HTML-Inhalte anzeigen kann. Mit diesem Ansatz können viele Arten von Medien einfach in jeden Beitrag im Nachrichtenbereich eingebettet werden. Beiträge können Medien wie YouTube-Videos, Bilder, formatierten Text und vieles mehr enthalten.

 

Qt QML app development

Eine der kritischen Funktionen war das automatische Aktualisierungssystem des Launchers. Um diese Funktionalität zu implementieren, haben wir ein eigenständiges Wartungstool entwickelt. Dieses automatische System zur Wartung des Launchers prüft beim Start, ob eine der Dateien des Launchers aktualisiert werden muss. Wenn dies der Fall ist, wird ein Download-System gestartet, das diese Dateien aktualisiert, ohne dass der Benutzer unnötig eingreifen muss.

Dieses System stellt nicht nur sicher, dass die Start- und Spieldateien auf dem neuesten Stand sind, sondern auch, dass keine der Dateien beschädigt oder verändert wurde, um schädliche Aktivitäten auszuführen. Um den Prozess der Dateiüberprüfung zu beschleunigen, wurde das Modul Qt „Concurrent“ verwendet, das die gleichzeitige Ausführung mehrerer Aufgaben optimiert.

 

Qt Framework desktop applications development

Wie arbeiten wir an solchen Projekten?

Wie arbeitet man an solchen Projekten?

Das Projekt war in mehrere Meilensteine unterteilt. Daher mussten wir dem Kunden Flexibilität bei der Auswahl der Teammitglieder bieten. In den verschiedenen Phasen des Projekts wurden unterschiedlich viele unserer Qt-Softwareentwickler eingesetzt.

Die beste Art und Weise, an einem sich entwickelnden Projekt zu arbeiten, ist, sich mit dem Teamleiter oder Projektmanager über das Outsourcing unserer Ingenieure zu einigen. Der Kunde setzt sich dann mit dem für das Projekt verantwortlichen Mitarbeiter von Scythe Studio in Verbindung, der die Arbeit der Softwareingenieure orchestriert.

Natürlich ist es auch möglich, die Entwickler selbst zu beauftragen, wenn Sie die Arbeit selbst organisieren möchten. Dies kann der Fall sein, wenn Sie bereits über ein Team von Spezialisten verfügen, das Sie mit externen Qt-Beratern verstärken möchten.

Auf dieser Seite stellen wir Ihnen alle unsere Dienstleistungsoptionen im Detail vor. Finden Sie heraus, welche für Sie am besten geeignet ist. Einer unserer Kernwerte ist, dass wir in der Regel schnell in Projekte einsteigen.

Erfahrungsbericht und Meinung des Kunden über Qt QML

Es gibt viele Faktoren, die den Erfolg von Softwareentwicklung beschreiben, aber wir bei Scythe-Studio glauben, dass die Zufriedenheit unserer Kunden der wichtigste ist. Was denkt Ricky, der Erfinder des Eonic Games Launcher, über unsere Entwicklungsdienstleistungen für Qt QML Desktop Anwendungen?

 

Zusammenfassung

Ein qualitativ hochwertiges Softwareprojekt abzuliefern, bedeutet nicht nur, technische Probleme im Code zu lösen und spezifische Anwendungsfälle zu behandeln. Es bedeutet auch sicherzustellen, dass man die gleiche Vision des Projekts hat wie der Kunde, dass man sich nicht nur auf die Zufriedenheit des Endbenutzers konzentriert, sondern auch auf die des Kunden, und dass man wartbare Produkte liefert. 

Deshalb sollten Sie Ihr Projekt den zuverlässigen und professionellen Qt-Experten von Scythe Studio anvertrauen. Abhängig von Ihren Anforderungen können wir Desktop-, mobile, plattformübergreifende oder sogar eingebettete Anwendungen entwickeln. Setzen Sie Ihre Ideen in die Tat um und kontaktieren Sie uns noch heute!