# Sync iOS Quickstart

In this guide, we will get you up and running quickly with a sample application
you can build on as you learn more about Sync. Sound like a plan? Then
let's get cracking!

**Table Of Contents**

* [Gather account information](#gather-account-information)
* [Download and configure a server backend for your platform](#download-configure-and-run-the-starter-server-app)
* [Explore the starter iOS server app](#explore-the-starter-ios-webserver-app)

## Gather account information

The first thing we need to do is grab all the necessary information from our
Twilio account. To set up our back-end for Sync, we will need four
values from our account:

| Config Values        | Description                                                                                                                                                                            |
| :------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Service Instance SID | A [service](/docs/sync/api/service) instance where all the data for our application is stored and scoped. Generate one using the [console Sync Services tool](/console/sync/services). |
| Account SID          | Your primary Twilio account identifier - find this [on the main page of the Twilio console](/console).                                                                                 |
| API Key              | Used to sign tokens. Generate one using the [console API Keys tool](/console/project/api-keys).                                                                                        |
| API Secret           | Used to sign tokens, together with the corresponding API Key.                                                                                                                          |

## Download, configure, and run the starter server app

Choose a download package for your server-side language of choice or [download the whole repository](https://github.com/twilio/sync-quickstart-ios/archive/master.zip). If you're primarily a front-end developer and don't have a strong preference,
Python, Node.js, or Ruby will probably get you up and running the fastest.

* [Download for C#](https://github.com/TwilioDevEd/sdk-starter-csharp/archive/master.zip)
* [Download for Java](https://github.com/TwilioDevEd/sdk-starter-java/archive/master.zip)
* [Download for Node.js](https://github.com/TwilioDevEd/sdk-starter-node/archive/master.zip)
* [Download for PHP](https://github.com/TwilioDevEd/sdk-starter-php/archive/master.zip)
* [Download for Python](https://github.com/TwilioDevEd/sdk-starter-python/archive/master.zip)
* [Download for Ruby](https://github.com/TwilioDevEd/sdk-starter-ruby/archive/master.zip)

Follow the instructions in the README for each starter application to configure
and run it on your machine, using the four values we created above:

* [Instructions for C#](https://github.com/TwilioDevEd/sdk-starter-csharp)
* [Instructions for Java](https://github.com/TwilioDevEd/sdk-starter-java)
* [Instructions for Node.js](https://github.com/TwilioDevEd/sdk-starter-node)
* [Instructions for PHP](https://github.com/TwilioDevEd/sdk-starter-php)
* [Instructions for Python](https://github.com/TwilioDevEd/sdk-starter-python)
* [Instructions for Ruby](https://github.com/TwilioDevEd/sdk-starter-ruby)

## Explore the starter iOS web/server app

To get going quickly, there is a starter iOS web/server app. Download it now:

* [Download for iOS](https://github.com/twilio/sync-quickstart-ios/archive/master.zip)

### Configure and Run the Mobile App

If you'd like to run the application in the simulator, you're all set and ready to play! To run on the device, you'll need to have the server on your machine reachable from the device - either using ngrok to forward traffic to your machine or hosting it somewhere accessible.

This is where the fun begins! When you visit the homepage of the starter application, you should see a page which looks like this:

![Tic-Tac-Twilio game board with sync initialized message.](https://docs-resources.prod.twilio.com/0c1b1620484981124c15aa211fbdb628939b2004e2daa6134ada50266ae8ef31.png)

You have been assigned a random [user identity](/docs/sync/identity-and-access-tokens) and opened a [Sync document](/docs/sync/api/document-resource) called "sync.game". If you open this app on another device or you can play against the server running locally on your machine in a browser window or tab, you should be able to play an X or O on the board and see the game board replicate across the other client.

The HTML and CSS in the starter application aren't terribly interesting, but the
JavaScript code driving this application has a few very important jobs:

1. Fetch an `AccessToken` from the server via Ajax
2. Initialize Sync JavaScript SDK
3. Open a [Sync document](/docs/sync/api/document-resource) called "sync.game".
4. Handle UI events to update the document or refresh the document when other users make changes

The iOS application demonstrates:

1. Fetching an `AccessToken` from the server via HTTP
2. Initializing the Sync iOS SDK
3. Open a [Sync document](/docs/sync/api/document-resource) called "sync.game".
4. Handle UI events to update the document or refresh the document when other users make changes

We explore how to manage your users in our [user identity guide](/docs/sync/identity-and-access-tokens) and cover everything you can do with Sync objects in the [Sync Objects Overview](/docs/sync/objects-overview).

## What's next?

Now that you have completed the Sync Quickstart,

* Check out our guide to [Managing Identity and Access Tokens](/docs/sync/identity-and-access-tokens) when working with Sync.
* Have fun building with Sync and [make sure to let us know](https://twitter.com/twilio) what you're building!
