WHO AM I?
Rob TaylorSoftware Engineer & Technologist
• 16 years in the field
• Browser Applications• Server Applications• Mobile Applications• Architecture
• Training
• Trends • New Technologies
• Luv learning new things
THE JOURNEY
WHAT HAS HAPPENED RECENTLY?
PLUGINS
A NEW ERA…
WEB APPS ARE GETTING MORE INTELLIGENT
WHAT’S NEXT?
WEB APPLICATIONS
HTML CHALLENGES
Designed around building web sites
Developers want
• Single page applications• No page refresh• Separation of code• Structure (MVC)• Application design patterns• Service Integration (RESTful Web Services)
Yes, it really is time to move
on…
WE WANT TO BUILD APPS IN THE BROWSER
WEB APP SOLUTIONS?
Emergence of many JavaScript Frameworks
• Backbone• Knockout• Batman• Sencha Ext• SproutCore• Spine• Sammy• Ember• Cappuccino• and the list goes on…
Ooooh. So many
choices!
AND NOW…
YAJF (Yet Another JavaScript Framework)?
Not really…
MY LITMUS TEST
1. Low barrier to entry
2. Intuitive API and Syntax
3. MVC (Model-View-Controller)
4. Code Organization
5. Data Binding
6. Event Dispatching
7. Templates
8. Still leverages HTML and CSS (doesn’t try to hide it)
9. Single code base for desktop browsers and mobile device
10. Team collaboration
11. Can be used with other solutions (jQuery, jQuery Mobile, other 3rd party JavaScript libraries and widgets)
12. Active community and/or commercial support
MY LITMUS TEST (SIMPLIFIED)
Can I build the same application on these devices with the same client code base?
Browser TabletSmart Phone
MY RESULTSI had eventually settled on Backbone.js
Shortcomings
• Hard to separate view from controller
• No data binding• Templates replaced entire
sections on events
With Knockout.js in a very close second Shortcomings
• Data-binding required some setup
• MVVM approach vs. MVC approach
• Syntax is not as approachable as others frameworks
THEN I FOUND…
It passed the my litmus test even though it was in early beta.
And now that it is at a 1.0, it has gotten even better!
MY LITMUS TEST
Low barrier to entry
Intuitive API and Syntax
MVC (Model-View-Controller)
Code Organization
Data Binding
Event Dispatching
Templates
Still leverages HTML and CSS (doesn’t try to hide it)
Single code base for desktop browsers and mobile device
Team collaboration
Can be used with other solutions (jQuery, jQuery Mobile, other 3rd party JavaScript libraries and widgets)
Active community and/or commercial support
Could improve
WHAT YOU WILL SEE TODAY
Breakdown of MVC (Model-View-Controller) Data Binding Use of templates Routing Shared Data Web service connectivity to a database
QUESTIONS WILL BE ANSWERED AT THE END