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
2015: Ext JS 6 • Merge both frameworks • Apps can run on any device • One code base • Touch & Mouse/Keyboard support • MVVM Architecture • Promises • Treelist component • Advanced theming • Microloader changes
• High
performance
lightweight
applicaIon
framework
• Device
Themes
for
each
plaTorm
• Smooth
scrolling
and
animaIons
• MulI-‐touch
gestures
and
adapIve
layouts
• iOS,
Android,
Windows
Phone,
BlackBerry
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
TreeList component • New Component: Treelist (xtype: treelist) • Usecase: Menu lists • Micro mode: top level icon • Treelist renders all nodes in its TreeStore • Available in both toolkits
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"
}
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.