meteor
TRANSCRIPT
Meteor.js
Michael Elfassy
twitter: @michaelelfassy
github: elfassy
stackoverflow: montrealmike
website: smashingboxes.com
Durham, NC | San Francisco | Montreal
and where is the free pizza?
What’s Meteor.js?
Meteor is an open-source full-
stack javascript framework for
building modern web and mobile
applications
Really?
Yes! In fact you’ll build apps that:
● are more responsive
● have built-in collaboration
● are more fun (and faster) to write
● support hot code push
● are easily compiled for multiple
platforms
Demos!https://github.com/alanshaw/meteor-blackboardhttps://github.com/p4bloch/x3dom-meteorhttps://github.com/meteor/meteor/tree/devel/examples
An can you justify those bold claims
How does it work?
7 principles of meteor
● Data on the Wire
● One Language
● Database Everywhere
● Latency Compensation
● Full Stack Reactivity
● Embrace the Ecosystem
● Simplicity Equals Productivity
Apps feel responsiveLatency compensation● Database everywhere● One language● Data on the wire (aka: Client side rendering)
http://manning.com/hochhaus/Meteor_MEAP_CH01.pdf
BONUS:
No network compensation
Apps have built-in collaborationFull-stack reactivity● Livequery - Watch DB for changes● DDP - Send data back and forth to the client
o replay cacheo publish / subscribe
● MiniMongo - store data and do database queries on the client● Tracker
o recomputation is done automaticallyo view updates with no extra code
● Blaze - rendering Read more about these components on meteor.com/projects
HTTP / HTML
User interactionsDatabase, Security, Business Logic, Rendering
HTTP / XML (AJAX)
Rendering, User interactionsDatabase, Security, Business Logic
DDP / JSON
Rendering, User interactions, Business Logic, DatabaseSecurity
1995
2005
2014
Apps are more fun / faster to write● One language
o share code between client and server (DRY)o Write less code
● Embrace the ecosystemo Packagero http://atmospherejs.com
● Simplicity (KISS)o all the components, not just a library to solve one problemo configuration-free minifier, deployer...o no need to write code to update the viewo no need to write code to sync data
Apps auto-reload
● Hot code pusho don’t lose your user’s stateo work even when adding new packages
● Bypass Apple! o use wisely
Apps that are cross platform
demo!> meteor run ios> meteor run android
Don’t be a dinosaur
Your clients expect:
● apps that feel native
● collaborative apps● you to write these apps in
days, not months
Questions?
Join the communityhttp://montreal.meteor.com
Learning resources
● meteor.com/install● Discover Meteor Book
o book.discovermeteor.com/starter● docs.meteor.com● stackoverflow● meteorpodcast.com● meteorpedia.com
8 chapters free today
only
Packages● mquandalle:jade● stylus● coffeescript● kaptron:minimongoid (ORM)● dburles:collection-helpers● underscore● reywood:publish-composite● mrt:moment● aldeed:collection2● accounts-ui, accounts-google, accounts-github, accounts-
password● matb33:collection-hooks● iron:router