Your SlideShare is downloading. ×
0
SproutCore and the Future of Web Apps
SproutCore and the Future of Web Apps
SproutCore and the Future of Web Apps
SproutCore and the Future of Web Apps
SproutCore and the Future of Web Apps
SproutCore and the Future of Web Apps
SproutCore and the Future of Web Apps
SproutCore and the Future of Web Apps
SproutCore and the Future of Web Apps
SproutCore and the Future of Web Apps
SproutCore and the Future of Web Apps
SproutCore and the Future of Web Apps
SproutCore and the Future of Web Apps
SproutCore and the Future of Web Apps
SproutCore and the Future of Web Apps
SproutCore and the Future of Web Apps
SproutCore and the Future of Web Apps
SproutCore and the Future of Web Apps
SproutCore and the Future of Web Apps
SproutCore and the Future of Web Apps
SproutCore and the Future of Web Apps
SproutCore and the Future of Web Apps
SproutCore and the Future of Web Apps
SproutCore and the Future of Web Apps
SproutCore and the Future of Web Apps
SproutCore and the Future of Web Apps
SproutCore and the Future of Web Apps
SproutCore and the Future of Web Apps
SproutCore and the Future of Web Apps
SproutCore and the Future of Web Apps
SproutCore and the Future of Web Apps
SproutCore and the Future of Web Apps
SproutCore and the Future of Web Apps
SproutCore and the Future of Web Apps
SproutCore and the Future of Web Apps
SproutCore and the Future of Web Apps
SproutCore and the Future of Web Apps
SproutCore and the Future of Web Apps
SproutCore and the Future of Web Apps
SproutCore and the Future of Web Apps
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

SproutCore and the Future of Web Apps

2,573

Published on

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,573
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
44
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. 3F 2.0
  • 2. Future of Web Apps Fast,
  • 3. Future of Web Apps Fluid,
  • 4. Future of Web Apps and Feature-rich.
  • 5. Future of Web Apps Less web, more app
  • 6. Future of Web Apps More demanding users
  • 7. Future of Web Apps Web-native, no plugins
  • 8. Future of Web Apps Probably client-server
  • 9. Building 3F Apps with SproutCore Mike Subelsky OtherInbox.com IgniteBaltimore.com
  • 10. Users Want More
  • 11. Impossible with “traditional” web 2.0 techniques
  • 12. remove_messages: function(message_ids,block) { OtherInbox.undo_stack.push(new UndoAction(message_ids,Mailbox.current_id,block)) $('undo').writeAttribute('disabled',null) var affected_mailboxes = $H() var highest_position = null var msg_count = 0 message_ids.each(function(id) { $('msg_row_' + id).remove() var msg = Message.instances.unset(id) var position = Message.ordered_instance_keys.indexOf(Number(id)) Message.ordered_instance_keys.splice(position,1) if ((highest_position == null) || (highest_position < position)) highest_position = position msg_count++ }) Mailbox.update_message_count(msg_count)
  • 13. You Need Client-Server
  • 14. OI.executeAjax('/refresh', { method: 'get', parameters: parameters, onSuccess: function(transport) { OI._parseServerUpdate( transport ); } });
  • 15. class RefreshController < ApplicationController before_filter :signin_required def index render :text => JSON.generate(Refresher.new(params).to_hash) end end
  • 16. {quot;deletedquot;:{},quot;flashquot;:[],quot;recordTypesquot;:[quot;Mailboxquot;,quot;Userquot;,quot;Folderquot;], quot;changedquot;:{quot;Userquot;:[{quot;namequot;:quot;forfunquot;,quot;preferencesquot;:null,quot;guidquot;:3,quot;typequot;:quot;Userquot;, quot;adminquot;:true,quot;invitationsRemainingquot;:1,quot;loginquot;:quot;testuserquot;,quot;statequot;:quot;completedquot;}], quot;createdquot;:{quot;Mailboxquot;:[{quot;namequot;:quot;Freeslidequot;,quot;unreadCountquot;:null,quot;guidquot;:quot;12quot;, quot;folderquot;:quot;3quot;,quot;priorityquot;:quot;2quot;,quot;typequot;:quot;Mailboxquot;}]}}}
  • 17. sh Fla t ip S cr va Ja CSS L HTM
  • 18. removeMessages: function(msgs) { SC.Store.destroyRecords(); }
  • 19. “...writing an app in Javascript on the web is akin to writing C on the desktop: it is just one level above the 'bare metal’.” - Charles Jolley
  • 20. SproutCore does 80%
  • 21. Feels a bit like Rails
  • 22. Feels a bit like Rails Convention over configuration
  • 23. Feels a bit like Rails Configuring components
  • 24. Feels a bit like Rails Uses ERB or Haml
  • 25. Except totally different
  • 26. Except totally different Inspired by Cocoa
  • 27. Except totally different Everything is a binding
  • 28. Except totally different Trust but verify if (foo && foo.get(‘importantValue’))
  • 29. Except totally different By all means, repeat yourself
  • 30. Except totally different JavaScript is awesome (just avoid the bad parts)
  • 31. Except totally different MVC !== MVC
  • 32. Demo

×