Qt für iOS – Tipps, Einblicke und größte Schmerzpunkte

Qt QML-Entwicklung
2024-08-09
13 Minuten
Qt für iOS

Ob Ihr Produkt noch in der frühen Entwicklungsphase steckt oder kurz vor der Markteinführung steht, die iPhone-Plattform ist eine überzeugende Option, die Sie in Betracht ziehen sollten.

Die Erweiterung auf mehrere Plattformen kann die Sichtbarkeit Ihrer Marke erheblich steigern, ein breiteres Publikum anziehen und sicherstellen, dass Ihr Produkt wahrgenommen wird. Diese größere Reichweite verbessert Ihre Marktanalyse und liefert tiefere Einblicke in Benutzerpräferenzen und -verhalten.

Eine Multi-Plattform-Präsenz stärkt auch die Resilienz Ihrer Marke, indem sie die Abhängigkeit von einem einzigen Ökosystem verringert und so die Stabilität in einem sich schnell verändernden Technologiemarkt gewährleistet. Die iOS-Plattform bietet Funktionen, die die Funktionalität und Attraktivität Ihres Produkts erhöhen. Der App Store, ARKit, Apple Pay, Face ID, HealthKit, HomeKit, iCloud, Siri und viele mehr sind leistungsstarke Tools, die Sie nutzen können.

Als Experten für cross-platform mobile development mit Qt möchten wir einige unserer Einblicke nach Jahren der Entwicklung von Apps für iOS-Geräte teilen. Dieses Thema ist oft mit Vorurteilen behaftet, und es gibt wahrscheinlich mehrere Gründe dafür.

 

Warum möchten Sie eine iOS-App mit Qt entwickeln lassen?

Warum nicht? Qt ist ein leistungsstarkes Framework, das von der Qt Group (früher The Qt Company) und der Open-Source-Community entwickelt wurde. Es eignet sich hervorragend für die Entwicklung von Anwendungen unterschiedlicher Komplexität. Qt basiert auf C++, sodass Sie alles von einfachen, unkomplizierten Apps bis hin zu hochentwickelten, funktionsreichen Softwarelösungen entwickeln können.

Qt ermöglicht die iOS-Entwicklung und den Aufbau von iOS-Anwendungen, die einfach native Funktionen nutzen. Qt ermöglicht es Ihnen, die Leistung von C++ zusammen mit Objective-C und Swift zu nutzen. Mit Qt Creator und XCode installiert können Sie fast jede iOS-App entwickeln, die auch auf Android laufen könnte. Wie Flutter oder React Native ist Qt ein plattformübergreifendes Entwicklungsumfeld. Siehe unseren Vergleich von Flutter vs React Native vs Qt.

Der wahrscheinlich häufigste Fall, in dem eine mobile App auf einem iOS-Gerät laufen soll, ist der Bedarf an einer Begleit-App. Angenommen, Sie entwickeln HMI, um einen Bildschirm zur Steuerung Ihres Geräts zu haben. Vielleicht möchten Sie auch auf einige Daten zugreifen und das Gerät in einem begrenzten Umfang von Ihrem iPhone aus steuern.

Aber es ist nicht der einzige Fall. Manchmal möchten Leute eine mobile App mit Qt entwickeln, weil sie entweder bereits Kenntnisse in der Qt QML-Entwicklung haben oder einfach von den Vorteilen profitieren möchten, die Qt in Bezug auf die GUI-Entwicklung bietet.

 

Wie sieht der Quellcode einer iOS-Qt-App aus?

Der Quellcode der Qt-Mobile-App unterscheidet sich nicht wesentlich von Projekten, die auf Desktop- (Windows, Linux), Embedded- und anderen Plattformen abzielen. Der Großteil des Codes ist in der Regel C++ und QML (für die GUI). Natürlich müssen iOS- und macOS-Apps, die native Funktionen nutzen, Objective-C-Code verwenden. Zum Glück ist es nicht so schwierig, das zu implementieren. Obwohl Objective-C-Code nicht der schönste und zufriedenstellendste Code ist, den man schreiben kann. Genau wie bei Android-Apps müssen Sie, um native Funktionen aufzurufen, Java aufrufen, hier müssen Sie jedoch Objective-C aufrufen.

Tatsächlich integrieren wir bei Scythe Studio auch iOS-Apps mit Swift – einer neueren iOS-Programmierplattform. Es ist nicht ganz einfach, aber es ist immer noch möglich mit ein wenig Magie und speziellen Tricks.

Bitte beachten Sie, dass dieser Artikel nicht unbedingt ein Tutorial ist. Es ist mehr ein Blick auf Einblicke und Bereiche.

Für das Build-System empfiehlt die neueste Version von Qt die Verwendung von CMake. Es übernimmt die Komplexität des Kompilierens Ihres Projekts für iOS und stellt sicher, dass der Build- und Ausführungsprozess reibungslos verläuft. In der CMakeLists.txt-Datei – einem Ort, an dem Sie die Details und Abhängigkeiten Ihres Projekts angeben – haben Sie die Möglichkeit, einige Eigenschaften des Ziels zu konfigurieren. Eine solche Eigenschaft ist der Pfad zu einer .plist-Datei, aber Sie können auch andere Dinge angeben, die dann beim Erstellen eines App-Bundles verwendet werden.

 

qt_add_executable(app)
if(IOS)
    set_target_properties(app
        PROPERTIES MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/ios/Info.plist")
endif()

Es handelt sich um eine spezielle Datei, in der Sie Details zu Ihrer App angeben. Sie ist das Äquivalent der Android-Manifest-Datei. Hier können Sie die App-ID, den Namen der App, Berechtigungen, Symbole, horizontale/vertikale Ausrichtungen oder die Unterstützung des iPads angeben.

So könnte diese Datei aussehen.

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>CFBundleIconFile</key>
    <string></string>
    <key>CFBundlePackageType</key>
    <string>APPL</string>
    <key>CFBundleGetInfoString</key>
    <string>Created by Qt/CMake</string>
    <key>CFBundleSignature</key>
    <string>????</string>
    <key>CFBundleExecutable</key>
    <string>example</string>
    <key>CFBundleIdentifier</key>
    <string>com.scythestudio.${PRODUCT_NAME}</string>
    <key>CFBundleDisplayName</key>
    <string>${PRODUCT_NAME}</string>
    <key>CFBundleName</key>
    <string>${PRODUCT_NAME}</string>
    <key>CFBundleShortVersionString</key>
    <string>1.0</string>
    <key>CFBundleVersion</key>
    <string>1.0</string>
</dict>
</plist>

tech-stack
 

Was benötigen Sie, um zu starten?

Um mit der Entwicklung einer iOS-App mit Qt zu beginnen, müssen Sie die richtige Umgebung einrichten und einige wesentliche Tools sammeln. Dazu gehören ein kompatibles Betriebssystem, die notwendige Entwicklungssoftware sowie die entsprechenden Konten und Kenntnisse. Diese Grundlagen sind entscheidend für die Schaffung einer nahtlosen Entwicklungserfahrung und stellen sicher, dass Ihre App effektiv gebaut, getestet und bereitgestellt werden kann.

 

Brauche ich ein tatsächliches iOS-Gerät?

Die Entwicklung einer iOS-App mit Qt erfordert Apples exklusive Entwicklungstools, die nur auf macOS verfügbar sind. Tools wie Xcode sind unerlässlich für das Codieren, Testen, Debuggen sowie für den obligatorischen Signierungs- und Verteilungsprozess von iOS-Apps. Der App Store von Apple erfordert zwingend Xcode, um sicherzustellen, dass Apps ihren Sicherheits- und Funktionsstandards entsprechen.

Die Entwicklung von iOS-Apps ohne Apple-Hardware ist komplex und technisch anspruchsvoll. Remote-macOS-Dienste, CI/CD-Tools und kurzfristige Mietdienste können funktionieren, erfordern jedoch zusätzlichen Aufwand und Vorsicht. Letztendlich vereinfacht die Investition in Apple-Hardware den Prozess und reduziert das Risiko von Problemen oder Verstößen gegen Servicebedingungen. Bei Scythe Studio stellen wir uns die Softwareentwicklung nicht vor, ohne die Möglichkeit zu haben, zu testen, ob alles auf dem Zielgerät funktioniert.

Für Tests ist ein iPhone nicht unbedingt erforderlich, da Xcode einen Simulator enthält. Es wird jedoch nicht empfohlen, sich nur auf Simulatoren zu verlassen, um gründliche Tests durchzuführen. Simulatoren können viele Probleme erkennen, aber nicht alle Verhaltensweisen von echten Geräten replizieren. Verschiedene Fehlerfälle können aufgrund von Hardware- und Software-Unterschieden auf verschiedenen iPhone-Modellen auftreten. Daher ist der Zugang zu einer Vielzahl von echten iPhones von Vorteil, um sicherzustellen, dass Ihre App auf verschiedenen Geräten gut funktioniert.

iphone and mac ,omoMac Mini ist eine schöne und erschwingliche Option für den Start

 

Wie sieht der Apple AppStore-Veröffentlichungsprozess aus?

Um eine App im Apple App Store zu veröffentlichen, müssen Sie sich zunächst für das Apple Developer Program anmelden, um ein Entwicklerkonto einzurichten. Diese Mitgliedschaft ist entscheidend, da sie Zugang zu den wichtigsten Tools, Ressourcen und dem App Store selbst gewährt. Es kostet 100$ pro Jahr.

Der Zugang zum App Store ist auch notwendig, um Ihren Entwicklern Zugriff auf App-Details zu gewähren und dort neue Apps zu erstellen, indem Sie die Bundle-ID und die Provisionierungsprofile festlegen.

apple store

Die App-Entwicklungsphase beginnt mit Qt Creator – einem Editor zum Schreiben von Code, Testen und Erstellen der App. Während des Build-Prozesses erstellen die Tools in Qt Creator ein Xcode-Projekt. Xcode, Apples IDE, ermöglicht Entwicklern, das Projekt weiter zu konfigurieren, um native Funktionen und Berechtigungen zu nutzen oder die Entwicklung innerhalb des Editors fortzusetzen. Falls Ihnen diese Entwicklungsumgebung gefällt, können Sie sogar Xcode von Anfang an verwenden.

XCode with Qt project openXCode mit geöffnetem Qt-Projekt

Die Vorbereitung auf die Einreichung umfasst mehrere Schritte wie die Einrichtung eines Build-Ziels für die Veröffentlichung. Das App-Bundle kann auf Apples Beta-Testplattform TestFlight hochgeladen werden, um weitere Überprüfungen durchzuführen. Entwickler müssen auch Screenshots der App, Symbole und Vorschauen für alle erforderlichen Gerätegrößen vorbereiten.

Der Einreichungsprozess beginnt mit dem Hochladen des finalen Builds auf App Store Connect über Xcode. Entwickler vervollständigen die Einreichung, indem sie verschiedene Formulare ausfüllen, einschließlich Compliance-Informationen und Konfigurationsanweisungen. Schließlich sendet das Klicken auf die Schaltfläche „Submit for Review“ die App an Apples Prüfungsteam.

Der Prüfungsprozess beginnt mit einem automatisierten Scan nach häufigen Problemen. Danach prüft ein Apple-Reviewer manuell die App, um sicherzustellen, dass sie den Richtlinien von Apple entspricht. Wenn Probleme gefunden werden, wird Feedback gegeben, das die notwendigen Änderungen detailliert beschreibt.

Nach Bestehen der Prüfung kann die App genehmigt werden, und der Entwickler erhält eine Benachrichtigung. Bei Ablehnung müssen Entwickler das Feedback überprüfen, die erforderlichen Änderungen vornehmen und die App erneut einreichen.

Nach der Genehmigung können Entwickler entscheiden, die App sofort zu veröffentlichen oder ein Veröffentlichungsdatum festzulegen. Diese Phase beinhaltet auch die Vorbereitung und Durchführung eines Marketingplans, um den Start der App effektiv zu fördern.

Nach der Veröffentlichung ist es wichtig, die Leistung der App und das Benutzerfeedback zu überwachen. Regelmäßige Updates sind notwendig, um Fehler zu beheben, neue Funktionen hinzuzufügen und das Benutzererlebnis zu verbessern. Analysetools spielen eine entscheidende Rolle bei der Verfolgung des Benutzerengagements und anderer wichtiger Kennzahlen.

release's full cycle

 

Bekannte Einschränkungen und Probleme von Qt für iOS

Manchmal scherzen wir, dass das Erledigen einer Aufgabe für einen Kunden, für den wir iOS-Projekte durchführen, einen prophylaktischen Besuch bei einem Psychologen erfordert. Zum Glück ist es nicht so schlimm, aber ich habe die Erlaubnis erhalten, in diesem Teil des Artikels ein wenig zu klagen.

 

Unvorhergesehene Anforderungen

Einige Anbieter können zusätzliche Schritte und Standards verlangen, bevor Sie deren Funktionen nutzen können. Zum Beispiel haben große Unternehmen wie Google, Facebook oder Apple oft spezielle Designregeln für die Größe, Form und Farbe von Schaltflächen im Zusammenhang mit ihren Funktionen. Wenn Ihre App Zahlungen verarbeitet, müssen Sie die Sicherheit erhöhen und sicherstellen, dass Dinge wie die Nutzungsbedingungen leicht in Ihrer App zu finden sind.

Jeder Anbieter hat möglicherweise eigene Dokumentationen, Genehmigungsprozesse und Compliance-Überprüfungen. Möglicherweise müssen Sie auch ein Entwicklerkonto einrichten, um auf bestimmte Funktionen oder APIs zugreifen zu können. All diese Anforderungen, zusammen mit den Hin- und Her-Diskussionen mit dem technischen Support, können Tage zur Entwicklungszeit hinzufügen.

 

Erwarten Sie Probleme bei jeder Integration

Verschiedene Unternehmen haben ihre eigenen Methoden zur Integration von SDKs, und es gibt zwei Hauptstrategien, die sie normalerweise verfolgen. Die erste dreht sich alles darum, es einfach und leicht zu machen, besonders für Anfänger. Unternehmen, die diesen Weg gehen, bieten in der Regel eine spezifische Methode zur Verknüpfung ihres SDK an, was den Prozess einfach macht. Aber wenn diese Methode nicht zu Ihren Bedürfnissen passt, finden Sie sich mit begrenzten Optionen wieder.

Die zweite Strategie besteht darin, Entwicklern mehr Flexibilität zu bieten. Diese Unternehmen bieten mehrere Möglichkeiten zur Integration des SDK, wie zum Beispiel die Verwendung von CocoaPods oder die direkte Integration in Xcode, sodass Sie wählen können, was am besten für Sie funktioniert. Auch wenn Optionen großartig sind, kann es die Dinge auch komplizierter machen. Nicht jede Methode wird sofort perfekt funktionieren. Möglicherweise müssen Sie zusätzliche Zeit für die Fehlerbehebung und Anpassung aufwenden.

 

Automatisierung ist ein Muss, und es wird etwas zusätzliche Zeit erfordern

Egal welche Integrationsstrategie das Unternehmen wählt. Die eigentliche Herausforderung beginnt oft mit der Automatisierung. Während es eine Sache ist, ein SDK zum Laufen zu bringen, ist es eine ganz andere Geschichte, sicherzustellen, dass es auf jedem einzelnen Rechner konsistent funktioniert. Auch wenn der Build auf einem Rechner gut funktioniert, kann es dennoch Tage dauern, bis ein neuer Entwickler eingerichtet ist. Daher ist Automatisierung der Schlüssel. Alles von Grund auf mit jedem Build neu einzurichten, ist ein riesiger Zeitfresser.

Das Modifizieren eines Projekts in Xcode mag einfach erscheinen, aber wenn Ihr Xcode-Projekt von CMake generiert wird, gehen alle Änderungen, die Sie vornehmen, nach einem neuen Build verloren. Sie können CMake so konfigurieren, dass es ein gut eingerichtetes Xcode-Projekt generiert, aber das erfordert oft sorgfältige Anpassungen.

Die Zeit, die Sie durch die Automatisierung wiederholbarer Aufgaben und die Sicherstellung, dass alles reibungslos auf verschiedenen Umgebungen läuft, sparen, ist unbezahlbar. So können sich die Entwickler auf das Wesentliche konzentrieren und die Arbeitsabläufe werden effizienter und produktiver.

Halten Sie Ihre iOS-App auf dem neuesten Stand und die damit verbundenen Kosten

Die Automatisierung jedes Teils Ihrer Projektkonfiguration ist ideal, erfordert jedoch oft viel Zeit und technisches Können. Jede Konfiguration und Integration erfordert viele Versuche und Fehler. Die Komplexität der verschiedenen Qt-Versionen, Entwicklungskits und die sich ständig verändernden Plattformen und SDKs schaffen ein Netz von Herausforderungen.

Das Upgrade von einer Qt-Version auf eine andere kann eine neue Reihe von Problemen mit sich bringen – wie Kompatibilitätsprobleme, API-Änderungen oder unerwartete Abhängigkeiten. Außerdem müssen Sie ständig neue Probleme lösen, da Betriebssystem-Updates, neue SDK-Funktionen und Änderungen an Entwicklungstools erfolgen.

Das reibungslose Funktionieren eines iOS-Projekts aufrechtzuerhalten, ist eine nie endende Aufgabe, die ständige Aufmerksamkeit und einen engagierten Ansatz erfordert, um Stabilität und Funktionalität zu wahren.

mac mini
 

Qt für iOS-Entwicklung – Unsere Tipps

Wenn der letzte Abschnitt düster und überwältigend wirkte, sollten Sie sich die untenstehenden Lösungen ansehen. Wie können wir diese Schwierigkeiten überwinden? In diesem Abschnitt werden wir die wichtigsten Tipps für die Entwicklung einer iOS-App mit Qt untersuchen und Hindernisse in überschaubare Aufgaben umwandeln, um eine reibungslosere Entwicklungsreise zu gewährleisten.

 

Investieren Sie in Spezialisten

Um eine iOS-App mit Qt erfolgreich zu entwickeln, sind wesentliche Fähigkeiten erforderlich. Fehlen diese Fähigkeiten, kann eine eigentlich einfache Aufgabe zu einem langwierigen Unterfangen werden. In erfahrene Fachleute zu investieren mag anfangs kostspielig erscheinen, aber es zahlt sich aus, indem signifikante Verzögerungen und zusätzliche Kosten vermieden werden.

 

Experte für Build-Phasen

Die Automatisierung von Build-Phasen mit Xcode und CMake ist entscheidend für die Effizienz, da Ihr Team das Produkt häufig bauen wird. Expertise in diesen Tools kann diesen Prozess optimieren, da erfahrene Entwickler häufig auftretende Probleme schnell lösen können.

 

Objective-C / Swift-Experte

Neben Xcode und CMake ist auch die Beherrschung von Objective-C und Swift für effektives Codieren und die Integration erforderlich. Während Grundkenntnisse in Objective-C ausreichen, hilft ein tieferes Verständnis, Abstürze und Fehler zu verhindern. Erfahrung mit diesen Sprachen trägt auch zu einer besseren Architekturplanung Ihrer iOS-App bei und minimiert den Bedarf an zukünftigen Überarbeitungen.

 

Apple-Features-Experte

Vertrautheit mit Apples Funktionen ist ebenfalls entscheidend, um fortgeschrittene Funktionen zu optimieren. Die Einsicht eines Experten in diese Funktionen kann Plattformbeschränkungen und Anforderungen aufdecken, die bei grundlegender Integration möglicherweise nicht offensichtlich sind.

Example of iOS native feature in Qt appBeispiel für eine iOS-native Funktion in einer Qt-App

 

Einige abschließende Gedanken und Schlüsselerkenntnisse

Lassen Sie mich einige abschließende Gedanken zusammenfassen, die ich für erwähnenswert halte.

 

iOS-Simulator vs. spezifische iOS-Geräte

Die Wahl zwischen dem Testen auf einem Simulator oder einem echten Gerät hängt von den Bedürfnissen Ihres Projekts ab. Das Testen auf einem echten Gerät ist besser, da einige Fehler möglicherweise nicht auf einem Simulator auftreten. Der iOS-Simulator kann jedoch in einigen Fällen den Entwicklungsprozess beschleunigen. Sie können beides verwenden, aber es erfordert zusätzlichen Wartungsaufwand. Es ist wichtig sicherzustellen, dass die gewählte Build-Option konsequent verwendet wird. Andernfalls wird sie ohne Wartung innerhalb eines Monats veraltet sein. Die Kosten, eine Build-Konfiguration wiederherzustellen, sind nie null.

 

Der Bedarf an iPhones und iPads

Brauchen Sie mehr? Absolut, Sie können nie zu viele iOS-Geräte haben. Ihre App auf verschiedenen Geräten, Versionen und SDKs zu testen, ist entscheidend, um gerätespezifische Fehler zu erkennen und zu beheben. Versuchen Sie, eine Vielzahl von iPhones zu sammeln, sowohl alte als auch neue Modelle. Wenn Sie können, investieren Sie in zusätzliche Geräte oder nutzen Sie Gerätevermietungsdienste. Dieser Ansatz sorgt für gründliche Tests und steigert die Zuverlässigkeit Ihrer App auf verschiedenen Geräten.

 

Standardisierung und Effizienz des Workflows

Egal, welche Lösung Sie wählen, es ist wichtig, sie im gesamten Team konsistent zu halten. Die Verwendung mehrerer Ansätze kann zusätzliche Zeit für die Einrichtung und Wartung kosten, daher ist es am besten, unnötige Komplexität zu vermeiden. Wenn alle Teammitglieder dieselbe Konfiguration verwenden, können sie mit denselben Problemen konfrontiert werden, was die Anzahl der Probleme verringern kann, die Sie angehen müssen.

 

Scythe-Studio - Qt Developer

Kacper Kaleta Qt Developer

Brauchen Sie Qt QML-Entwicklungsdienste?

service partner

Kommen wir zur Sache: Es ist eine Herausforderung, Top-Qt-QML-Entwickler zu finden. Helfen Sie sich selbst und starten Sie die Zusammenarbeit mit Scythe Studio – echten Experten im Qt C++ Framework.

Entdecken Sie unsere Fähigkeiten!

Neueste Artikel

[ 156 ]