iOS
SwiftでのGraphQL Apollo iOSクライアント導入ガイド
20 分
はじめに このセクションでは、swiftプロジェクトにapollo iosクライアントをインストールし、それを使用してback4appからデータをクエリする方法を学びます。 前提条件 このクイックスタートを完了するには、次のものが必要です: xcode。 back4appで作成されたアプリ。 back4appでparseアプリを作成する方法を学ぶには、 新しいparseアプリのチュートリアル を参照してください。 いくつかのデータが保存されたクラス(それを取得できるように)。 1 xcodeプロジェクトにapolloクライアントを追加する apollo iosクライアントを統合する最も簡単な方法は、 cocoapods https //cocoapods org/ を使用することです。統合するには、次の手順に従ってください。 xcodeプロジェクトを作成し、 xcodeprojファイルの同じフォルダにpodfileという名前の新しいファイルを作成します。 podfileファイルを編集し、次のコードを追加します。文字列yourprojectnamehereをプロジェクトの名前に変更してください \# 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 ファイルを保存し、ターミナルを開きます。そのフォルダに移動して、次のように入力します インストールが完了すると、 xcworkspace形式の新しいファイルが作成されます。そのファイルをxcodeで開いてください。 2 スキーマを取得する graphqlエンドポイントのスキーマを含むschema jsonというファイルが必要です。スキーマを取得する方法は2つあります back4app graphqlコンソールを使用する apolloを使用する 両方について話し合います。好きな方を選んでください。 2 1 back4app graphqlコンソールでスキーマを取得する スキーマを取得したいアプリのgraphqlコンソールに移動し、右側のスキーマタブの下にあるダウンロードボタンをクリックします。 2 2 apolloでスキーマを取得する apolloを使用する場合は、まず次のコマンドを入力してデスクトップ版をインストールする必要があります。 次に、ヘッダーの値をあなたのappidとmasterkeyに置き換えて、次のコマンドを実行します。 これにより、aschema jsonファイルが出力されます 3 スキーマ jsonファイルをプロジェクトに追加する ダウンロードまたは取得したschema jsonファイルを、プロジェクトのルートディレクトリに追加します。これは、appdelegate swiftファイルがあるのと同じフォルダーです。 4 graphqlファイルを作成する これで、ファイルとミューテーションを使用してgraphqlファイルを作成できます。 これらのファイルは、 graphql拡張子を持ち、apolloがswiftコードを生成するために少なくとも1つのクエリまたはミューテーションを含む必要があります。 便利な慣習は、\<name> graphqlを\<name> swiftの隣に作成することで、クエリ、ミューテーション、またはフラグメントをそれらを使用するswiftコードと同じ場所に配置することです。 ファイルツリーに既存の graphqlファイルがない場合は、非常にシンプルなクエリを作成し、それをファイルツリー内の graphqlファイルに追加して、コード生成ビルドステップを実行したときに実際に何かを見つけられるようにします。そうしないと、「コードを生成するための操作またはフラグメントが見つかりません」というエラーが表示されます。 ここに例として、parseユーザーを返すシンプルなクエリがあります 1 query findallusers{ 2 objects{ 3 find user{ 4 count 5 results{ 6 username 7 } 8 } 9 } 10 } そのファイルを、schema jsonファイルと同じレベルのtargetディレクトリに追加してください 5 コード生成ビルドステップを追加する xcodeのビルドプロセスの一部としてapolloを呼び出すことができ、これによりschema jsonファイルが自動的に取得および更新されるため、クラスは行った変更を常に反映します。check and run apollo cli shラッパースクリプトを呼び出すことで実現できます。 ラッパーは、システムにインストールされているapolloのバージョンがプロジェクト内のフレームワークバージョンと互換性があるかどうかを確認します。 それを確認しないと、フレームワーク内のランタイムコードと互換性のないコードを生成する可能性があります。 手順は次のとおりです アプリケーションターゲットのビルドフェーズ設定タブで、+アイコンをクリックし、新しい実行スクリプトフェーズを選択します。 作成した実行スクリプトの名前を「apollo graphql apiを生成する」に変更します。 この新しい実行スクリプトをビルドフェーズのcompile sourcesの上にドラッグして、コードがコンパイルされる前に実行されるようにします。 実行スクリプトに次の内容を追加します xcode 11 betaを使用している場合は、代わりにこのスクリプトを追加してください 6 apiファイルをビルドしてターゲットに追加する プロジェクトをビルドすると、api swiftという名前のファイルがターゲットのディレクトリに作成されるはずです 生成されたapi swiftファイルをターゲットにドラッグし、「必要に応じてファイルをコピー」チェックボックスのチェックを外してください apiファイルが含まれる必要があるすべてのターゲットを確認したことを確認してください。 7 クライアントの設定 今、あなたの viewcontroller swift で、apollo の設定を作成し、appid と clientkey の値を変更します 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 クライアントの設定 viewdidload で、apollo クライアントから graphql クエリを呼び出します 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 } user クラスにユーザーがいる場合、最初のユーザー (インデックス 0) が取得されるはずです オプションのステップ 構文ハイライトを取得する 希望する場合、xcodeでgraphqlの構文ハイライトを使用できます。それを実現するには リポジトリをクローンします xcode apollo https //github com/apollostack/xcode apollo あなたのコンピュータに。 xcodeが現在実行中の場合は閉じてください。 /library/developer/xcodeの中にこれらのフォルダを作成する必要があるかもしれません 4\ graphql idepluginを /library/developer/xcode/plug insにコピーします。 5\ graphql xclangspecを /library/developer/xcode/specificationsにコピーします。 これらのアドオンをインストールした後、xcodeを初めて起動すると警告が表示される場合があります。プラグインを読み込むことに同意すると、この警告は表示されなくなります。