Plan of the Presentation 1/2
HTML5
What is HTML5?
Why HTML5?
Javascript
What is Javascript?
Evolution of Javascript
Some HTML5 Advantages
Hybrid Application
Multithreading
Working Offline
Different platforms
Web Desktop
Web Mobile
IOS
Android
Some concepts to know
Client/Server – Front End/Back End
Responsive
Cross Platform Mobile
Plan of the Presentation 2/2
Javascript MVC Framework
What is a Javascript MVC Framework?
Why use Javascript MVC Framework?
What are the different Javascript
Frameworks?
Angular
Development
IDE - Webstorm
Task Runner – Grunt
Libraries Manager - Bower
Compiled CSS – SASS
Some Best Practices
Javascript Libraries
Javascript Libraries to simplify Javascript
Javascript Libraries for UI components
and styling
What is HTML5?
5th version of Hyper Text Markup Language
Displayed in Web browsers: Like Chrome, Firefox IE, etc..
Skeleton of the webpage structure
What is HTML5?
HTML5 is often a generic term for the package HTML5/CSS3/JAVASCRIPT
CSS3 -Provides STYLE to the webpage
(colors, sizes, layouts, etc…)
Javascript -Provides BEHAVIOR to the webpage
(onclick, onload, etc..)
HTML5 -Provides STRUCTURE to the webpage
(body, section, etc…)
Why HTML5?
Built-In Video/Audio
No need of external plugin like Adobe Flash Player
Cross Browser support
Compatible with all major web browsers – Chrome, Firefox, IE, Safari, etc…
Mobile Optimization
Working across all types of devices – Desktop, Tablet, Smartphones
Better Interactions for Rich Internet Applications
Drag and Drop, Canvas element, etc…
What is Javascript?
JavaScript is the most popular programming language in the world.
It’s used to make web pages interactive
Some examples of what can we do with Javascript
Evolution of Javascript
ECMAScript 5 - Today all the major browsers have total support for ECMAScript 5
Javascript is also known as ECMAScript - This programming language is evolving
ECMAScript 6
The overarching goal of ECMAScript 6 is to improve speed and performance
in coding larger, more complex Web applications, through the implementation
of a redefined language syntax featuring module and class support extensions
All the major browsers are still not fully supporting ECMAScript 6 but are evolving in this way
ECMAScript 7,8 and more
The future versions of ECMAScript are already scheduled
Compatibility Table
We can already code in ECMAScript 6 today.
The process consists in writing ECMASCript 6 and compiling it to ECMAScript 5 -
https://babeljs.io/
Hybrid Application
A hybrid app is a mobile app written using languages such as HTML5,
CSS3 and JavaScript, then compiled into native iOS, Android or other
mobile platform code using wrapper technologies such as
PhoneGap/Cordova.
There are also many mobile HTML5 frameworks which allow you to design and develop
mobile apps that can be packaged with PhoneGap/Cordova.
Ionic is one of the popular http://ionicframework.com/
Additionally, these frameworks have APIs allowing access to
native functions such as the camera, GPS, etc.
Multithreading
HTML5 Web Worker is a JavaScript thread(or
javascript file) than runs concurrently with the main
thread.
This child threads(workers) cannot access any
resource(window, document and parent objects)
of the main thread.
These are ideal for running scripts in background threads, so that they don't interfere with
the user interface (UI).
Worker thread have their own context and work independently than the main thread.
Web workers allows parent and child threads to communicate with each other via
message passing.
Any script that you want to execute in the background is a good candidate to run as a
Web Worker.
Working Offline
What is an offline web application? At first glance, it
sounds like a contradiction in terms. Web pages are
things you download and render. Downloading
implies a network connection. How can you
download when you’re offline? Of course, you can’t.
But you can download when you’re online. And
that’s how HTML5 offline applications work.
At its simplest, an offline web application is a list of URLs — HTML, CSS, JavaScript,
images, or any other kind of resource. The home page of the offline web application
points to this list, called a manifest file, which is just a text file located elsewhere on the
web server. A web browser that implements HTML5 offline applications will read the list of
URLs from the manifest file, download the resources, cache them locally, and
automatically keep the local copies up to date as they change.
When the time comes that you try to access the web application without a network
connection, your web browser will automatically switch over to the local copies instead.
What is a Javascript MVC Framework?
Model View Controller
Model–view–controller (MVC) is a
software architectural pattern.
The goal of MVC and related patterns
is to separate presentation from
domain business logic.
Model - business logic
View - presentation logic
Controller - changing state of model
and view (based on user input)
Why use Javascript MVC Framework?
No need to reinvent the wheel
Why write code that's already been written (better)?
Do More With Less
Most JavaScript frameworks allows you to do more with less code.
Less code means less maintenance time and less coding time
You Aren't The Expert
As big as any programmer's ego is, there are people out there that are smarter,
more inventive than you.
The minds behind the frameworks have their eyes on JavaScript daily -- trust in them.
Stucture and Organize
No “Spaghetti” code.
Well structured and maintanable code, which can be a huge time saver in the long run
What are the different Javascript Frameworks?
There are many frameworks out there, four of them stand out:
Backbone, Angular, Ember and React.
Angular was released by Google and React by Facebook (much more recent and speed
growing)
Article to deep in this subject
Angular
Today it’s the most popular framework Concerns about Angular
Angular 2.0 is totally different from the current
version(1.3)
To evolve to Angular 2.0 it’s a total rewrite with
NO BACKWARD COMPATIBILITY
Article to deep in this subject
Javascript Libraries to simplify Javascript
There are many libraries to simplify the use of Javascript
jQuery, Prototype, etc…
jQuery is a fast, small, and feature-rich JavaScript library. It makes things like HTML
document traversal and manipulation, event handling, animation, and Ajax much
simpler with an easy-to-use API that works across a multitude of browsers.
With a combination of versatility and extensibility, jQuery has changed the way that
millions of people write JavaScript.
jQuery is one of the most popular
https://jquery.com/
Javascript Libraries for UI components and styling
There are many libraries to for UI components and styling
Bootstrap, Foundation, etc…
Bootstrap makes front-end web development faster and easier. It's made for folks of all
skill levels, devices of all shapes, and projects of all sizes.
With Bootstrap, you get extensive and beautiful documentation for common HTML
elements, dozens of custom HTML and CSS components.
Bootstrap is one of the most popular
http://getbootstrap.com/
IDE - Webstorm
There are many IDE (Integrated Development Environment ) to code HTML5,
the one I use is Webstorm: https://www.jetbrains.com/webstorm/
Intelligent Code Completion
Code Inspection
Code Navigation
Task Runner – Grunt
There are 2 big actors in this field: Grunt, Gulp
the one I use is Grunt: http://gruntjs.com/
Minification
Deploy
You can set and launch your own tasks in the Terminal (in Webstorm):
Include
Video Example at 1:30
Libraries Manager - Bower
I use Bower to make the job: http://bower.io/
You can install and manage libraries directly from the Terminal (in Webstorm):
Video Example at 1:45
Compiled CSS – SASS
We need some features to make our CSS coding easier
Some Examples
There are 2 big actors in this field: SASS, LESS
the one I use is Sass: http://sass-lang.com/
Variables
Nesting
Mixins