Swift library of lightweight interfaces for prototyping, bridged to JS
Swift JavaScript Shell Other
Latest commit b297464 Jun 22, 2016 @andymatuschak andymatuschak Fixed optional force build error
Test plan: Played around with Early Math protos
Permalink
Failed to load latest commit information.
Examples Revert "Revert 8e728ba..1c25688" Jul 31, 2015
Protocaster Revert "Revert 8e728ba..1c25688" Jul 31, 2015
ProtocasterTests Revert "Revert 8e728ba..1c25688" Jul 31, 2015
Protorope Revert "Revert 8e728ba..1c25688" Jul 31, 2015
Protoscope Um, sorry, that was supposed to be BUNDLE_ID_SUFFIX Dec 11, 2015
ProtoscopeTests Revert "Revert 8e728ba..1c25688" Jul 31, 2015
Prototope.xcodeproj Bump JS bridges deployment target to 9.1 and bridge new TouchSample p… Mar 15, 2016
Prototope Merge pull request #112 from jbrennan/apple-pencil Apr 9, 2016
PrototopeJSBridge Fixed optional force build error Jun 21, 2016
PrototopeJSBridgeTests Revert "Revert 8e728ba..1c25688" Jul 31, 2015
PrototopeOSX Oh my god it builds Aug 10, 2015
PrototopeOSXTests Revert "Revert 8e728ba..1c25688" Jul 31, 2015
PrototopeTestApp Revert "Revert 8e728ba..1c25688" Jul 31, 2015
PrototopeTests Revert "Revert 8e728ba..1c25688" Jul 31, 2015
ThirdParty Not sure what is happening. Aug 18, 2015
script Revert "Revert 8e728ba..1c25688" Jul 31, 2015
.arcconfig Add default .arcconfig/.arclint file Jul 29, 2015
.arclint Add default .arcconfig/.arclint file Jul 29, 2015
.gitignore Revert "Revert 8e728ba..1c25688" Jul 31, 2015
.gitmodules Making pop submodule point to my fork of it for now. Jul 31, 2015
.travis.yml Revert "Revert 8e728ba..1c25688" Jul 31, 2015
Prototype.swift Revert "Revert 8e728ba..1c25688" Jul 31, 2015
README.mdown Revert "Revert 8e728ba..1c25688" Jul 31, 2015

README.mdown

Build Status

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.

Bootstrapping with prototope

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!

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.