Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

http://khan.github.io/Prototope/

Swift library of lightweight interfaces for prototyping, bridged to JS
http://khan.github.io/Prototope/

Last synced: about 2 months ago
JSON representation

Swift library of lightweight interfaces for prototyping, bridged to JS

Lists

README

        

[![Build Status](https://travis-ci.org/Khan/Prototope.svg?branch=master)](https://travis-ci.org/Khan/Prototope)

# Prototope

Prototope is a lightweight, high-performance prototyping framework. Its goals are:
* making simple things very easy
* making complex things possible
* enabling rapid iteration
* high performance execution
* concepts easily mapped onto production implementation

Interfaces to the API are presently available in Swift and JavaScript. The current implementation only runs on iOS, but the interface should be portable.

You can use Protocaster (a Mac app) to broadcast live-reloading JavaScript prototypes to Protoscope (an iOS app). More documentation about this is forthcoming.

Documentation is available [here](http://khan.github.io/Prototope/).

## Bootstrapping with prototope

**You'll need Xcode 6.3 to use Prototope!**

You can clone the [OhaiPrototope project](https://github.com/khan/ohaiprototope). If you do, you'll need to run
```
$ git submodule update --init --recursive
```
from within the repo in order to pull down the prototope and pop submodules. The project, however, is ready to go. Edit `MainScene.swift` and start making dreams come true!

## Including prototope in your existing project

If you plan to include prototope as a submodule from within your project, you'll likely have to do the following from within your project

### getting it
```
$ git submodule add https://github.com/khan/prototope
$ git submodule update --init --recursive
```

the first adds prototope as a git submodule to your project (and clones it outright), but you need the second command in order to pull in prototope's dependencies (namely pop).

### adding it to xcode

This part is somewhat more involved.

1. under *Embedded Libraries*, add Prototope.framework
2. under *Build Settings -> Other Linker Flags*, add `-Objc -lc++`
3. under *Build Settings -> Header Search Paths*, add
* `$(SRCROOT)/prototope/Prototope/`
* `$(SRCROOT)/prototope/ThirdParty/` (set it to be recursive)
4. under Build Settings -> Library Search Paths, add `$(SRCROOT)/prototope/ThirdParty` (set it to be recursive)

### making sure things work

You should be able to test that you've imported everything if you can type `import Prototope` in your ViewController.swift file and if the project *builds*. XCode may complain that it can't find the bridging header in the gutter, but it's a lie. It can, and if the project builds, you're in good shape.