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.
You'll need Xcode 6.3 to use Prototope!
You can clone the OhaiPrototope project. 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!
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
$ 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).
This part is somewhat more involved.
- under Embedded Libraries, add Prototope.framework
- under Build Settings -> Other Linker Flags, add
-Objc -lc++
- under Build Settings -> Header Search Paths, add
$(SRCROOT)/prototope/Prototope/
$(SRCROOT)/prototope/ThirdParty/
(set it to be recursive)
- under Build Settings -> Library Search Paths, add
$(SRCROOT)/prototope/ThirdParty
(set it to be recursive)
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.