by Luke Crawford

Background Availability
people rely more and more on web apps
internet access is not ubiquitous
even works on planes

Background Features
enable rich-internet-apps to be full peers
remove latency of the internet
distribute processing to the edge of the network
peer-to-peer server with advanced sync
encourages more desktop-like user interfaces

What’s slingshot
mac + pc desktop app
rails plugin
ruby + mongrel runtime
set of conventions
GPLv2 open-source software

Current uses
apple: instead of cocoa apps
farm app for cows
government internal app
joyent connector

(connector Demo)

slingshot isn’t 100% complete, some of the things they use on connector aren’t finished or resolved yet for more advanced apps.

xml or http

mac + pc desktop app
rails plugin
ruby + mongrel runtime

radiant CMS
the perfect candidate for slingshot

rails plugin
syncs at the DB level
uses sqlite locally
provides hooks to write your own sync code
can run other processes locally

slinging your app
five easy steps (+1)
install plugin
add create_at + updated_at columns
add routes
generate sync controller
implement aggregate_data

dropping a link initiates a background download of a file
currently only working in MacOSX

define different post rules for different kinds of files
http post to the PostURI

standard .app package
distribute as a .dmg
customize .nib files in XCode
info.plist settings
NSIS installer
Resource Hacker

What does slingshot not do yet?
sync conflict resolution
encrypt your code
domain-specific online/offline issues
package your app automatically
update itself + your Rails app code


code, wiki, blog, mailing list: