MOBILE DEVELOPMENT TECHNOLOGIES 

 

AND SOME MORE

the bottom line 


All hail JavaScript!


JS on the server

JS on the client

JS everywhere

+

some HTML5 :)

JS ON THE SERVER

Node.js

  • event driven (wait for an event, process it as it comes)
  • non blocking I/O:
  • node is all about real time! 
  • fantastic for web servers and web services
  • not good for big data processing and bulk logic procedures

  Wikipedia quote :
"In computer science, Asynchronous I/O, or non-blocking I/O is a form of input/output processing that permits other processing to continue before the transmission has finished."

JS ON THE SERVER

Node.js Example

Node can be used as a full fledged server technology, but it's greatest power is to be used as a supplement.
Example, Wallmart - expanded their original Java core application with a Node.js layer for additional analytic purposes.
"An example is having the analytic to detect when a customer arrives on the website with a particular search term but are landing on a sub-optimal page (defined as a page that leads to low sales conversion). They can, in real time, detect this, implement a customized search result, and figure out, in real time, why the search engine "got it wrong".

JS ON THE SERVER

Wakanda

Unlike Node.js Wakanda provides a full fledged development and production environment. It consists of four core parts:

Wakanda Server - built around the same time as Node.js
WakandaDB
Wakanda Studio
Wakanda Framework

JS ON THE CLIENT



Ember.js
Angular.js
Backbone.js



JS ON THE CLIENT


Reasons to implement a client side framework.


  • The classic whole page load approach is dying out
  • Users need a better UX
  • Routing as a core principle
  • Separation of content
  • Faster development process


JS ON THE ClIENT


  • open-source  client-side JavaScript web application framework based on the model-view-controller (MVC) software architectural pattern
Ember.js specifics ?:
  • Two-way data binding:  binds two properties together (one gets changed - other gets updated (Angular has it and Backbone has a plugin http://epoxyjs.org/tutorials.html)
  • Computed properties: property depending on other property, value is cached, value gets updated if anything changes.

JS ON THE CLIENT



  • An open-source JavaScript framework
  • Maintained by Google
  • Assists with running single-page applications
  • Its goal is to augment browser-based applications with model–view–controller (MVC) capability, in an effort to make both development and testing easier

JS ON THE CLIENT

An angular.js app example

Angular showcase app that loads articles from Hacker News using their API. Supports a list of articles, open each article in its own window and a link to open the original article.

Total markup: 129 Lines Of Code
JavaScript: 77 Lines Of Code

https://github.com/fox/hackular

JS ON THE CLIENT

angular.js app example

  • Google drive uploader build with angular.js
  • Interesting booking web application built with angular.js

http://www.whichairline.com/

JS ON THE CLIENT


Backbone.js gives structure to your JavaScript in an MVC fashion, it is not a framework it is a library.
 
"In an ecosystem where overarching, decides-everything-for-you frameworks are commonplace, and many libraries require your site to be reorganized to suit their look, feel, and default behavior — Backbone should continue to be a tool that gives you the freedom to design the full experience of your web application."

HTML 5 APIS


With the rise of HTML5 applications a new term has been introduced, HTML5 - Web Application 1.0


HTML 5 APIS

XMLHttpRequest

Provides an easy way to retrieve data from a URL without having to do a full page refresh. A Web page can update just a part of the page without disrupting what the user is doing.  XMLHttpRequest is used heavily in AJAX programming.

html 5 apis

WebWorker

Multithreaded Programs in JavaScript - Execute JavaScript without blocking the browser.

Bottom line - Web Workers allow you to do things like fire up long-running scripts to handle computationally intensive tasks, but without blocking the UI or other scripts to handle user interactions. 

html 5 apis

WebStorage

Web storage allows a developer the freedom to store large amounts of data on the clients machine that persists past past sessions, doesn't require un-encrypted data to be transmitted to the server and stored items are available on the entire domain.

html 5 apis

WebSockets

 A means to have an open channel between the Browser and the server that will enable uninterrupted communication (real-time-web) - (Node.js uses this)

Extra info


Fun fact:  JSON moved to ECMA
Polyfills - A polyfill is a browser fallback, made in JavaScript that allows functionality you expect to work in modern browsers to work in older browsers, like to support canvas (an html5 feature) in older browsers.

CommonJS - group with a goal of building up the JavaScript ecosystem for web servers, desktop and command line apps and in the browser.

http://www.jseverywhere.org/
Made with Slides.com