From 1ba4f512d9fdb00cd9524595d0ac8be7559292c3 Mon Sep 17 00:00:00 2001 From: Stephen Barlow Date: Tue, 1 Feb 2022 15:37:39 -0800 Subject: [PATCH] Edits to intro and installation docs (#2125) * Edits to intro and installation docs * Fix broken links * Edits from @designatednerd plus new screenshots --- docs/shared/carthage-installation-panel.mdx | 24 ++-- docs/shared/carthage-run-script-panel.mdx | 10 +- docs/shared/pods-installation-panel.mdx | 10 +- docs/shared/pods-run-script-panel.mdx | 4 +- docs/shared/spm-installation-panel.mdx | 26 ++-- docs/shared/spm-run-script-panel.mdx | 10 +- docs/source/downloading-schema.md | 4 +- docs/source/index.mdx | 49 ++++--- docs/source/installation.mdx | 123 +++++++++--------- .../screenshot/spm_packages_add_package.jpg | Bin 0 -> 24917 bytes .../source/screenshot/spm_packages_dialog.jpg | Bin 0 -> 53291 bytes docs/source/screenshot/spm_select_package.jpg | Bin 0 -> 74633 bytes .../source/tutorial/tutorial-obtain-schema.md | 14 +- 13 files changed, 143 insertions(+), 131 deletions(-) create mode 100644 docs/source/screenshot/spm_packages_add_package.jpg create mode 100644 docs/source/screenshot/spm_packages_dialog.jpg create mode 100644 docs/source/screenshot/spm_select_package.jpg diff --git a/docs/shared/carthage-installation-panel.mdx b/docs/shared/carthage-installation-panel.mdx index 693c650adc..235e48edcf 100644 --- a/docs/shared/carthage-installation-panel.mdx +++ b/docs/shared/carthage-installation-panel.mdx @@ -11,43 +11,45 @@ import {

Set up your `Cartfile`

-Add `github "apollographql/apollo-ios"` to your Cartfile. +Add `github "apollographql/apollo-ios"` to your Cartfile. -

Checkout and build dependencies

+

Check out and build dependencies

-Run `carthage update --platform ios` (or `--platform ios,macos` to build both Mac and iOS). **NOTE:** There's an issue with the way Carthage uses Lipo in the Xcode 12 GM, please cd into `[YourProject]/Carthage/Checkouts/apollo-ios/scripts` and then run `./carthage-build-workaround.sh` to actually get Carthage builds that work. +Run `carthage update --use-xcframeworks --platform ios` (or `--platform ios,macos` to build both Mac and iOS). + +> **Note:** There's an issue with the way Carthage uses Lipo in the Xcode 12 GM. Please `cd` into `[YourProject]/Carthage/Checkouts/apollo-ios/scripts` and then run `./carthage-build-workaround.sh` to resolve this build issue.
- +

Add built frameworks to your project

Drag and drop `Apollo.framework` from the appropriate `Carthage/Build/iOS` or `Carthage/Build/Mac` folder to the **Embedded Binaries** section of your application target's **General** settings tab. This should also cause them to appear in the **Linked Frameworks And Libraries** section automatically. - - If you also plan on using the `ApolloSQLite` library, also drag `ApolloSQLite.framework` and `SQLite.framework` to this area as well. - - If you also plan on using the `ApolloWebSocket` library, also drag `ApolloWebSocket.framework` and `Starscream.framework` to this area as well. + - To include the `ApolloSQLite` library, also drag `ApolloSQLite.framework` and `SQLite.framework` to this area. + - To include the `ApolloWebSocket` library, also drag `ApolloWebSocket.framework` and `Starscream.framework` to this area.

Work around Carthage submission bug

-On your application target's **Build Phases** settings tab, click the **+** icon and choose **New Run Script Phase**. Create a Run Script in which you specify your shell (ex: `bin/sh`), add the following contents to the script area below the shell: +On your application target's **Build Phases** settings tab, click the **+** icon and choose **New Run Script Phase**. Create a Run Script in which you specify your shell (e.g., `bin/sh`) and add the following contents to the script area below the shell: ```sh /usr/local/bin/carthage copy-frameworks ``` -and add the paths to the frameworks you want to use under **Input Files**, e.g.: +Then, add the paths to the frameworks you want to use under **Input Files**, e.g.: ``` $(SRCROOT)/Carthage/Build/iOS/Apollo.framework ``` - -Again, if you're adding `ApolloSQLite` or `ApolloWebSocket`, please make sure to add the other frameworks you added as Input Files. - + +Again, if you're adding `ApolloSQLite` or `ApolloWebSocket`, please make sure to add the other frameworks you added as Input Files. + This script works around an [App Store submission bug](http://www.openradar.me/radar?id=6409498411401216) triggered by universal binaries and ensures that necessary bitcode-related files and dSYMs are copied when archiving.
diff --git a/docs/shared/carthage-run-script-panel.mdx b/docs/shared/carthage-run-script-panel.mdx index 600d14dcb2..02ec8b6966 100644 --- a/docs/shared/carthage-run-script-panel.mdx +++ b/docs/shared/carthage-run-script-panel.mdx @@ -6,13 +6,11 @@ import { -In the never-ending battle of what's going to be more painful when it comes to dependency management, we've decided to make working with Carthage a bit more of a pain in order to make working with NPM way less of a pain. +The scripts and binaries that you need to generate code are included in the `Carthage/Checkouts` folder. If this folder is not checked into version control, all developers on a team (and your CI machine) need to run `carthage checkout` when changes are made to the version to ensure they have the correct underlying binaries and scripts. -The scripts and binaries which you need to generate code will be included in the `Carthage/Checkouts` folder. If this folder is not checked into version control, all developers on a team (and your CI machine) will need to run `carthage checkout` when changes are made to the version to ensure they have the correct underlying binaries and scripts. +Team members can then use this build script: -Once everyone's on the same page about that, you should be able to use this build script: - -```sh +```bash # Don't run this during index builds if [ $ACTION = "indexbuild" ]; then exit 0; fi @@ -21,4 +19,4 @@ cd "${SRCROOT}/${TARGET_NAME}" "${SCRIPT_PATH}"/run-bundled-codegen.sh codegen:generate --target=swift --includes=./**/*.graphql --localSchemaFile="schema.json" API.swift ``` - \ No newline at end of file + diff --git a/docs/shared/pods-installation-panel.mdx b/docs/shared/pods-installation-panel.mdx index f43a4ec339..5275dadaee 100644 --- a/docs/shared/pods-installation-panel.mdx +++ b/docs/shared/pods-installation-panel.mdx @@ -9,9 +9,9 @@ import { -

Install CocoaPods

+

Install or update CocoaPods

-Because Apollo iOS has been written using Swift 5, you need to use version `1.7.0` or higher. You can install CocoaPods using: +Because Apollo iOS uses Swift 5, you need to use CocoaPods version `1.7.0` or later. You can install CocoaPods with the following command: ```sh gem install cocoapods @@ -24,8 +24,8 @@ Because Apollo iOS has been written using Swift 5, you need to use version `1.7. Add `pod "Apollo"` to your Podfile. - - If you also want to use the `ApolloSQLite` framework, also add `pod "Apollo/SQLite"` - - If you also want to use the `ApolloWebSocket` framework, also add `pod "Apollo/WebSocket"` + - To include the `ApolloSQLite` framework, also add `pod "Apollo/SQLite"` + - To include the `ApolloWebSocket` framework, also add `pod "Apollo/WebSocket"`
@@ -43,4 +43,4 @@ Use the `.xcworkspace` file generated by CocoaPods to work on your project.
- \ No newline at end of file + diff --git a/docs/shared/pods-run-script-panel.mdx b/docs/shared/pods-run-script-panel.mdx index 339cec183b..9ac0edf6ac 100644 --- a/docs/shared/pods-run-script-panel.mdx +++ b/docs/shared/pods-run-script-panel.mdx @@ -8,7 +8,7 @@ import { Our CocoaPods install includes the code-generation scripts and binaries of the `apollo` CLI client as files which will not be added to the framework, but which you can still call from a Run Script Build Phase. Add the following to the Run Script: -```sh +```bash # Don't run this during index builds if [ $ACTION = "indexbuild" ]; then exit 0; fi @@ -17,4 +17,4 @@ cd "${SRCROOT}/${TARGET_NAME}" "${SCRIPT_PATH}"/run-bundled-codegen.sh codegen:generate --target=swift --includes=./**/*.graphql --localSchemaFile="schema.json" API.swift ``` - \ No newline at end of file + diff --git a/docs/shared/spm-installation-panel.mdx b/docs/shared/spm-installation-panel.mdx index 8bf9967ec2..1b1772bc41 100644 --- a/docs/shared/spm-installation-panel.mdx +++ b/docs/shared/spm-installation-panel.mdx @@ -6,37 +6,39 @@ import { -**NOTE**: These instructions are intended for usage on Xcode 11 and higher. Xcode 11 is the first version of Xcode that integrates Swift Package manager and makes it _way_ easier to use than it was at the command line. If you are using older versions of Xcode, we recommend using CocoaPods. +> **Note:** These instructions use the Xcode 13 UI. Xcode 11 is the first version of Xcode that integrates Swift Package manager, whereas older versions require using the command line. If you're using an older version of Xcode, we recommend using CocoaPods instead. -Go to **File > Swift Packages > Add Package Dependency...** +Go to **File > Add Packages...** -![add a dependency](../source/screenshot/spm_packages_add_dependency.png) +Adding an SPM package -Paste the URL to the Apollo iOS repo on GitHub ([https://github.com/apollographql/apollo-ios.git](https://github.com/apollographql/apollo-ios.git)) into the search bar, then hit the **Next** button: +In the dialog that appears, paste the URL of the Apollo iOS GitHub repo (`https://github.com/apollographql/apollo-ios.git`) into the search bar, then select the `apollo-ios` package that appears: -![paste in the url](../source/screenshot/spm_paste_url.png) +Pasting the Apollo iOS GitHub URL -Select what version you want to use, then hit next. Xcode will automatically suggest the current version `Up to Next Major`, we **strongly** suggest that while the iOS SDK is on a `0.x.x` version scheme, you select `Up To Next Minor` instead, as we will still be releasing breaking changes on minor versions: +Select which version you want to use ([see version history](https://github.com/apollographql/apollo-ios/releases)), then click **Add Package**. Note that Xcode might not automatically select the latest version number! -![select a version](../source/screenshot/spm_select_version.png) +> Xcode automatically suggests the dependency rule `Up to Next Major`. We **strongly** suggest that until the release of Apollo iOS `1.x`, you select `Up To Next Minor` instead, because we might release breaking changes in a minor version. - -Select which packages you want to use. If you're just getting started, try selecting just the main `Apollo` library first - you can always come back and add the other packages later if you need them. Then hit finish. -![select the packages you want to use](../source/screenshot/spm_select_package.png) +Select which packages you want to use. If you're getting started, we recommend selecting just the main `Apollo` library for now. You can always add other packages later if you need them. -_Note: Do **not** select the `Apollo-Dynamic` target, this is only for use for projects linking to our library dynamically. Most projects will not need to do this._ +Selecting Apollo iOS packages + +> **Note:** Do **not** select the `Apollo-Dynamic` target. This target is only for projects that link to Apollo iOS. Most projects do not need to do this. + +Then, click **Add Package**. @@ -44,4 +46,4 @@ _Note: Do **not** select the `Apollo-Dynamic` target, this is only for use for p - \ No newline at end of file + diff --git a/docs/shared/spm-run-script-panel.mdx b/docs/shared/spm-run-script-panel.mdx index ccad533f2b..944e71d8c5 100644 --- a/docs/shared/spm-run-script-panel.mdx +++ b/docs/shared/spm-run-script-panel.mdx @@ -6,11 +6,11 @@ import { -> **NOTE**: If your Derived Data is in a custom location, stop, go back, and use the [Swift Scripting](./swift-scripting) method instead. This script relies on Derived Data being in the default location. Swift Scripting doesn't rely on Derived Data at all. +> **Note:** If your Derived Data is in a custom location, go back and use the [Swift Scripting](./swift-scripting) method instead. This script relies on Derived Data being in the default location. Swift Scripting doesn't rely on Derived Data at all. -If you're using Xcode 11 or higher, SPM will check out the appropriate build script along with the rest of the files when it checks out the repo. Add the following to your Run Script build phase: +If you're using Xcode 11 or higher, SPM checks out the appropriate build script along with the rest of the files when it checks out the repo. Add the following to your Run Script build phase: -```sh +```bash # Don't run this during index builds if [ $ACTION = "indexbuild" ]; then exit 0; fi @@ -38,6 +38,6 @@ cd "${SRCROOT}/${TARGET_NAME}" "${SCRIPT_PATH}"/run-bundled-codegen.sh codegen:generate --target=swift --includes=./**/*.graphql --localSchemaFile="schema.json" API.swift ``` -> NOTE: If you try to use this with command line SPM, when you regenerate your `xcodeproj` this build script will get wiped out. We strongly recommend using Xcode 11's built-in SPM handling rather than the command line because of this. +> **Note:** If you try to use this with command line SPM, when you regenerate your `xcodeproj` this build script will get wiped out. We strongly recommend using Xcode 11's built-in SPM handling instead of the command line because of this. - \ No newline at end of file + diff --git a/docs/source/downloading-schema.md b/docs/source/downloading-schema.md index 1f75482527..55e2396fe7 100644 --- a/docs/source/downloading-schema.md +++ b/docs/source/downloading-schema.md @@ -8,13 +8,13 @@ Apollo iOS requires a GraphQL schema file as input to the code generation proces You can use the [Apollo CLI](https://www.apollographql.com/docs/devtools/cli/) to download a GraphQL schema by sending an introspection query to the server. -If you've installed the CLI globally, you can use the following command to download your schema: +If you've installed the CLI globally, you can use the following command to download your schema: ```sh apollo schema:download --endpoint=http://localhost:8080/graphql schema.json ``` -Note that if you're using the local version set up for codegen, you'll want to use the same method you're using in the [Adding A Code Generation Build Step](installation#adding-a-code-generation-build-step) instructions to access that specific CLI. For example, if you're using CocoaPods, you can set it up like this to download your schema: +Note that if you're using the local version set up for codegen, you'll want to use the same method you're using in the [Add a code generation build step](/installation/#5-add-a-code-generation-build-step) instructions to access that specific CLI. For example, if you're using CocoaPods, you can set it up like this to download your schema: ```sh SCRIPT_PATH="${PODS_ROOT}/Apollo/scripts" diff --git a/docs/source/index.mdx b/docs/source/index.mdx index 6821c93355..8a6684324a 100644 --- a/docs/source/index.mdx +++ b/docs/source/index.mdx @@ -1,35 +1,48 @@ --- -title: Introduction +title: Introduction to Apollo iOS +sidebar_title: Introduction description: A strongly-typed, caching GraphQL client for iOS, written in Swift --- -[Apollo iOS](https://github.com/apollographql/apollo-ios) is a strongly-typed, caching GraphQL client for native iOS apps written in Swift. +import { Button } from '@apollo/space-kit/Button'; +import { Link } from 'gatsby'; +import { colors } from 'gatsby-theme-apollo-core'; -It allows you to execute queries and mutations against a GraphQL server and returns results as query-specific Swift types. This means you don't have to deal with parsing JSON, or passing around dictionaries and making clients cast values to the right type manually. You also don't have to write model types yourself, because these are generated from the GraphQL definitions your UI uses. +**Apollo iOS** is an [open-source](https://github.com/apollographql/apollo-ios) GraphQL client for native iOS apps, written in Swift. It enables you to execute queries and mutations against a GraphQL server and returns results as operation-specific Swift types. -As the generated types are query-specific, you're only able to access data you actually specify as part of a query. If you don't ask for a field in a particular query, you won't be able to access the corresponding property on the returned data structure. +

+ + +

-In effect, this means you can now rely on the Swift type checker to make sure errors in data access show up at compile time. With our Xcode integration, you can conveniently work with your UI code and corresponding GraphQL definitions side by side, and it will even validate your query documents, and show errors inline. +## Benefits -Apollo iOS does more than simply run your queries against a GraphQL server, however. It normalizes query results to construct a client-side cache of your data, which is kept up to date as further queries and mutations are run. This means your UI is always internally consistent, and can be kept fully up-to-date with the state on the server with the minimum number of queries required. +### Strong typing with codegen -This combination of immutable models, one way data flow, and automatic consistency management, leads to a very powerful and elegant programming model that allows you to eliminate common glue code and greatly simplifies app development. +Thanks to strong typing in Apollo iOS, you don't need to deal with parsing JSON responses or passing around dictionaries of values that require manual casting. You also don't need to write model types yourself, because models are generated from the GraphQL operations your UI defines. -## Getting Started +Because generated types are operation-specific, they include properties _only_ for the GraphQL fields included in their corresponding operation. This means you can rely on the Swift type checker to flag data access errors at compile time. -We have a [detailed iOS tutorial](./tutorial/tutorial-introduction) walking you through how to build an app called [RocketResever](https://github.com/apollographql/iOSTutorial), which talks to the backend built in the [Fullstack Tutorial](https://www.apollographql.com/docs/tutorial/introduction/). +Apollo's Xcode integration enables you to work with your UI code and corresponding GraphQL definitions side by side. It even validates your query documents, showing errors inline. -If you have questions or would like to contribute, please join our community at [https://community.apollographql.com/](http://community.apollographql.com/new-topic?category=Help&tags=mobile,client). +### Normalized caching -## Related platforms +Apollo iOS normalizes operation results to build a client-side cache of your data, which is updated with every operation you execute. This means your UI is always internally consistent, and it can stay up to date with your backend with as few operation as possible. -[Apollo Android](https://github.com/apollographql/apollo-android) is a GraphQL client for native Android apps written in Java and Kotlin, and offers Kotlin Multi-Platform integration as well. +[Learn more about caching.](./caching/) -Apollo Client for JavaScript's [React integration](https://apollographql.com/docs/react) works with [React Native](https://facebook.github.io/react-native/) on both iOS and Android. +## Related libraries -## Other resources +[Apollo Kotlin](https://www.apollographql.com/docs/kotlin/) is a GraphQL client for native Android apps written in Java and Kotlin. It offers Kotlin Multi-Platform integration as well. -- [GraphQL.org](http://graphql.org) for an introduction and reference to the GraphQL itself, partially written and maintained by the Apollo team. -- [Our website](http://www.apollographql.com/) to learn about Apollo open-source and commercial tools. -- [Our blog](https://www.apollographql.com/blog/) for long-form articles about GraphQL, feature announcements for Apollo, and guest articles from the community. -- [Our Twitter](https://twitter.com/apollographql) for in-the-moment news. +Apollo Client for JavaScript's [React integration](https://apollographql.com/docs/react) works with [React Native](https://facebook.github.io/react-native/) on both iOS and Android. diff --git a/docs/source/installation.mdx b/docs/source/installation.mdx index 232e4f8055..b272b70305 100644 --- a/docs/source/installation.mdx +++ b/docs/source/installation.mdx @@ -1,5 +1,6 @@ --- -title: Installation +title: Installing Apollo iOS +sidebar_title: Installation --- import SPMInstallationPanel from "../shared/spm-installation-panel.mdx" @@ -9,19 +10,13 @@ import PodsRunScriptPanel from "../shared/pods-run-script-panel.mdx" import CarthageInstallationPanel from "../shared/carthage-installation-panel.mdx" import CarthageRunScriptPanel from "../shared/carthage-run-script-panel.mdx" -Apollo iOS requires the latest Xcode, which can be installed from the [Mac App Store](http://appstore.com/mac/apple/xcode). +Follow the steps below to add Apollo iOS to your app: -Follow along with these steps (described in detail below) to use Apollo iOS in your app: +## 1. Update Xcode -1. Install the Apollo framework into your project and link it to your application target -1. Add a schema file to your target directory -1. (optional) Install the Xcode add-ons to get syntax highlighting for your `.graphql` files -1. Create `.graphql` files with your queries or mutations and add them to your target -1. Add a code generation build step to your target -1. Build your target -1. Add the generated API file to your target +Before installing Apollo iOS, make sure you're using the latest version of Xcode. You can update Xcode via the [Mac App Store](http://appstore.com/mac/apple/xcode). -## Installing the Apollo framework +## 2. Install the Apollo framework You can install `Apollo.framework` into your project using any of the three major Cocoa ecosystem package managers: Swift Package Manager, CocoaPods, or Carthage. @@ -34,18 +29,18 @@ You can install `Apollo.framework` into your project using any of the three majo -## Adding a schema file to your target directory +## 3. Add a schema file to your target directory -You'll have to copy or [download a schema](/downloading-schema/) to your target's directory before generating code. +For Apollo iOS to generate models for your GraphQL operations, you need a local copy of your GraphQL server's schema. To acquire this schema, see [Downloading a schema](/downloading-schema/). -Apollo iOS requires a GraphQL schema file as input to the code generation process. A schema file is a JSON file that contains the results of an introspection query. Conventionally this file is called `schema.json`. +Make sure to add your `schema.json`/`schema.graphqls` file to the folder where most of your code is, _not_ to the folder where your `.xcodeproj` and/or `.xcworkspace` files are located. -Note that you need to add this in the folder where most of your code is, NOT in the same folder where the `.xcodeproj` and/or `.xcworkspace` are located. Here is a rough ASCII representation of what this should look like: +Here's an example file structure: -``` +```{4} | - your_project_folder | your_project.xcodeproj - | - your_target_folder + | - your_target_folder | schema.json | AppDelegate.swift | ViewController.swift @@ -54,35 +49,33 @@ Note that you need to add this in the folder where most of your code is, NOT in | etc... ``` -> **NOTE:** You _can_ add this file someplace else, but if you do, you will need to update the relative paths in the scripts in the steps below. - -## [Optional] Installing the Xcode add-ons to get syntax highlighting +> **Note:** You _can_ put the schema file in a different location, but if you do, you need to modify all relative paths to the file shown in future steps. -Check out[`xcode-apollo`](https://github.com/apollographql/xcode-graphql) the repository and follow the [installation guide](https://github.com/apollographql/xcode-graphql#installation). +## 3. Install the Xcode add-ons for syntax highlighting (optional) -## Creating `.graphql` files with your queries or mutations +Check out the [`xcode-apollo`](https://github.com/apollographql/xcode-graphql) repository and follow its [installation guide](https://github.com/apollographql/xcode-graphql#installation). -Apollo iOS will generate code from queries and mutations contained in `.graphql` files in your target. +## 4. Create `.graphql` files for your GraphQL operations -A useful convention is to colocate queries, mutations or fragments with the Swift code that uses them by creating `.graphql` next to `.swift`. +Apollo iOS generates code from GraphQL queries and mutations defined in `.graphql` files in your target. As a useful convention, you can define each `[operation].graphql` file alongside whichever `[operation].swift` file uses the corresponding operation. -If you have the Xcode add-ons installed, you can use the Xcode companion view to show a `.swift` file and the corresponding `.graphql` file side by side. +If you have the Xcode add-ons installed, you can use the Xcode companion view to show a `.swift` file and its corresponding `.graphql` file side by side. -> NOTE: If you don't have pre-existing `.graphql` files in your file tree, create a very simple query and add it to a `.graphql` file in your file tree so that when you run the code generation build step, it actually finds something. If you don't, you'll get the error `No operations or fragments found to generate code for`. +> **Note:** If you don't have _any_ `.graphql` files in your build tree yet, create one that contains a basic valid operation. If you don't, the code generation build step generates the error `No operations or fragments found to generate code for`. -## Adding a code generation build step +## 5. Add a code generation build step -Code generation uses your `.graphql` files to generate API code that will help you send queries, subscriptions, and mutations, as well as parse and cache responses. To run code generation as part of the Xcode build process, you need to create a build step that runs before "Compile Sources" to invoke a wrapper script. +Apollo iOS code generation uses your `.graphql` files to generate API code that helps you execute all forms of GraphQL operations, as well as parse and cache operation responses. To run code generation as part of the Xcode build process, you need to create a build step that runs before "Compile Sources" to invoke a wrapper script. -The wrapper will call through to the included binaries and files that constitute the `apollo` command-line interface. This ensures that you can use our tooling without having to worry about NPM Version Hellβ„’, and that the version of the framework you're using is compatible with the version of the codegen you're using. +The wrapper script calls through to the included binaries and files that constitute the `apollo` command-line interface. This helps ensure that you can use our tooling without having to worry about mismatched versioning between libraries. -> πŸŽ‰ NEW SHINY ALERT πŸŽ‰ : Instead of writing the rest of this in Bash, try using our new [Swift Scripting Library](./swift-scripting), now in Beta! It supports downloading a schema and generating code. +> πŸ“£ **Check it out:** Instead of writing the rest of this in Bash, try using our new [Swift Scripting Library](./swift-scripting), now in Beta! It supports downloading a schema and generating code. -The location of this wrapper script is slightly different based on how you've integrated Apollo into your project, but the first steps are the same everywhere: +The location of this wrapper script depends on how you've integrated Apollo into your project, but these first steps are always the same: -1. On your application target's **Build Phases** settings tab, click the **+** icon and choose **New Run Script Phase**. -2. In the created Run Script, change its name to **Generate Apollo GraphQL API** -3. Drag this new run script just above **Compile Sources** in your list of **Build Phases** so that it executes before your code is compiled. +1. On your application target's **Build Phases** settings tab, click the **+** icon and choose **New Run Script Phase**. +2. In the created Run Script, change its name to **Generate Apollo GraphQL API**. +3. Drag this new run script just above **Compile Sources** in your list of **Build Phases** so that it executes _before_ your code is compiled. 4. Add the contents of the appropriate run script for the package manager you're using: @@ -94,65 +87,69 @@ The location of this wrapper script is slightly different based on how you've in -## Build your target +## 6. Build your target -At this point, you can try building your target in Xcode. This will verify that the `schema.json` file can be found by the `apollo` script created above, and run the codegen. +At this point, you can try building your target in Xcode. This verifies that the code generation build step can correctly locate your schema file. ### Troubleshooting -If you get this error: +If you get this error: -> Cannot find GraphQL schema file [...] +> `Cannot find GraphQL schema file [...]` -The script is not able to find your schema file - double check the path you've used. +The script can't locate your schema file. Double check the path you've used. -If you get this error: +If you get this error: -> No operations or fragments found to generate code for. +> `No operations or fragments found to generate code for.` -If you don't have any `.graphql` files in your build tree, and you need to create at least `.graphql` file with a valid query. +You haven't defined at least one `.graphql` file with a valid operation in your build tree. -If you need to validate the structure of your query, please use the [GraphiQL](https://github.com/graphql/graphiql) instance provided by your API, which will show errors if your query is invalid. If you don't have access to a GraphiQL instance, you can use [Prettier.io's playground](https://prettier.io/playground/) to format arbitrary GraphQL queries by clicking "Show Options" and selecting the GraphQL parser from the "Global" drop-down. +If you need to validate the structure of a GraphQL operation, you can test it against your GraphQL server using [Apollo Sandbox](https://studio.apollographql.com/sandbox). -## Adding the generated API file to your target +## 7. Add the generated API file to your target Drag the generated `API.swift` file to your target. -> Note that because Apollo iOS generates query-specific result types, `API.swift` will be mostly empty at this point unless you've already added some `.graphql` files with queries or mutations to your target directory. +> **Note:** Because Apollo iOS generates operation-specific result types, `API.swift` is mostly empty at this point unless you've already added multiple `.graphql` files to your target directory. + +Make sure to uncheck the "Copy Files If Needed" checkbox, because it should already be in your project's folder system. Then, make sure you've checked all the Targets the API file needs to be included in. -Make sure to uncheck the "Copy Files If Needed" checkbox, since it should already be within your project's folder system. Then, make sure you've checked all the Targets the API file needs to be included in. +**Installation complete!** You can now start executing GraphQL operations in your app. To learn how, next check out [Creating a client](/initialization/) and [Fetching queries](/fetching-queries/). -## Advanced Codegen Tips And Tricks +You can also continue reading below for some [advanced codegen tips](#advanced-codegen-tips-and-tricks). -Here are a few things you can do to make your code generation even better once you've gotten up and running with the basics above: +## Advanced codegen tips and tricks -### Prevent Unnecessary Recompilation +After you get up and running, here are a few improvements you can make to your codegen process. -#### Set Up Input And Output Files In Your Build Phase +### Prevent unnecessary recompilation -Particularly if you're using Interface Builder or SwiftUI to talk to a module which also has a code generation build step, this is helpful to prevent the `API.swift` file from causing an auto-regeneration loop. +#### Set up input and output files in your build phase -For example, if you're using something like this to run your code generation for a target called `YourTarget`: +If you're using a tool like Interface Builder or SwiftUI to talk to a module with its own code generation build step, this is helpful to prevent the `API.swift` file from causing an auto-regeneration loop. + +For example, if you're using something like this to run your code generation for a target called `YourTarget`: ``` "${SCRIPT_PATH}"/run-bundled-codegen.sh codegen:generate --target=swift --includes=./**/*.graphql --localSchemaFile="schema.json" API.swift ``` -Assuming you've set the script out to run from `$(SRCROOT)/YourTarget`, you can add `$(SRCROOT)/YourTarget/**/*.graphql` (the path you're running it from + the glob you're passing to the `includes` CLI parameter) to the list of `Input Files` for your Apollo Run Script Build phase. Then you can add `$(SRCROOT)/YourTarget/API.swift` (the path you're running it from + the output file) to the list of `Output Files`: +Assuming you've set the script to run from `$(SRCROOT)/YourTarget`, you can add `$(SRCROOT)/YourTarget/**/*.graphql` (the path you're running it from + the glob you're passing to the `includes` CLI parameter) to the list of `Input Files` for your Apollo Run Script Build phase. Then, you can add `$(SRCROOT)/YourTarget/API.swift` (the path you're running it from + the output file) to the list of `Output Files`: -![screenshot of input and output files](screenshot/input_output_files.png) +Setting input and output files -This should prevent automatic rebuild cycles if none of the `InputFiles` are changed. The script *will* still run if you explicitly build and run. +This should prevent automatic rebuild cycles if none of the `InputFiles` are changed. The script *will* still run if you explicitly build and run. -There's an [open issue to auto-generate input and output file lists](https://github.com/apollographql/apollo-ios/issues/636) which will be addressed as part of the Swift Codegen project, but this will help until that's done. +There's an [open issue to auto-generate input and output file lists](https://github.com/apollographql/apollo-ios/issues/636) which will be addressed as part of Apollo iOS 1.0, but this will help until that's done. -#### Write to a Temporary File +#### Write to a temporary file -If for some reason the input/output file setup above doesn't work for you, you can also decide to first write the file to a temporary location, and then compare this temporary file to the current one. And then only when the files differ you move the temporary file into place. +If for some reason the input/output file setup above doesn't work for you, you can also decide to first write the file to a temporary location, and then compare this temporary file to the current one. Then, only when the files differ you move the temporary file into place. -For a target called `YourTarget` the script could look something like; +For a target called `YourTarget`, the script could look something like this: -``` +```bash "${SCRIPT_PATH}"/run-bundled-codegen.sh codegen:generate --target=swift --includes=./**/*.graphql --localSchemaFile="schema.json" "${SRCROOT}/YourTarget/API.swift.new" if ! diff -q "${SRCROOT}/YourTarget/API.swift.new" "${SRCROOT}/YourTarget/API.swift"; then mv "${SRCROOT}/YourTarget/API.swift.new" "${SRCROOT}/YourTarget/API.swift" @@ -161,8 +158,8 @@ else fi ``` -### Generate Multiple Files In A Folder Instead Of One Giant File +### Generate multiple files in a folder instead of one large file -Instead of passing a single `API.swift` file, pass a (pre-existing) relative folder path such as `API` as the final parameter. This will cause the codegen to create individual files and place them in that folder. +Instead of passing a single `API.swift` file, you can pass a (pre-existing) relative folder path such as `API` as the final parameter. This causes the codegen to create individual files and place them in that folder. -With small sets of `graphql` files this is usually overkill, but with large sets that can cause `API.swift` to be huge, this can help significantly reduce compilation time. +With small sets of `graphql` files this is usually unnecessary, but with large sets that can cause `API.swift` to be huge. Dividing it up like this can help significantly reduce compilation time. diff --git a/docs/source/screenshot/spm_packages_add_package.jpg b/docs/source/screenshot/spm_packages_add_package.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b6a3d8f1a1842be9ee15f6396d015e47149b3ef9 GIT binary patch literal 24917 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 E0AK+~{{R30 literal 0 HcmV?d00001 diff --git a/docs/source/screenshot/spm_packages_dialog.jpg b/docs/source/screenshot/spm_packages_dialog.jpg new file mode 100644 index 0000000000000000000000000000000000000000..abaf1d05419a329aeec9c7ec6fb33e47cbcf62c1 GIT binary patch literal 53291 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 literal 0 HcmV?d00001 diff --git a/docs/source/screenshot/spm_select_package.jpg b/docs/source/screenshot/spm_select_package.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e87b7d0c53396b587fae2d02dd0a2f5f9f83b945 GIT binary patch literal 74633 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
#P?poUCCYa>qd9$wOD`QAB&#ky|i< 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 -You'll know that this Sandbox instance is pointed at our server because its URL, `https://apollo-fullstack-tutorial.herokuapp.com`, is in the box at the top left of the page. If Sandbox is properly connected, you'll see a green dot: +You'll know that this Sandbox instance is pointed at our server because its URL, `https://apollo-fullstack-tutorial.herokuapp.com`, is in the box at the top left of the page. If Sandbox is properly connected, you'll see a green dot: A closeup of the URL box with a dot indicating it's connected -The schema defines which GraphQL operations your server can execute. At the top left, click the schema icon to get an overview of your schema: +The schema defines which GraphQL operations your server can execute. At the top left, click the schema icon to get an overview of your schema: The schema icon to click @@ -24,11 +24,11 @@ The Apollo iOS SDK needs a local copy of your server's schema to generate code f To use the Apollo CLI from Xcode, add a **Run Script** build phase to your app: -1. Select the `xcodeproj` file in the Project Navigator, and then select the `RocketReserver` application target: +1. Select the `xcodeproj` file in the Project Navigator, and then select the `RocketReserver` application target: Selecting application target -2. A list of tabs appears. Select the **Build Phases** tab: +2. A list of tabs appears. Select the **Build Phases** tab: Build phases menu item @@ -37,7 +37,7 @@ To use the Apollo CLI from Xcode, add a **Run Script** build phase to your app: Creating a new run script build phase This adds a new Run Script build phase to the bottom of your list of build phases. - + 4. Drag the newly created phase up between "Dependencies" and "Compile Sources": Where to drag the run script @@ -46,7 +46,7 @@ To use the Apollo CLI from Xcode, add a **Run Script** build phase to your app: UI for renaming -6. Expand the Apollo phase. Paste the **Swift Package Manager Run Script** from [Adding a code generation build step](/installation/#adding-a-code-generation-build-step) into the text area. This script uses your schema to generate the code that the Apollo iOS SDK uses to interact with your server. +6. Expand the Apollo phase. Paste the **Swift Package Manager Run Script** from [Add a code generation build step](/installation/#5-add-a-code-generation-build-step) into the text area. This script uses your schema to generate the code that the Apollo iOS SDK uses to interact with your server. 7. Before the script can generate code, it needs a local copy of your GraphQL server's schema. For now, using a `#`, **comment out the last line** of the script you pasted and add the following line below it: @@ -60,7 +60,7 @@ To use the Apollo CLI from Xcode, add a **Run Script** build phase to your app: Where to drag the schema file - When Xcode offers to add the schema file, make sure **all targets are unchecked** to reduce the size of your application bundle: + When Xcode offers to add the schema file, make sure **all targets are unchecked** to reduce the size of your application bundle: All targets unchecked in dialog