Introduction to SproutCore at JSConf

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    5 Favorites

    Introduction to SproutCore at JSConf - Presentation Transcript

    1. Fast & uid
    2. Web-native (no plugins)
    3. Local agency
    4. Server not worried about UI
    5. {\"status\":\"1\", \"data\": [{\"guid\":\"PAPER-110226\",\"type\":\"Paper\",\"title\": \"Disaggregation of rainfall time series via Gibbs sampling\",\"abstract\":\"We propose a MCMC methodology to estimate all the components of the RodriguezIturbe model.\", \"year\":\"1998\",\"fixedyear\":\"2\",\"references\": [\"PAPER-22950\",\"PAPER-434520\",\"PAPER-77136\"],\"c itations\":[],\"authors\": [{\"guid\":\"AUTHOR-128481\",\"name\":\"R. L. Smith\"}, {\"guid\":\"AUTHOR-243476\",\"name\":\"V. Granville\"}]}
    6. class RefreshController < ApplicationController before_filter :signin_required def index render :text => JSON.generate(Refresher.new(params).to_hash) end end
    7. Introduction to SproutCore Mike Subelsky @subelsky
    8. The Near Future “[Screw] the server, move all the processing power to the client” \"move presentation back to the client\" - Chris WIlliams
    9. The Near Future TaffyDB Titanium Cappuccino O3D PhoneGap
    10. The Present
    11. The Present Desktop-Like
    12. ~200 ms
    13. Not much storage
    14. For Cloud Apps
    15. Borrows Patterns
    16. Different API
    17. \"How would you build Cocoa for the web browser if you could rewrite it from scratch...
    18. ...throwing away old out of date parts?\" - Charles Jolley
    19. Borrows Patterns
    20. Cocoa Touch
    21. Cocoa Touch Courtesy Neven Mrgan
    22. What Could We Build?
    23. MMORPG Audio editor IDE* CASE Workflow GIS Guitar-hero clone? What Could We Build? CRM Statistics Video editor* Image editor CAD
    24. What Would You Need?
    25. What Desktop Developers Have
    26. What Desktop Developers Have Local database Keyboard management Focus management Drag-and-drop Drawing layer Bindings & Observers*
    27. What Desktop Developers Have Local database MVC Event handling Keyboard management Timers Focus management Build system Drag-and-drop Testing framework Drawing layer Incremental Loading Bindings & Observers*
    28. Key-Value Coding
    29. Key-Value Coding Key-Value Observation
    30. Key-Value Coding Key-Value Observation Bindings
    31. Key-Value Coding object.get(‘name’); // ‘Bob’ object.set(‘name’,‘Sarah’); // object
    32. Key-Value Coding object.name object.name = ‘Sarah’
    33. Key-Value Coding object.name object.name = ‘Sarah’
    34. Key-Value Observation ContactListItem View Contact Contact Contact <h2>Lucy Smith</h2> Contact guid: 5 firstName: \"Lucy\"
    35. Key-Value Observation ContactsController content = contacts collection selection = contact 5 ContactListItem View Contact Contact Contact <h2>Lucy Smith</h2> Contact guid: 5 firstName: \"Lucy\"
    36. Key-Value Observation ContactController content = ContactsController.selection ContactsController content = contacts collection selection = contact 5 ContactListItem View Contact Contact Contact <h2>Lucy Smith</h2> Contact guid: 5 firstName: \"Lucy\"
    37. Key-Value Observation ContactController content = ContactsController.selection ContactsController content = contacts collection selection = contact 5 ContactListItem View Contact Contact Contact <h2>Lucy Smith</h2> Contact guid: 5 firstName: \"Lucy\"
    38. Key-Value Observation ContactController content = ContactsController.selection ContactsController content = contacts collection selection = contact 5 ContactListItem View Contact Contact Contact <h2>Lucy Smith</h2> Contact guid: 5 firstName: \"Lucy\" object.set(‘name’,‘Sarah’);
    39. Key-Value Observation ContactController content = Change ContactsController.selection ContactsController Change content = contacts collection selection = contact 5 ContactListItem View Change Contact Contact Contact <h2>Lucy Smith</h2> Contact guid: 5 firstName: \"Lucy\" object.set(‘name’,‘Sarah’);
    40. Key-Value Observation ContactController content = Change ContactsController.selection ContactsController Change content = contacts collection selection = contact 5 ContactListItem View Change Contact Contact Contact <h2>Sarah Smith</h2> Contact guid: 5 firstName: \"Lucy\" object.set(‘name’,‘Sarah’);
    41. Bindings ContactController content = ContactsController.selection ContactsController content = contacts collection selection = contact 5 ContactListItem View Contact Contact Contact <h2>Lucy Smith</h2> Contact guid: 5 firstName: \"Lucy\"
    42. KVC/KVO Demo
    43. Properties require('core'); Contacts.Contact = SC.Record.extend({ fullName: function() { return [this.get('firstName'), this.get('lastName')].join(' '); }.property('firstName', 'lastName') });
    44. Code Base Tour 0.9.x API
    45. What gets downloaded? javascript.js* stylesheet.css index.html images (sprite for bonus) All can be cached
    46. SC generates these files on the fly in development mode Served by Merb / Rack
    47. SC builds these files as static assets in production mode Served by Apache,Varnish, CDN, etc. Rails-style asset tags
    48. Thanks to Erich Ocean and Charles Jolley
    49. Questions? mike@oib.com @subelsky

    + subelskysubelsky, 9 months ago

    custom

    3240 views, 5 favs, 7 embeds more stats

    Mike Subelsky from OtherInbox.com demonstrates the more

    More info about this presentation

    © All Rights Reserved

    • Total Views 3240
      • 2386 on SlideShare
      • 854 from embeds
    • Comments 0
    • Favorites 5
    • Downloads 103
    Most viewed embeds
    • 743 views on http://en.oreilly.com
    • 99 views on http://www.subelsky.com
    • 7 views on http://subelsky.com
    • 2 views on http://feeds.feedburner.com
    • 1 views on http://xss.yandex.net

    more

    All embeds
    • 743 views on http://en.oreilly.com
    • 99 views on http://www.subelsky.com
    • 7 views on http://subelsky.com
    • 2 views on http://feeds.feedburner.com
    • 1 views on http://xss.yandex.net
    • 1 views on http://www.subelsky.net
    • 1 views on http://translate.googleusercontent.com

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories