SlideShare ist ein Scribd-Unternehmen logo
1 von 13
Sencha Touch 
concepts, pros and cons 
EPAM Ukraine, 2013, oleg_gomozov@epam.com
Simple overview 
- rich single page application 
- touch-oriented UI 
- touch events(inc. drag&drop) 
- HTML5, CSS3 
- device API, audio, video 
- responsive design, customizable
Features List UIContro 
ls 
DataTransport 
Other 
StructureUtils
Basics 
Ext.ns(‘Namespace’); 
Ext.define('Namespace.NewClass', { 
extend: ‘Ext.Base’, 
alias: ‘newclass’, 
alternateClassName: ‘SomeClass’, 
mixins: [], 
requires: ['Ext.Panel’], 
config: {}, 
statics: {}, 
inheritableStatics: {}, 
constructor: function(config) { 
this.initConfig(config); 
this.callParent(arguments); 
}, 
});
Single page application - MVC 
<!DOCTYPE html> 
<html> 
<head> 
<title>MvcTouch</title> 
<link rel="stylesheet" type="text/css" href="lib/sencha-touch-2.3.0/sencha-touch.css" /> 
<script type="text/javascript" src="lib/sencha-touch-2.3.0/sencha-touch.js"></script> 
<script type="text/javascript" src="app/app.js"></script> 
</head> 
<body></body> 
</html>
Ext.Loader.setConfig({ 
enabled : true 
}); 
Ext.application({ 
name: 'MyApp', 
profiles: ['Tablet'], 
views: [ 
], 
models: [ 
], 
controllers: [ 
'Main' 
], 
launch:function(){ 
Ext.Viewport.setActiveItem(Ext.create('MyApp.view.Main')); 
} 
});
View and Controller 
Ext.define('MyApp.view.Main', { 
extend: 'Ext.navigation.View', 
config: { 
fullscreen : true, 
items: [ 
{ 
title: 'My Great App' 
}, 
{ 
xtype: ‘button’, 
id: ‘#coolBtn’ 
} 
] 
} 
}); 
Ext.define('MyApp.controller.Main', { 
extend: 'Ext.app.Controller', 
config: { 
refs: { 
coolButton: '#coolBtn' 
}, 
control: { 
coolButton: { 
tap: 'onCoolButtonTap' 
} 
} 
}, 
launch: function () {}, 
onCoolButtonTap: function(button) { 
} 
});
Model, Store and Proxy 
Ext.define("MyApp.model.SampleModel", { 
extend: "Ext.data.Model", 
config: { 
idProperty: "id", 
fields: [ 
{ name: "id", type: "integer" }, 
{ name: "content" , type: "string" 
} 
] 
} 
}); 
Ext.define("MyApp.data.Proxy", { 
extend: "Ext.data.proxy.Proxy" 
readerwriter: SomeReaderOrWriter 
}); 
Ext.define("MyApp.store.SampleStore", { 
extend: "Ext.data.Store", 
requires: 
["MyApp.model.SampleModel"], 
config: { 
model: "MyApp.model.SampleModel", 
proxy: { 
type: "ajax", 
api: { 
create: "createURL", 
read: "readURL", 
update: "updateURL", 
destroy: "destroyURL" 
}, 
data: [ { id: 1, content: "Text1"}] 
});
Component and Container 
Ext.create('Ext.Container', { 
fullscreen: true, 
layout: 'fit', 
items: [ 
{ 
xtype: 'panel', 
html: ‘panel is created by 
xtype' 
}, 
{ 
xtype: 'toolbar', 
title: 'So is the toolbar', 
docked: 'top' 
} 
] 
}); 
Ext.define('MyApp.UI.CoolButton, { 
extend: ‘Ext.Button’, 
config: { 
xtype: ‘coolbutton’, 
cls: 'cls', 
listeners: { 
tap: ‘onTapFunc’, 
scope: someScope 
} 
}, 
initialize: function () {} 
onTapFunc: function () {} 
});
LHBayout 
o 
x 
VBox 
Card 
Fit 
Docking
Pros 
- solid OOP, 
- all-in-one(MVC,UI,Data,device API etc.) 
- HTML5 API 
- good documentation, community and suppot 
- nativePhoneGAP easy-to-build hybrid apps 
- plugins 
- Sencha Architect, Animator , etc.
Cons 
- webkit-only 
- proprietary license 
- “heavy” DOM-elements
Links 
http://www.sencha.com/ 
http://docs.sencha.com/touch/2.3.0/ 
Q&A

Weitere ähnliche Inhalte

Was ist angesagt?

Introduction to Backbone.js for Rails developers
Introduction to Backbone.js for Rails developersIntroduction to Backbone.js for Rails developers
Introduction to Backbone.js for Rails developers
AoteaStudios
 
Intro to BackboneJS + Intermediate Javascript
Intro to BackboneJS + Intermediate JavascriptIntro to BackboneJS + Intermediate Javascript
Intro to BackboneJS + Intermediate Javascript
Andrew Lovett-Barron
 
Short intro to JQuery and Modernizr
Short intro to JQuery and ModernizrShort intro to JQuery and Modernizr
Short intro to JQuery and Modernizr
Jussi Pohjolainen
 
Big Data for each one of us
Big Data for each one of usBig Data for each one of us
Big Data for each one of us
OSCON Byrum
 
Introduction to j query
Introduction to j queryIntroduction to j query
Introduction to j query
thewarlog
 

Was ist angesagt? (17)

Introduction to Backbone.js for Rails developers
Introduction to Backbone.js for Rails developersIntroduction to Backbone.js for Rails developers
Introduction to Backbone.js for Rails developers
 
Jsp session implicit object
Jsp session implicit objectJsp session implicit object
Jsp session implicit object
 
MongoDB hearts Django? (Django NYC)
MongoDB hearts Django? (Django NYC)MongoDB hearts Django? (Django NYC)
MongoDB hearts Django? (Django NYC)
 
Intro to BackboneJS + Intermediate Javascript
Intro to BackboneJS + Intermediate JavascriptIntro to BackboneJS + Intermediate Javascript
Intro to BackboneJS + Intermediate Javascript
 
Building Windows 8.1 Apps with Mobile Services
Building Windows 8.1 Apps with Mobile ServicesBuilding Windows 8.1 Apps with Mobile Services
Building Windows 8.1 Apps with Mobile Services
 
JQuery
JQueryJQuery
JQuery
 
Short intro to JQuery and Modernizr
Short intro to JQuery and ModernizrShort intro to JQuery and Modernizr
Short intro to JQuery and Modernizr
 
Summer - The HTML5 Library for Java and Scala
Summer - The HTML5 Library for Java and ScalaSummer - The HTML5 Library for Java and Scala
Summer - The HTML5 Library for Java and Scala
 
Big Data for each one of us
Big Data for each one of usBig Data for each one of us
Big Data for each one of us
 
Codigo player 3
Codigo player 3Codigo player 3
Codigo player 3
 
Jquery image slider
Jquery image slider Jquery image slider
Jquery image slider
 
jQuery
jQueryjQuery
jQuery
 
Going with style: Themes and apps for Magento Go
Going with style: Themes and apps for Magento GoGoing with style: Themes and apps for Magento Go
Going with style: Themes and apps for Magento Go
 
Introduction to j query
Introduction to j queryIntroduction to j query
Introduction to j query
 
AngularJS in 60ish Minutes
AngularJS in 60ish MinutesAngularJS in 60ish Minutes
AngularJS in 60ish Minutes
 
JQuery Comprehensive Overview
JQuery Comprehensive OverviewJQuery Comprehensive Overview
JQuery Comprehensive Overview
 
Drupal 7 Entity & Entity API
Drupal 7 Entity & Entity APIDrupal 7 Entity & Entity API
Drupal 7 Entity & Entity API
 

Ähnlich wie Sencha Touch basic concepts, pros and cons

Developing your first application using FIWARE
Developing your first application using FIWAREDeveloping your first application using FIWARE
Developing your first application using FIWARE
FIWARE
 
Create a mobile web app with Sencha Touch
Create a mobile web app with Sencha TouchCreate a mobile web app with Sencha Touch
Create a mobile web app with Sencha Touch
James Pearce
 
Developing your first application using FI-WARE
Developing your first application using FI-WAREDeveloping your first application using FI-WARE
Developing your first application using FI-WARE
Fermin Galan
 
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
Igor Bronovskyy
 
Practical AngularJS
Practical AngularJSPractical AngularJS
Practical AngularJS
Wei Ru
 
Building Progressive Web Apps for Android and iOS
Building Progressive Web Apps for Android and iOSBuilding Progressive Web Apps for Android and iOS
Building Progressive Web Apps for Android and iOS
FITC
 
Evolving your Data Access with MongoDB Stitch
Evolving your Data Access with MongoDB StitchEvolving your Data Access with MongoDB Stitch
Evolving your Data Access with MongoDB Stitch
MongoDB
 
Building a chat app with windows azure mobile
Building a chat app with windows azure mobileBuilding a chat app with windows azure mobile
Building a chat app with windows azure mobile
Flavius-Radu Demian
 
Angular를 활용한 웹 프론트단 개발과 2.0에서 달라진점
Angular를 활용한 웹 프론트단 개발과 2.0에서 달라진점Angular를 활용한 웹 프론트단 개발과 2.0에서 달라진점
Angular를 활용한 웹 프론트단 개발과 2.0에서 달라진점
Jeado Ko
 

Ähnlich wie Sencha Touch basic concepts, pros and cons (20)

Developing your first application using FIWARE
Developing your first application using FIWAREDeveloping your first application using FIWARE
Developing your first application using FIWARE
 
Create a mobile web app with Sencha Touch
Create a mobile web app with Sencha TouchCreate a mobile web app with Sencha Touch
Create a mobile web app with Sencha Touch
 
A mobile web app for Android in 75 minutes
A mobile web app for Android in 75 minutesA mobile web app for Android in 75 minutes
A mobile web app for Android in 75 minutes
 
Developing your first application using FI-WARE
Developing your first application using FI-WAREDeveloping your first application using FI-WARE
Developing your first application using FI-WARE
 
Infrastructure as Code: Manage your Architecture with Git
Infrastructure as Code: Manage your Architecture with GitInfrastructure as Code: Manage your Architecture with Git
Infrastructure as Code: Manage your Architecture with Git
 
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
 
Ext JS Introduction
Ext JS IntroductionExt JS Introduction
Ext JS Introduction
 
Paris js extensions
Paris js extensionsParis js extensions
Paris js extensions
 
Micro app-framework - NodeLive Boston
Micro app-framework - NodeLive BostonMicro app-framework - NodeLive Boston
Micro app-framework - NodeLive Boston
 
Micro app-framework
Micro app-frameworkMicro app-framework
Micro app-framework
 
Practical AngularJS
Practical AngularJSPractical AngularJS
Practical AngularJS
 
Building Progressive Web Apps for Android and iOS
Building Progressive Web Apps for Android and iOSBuilding Progressive Web Apps for Android and iOS
Building Progressive Web Apps for Android and iOS
 
Evolving your Data Access with MongoDB Stitch
Evolving your Data Access with MongoDB StitchEvolving your Data Access with MongoDB Stitch
Evolving your Data Access with MongoDB Stitch
 
Bigger Stronger Faster
Bigger Stronger FasterBigger Stronger Faster
Bigger Stronger Faster
 
NodeJS
NodeJSNodeJS
NodeJS
 
Sencha Touch - Introduction
Sencha Touch - IntroductionSencha Touch - Introduction
Sencha Touch - Introduction
 
NodeJS and ExpressJS.pdf
NodeJS and ExpressJS.pdfNodeJS and ExpressJS.pdf
NodeJS and ExpressJS.pdf
 
Building a chat app with windows azure mobile
Building a chat app with windows azure mobileBuilding a chat app with windows azure mobile
Building a chat app with windows azure mobile
 
Aprimorando sua Aplicação com Ext JS 4 - BrazilJS
Aprimorando sua Aplicação com Ext JS 4 - BrazilJSAprimorando sua Aplicação com Ext JS 4 - BrazilJS
Aprimorando sua Aplicação com Ext JS 4 - BrazilJS
 
Angular를 활용한 웹 프론트단 개발과 2.0에서 달라진점
Angular를 활용한 웹 프론트단 개발과 2.0에서 달라진점Angular를 활용한 웹 프론트단 개발과 2.0에서 달라진점
Angular를 활용한 웹 프론트단 개발과 2.0에서 달라진점
 

Kürzlich hochgeladen

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Kürzlich hochgeladen (20)

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 

Sencha Touch basic concepts, pros and cons

  • 1. Sencha Touch concepts, pros and cons EPAM Ukraine, 2013, oleg_gomozov@epam.com
  • 2. Simple overview - rich single page application - touch-oriented UI - touch events(inc. drag&drop) - HTML5, CSS3 - device API, audio, video - responsive design, customizable
  • 3. Features List UIContro ls DataTransport Other StructureUtils
  • 4. Basics Ext.ns(‘Namespace’); Ext.define('Namespace.NewClass', { extend: ‘Ext.Base’, alias: ‘newclass’, alternateClassName: ‘SomeClass’, mixins: [], requires: ['Ext.Panel’], config: {}, statics: {}, inheritableStatics: {}, constructor: function(config) { this.initConfig(config); this.callParent(arguments); }, });
  • 5. Single page application - MVC <!DOCTYPE html> <html> <head> <title>MvcTouch</title> <link rel="stylesheet" type="text/css" href="lib/sencha-touch-2.3.0/sencha-touch.css" /> <script type="text/javascript" src="lib/sencha-touch-2.3.0/sencha-touch.js"></script> <script type="text/javascript" src="app/app.js"></script> </head> <body></body> </html>
  • 6. Ext.Loader.setConfig({ enabled : true }); Ext.application({ name: 'MyApp', profiles: ['Tablet'], views: [ ], models: [ ], controllers: [ 'Main' ], launch:function(){ Ext.Viewport.setActiveItem(Ext.create('MyApp.view.Main')); } });
  • 7. View and Controller Ext.define('MyApp.view.Main', { extend: 'Ext.navigation.View', config: { fullscreen : true, items: [ { title: 'My Great App' }, { xtype: ‘button’, id: ‘#coolBtn’ } ] } }); Ext.define('MyApp.controller.Main', { extend: 'Ext.app.Controller', config: { refs: { coolButton: '#coolBtn' }, control: { coolButton: { tap: 'onCoolButtonTap' } } }, launch: function () {}, onCoolButtonTap: function(button) { } });
  • 8. Model, Store and Proxy Ext.define("MyApp.model.SampleModel", { extend: "Ext.data.Model", config: { idProperty: "id", fields: [ { name: "id", type: "integer" }, { name: "content" , type: "string" } ] } }); Ext.define("MyApp.data.Proxy", { extend: "Ext.data.proxy.Proxy" readerwriter: SomeReaderOrWriter }); Ext.define("MyApp.store.SampleStore", { extend: "Ext.data.Store", requires: ["MyApp.model.SampleModel"], config: { model: "MyApp.model.SampleModel", proxy: { type: "ajax", api: { create: "createURL", read: "readURL", update: "updateURL", destroy: "destroyURL" }, data: [ { id: 1, content: "Text1"}] });
  • 9. Component and Container Ext.create('Ext.Container', { fullscreen: true, layout: 'fit', items: [ { xtype: 'panel', html: ‘panel is created by xtype' }, { xtype: 'toolbar', title: 'So is the toolbar', docked: 'top' } ] }); Ext.define('MyApp.UI.CoolButton, { extend: ‘Ext.Button’, config: { xtype: ‘coolbutton’, cls: 'cls', listeners: { tap: ‘onTapFunc’, scope: someScope } }, initialize: function () {} onTapFunc: function () {} });
  • 10. LHBayout o x VBox Card Fit Docking
  • 11. Pros - solid OOP, - all-in-one(MVC,UI,Data,device API etc.) - HTML5 API - good documentation, community and suppot - nativePhoneGAP easy-to-build hybrid apps - plugins - Sencha Architect, Animator , etc.
  • 12. Cons - webkit-only - proprietary license - “heavy” DOM-elements