- Apollo Client: Fully-featured, production ready caching GraphQL client
- Graphcool: Flexible backend platform combining GraphQL + AWS Lambda
For more information on how to get started refer to the full ios-apollo-instagram tutorial.
git clone https://github.com/graphcool-examples/ios-graphql.git
cd ios-graphql/quickstart-with-apollo
2. Create Graphcool service with the Graphcool CLI
# Install Graphcool Framework CLI
npm install -g graphcool
# Create a new service inside a directory called `server`
graphcool init server
This created the following file structure in the current directory:
.
└── server
├── graphcool.yml
├── types.graphql
└── src
├── hello.graphql
└── hello.js
Next, you need to define your data model inside the newly created types.graphql
-file.
Replace the current contents in types.graphql
with the following type definition (you can delete the predefined User
type):
type Post @model {
# Required system field
id: ID! @isUnique # read-only (managed by Graphcool)
# Optional system fields (remove if not needed)
createdAt: DateTime! # read-only (managed by Graphcool)
updatedAt: DateTime! # read-only (managed by Graphcool)
description: String!
imageUrl: String!
}
You're now ready to put your Graphcool service into production! Navigate into the server
directory and deploy the service:
cd server
graphcool deploy
Save the HTTP endpoint for the Simple API
from the output, you'll need it in the next step.
Note: You can now test your GraphQL API inside a GraphQL playground. Simply type the
graphcool playground
command and start sending queries and mutations.
Paste the Simple API
endpoint into AppDelegate.swift
to instantiate the ApolloClient
:
// replace `__SIMPLE_API_ENDPOINT__` with the endpoint from the previous step
let apollo = ApolloClient(url: URL(string: "__SIMPLE_API_ENDPOINT__")!)
To use the Apollo iOS Client, you need to install apollo-codegen
, a command line tool that will generate Swift types from your GraphQL queries & mutations at build-time.
npm install -g apollo-codegen
You can find more info the installation process in the Apollo docs.
cd ..
carthage update
Start the app in Xcode 🚀
- Documentation
- Advanced GraphQL features
- Authentication & Permissions
- Implementing business logic with serverless functions
Join our Slack community if you run into issues or have questions. We love talking to you!