I
<3
JavaScript!
Purposes of JS: • Enrich websites • Build web applications • Create native phone, tablet & desktop apps with Cordova • Generate PDFs with JavaScript • Create real-time web applications and web servers with Node JS • Create browser chat and video apps with WebRTC • Create 3D games with WebGL • Web scarping & screenshotting with Phantom JS! • Compile Sass Stylesheets with Sencha Fashion!
Ext
JS
1-‐4
Ext
JS
5.x
Ext JS 6 Sencha
Touch
1
Sencha
Touch
2
Merge of the frameworks One single code base Serve the right app for the right experience Advanced theming system Mouse & Keyboard support 2007
2009
2014
2015
2010
2012
• High
performance
lightweight
applicaIon
framework
• Device
Themes
for
each
plaTorm
• Smooth
scrolling
and
animaIons
• MulI-‐touch
gestures
and
adapIve
layouts
• Android
2.3+,
iOS
4+,
Windows
Phone,
BB
Modern Toolkit
Which toolkit should you use? We
need
to
run
on
legacy
browsers
We
are
only
targeIng
smart
phones
We
want
the
best
experience
on
any
device!
CLASSIC
TOOLKIT
MODERN
TOOLKIT
UNIVERSAL
(BOTH)
Why do you want to upgrade? We
want
the
latest
framework
for
our
desktop
apps.
We
want
to
use
VCs
and
databinding
for
our
phone
apps.
We
want
the
best
experience
on
any
device!
EXT
JS
5
SENCHA
TOUCH
BOTH
EXT JS 6 can do… We
want
the
latest
framework
for
our
desktop
apps.
We
want
to
use
VCs
and
databinding
for
our
phone
apps.
We
want
the
best
experience
on
any
device!
Ext
6,
Classic
Toolkit
Ext
6,
Modern
Toolkit
Ext
6,
Universal
App
The Microloader • Loads JavaScript, CSS and images • Filters assets based on Platform • Handles LocalStorage Caching • Manages both Full and Delta patching • Monitors HTML5 Application Cache
app.json.js properties "js":
[
{
"path":
"app.js",
//
location
of
asset
"bundle":
true,
//
container
of
bundles
assets
"includeInBundle":
true,
//
include
this
file
in
the
bundle
"platform":
["ios"],
//
platform(s)
in
which
to
load
this
asset
"bootstrap":
true,
//
development
only
file.
Not
used
in
built
version
"update":
"full",
//
localstorage
cache
update
strategy
"remote":
true
//
copied
into
build
if
available
}
]
app.json.css properties "css":
[
{
"path":
"app.css",
//
location
of
asset
"bootstrap":
true,
//
development
only
file.
//
platform(s)
in
which
to
load
this
asset
"platform":
["desktop",
"chrome",
"windows"],
"update":
"full",
//
localstorage
cache
update
strategy
"remote":
true
//
copied
into
build
if
available
}
]
app.json.loader properties "loader":
{
//
true
(allow
cache),
false,
or
the
value
to
use
as
a
cache
buster
"cache":
"${build.timestamp}",
//
parameter
to
use
when
cache
is
not
true
"cacheParam":
"_dc"
}
app.json.cache properties "cache":
{
//
global
toggle
for
local
storage
caching
"enable":
false,
//
string
path
relative
to
base
for
deltas
"deltas":
"deltas"
}
The classic grid… • What is John Doe's total order amount? • What are the total order amounts by country? • How did sales people perform in a specific year?
Sencha App Templates • Like Twitter Bootstrap app templates. • Quick start with a full application • Beyond KitchenSink • Responsive, pre packaged themes
Why
would
you
choose
the
modern
toolkit
for
desktop
apps?
>
Performance
reasons.
The
Modern
(Sencha
Touch)
toolkit,
has
a
layout
engine
which
uses
CSS3
i.s.o.
JS.
Will
the
modern
toolkit
/
themes
have
RTL?
>
Not
at
release.
But
eventually.
I
didn’t
see
the
Tizen
theme
listed.
Did
we
drop
it?
>
Not
officially.
It’s
just
not
there
yet.
On
request
we
will
add
it.
Will
the
new
Classic
theme,
extend
from
Neptune
and
have
the
same
vars?
>
Yes.