iOS
Integration des Apollo iOS Clients in Swift-Projekte
22 min
einführung in diesem abschnitt lernen sie, wie sie den apollo ios client in ihr swift projekt installieren und daten von back4app abfragen voraussetzungen um dieses schnellstartprojekt abzuschließen, benötigen sie xcode eine app, die bei back4app erstellt wurde befolgen sie das tutorial für neue parse apps , um zu lernen, wie man eine parse app bei back4app erstellt eine klasse mit einigen gespeicherten daten (damit sie sie abrufen können) 1 apollo client in ihr xcode projekt einfügen der einfachste weg, den apollo ios client zu integrieren, ist die verwendung von cocoapods https //cocoapods org/ um ihn zu integrieren, befolgen sie diese schritte erstellen sie ihr xcode projekt und erstellen sie im selben ordner wie ihre xcodeproj datei eine neue datei mit dem namen podfile bearbeiten sie die podfile datei und fügen sie den folgenden code hinzu, wobei sie den string yourprojectnamehere in den namen ihres projekts ändern \# uncomment the next line to define a global platform for your project platform \ ios, '12 0' target 'yourprojectnamehere' do \# comment the next line if you're not using swift and don't want to use dynamic frameworks use frameworks! \# pods for conferenceplanner pod 'apollo' end speichern sie die datei und öffnen sie ein terminal gehen sie zu diesem ordner und geben sie ein wenn die installation abgeschlossen ist, sollten sie eine neue datei im format xcworkspace haben öffnen sie diese datei mit xcode 2 holen sie sich ihre schemas sie benötigen eine datei mit dem namen schema json, die die schemas für ihren graphql endpunkt enthält es gibt zwei möglichkeiten, wie sie ihr vollständiges schema abrufen können verwendung der back4app graphql konsole verwendung von apollo wir werden beides besprechen wählen sie das, was ihnen am besten gefällt 2 1 holen sie sich ihre schemata mit der back4app graphql konsole gehen sie zu ihrer graphql konsole für die app, von der sie das schema abrufen möchten, und klicken sie dann auf der rechten seite unter dem tab schema auf die schaltfläche herunterladen 2 2 holen sie sich ihre schemata mit apollo wenn sie apollo verwenden möchten, müssen sie zuerst die desktop version installieren, indem sie folgendes eingeben führen sie dann den folgenden befehl aus und ersetzen sie die werte für die header durch ihre appid und masterkey dies wird eine aschema json datei als ausgabe generieren 3 fügen sie ihre schema json datei zum projekt hinzu fügen sie die schema json datei, die sie heruntergeladen oder abgerufen haben, in das stammverzeichnis ihres projekts ein dies ist derselbe ordner, in dem sich ihre appdelegate swift datei befindet 4 erstellen sie ihre graphql dateien sie können jetzt ihre graphql dateien mit ihren dateien und mutationen erstellen diese dateien müssen die erweiterung graphql haben und mindestens eine abfrage oder mutation enthalten, damit apollo den swift code daraus erstellen kann eine nützliche konvention ist es, abfragen, mutationen oder fragmente zusammen mit dem swift code, der sie verwendet, zu platzieren, indem sie \<name> graphql neben \<name> swift erstellen wenn sie keine vorhandenen graphql dateien in ihrem dateibaum haben, erstellen sie eine sehr einfache abfrage und fügen sie sie einer graphql datei in ihrem dateibaum hinzu, damit beim ausführen des schrittes zur codegenerierung tatsächlich etwas gefunden wird andernfalls erhalten sie den fehler "keine operationen oder fragmente gefunden, um code zu generieren " hier ist eine einfache abfrage, die als beispiel dient und parse benutzer zurückgibt 1 query findallusers{ 2 objects{ 3 find user{ 4 count 5 results{ 6 username 7 } 8 } 9 } 10 } fügen sie diese datei in ihr zielverzeichnis auf derselben ebene wie ihre schema json datei hinzu 5 fügen sie einen schritt zur codegenerierung hinzu sie können apollo als teil des xcode bauprozesses aufrufen, der die schema json datei automatisch abruft und aktualisiert, sodass ihre klassen immer alle änderungen widerspiegeln, die sie durch den aufruf des wrapper skripts check and run apollo cli sh vornehmen der wrapper überprüft, ob die auf ihrem system installierte version von apollo mit der framework version in ihrem projekt kompatibel ist wenn sie das nicht überprüfen, könnten sie potenziell code generieren, der mit dem laufzeitcode im framework inkompatibel ist die schritte sind klicken sie im tab "build phases" der einstellungen ihres anwendungstags auf das + symbol und wählen sie "new run script phase" ändern sie im erstellten run script dessen namen in "generate apollo graphql api" ziehen sie dieses neue run script direkt über "compile sources" in ihrer liste der build phases, damit es vor der kompilierung ihres codes ausgeführt wird fügen sie folgendes zum run script hinzu wenn sie xcode 11 beta verwenden, fügen sie stattdessen dieses skript hinzu 6 erstellen sie ihre api datei und fügen sie sie dem ziel hinzu bauen sie ihr projekt und eine datei namens api swift sollte im verzeichnis ihres ziels erstellt werden ziehen sie die generierte api swift datei in ihr ziel und stellen sie sicher, dass sie das kontrollkästchen „dateien bei bedarf kopieren“ deaktivieren stellen sie sicher, dass sie alle ziele überprüft haben, in die die api datei aufgenommen werden muss 7 konfigurieren sie den client jetzt erstellen sie in ihrer viewcontroller swift ihre apollo konfiguration und ändern sie ihre appid und clientkey werte 1 let apollo apolloclient = { 2 let configuration = urlsessionconfiguration default 3 configuration httpadditionalheaders = \[ 4 "x parse application id" "yourappidhere", 5 "x parse client key" "yourclientkeyhere" 6 ] 7 8 let url = url(string "https //parseapi back4app com/graphql")! 9 10 return apolloclient( 11 networktransport httpnetworktransport( 12 url url, 13 configuration configuration 14 ) 15 ) 16 }() 8 konfigurieren sie den client rufen sie in ihrer viewdidload ihre graphql abfrage vom apollo client auf 1 apollo fetch(query findallusersquery()) { result in 2 guard let data = try? result get() data else { return } 3 print(data objects? finduser results\[0] username) 4 } wenn sie benutzer in ihrer benutzerklasse haben, sollte der erste (index 0) abgerufen werden optionaler schritt syntaxhervorhebung erhalten sie können eine graphql syntaxhervorhebung in xcode haben, wenn sie möchten um dies zu erreichen klonen sie das xcode apollo repository https //github com/apollostack/xcode apollo auf ihren computer schließen sie xcode, falls es derzeit läuft sie müssen möglicherweise diese ordner in /library/developer/xcode erstellen 4\ kopieren sie graphql ideplugin nach /library/developer/xcode/plug ins 5\ kopieren sie graphql xclangspec nach /library/developer/xcode/specifications sie erhalten möglicherweise eine warnung, wenn sie xcode zum ersten mal nach der installation dieser add ons starten sobald sie zustimmen, das plugin zu laden, wird diese warnung nicht mehr angezeigt