SlideShare ist ein Scribd-Unternehmen logo
1 von 60
SENCHA TOUCH
    DRUYTS TOM
WHY MOBILE WEB APPS
WHY MOBILE WEB APPS
SENCHA TOUCH


A framework to build HTML 5 mobile applications for iOS,
Android and Blackberry
ARCHITECTURE
               Class System
               Event System
               Data package
               Widgets & Layouts
               …
THE CLASS SYSTEM

      Prototype-
                   Class-based
        based
THE CLASS SYSTEM
                        Flexibility




   Sencha class
     system       =   Predictability




                       Programmer
                        Familiarity
CLASS DEFINITION
Ext.define(‘My.Sample.Person’, {
        constructor: function(name) {
                 this.name = name
        },


        walk: function(steps) {
                 alert(this.name + ‘is walking’ + steps +
                 ‘steps’);
        }
});
HOW TO CREATE AN
OBJECT
var person = new My.sample.Person(‘Tom’);
person.walk();
INHERITENCE
Ext.define(‘My.sample.Person’, {
             constructor: function(name) {
                           this.name = name;
             },
             walk: function(steps) {
                           alert(this.name + ‘ is walking ‘ + steps + ‘ steps’);
             }
});


Ext.define(‘My.sample.Developer’, {
             extend: ‘My.sample.Person’,
             code: function(language) {
                           alert(this.name + ‘ is coding in ‘ + language);
             }
});
INHERITENCE
var tom = new My.sample.Developer(‘tom’);
tom.walk(5);
tom.code(‘Javascript’);
MIXINS
Used to generate multiple inheritance
DEPENDENCY
MANAGEMENT
<html>
<script src=‘sencha-touch-debug.js’></script>
</html>
DEPENDENCY
MANAGEMENT
<html>
<script src=‘sencha-touch-debug.js’></script>
<script>
var tom = new My.sample.Person(‘Tom’);
</script>
</html>
DEPENDENCY
MANAGEMENT
<html>
<script src=‘sencha-touch-debug.js’></script>
<script src=‘My.sample.Person’></script>
<script>
var tom = new My.sample.Person(‘Tom’);
</script>
</html>
DEPENDENCY
MANAGEMENT
<html>
<script src=‘sencha-touch-debug.js’></script>
<script src=‘My.sample.Person’></script>
<script src=‘My.sample.Developer’></script>
<script>
var tom = new My.sample.Person(‘Tom’);
var developer = new My.sample.Developer(‘Tom’);
</script>
</html>
DEPENDENCY
MANAGEMENT
What if we got 50 classes ?


The order of the script tags is important


Becomes a nightmare to manage !
DEPENDENCY
MANAGEMENT
Only include the sencha-touch-debug.js file


Use Ext.create to create new objects
   • Will automatically load the class if it isn’t loaded yet
   • No need to write the imports yourself anymore
DEPENDENCY
MANAGEMENT
<html>
<script src=‘sencha-touch-debug.js’></script>
var tom = Ext.create(‘My.sample.Developer’, {name: ‘Tom’});
</script>
</html>
CONFIG
Ext.define(‘My.Sample.Person’, {
           name: ‘’,
           constructor: function(name) {
                       this.name = name
           },


           getName: function() {
                       return name;
           },


           setName: function(newName) {
                       this.name = newName;
           },
});
CONFIG
If we got a lot of properties, you need to write a lot of
getters and setters


Nobody likes writing getters and setters, it is just boring


Put them in a config object, and get the setters and
getters for free
CONFIG
Ext.define(‘My.sample.Person’, {
        config: {
                    name: ‘Unkown’
        },
        constructor: function(config) {
                    this.initConfig(config);
        }
});
CONFIG
var person = Ext.create(‘My.sample.Person’, {name: ‘Tom’, age: 25});
person.getName()          //Tom
person.getAge()           //25
CONFIG
Great those auto generated setters


But what about validation ?


What if I want to do more then just assigning the value to
the field ?
CONFIG: SETTER
PROCESS




Before               Set             After
Validation       Actual assignment   Notification
Filtering                            Updating dependencies
Transformation
CONFIG: SETTER
PROCESS
   setFoo()



Before                     processedValue = applyFoo(newValue, oldValue)




 Set     This.foo = processedValue




Update                          updateFoo(processedValue, oldValue)
Ext.define(‘My.sample.Person’, {
            config: {
                         name: ‘Unkown’
            },
            constructor: function(config) {
                         this.initConfig(config);
            },


            applyName: function(newValue, oldValue) {
                         return ‘De heer’ + newValue;
            },


            updateName: function(newValue, oldValue) {
                         alert(‘Value changed to:’ + name);
            }
});
CLASS SYSTEM
Basic understanding of the Class system


Powerful system built in the framework to make the life
of developers much easier


Now we can stop the boring stuff and start writing
applications
What are we going to build ?
TYPICAL APPLICATION
ARCHITECTURE
TYPICAL APPLICATION
STRUCTURE
Which translates to the following directory structure:
INDEX.HTML
Include the correct build




Include the CSS file from sencha
Include the app.js file
Leave the body tags empty
APP.JS
Defines the entry point of the application


The launch function will automatically be called when the
framework is loaded


Within the launch function, create your first view and add
it to the viewport
VIEWS
Views are what the user interacts with directly


Sencha Touch comes with a wide range of predefined
views that you can use
   •   Panels, Containers
   •   Buttons
   •   Lists
   •   Textfields, checkboxes, toggle fields
   •   …


Must be created in the view subfolder
CONTROLLERS
Controllers are responsible for responding to events that
occur within your app


They are automatically created when the application is
launched


Makes use of the powerful twin configuration:
• Refs
• Controls
CONTROLLERS: REFS
Used to get a reference to a component


Makes use of the ComponentQuery syntax to the locate
components


Example:
Refs: {
          homeButton: ‘#home’
}


You get the getter for free !
CONTROLLERS:
CONTROLS
Defines the events on which the controller listens and
how to react


Example:
control: {
             homeButton: {
                     goHome: ‘showTheHomeView’
             }
}
CONTROLLERS: ROUTES
Since Sencha Touch 2 controllers have support for Routes


Enables History support


Example:
Routes: {
        ‘login’: ‘showLogin’
}


Will listen to http://myApp.com/#login
MODELS
Represents the data in our application
MODELS: FIELDS
Defines the properties of the model


Consists of:
     • Name
     • Type


fields: {
            {name: ‘id’, type: ‘int’}
            {name: ‘name’, type: ‘string’}
}
MODELS: PROXIES
Defines where and how to load/save the data


Mainly used by stores


You must define:
   • Type of proxy
   • The URL
   • The reader (json or xml)
PROXIES: REST
Ext.define(‘App.model.Broodje’, {
             extend: ‘Ext.data.Model’,
             config: {
                           fiels: [‘id’, ‘name’],
                           proxy: {
                                           type: ‘rest’,
                                           url: ‘data/broodjes’,
                                           reader: {
                                                           type: ‘json’,
                                                           root: ‘broodje’
                                           }
                           }
             }
});
PROXIES: REST
var broodje = Ext.create(‘App.model.Broodje’, {name: ‘smos kaas’});


broodje.save()            // POST /broodjes
broodje.destroy()         //DELETE /broodjes/123


If not happy with the default URLs, implement the
buildUrl method to customize the generated URLs
MODELS:
ASSOCIATIONS
Most applications have relations between models


The associations API enables developers to express those
relations


Possibilities:
   • hasMany
   • belongsTo
MODELS:
ASSOCIATIONS
Ext.define(‘App.model.Broodje’, {
         extend: ‘Ext.data.Model’,
         config: {
                     hasMany: {model: ‘Ingredient’, name: ‘ingredients’}
         }
});
Ext.define(‘App.model.Ingredient’, {
         extend: ‘Ext.data.Model’,
         config: {
                     belongsTo: ‘Ext.data.Model’
         }
});
ASSOCIATIONS: THE
BENEFITS
Benefits off defining associations:
       • Data of ‘child’ members get automatic loaded
       • Easy to traverse the associated data



broodje.ingredients().each(function(ingredient) {
      console.log(ingredient);
});
MODELS: VALIDATIONS
Models have support for validations


Possible validations:
   •   Presence
   •   Length
   •   Format
   •   Inclusion
   •   Exclusion
MODELS: VALIDATIONS
Examples:


{ type: 'presence', field: 'name' },
{ type: 'length', field: 'name', min: 5 },
{ type: 'format', field: 'age', matcher: /d+/ },
{ type: 'inclusion', field: 'gender', list: ['male', 'female'] },
{ type: 'exclusion', field: 'name', list: ['admin'] }
MODELS: VALIDATIONS
How to use ?
var newUser = Ext.create('User',
{ name: 'admin', age: 'twenty-nine', gender: 'not a valid gender' }
);


var errors = newUser.validate();
errors.isValid();           //returns false if there were validations errors
errors.items();             //returns an array of all errors
STORES
Is just basically a collection of model instances


Are used to load data into a List


Can optionally use a Proxy to load the required data


Support for sorting & grouping
HYBRID APPLICATIONS
This is all nice but we are still running in the browser


What if we want a ‘real’ application ?


What if we want to access device functionality like
   •   Contacts list
   •   Camera
   •   Photos
   •   …
HYBRID ?

Site
       Web sites



                   Web apps



                              Native app


App
                                       Native
HYBRID ?

Site
       Web sites



                   Web apps
                              Hybrid
                              apps

                                       Native app


App
                                                Native
HYBRID ?

           WebFont          Video            Audio         Graphics


Camera                                                                HTTP
             CSS Styling & Layout

Location                                                              AJAX
             JavaScript
Contacts                                                              Events
             Semantic HTML
 SMS                                                                  Sockets


                                Parralel             Cross app
              File system
                                processing           messagin
HYBRID ?
                                    WebView

           WebFont          Video            Audio         Graphics


Camera                                                                HTTP
             CSS Styling & Layout

Location                                                              AJAX
             JavaScript
Contacts                                                              Events
             Semantic HTML
 SMS                                                                  Sockets


                                Parralel             Cross app
              File system
                                processing           messagin
Native wrapper

                                     WebView

           WebFont          Video            Audio         Graphics


Camera                                                                HTTP
             CSS Styling & Layout

Location                                                              AJAX
             JavaScript
Contacts                                                              Events
             Semantic HTML
 SMS                                                                  Sockets


                                Parralel             Cross app
              File system
                                processing           messagin
SENCHA TOOLS
Sencha Tools allows you to build a Native Wrapper


Build your project with the Sencha Tools and you get a
native app


But what about the left side ?
PHONEGAP
Tries to close the gap between web apps and access to
the device APIs


Different on every platform


Access to:
   •   Camera
   •   Contacts
   •   Notification
   •   Storage
   •   …
QUESTIONS ?

Weitere ähnliche Inhalte

Was ist angesagt?

Web2py tutorial to create db driven application.
Web2py tutorial to create db driven application.Web2py tutorial to create db driven application.
Web2py tutorial to create db driven application.
fRui Apps
 
The state of Symfony2 - SymfonyDay 2010
The state of Symfony2 - SymfonyDay 2010The state of Symfony2 - SymfonyDay 2010
The state of Symfony2 - SymfonyDay 2010
Fabien Potencier
 

Was ist angesagt? (20)

Love and Loss: A Symfony Security Play
Love and Loss: A Symfony Security PlayLove and Loss: A Symfony Security Play
Love and Loss: A Symfony Security Play
 
Sane Async Patterns
Sane Async PatternsSane Async Patterns
Sane Async Patterns
 
How I started to love design patterns
How I started to love design patternsHow I started to love design patterns
How I started to love design patterns
 
How Kris Writes Symfony Apps
How Kris Writes Symfony AppsHow Kris Writes Symfony Apps
How Kris Writes Symfony Apps
 
How I started to love design patterns
How I started to love design patternsHow I started to love design patterns
How I started to love design patterns
 
Virtual Madness @ Etsy
Virtual Madness @ EtsyVirtual Madness @ Etsy
Virtual Madness @ Etsy
 
Lithium: The Framework for People Who Hate Frameworks
Lithium: The Framework for People Who Hate FrameworksLithium: The Framework for People Who Hate Frameworks
Lithium: The Framework for People Who Hate Frameworks
 
CQRS and Event Sourcing in a Symfony application
CQRS and Event Sourcing in a Symfony applicationCQRS and Event Sourcing in a Symfony application
CQRS and Event Sourcing in a Symfony application
 
Rich domain model with symfony 2.5 and doctrine 2.5
Rich domain model with symfony 2.5 and doctrine 2.5Rich domain model with symfony 2.5 and doctrine 2.5
Rich domain model with symfony 2.5 and doctrine 2.5
 
Symfony2, creare bundle e valore per il cliente
Symfony2, creare bundle e valore per il clienteSymfony2, creare bundle e valore per il cliente
Symfony2, creare bundle e valore per il cliente
 
Advanced Django
Advanced DjangoAdvanced Django
Advanced Django
 
Web2py tutorial to create db driven application.
Web2py tutorial to create db driven application.Web2py tutorial to create db driven application.
Web2py tutorial to create db driven application.
 
Mashing up JavaScript
Mashing up JavaScriptMashing up JavaScript
Mashing up JavaScript
 
The state of Symfony2 - SymfonyDay 2010
The state of Symfony2 - SymfonyDay 2010The state of Symfony2 - SymfonyDay 2010
The state of Symfony2 - SymfonyDay 2010
 
Mashing up JavaScript – Advanced Techniques for modern Web Apps
Mashing up JavaScript – Advanced Techniques for modern Web AppsMashing up JavaScript – Advanced Techniques for modern Web Apps
Mashing up JavaScript – Advanced Techniques for modern Web Apps
 
Design Patterns avec PHP 5.3, Symfony et Pimple
Design Patterns avec PHP 5.3, Symfony et PimpleDesign Patterns avec PHP 5.3, Symfony et Pimple
Design Patterns avec PHP 5.3, Symfony et Pimple
 
Min-Maxing Software Costs - Laracon EU 2015
Min-Maxing Software Costs - Laracon EU 2015Min-Maxing Software Costs - Laracon EU 2015
Min-Maxing Software Costs - Laracon EU 2015
 
The State of Lithium
The State of LithiumThe State of Lithium
The State of Lithium
 
SenchaCon 2016: Want to Use Ext JS Components with Angular 2? Here’s How to I...
SenchaCon 2016: Want to Use Ext JS Components with Angular 2? Here’s How to I...SenchaCon 2016: Want to Use Ext JS Components with Angular 2? Here’s How to I...
SenchaCon 2016: Want to Use Ext JS Components with Angular 2? Here’s How to I...
 
Lithium: The Framework for People Who Hate Frameworks, Tokyo Edition
Lithium: The Framework for People Who Hate Frameworks, Tokyo EditionLithium: The Framework for People Who Hate Frameworks, Tokyo Edition
Lithium: The Framework for People Who Hate Frameworks, Tokyo Edition
 

Ähnlich wie Sencha Touch - Introduction

JavaScript & Cloud: the AWS JS SDK and how to work with cloud resources
JavaScript & Cloud: the AWS JS SDK and how to work with cloud resourcesJavaScript & Cloud: the AWS JS SDK and how to work with cloud resources
JavaScript & Cloud: the AWS JS SDK and how to work with cloud resources
Corley S.r.l.
 
JavaScript para Graficos y Visualizacion de Datos
JavaScript para Graficos y Visualizacion de DatosJavaScript para Graficos y Visualizacion de Datos
JavaScript para Graficos y Visualizacion de Datos
philogb
 
JavaScript para Graficos y Visualizacion de Datos - BogotaJS
JavaScript para Graficos y Visualizacion de Datos - BogotaJSJavaScript para Graficos y Visualizacion de Datos - BogotaJS
JavaScript para Graficos y Visualizacion de Datos - BogotaJS
philogb
 

Ähnlich wie Sencha Touch - Introduction (20)

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
 
Intro to Ember.JS 2016
Intro to Ember.JS 2016Intro to Ember.JS 2016
Intro to Ember.JS 2016
 
Apache Drill with Oracle, Hive and HBase
Apache Drill with Oracle, Hive and HBaseApache Drill with Oracle, Hive and HBase
Apache Drill with Oracle, Hive and HBase
 
Build restful ap is with python and flask
Build restful ap is with python and flaskBuild restful ap is with python and flask
Build restful ap is with python and flask
 
Mongoose and MongoDB 101
Mongoose and MongoDB 101Mongoose and MongoDB 101
Mongoose and MongoDB 101
 
Build Web Apps using Node.js
Build Web Apps using Node.jsBuild Web Apps using Node.js
Build Web Apps using Node.js
 
Reliable Javascript
Reliable Javascript Reliable Javascript
Reliable Javascript
 
Scalable web application architecture
Scalable web application architectureScalable web application architecture
Scalable web application architecture
 
Ember.js - A JavaScript framework for creating ambitious web applications
Ember.js - A JavaScript framework for creating ambitious web applications  Ember.js - A JavaScript framework for creating ambitious web applications
Ember.js - A JavaScript framework for creating ambitious web applications
 
Backbone.js
Backbone.jsBackbone.js
Backbone.js
 
Emberjs as a rails_developer
Emberjs as a rails_developer Emberjs as a rails_developer
Emberjs as a rails_developer
 
Ember.js for a CakePHP Developer
Ember.js for a CakePHP DeveloperEmber.js for a CakePHP Developer
Ember.js for a CakePHP Developer
 
JavaScript & Cloud: the AWS JS SDK and how to work with cloud resources
JavaScript & Cloud: the AWS JS SDK and how to work with cloud resourcesJavaScript & Cloud: the AWS JS SDK and how to work with cloud resources
JavaScript & Cloud: the AWS JS SDK and how to work with cloud resources
 
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
 
JavaScript para Graficos y Visualizacion de Datos
JavaScript para Graficos y Visualizacion de DatosJavaScript para Graficos y Visualizacion de Datos
JavaScript para Graficos y Visualizacion de Datos
 
JavaScript para Graficos y Visualizacion de Datos - BogotaJS
JavaScript para Graficos y Visualizacion de Datos - BogotaJSJavaScript para Graficos y Visualizacion de Datos - BogotaJS
JavaScript para Graficos y Visualizacion de Datos - BogotaJS
 
Do you know what your drupal is doing? Observe it!
Do you know what your drupal is doing? Observe it!Do you know what your drupal is doing? Observe it!
Do you know what your drupal is doing? Observe it!
 
Nodejs.meetup
Nodejs.meetupNodejs.meetup
Nodejs.meetup
 
Sencha Touch basic concepts, pros and cons
Sencha Touch basic concepts, pros and consSencha Touch basic concepts, pros and cons
Sencha Touch basic concepts, pros and cons
 

Mehr von ABC-GROEP.BE

Kdg open erp DynApps
Kdg open erp DynAppsKdg open erp DynApps
Kdg open erp DynApps
ABC-GROEP.BE
 

Mehr von ABC-GROEP.BE (20)

Technische sessie: Intro to CQRS
Technische sessie: Intro to CQRSTechnische sessie: Intro to CQRS
Technische sessie: Intro to CQRS
 
Kdg technisch
Kdg technischKdg technisch
Kdg technisch
 
Kdg open erp DynApps
Kdg open erp DynAppsKdg open erp DynApps
Kdg open erp DynApps
 
Customer Case Microsoft Partnership
Customer Case Microsoft PartnershipCustomer Case Microsoft Partnership
Customer Case Microsoft Partnership
 
ITMoov 2012 - MarathonMan Stefaan Engels
ITMoov 2012 - MarathonMan Stefaan EngelsITMoov 2012 - MarathonMan Stefaan Engels
ITMoov 2012 - MarathonMan Stefaan Engels
 
ITmoov 2012 - Enterprise Social Networking
ITmoov 2012 - Enterprise Social NetworkingITmoov 2012 - Enterprise Social Networking
ITmoov 2012 - Enterprise Social Networking
 
ITMoov 2012 - Data governance en data quality
ITMoov 2012 - Data governance en data qualityITMoov 2012 - Data governance en data quality
ITMoov 2012 - Data governance en data quality
 
ITmoov 2012 - Het OpenERP business model
ITmoov 2012 - Het OpenERP business modelITmoov 2012 - Het OpenERP business model
ITmoov 2012 - Het OpenERP business model
 
ITmoov 2012 - Introductie ABC-Groep
ITmoov 2012 - Introductie ABC-GroepITmoov 2012 - Introductie ABC-Groep
ITmoov 2012 - Introductie ABC-Groep
 
ITmoov 2012 - De Business Intelligence achter de pensioenhervorming
ITmoov 2012 - De Business Intelligence achter de pensioenhervormingITmoov 2012 - De Business Intelligence achter de pensioenhervorming
ITmoov 2012 - De Business Intelligence achter de pensioenhervorming
 
ITmoov 2012 - De Ondernemerstriathlon
ITmoov 2012 - De OndernemerstriathlonITmoov 2012 - De Ondernemerstriathlon
ITmoov 2012 - De Ondernemerstriathlon
 
ITmoov 2012 - Rogerthat multiple choice messaging platform
ITmoov 2012 - Rogerthat multiple choice messaging platformITmoov 2012 - Rogerthat multiple choice messaging platform
ITmoov 2012 - Rogerthat multiple choice messaging platform
 
DynApps - Case IOK Afvalbeheer
DynApps - Case IOK AfvalbeheerDynApps - Case IOK Afvalbeheer
DynApps - Case IOK Afvalbeheer
 
Forum Event KA-TI: OpenERP at a glance
Forum Event KA-TI: OpenERP at a glanceForum Event KA-TI: OpenERP at a glance
Forum Event KA-TI: OpenERP at a glance
 
Forum Event KA-TI: Open source ook voor bedrijfskritische applicaties
Forum Event KA-TI: Open source ook voor bedrijfskritische applicatiesForum Event KA-TI: Open source ook voor bedrijfskritische applicaties
Forum Event KA-TI: Open source ook voor bedrijfskritische applicaties
 
ABC-Groep in Antwerpen Manager
ABC-Groep in Antwerpen ManagerABC-Groep in Antwerpen Manager
ABC-Groep in Antwerpen Manager
 
Customer Case Oracle - VMM
Customer Case Oracle - VMMCustomer Case Oracle - VMM
Customer Case Oracle - VMM
 
Customer Case SharePoint - Qualiphar
Customer Case SharePoint - QualipharCustomer Case SharePoint - Qualiphar
Customer Case SharePoint - Qualiphar
 
Customer Case Oracle - Bibnet
Customer Case Oracle - BibnetCustomer Case Oracle - Bibnet
Customer Case Oracle - Bibnet
 
IT Methodologies
IT MethodologiesIT Methodologies
IT Methodologies
 

Kürzlich hochgeladen

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Kürzlich hochgeladen (20)

Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
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
 
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...
 
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
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 

Sencha Touch - Introduction

Hinweis der Redaktion

  1. Je bentzelfverantwoordelijkom .validate() op teroepen ! Gebeurtnietautomatisch !
  2. Network technologies on the right. Platform integration on the bottom. Device APIs on the left.Meestewebbrowser op iPhone, Android,… is beter in het rechterbovengedeelte. En slecht, of nietbestaandeaan de linkerkant.Je hebtdusgeentoegang tot de contactenlijst, sms, de camera, en alleandere device APIs… En het onderste is redelijkondersteund.Duswatkunnen we nu doen ? Het feitdat browser het rechterbovenstegedeeltegoedondersteunenwillen we nietverliezen, dusdatgaan we wrappen.
  3. Wemakengebruik van een embedded webviewdatditgedeelteondersteunt.
  4. En we stoppendeze embedded webview in een native wrapper. Onze native wrapper is dusgewooneenwebview, die al dezefunctionaliteitondersteunten waarin we onzeapplicatiedraait. Ditblijkteenenormpopulaireoplossing