/Play

Hello world. Love, iPad.

Primary LanguageSwiftMIT LicenseMIT

Hello world. Love, iPad.

Play is an iPad client for the OS X Swift REPL.

Overview

Play lets you write and run Swift code from your iPad. A small Node.js app runs on your Mac and opens up a single socket over which the iPad app and your Mac can exchange Swift code and code output. The Node side simply creates a Swift file, executes the file using swift in Terminal, and sends the output back to the iPad app.

What you need

  • An iPad with iOS 9.0+ and an external keyboard
  • A Mac with OS X 10.10+, Xcode 7.1+, and Node.js

What's in the box?

Play

  • 1 iPad app
  • 1 Node.js app

Installation

Xcode

Play requires the Swift REPL to be installed and available via the terminal with the swift command.

Node

Node can be installed with Homebrew using the following command:

brew install node

More information about Node.js can be found here.

Node packages

Play uses two node packages, socket.io and shell.js. Both packages can be installed with npm using the following commands:

npm install socket.io
npm install shelljs

Usage

Starting the server

To start the Node server, open a Terminal window up to the Node folder and enter the following command:

node app.js

The socket will then open on port 1993 and should be ready to receive Swift code.

Configuring the client

In PSocket.swift, replace the IP address with the wireless IP address of your Mac in the following line:

private let socket = SocketIOClient(socketURL: "http://10.0.1.50:1993", options: [])

This IP address can be found by going to the Network tab of System Preferences.

Running Swift code

To run code from the iPad app, open the app on an iPad connected to the same Wifi network. Press ⌘ + R to run.

The included index.html file has a javascript function sendCode(testCode) that you can use to easily send Swift code to the server for testing. sendCode takes one String of code and will cause the code's output to display in the Terminal window running the Node server.

What's coming up?

  • Removing the physical keyboard requirement
  • Saving snippets

Credits

Play was designed by Sahand Nayebaziz.

License

Play is released under the MIT license. See LICENSE for details.