INtro DE Meteor.js
A better way to build apps
@kevohagan
twitter : @kevohagan
github: @kevohagan
Hoy en Dia
Front End :
Jquery, Dojo, Angular, Backbone, Ember, Derby
etc etc..
Back End :
PHP, Django, Ruby on Rails, .NET, Java, Node.js
etc etc...
??? Perdido??
Meteor.js
100% Javacript
Un solo idioma
Misma manera de programar en cliente y servidor
MUY MUY simple para empezar
Muchisimo mas simple
simplicity === productivity
QUE SIGNIFICA ESTO?
Equipo unido
Velocidad de desarollo
Menos costes
MVP (Minimun Viable Product)
Para Empezar
Instalar
$ curl https://install.meteor.com | /bin/sh
(Windows) http://win.meteor.com/
Crear
$ meteor create bbpmi
Lanzar
$ cd bbpmi
$ meteor
=> Meteor server running on: http://localhost:3000/
Estructura Carpeta
./meteor
/client
/packages
/server
/public
Reglas de la APP
carpeta /server funciona lado servidor
carpeta /client vive en el cliente
Todo lo demas esta presente en ambos lados
archivos estaticos en /public
ClientE
/client
/compatibility jquery.timeago.js
/helpers router.js config.js users.js
/css
bootstrap-theme.css
/views
/home home.html home.js home.css /etc etc
ServiDoR
/server
sensitive.js
publications.js
admin.js
startup.js
email.js
Crear App
$ meteor create bbpmi
bbpmi: created. To run your new app: cd bbpmi meteor
desplegar APP
Minificacion y compresion automatica en prod
En los servidores de meteor.com :
$ meteor deploy bbpmi
open http://bbpmi.meteor.com
#OR
$meteor deploy www.bbpmi.com
CNAME pointing to origin.meteor.com
Tu infrastructura ( cualquier servidor con node.js instalado )
$ meteor bundle myapp.tgz
PRINCIPIOS de Meteor.Js
Puro JavaScript
Tu app es 100% JavaScript.
No hay diferencia de estilo de codigo entre cliente y servidor
(no como otros frameworks)
Mucho mas sencillo para todos
desarolladores como disenadores
workflow facil
UPdates Automaticos
Solo tienes que escribir tus templates.
Se actualizan automaticamente cuando la base de datos cambia
Magico?
<template name="usuario">
<h1>{{nombre}}</h1>
<p>{{trabajo}}<p>
</template>
SincroniZacion de Data
JSON enviado al navegador utilizando el protocolo DDP
(data distributed protocol) creado por Meteor
Write your client code as if it were running on the server and had direct access to the database.
Data API lado cliente igual que Mongo
Unificacion de la manera de llamar al Data
MOngo Por Todo
Usuarios = new Meteor.Collection("usuarios");
Usuarios.find();
Usuarios.findOne();
Usuarios.insert();
Usuarios.update();
Usuarios.remove();
compensación de latencia
Si el usuario hace un cambio, el navegador lo cambia en seguida
Mucho mas rapido (casi demasiado!)
asynchronous callback del servidor
Si el servidor no acepta el cambio :
actualiza el navegador en el callback
oauth, allow/deny
Hot Code PUSH
codigo CALIENTE ;)
Si actualizas tu app, los usuarios conectados no estan afectados
Buena solucion para app moviles por ejemplo, no tener que mantener versiones antiguas ( todos los usuariso estaran actualizados al abrir la app de nuevo)
Fully self-contained application bundles.
meteor deploy
Hosting gratuito meteor.com (para siempre!!)
Meteor.com, empresa con $11Millones de inversion
Van a lanzar su servicio de hosting extra scalable GALAXY
Smart Packages
$ meteor list
accounts-base A user account system
accounts-facebook Login service for Facebook accounts
accounts-github Login service for Github accounts
accounts-google Login service for Google accounts
accounts-meetup Login service for Meetup accounts
accounts-password Password support for accounts.
accounts-twitter Login service for Twitter accounts
accounts-ui Simple templates to add login widgets to an app.
accounts-ui-unstyled Unstyled version of login widgets
accounts-weibo Login service for Sina Weibo accounts
amplify API for Persistant Storage, PubSub and Request
appcache enable the application cache in the browser
audit-argument-checks Try to detect inadequate input sanitization
autopublish Automatically publish the entire database to all clients
backbone A minimalist client-side MVC framework
bootstrap Front-end framework from Twitter
code-prettify Syntax highlighting of code, from Google
coffeescript Javascript dialect with fewer braces and semicolons
d3 Library for manipulating documents based on data.
ejson Extended and Extensable JSON library
email Send email messages
force-ssl Require this application to use secure transport (HTTPS)
handlebars Simple semantic templating language
htmljs Easy macros for generating DOM elements in Javascript
http Make HTTP calls to remote servers
insecure Allow all database writes by default
jquery Manipulate the DOM using CSS selectors
jquery-history pushState module from the jQuery project
jquery-layout Easily create arbitrary multicolumn layouts
jquery-waypoints Execute a function when the user scrolls past an element
less The dynamic stylesheet language.
madewith Made With Meteor badge
page-js-ie-support Tiny ~1200 byte Express-inspired client-side router
preserve-inputs Automatically preserve all form fields with a unique id
router A reactive router built on page.js
showdown Markdown-to-HTML processor
spiderable Makes the application crawlable to web spiders.
spin Simple spinner package for Meteor
stylus Expressive, dynamic, robust CSS.
underscore Collection of small helper functions: _.map, _.each, ...
$ meteor add accounts-facebook
$ meteor remove accounts-facebook
more than 900 packages on atmosphere.meteor.com
plus any package from NPM!!
Links
Discover Meteor
Mallorca.IO
Workshops/Talleres de Meteor.js para todos los niveles
Principiantes (mejor intro al webdev)
Disenadores (poder hacer una app entera)
Programadores ( gozar del reactivity programing)
Emprendedores (hacer sus ideas realidades)
Crear una comunidad unida
(organisacion en Github, proyectos open source)
DondE?
Parc Bit y PalmaActiva
Cuando?
a definir
Intro de Meteor.js
By kevohagan
Intro de Meteor.js
Intro de Meteor.js el full-stack Javascript Web Framework. Did you say awesome?
- 4,322