Web applications went from being a static site with a single form and perl script to full on AJAX implementations and RIA stacks.
In this session we shall present the METEOR stack! A suberb way to create super responsive and fast applications that are a delight to use and develop.
Using one language (to rule them all), JavaScript, for both the front and back end, in this session you will see how you can:
Build modern web applications that feel like desktop apps not a bunch of lose pages strung together
Make a great experience for both the browser and mobile
Learn how Meteor applications are super fast and see live data updates (puppies and unicorns!)
Use one language both in the back end and the front end
Deploy your applications to mobile and web instantly (ok, in a few seconds at least!)
The audience should have some knowledge in building web dynamic applications, whether it is just one form or a fully dynamic web application.
19. The Meteor Platform
• LiveQuery – Realtime database queries
• DDP – Subscribe to changes in the database
• MiniMongo – Run database queries on the client
• Tracker – Rerun functions when data changes
• Blaze – Keep the view up-to-date with your data
http://meteor.com/projects
20. Installation
• Go to http://meteor.com and follow instructions
• or
• > curl https://install.meteor.com/ | sh
21. File Strucure And MVC
• Meteor doesn’t judge.You can generally put files wherever you
like*
• Special directories
• /client
• /server
• /public
• /private
22.
23. Example Apps
• Todos — a full-featured todo list app
meteor create --example todos
• Local Market — a mobile social engagement app
meteor create --example localmarket
26. Community & Growth
• Over 200 meetup groups around the world
http://meteor.meetup.com
• Over 4000 community-authored packages
https://atmospherejs.com/
• “Discover Meteor” has made over $300,000 in book
sales (as of Sept. 2014)
• Ranked #11 on GitHub (Rails is #9) Go meteor!
Before we really get started I want to take a trip back in time.
Web 1.0 : The data wants to be free!
Web 2.0 : The data wants to be dynamic
Web 3.0: Data wants to be played with
Focus on your apps’s features rather than on the plumbing (network code, websockets etc)
Facebook Quality apps; without Facebook’s money
CFML developerInto web dev since ‘96Worked on many open source projects such as CFEclipse, AOP/1, Model Glue and Railo
Now I work at CMD, a Consultancy in Greenwich, London, England
Web development consultancy based in London Background in ColdFusion, Railo, now Lucee, contributed to a number of frameworks,
Wrote some editors like CFEclipse
Consulted for many clients, more recently the RAF, Hostelbookers and Railo application builders. Provide Consultancy and developer support. Lead Developer on call
I am not an expert. I have been playing with this technology and I have had the same feeling when finding it that I had when I discovered Web 1.0. I have also got to the stage where I can see how little I know. So bear with me and we can both explore.
Not just a front end framework, nor a server side technology to output html. It’s a full stack solution
Show real time information, across multiple users that are working on that information
Open source platform for building web and mobile apps in JavaScript
Built to power the next generation of apps
Rich user interfaces
Collaborative multi-user applications
Cross-platform apps (web, IOS, Android)
Fast development
Data on the Wire. Meteor doesn't send HTML over the network. The server sends data and lets the client render it.
One Language. Meteor lets you write both the client and the server parts of your application in JavaScript.
The minimongo package is a reimplementation of (almost) the entire MongoDB API, against an in-memory JavaScript database. It is like a MongoDB emulator that runs inside your web browser. You can insert data into it and search, sort, and update that data.
Database Everywhere. You can use the same methods to access your database from the client or the server.
Latency Compensation. On the client, Meteor prefetches data and simulates models to make it look like server method calls return instantly.
Full Stack Reactivity. In Meteor, realtime is the default. All layers, from database to template, update themselves automatically when necessary.
Meteor is open source and integrates with existing open source tools and frameworks. such as NPM, NodeJS as well as hosting and generating package manager such as Atmosphere
Simplicity Equals Productivity. The best way to make something seem simple is to have it actually be simple. Meteor's main functionality has clean, classically beautiful APIs.
LiveQuery - collection queries on the database
DDP, the Distributed Data Protocol, is a simple protocol for fetching structured data from a server, and receiving live updates when that data changes. Like REST for web sockets
MiniMongo - Mongo on the client
Tracker - checks what functions (thus views) need to be re-run when data changes
Blaze- keeps everything from the server to the client up to date (manages all of the above)
client : Any files here are only served to the client. This is a good place to keep your HTML, CSS, and UI-related JavaScript code.
server : Any files in this directory are only used on the server, and are never sent to the client. Use /server to store source files with sensitive logic or data that should not be visible to the client.
public : Files in /public are served to the client as-is. Use this to store assets such as images.
private : These files can only be accessed by server code through Assets API and are not accessible to the client.
Demo
meteor.com is a good host… but we want MOAR
Respondly helps companies manage conversations with customers from a single, simple team inbox. It was launched by two developers.
Verso is used commercially by thousands of schools to deliver flipped classroom content, analyze student progress, and measure teacher performance
Workpop. It’s a job marketplace that modernizes the process of hiring for hourly workers
Clascraft: roleplaying game to help teachers engage students in the classroom
Blonk is a mobile job search app built by a single developer
Lookback Their service is used to record user experiences and hunt down bugs on mobile apps - used by Spotify
EventedMind are video tutorials.
CFML developerInto web dev since ‘96Worked on many open source projects such as CFEclipse, AOP/1, Model Glue and Railo
Now I work at CMD, a Consultancy in Greenwich, London, England