SlideShare uma empresa Scribd logo
1 de 70
Baixar para ler offline
Building mobile web applications
                                        with Sencha Touch 2

                                                     Martin de Keijzer
                      iOSOnRailsConf 2013 13-14 April, Alushta Ukraine




Sunday, 14 April 13
Introduction




                                     2

Sunday, 14 April 13
About me

             Martin de Keijzer
             Dutch web developer


                      Working for Ibuildings


                      PHPBenelux Board Member


                      @Martin1982

                      http://www.martindekeijzer.nl
                                                      3

Sunday, 14 April 13
The mobile web




                            4

Sunday, 14 April 13
Apps


           Languages
            ‣ Apple: Objective-C
            ‣ Android: Java
            ‣ Windows Phone: C# / Visual Basic

          Distribution Methods
               Apple: AppStore
               Android: Market
               Windows Phone: Microsoft Market Place

                                                       5

Sunday, 14 April 13
Web Apps




          Available through the web




                                      6

Sunday, 14 April 13
Web Apps




                      Platform independent



                                             7

Sunday, 14 April 13
Web Apps




                      Can be transformed to an App-like experience

                                                                     8

Sunday, 14 April 13
Web Apps




                      Can be wrapped as native apps   9

Sunday, 14 April 13
Sunday, 14 April 13
The Sencha Touch way

            ‣ Building applications, not websites
            ‣ Pure JavaScript
            ‣ Touch framework
            ‣ MV(S)C Paradigm
            ‣ Based on ExtJS 4

           Downloadable from http://www.sencha.com




                                                     11

Sunday, 14 April 13
Sencha Cmd
                      Rapidly starting




                                         12

Sunday, 14 April 13
Quick start: Sencha Cmd

            sencha generate app <name> <path>




                                                13

Sunday, 14 April 13
Quick start: Sencha Cmd

                                     •App
                                     •Resources
                                     •app.js
                                     •.json files
                                     •index.html
                                     •touch (DO NOT TOUCH!)   14

Sunday, 14 April 13
Changing the SDK is bad! Extending is ok.




                                                       15

Sunday, 14 April 13
Testing




                      Webkit   16

Sunday, 14 April 13
Interface design
                      Setting up views




                                         17

Sunday, 14 April 13
User interface

           Abstraction of various app ui elements:
            ‣ containers
            ‣ panels
            ‣ tab panels
            ‣ carousels
            ‣ lists
            ‣ forms
            ‣ toolbars
                                                     18

Sunday, 14 April 13
Creating views




                      app/view/Technologies.js   19

Sunday, 14 April 13
Creating views




                            http://docs.sencha.com
                                                     20

Sunday, 14 April 13
Creating views




                            /app.js

                                      21

Sunday, 14 April 13
Creating views




                        app/view/Main.js   22

Sunday, 14 April 13
Creating views




                            23

Sunday, 14 April 13
Taking control
                      Bootstrapping & Controllers




                                                    24

Sunday, 14 April 13
Bootstrapping and Controllers




                                 /app.js
                        Final point of bootstrapping,
                       controllers & profiles go first
                                                        25

Sunday, 14 April 13
Bootstrapping and Controllers




                                           26

Sunday, 14 April 13
Events


      sencha generate controller <name>




                      Create a new controller   27

Sunday, 14 April 13
Events




                      Make the component selectable



                                                      28

Sunday, 14 April 13
Events




            app/controller/TechnologiesTab.js   29

Sunday, 14 April 13
Events




               app/controller/TechnologiesTab.js
                                                   30

Sunday, 14 April 13
Events




                          Querying




                      Predefined events   31

Sunday, 14 April 13
Events




               app/controller/TechnologiesTab.js   32

Sunday, 14 April 13
Events




                      33

Sunday, 14 April 13
Data binding
                      and communication




                                          34

Sunday, 14 April 13
Data communication




                                35

Sunday, 14 April 13
Model


                                  Model




                      Field


                              Association   Validation

                                                         36

Sunday, 14 April 13
Model



     sencha generate model <name>
     <property:type,[property:type]...>




                                          37

Sunday, 14 April 13
Model




                      app/model/Technologies.js   38

Sunday, 14 April 13
Store


                                  Store




                      Model


                       Filter   Grouper   Sorter

                                                   39

Sunday, 14 April 13
Store




                      app/store/Technologies.js




                              app.js              40

Sunday, 14 April 13
Proxy


              Store            Proxy            Model




                      Reader           Writer

                                                        41

Sunday, 14 April 13
Proxy




                      app/model/Technologies.js
                                                  42

Sunday, 14 April 13
Create a list




                      app/view/Technologies.js   43

Sunday, 14 April 13
Data in action!




                             44

Sunday, 14 April 13
Device profiles
                      When an OS doesn’t play well with your app




                                                                   45

Sunday, 14 April 13
Device profiles
           Different devices can require different
           options.




                                                     46

Sunday, 14 April 13
Device Profiles

           Tablet has more screen real estate and
           can provide more user interaction than
           a phone.




                                                    47

Sunday, 14 April 13
Device Profiles


                      Device profiles provide a solution!




                                                            48

Sunday, 14 April 13
Profile setup


                  sencha generate profile <name>




                                                   49

Sunday, 14 April 13
Profile overriding




                      app/view/Desktop/Main.js
                                                 50

Sunday, 14 April 13
Profile overriding




                      app/view/Tablet/Main.js
                                                51

Sunday, 14 April 13
Profile overriding




                      app/view/Phone/Main.js

                                               52

Sunday, 14 April 13
Profile overriding




                      app/profile/Tablet.js

                                              53

Sunday, 14 April 13
Profile overriding




                                Desktop
                                          54

Sunday, 14 April 13
Profile overriding




                                Phone




                                        55

Sunday, 14 April 13
Profile overriding




                                Tablet




                                         56

Sunday, 14 April 13
Your app’s got style!
                      Styling an app




                                              57

Sunday, 14 April 13
Sunday, 14 April 13
Installing Compass




                      gem install compass

                                            59

Sunday, 14 April 13
The scss file



                             Extension: .scss



                           compass compile

                            compass watch



                                                60

Sunday, 14 April 13
The scss file




                      resources/sass/app.scss   61

Sunday, 14 April 13
Compass Variables




                               touch/resources/
                                   themes/
                                 stylesheets/
                                sencha-touch/
                                   default/
                               _variables.scss

                                                  62

Sunday, 14 April 13
Compass Mixins




                            63

Sunday, 14 April 13
Quick Tips


           •Well documented on http://docs.sencha.com

           •Sencha Command

           •Sencha Architect 2

           •Keep your views clean, use controllers!

           •Mobile devices have limited hardware
                                                        64

Sunday, 14 April 13
Need another look?




                                http://www.github.com/
                                      Martin1982/
                                    iOSOnRailsConf



                                                     65

Sunday, 14 April 13
Sencha Touch by Sencha




                                    66

Sunday, 14 April 13
Sencha Touch by Sencha




                                    66

Sunday, 14 April 13
Tomorrow’s mini Workshop



                       Prepare to tag along:
                             Sencha Cmd
                        Sencha Touch 2.1.1 GPL




                                                 67

Sunday, 14 April 13
QUESTIONS



                                  68

Sunday, 14 April 13
Thank you for listening

                                  mdkeijzer@ibuildings.nl
                                            @Martin1982




Sunday, 14 April 13

Mais conteúdo relacionado

Semelhante a Hybrid Mobile Web Apps with Sencha Touch 2

Hybrid Mobile Web Apps with Sencha Touch 2
Hybrid Mobile Web Apps with Sencha Touch 2Hybrid Mobile Web Apps with Sencha Touch 2
Hybrid Mobile Web Apps with Sencha Touch 2Ibuildings
 
Android meetup
Android meetupAndroid meetup
Android meetupTy Smith
 
Native Javascript apps with PhoneGap
Native Javascript apps with PhoneGapNative Javascript apps with PhoneGap
Native Javascript apps with PhoneGapIbuildings
 
Sencha touch 2
Sencha touch 2Sencha touch 2
Sencha touch 2Ibuildings
 
Hack your phone! / User freedom in a mobile-centric world
Hack your phone!  / User freedom in a mobile-centric worldHack your phone!  / User freedom in a mobile-centric world
Hack your phone! / User freedom in a mobile-centric worldTristan Nitot
 
Developing locally with virtual machines
Developing locally with virtual machinesDeveloping locally with virtual machines
Developing locally with virtual machineswhurleyf1
 
Experiências, Erros e Acertos no Desenvolvimento de Projetos Ágeis
Experiências, Erros e Acertos no Desenvolvimento de Projetos ÁgeisExperiências, Erros e Acertos no Desenvolvimento de Projetos Ágeis
Experiências, Erros e Acertos no Desenvolvimento de Projetos ÁgeisLambda 3
 
Example Mobile Push Notification Service in Rails
Example Mobile Push Notification Service in RailsExample Mobile Push Notification Service in Rails
Example Mobile Push Notification Service in RailsMo Omer
 
From HTML5 to Hardware - Simonyi Conference Budapest April 15
From HTML5 to Hardware - Simonyi Conference Budapest April 15From HTML5 to Hardware - Simonyi Conference Budapest April 15
From HTML5 to Hardware - Simonyi Conference Budapest April 15Jan Jongboom
 
GitHub halp app - Minimizing platform-specific code with MVVM - Justin Spahr-...
GitHub halp app - Minimizing platform-specific code with MVVM - Justin Spahr-...GitHub halp app - Minimizing platform-specific code with MVVM - Justin Spahr-...
GitHub halp app - Minimizing platform-specific code with MVVM - Justin Spahr-...Xamarin
 
Show an Open Source Project Some Love and Start Using Travis-CI
Show an Open Source Project Some Love and Start Using Travis-CIShow an Open Source Project Some Love and Start Using Travis-CI
Show an Open Source Project Some Love and Start Using Travis-CIJoel Byler
 
Konvensyen Webmaster Negeri Sabah 2013
Konvensyen Webmaster Negeri Sabah 2013Konvensyen Webmaster Negeri Sabah 2013
Konvensyen Webmaster Negeri Sabah 2013edthix
 
Structuring apps in Scala
Structuring apps in ScalaStructuring apps in Scala
Structuring apps in ScalaPhil Calçado
 
iOS Combining Touch and Animation
iOS Combining Touch and AnimationiOS Combining Touch and Animation
iOS Combining Touch and AnimationRené Cacheaux
 
Workshop de Desarrollo con Cascades Blackberry Dev Meeting Santiago
Workshop de Desarrollo con Cascades Blackberry Dev Meeting SantiagoWorkshop de Desarrollo con Cascades Blackberry Dev Meeting Santiago
Workshop de Desarrollo con Cascades Blackberry Dev Meeting SantiagoCarlos Solis
 
Puppet Keynote
Puppet KeynotePuppet Keynote
Puppet KeynotePuppet
 

Semelhante a Hybrid Mobile Web Apps with Sencha Touch 2 (20)

Hybrid Mobile Web Apps with Sencha Touch 2
Hybrid Mobile Web Apps with Sencha Touch 2Hybrid Mobile Web Apps with Sencha Touch 2
Hybrid Mobile Web Apps with Sencha Touch 2
 
Sencha Touch 2
Sencha Touch 2Sencha Touch 2
Sencha Touch 2
 
Sencha Touch 2
Sencha Touch 2Sencha Touch 2
Sencha Touch 2
 
Android meetup
Android meetupAndroid meetup
Android meetup
 
Native Javascript apps with PhoneGap
Native Javascript apps with PhoneGapNative Javascript apps with PhoneGap
Native Javascript apps with PhoneGap
 
Sencha touch 2
Sencha touch 2Sencha touch 2
Sencha touch 2
 
Future layouts
Future layoutsFuture layouts
Future layouts
 
Hack your phone! / User freedom in a mobile-centric world
Hack your phone!  / User freedom in a mobile-centric worldHack your phone!  / User freedom in a mobile-centric world
Hack your phone! / User freedom in a mobile-centric world
 
Developing locally with virtual machines
Developing locally with virtual machinesDeveloping locally with virtual machines
Developing locally with virtual machines
 
Experiências, Erros e Acertos no Desenvolvimento de Projetos Ágeis
Experiências, Erros e Acertos no Desenvolvimento de Projetos ÁgeisExperiências, Erros e Acertos no Desenvolvimento de Projetos Ágeis
Experiências, Erros e Acertos no Desenvolvimento de Projetos Ágeis
 
Example Mobile Push Notification Service in Rails
Example Mobile Push Notification Service in RailsExample Mobile Push Notification Service in Rails
Example Mobile Push Notification Service in Rails
 
From HTML5 to Hardware - Simonyi Conference Budapest April 15
From HTML5 to Hardware - Simonyi Conference Budapest April 15From HTML5 to Hardware - Simonyi Conference Budapest April 15
From HTML5 to Hardware - Simonyi Conference Budapest April 15
 
GitHub halp app - Minimizing platform-specific code with MVVM - Justin Spahr-...
GitHub halp app - Minimizing platform-specific code with MVVM - Justin Spahr-...GitHub halp app - Minimizing platform-specific code with MVVM - Justin Spahr-...
GitHub halp app - Minimizing platform-specific code with MVVM - Justin Spahr-...
 
Show an Open Source Project Some Love and Start Using Travis-CI
Show an Open Source Project Some Love and Start Using Travis-CIShow an Open Source Project Some Love and Start Using Travis-CI
Show an Open Source Project Some Love and Start Using Travis-CI
 
Konvensyen Webmaster Negeri Sabah 2013
Konvensyen Webmaster Negeri Sabah 2013Konvensyen Webmaster Negeri Sabah 2013
Konvensyen Webmaster Negeri Sabah 2013
 
Structuring apps in Scala
Structuring apps in ScalaStructuring apps in Scala
Structuring apps in Scala
 
iOS Combining Touch and Animation
iOS Combining Touch and AnimationiOS Combining Touch and Animation
iOS Combining Touch and Animation
 
Workshop de Desarrollo con Cascades Blackberry Dev Meeting Santiago
Workshop de Desarrollo con Cascades Blackberry Dev Meeting SantiagoWorkshop de Desarrollo con Cascades Blackberry Dev Meeting Santiago
Workshop de Desarrollo con Cascades Blackberry Dev Meeting Santiago
 
Debugging Android - GDG Munich
Debugging Android - GDG MunichDebugging Android - GDG Munich
Debugging Android - GDG Munich
 
Puppet Keynote
Puppet KeynotePuppet Keynote
Puppet Keynote
 

Mais de Martin de Keijzer

2012 11-01 Hackers & founders - Boot to the web, boot 2 gecko / Firefox OS
2012 11-01 Hackers & founders - Boot to the web, boot 2 gecko / Firefox OS2012 11-01 Hackers & founders - Boot to the web, boot 2 gecko / Firefox OS
2012 11-01 Hackers & founders - Boot to the web, boot 2 gecko / Firefox OSMartin de Keijzer
 
2012 09-04 smart devcon - sencha touch 2
2012 09-04 smart devcon - sencha touch 22012 09-04 smart devcon - sencha touch 2
2012 09-04 smart devcon - sencha touch 2Martin de Keijzer
 
2012 09-04 smart devcon - boot to the web, boot 2 gecko
2012 09-04 smart devcon - boot to the web, boot 2 gecko2012 09-04 smart devcon - boot to the web, boot 2 gecko
2012 09-04 smart devcon - boot to the web, boot 2 geckoMartin de Keijzer
 
Let's take over the world with Zend Framework
Let's take over the world with Zend FrameworkLet's take over the world with Zend Framework
Let's take over the world with Zend FrameworkMartin de Keijzer
 
Improving code quality with continuous integration (PHPBenelux Conference 2011)
Improving code quality with continuous integration (PHPBenelux Conference 2011)Improving code quality with continuous integration (PHPBenelux Conference 2011)
Improving code quality with continuous integration (PHPBenelux Conference 2011)Martin de Keijzer
 
Improving code quality using CI
Improving code quality using CIImproving code quality using CI
Improving code quality using CIMartin de Keijzer
 
Continuous integration why and how? [DPC uncon quick-prep version]
Continuous integration   why and how? [DPC uncon quick-prep version]Continuous integration   why and how? [DPC uncon quick-prep version]
Continuous integration why and how? [DPC uncon quick-prep version]Martin de Keijzer
 

Mais de Martin de Keijzer (9)

Mobile is everywhere
Mobile is everywhereMobile is everywhere
Mobile is everywhere
 
2012 11-01 Hackers & founders - Boot to the web, boot 2 gecko / Firefox OS
2012 11-01 Hackers & founders - Boot to the web, boot 2 gecko / Firefox OS2012 11-01 Hackers & founders - Boot to the web, boot 2 gecko / Firefox OS
2012 11-01 Hackers & founders - Boot to the web, boot 2 gecko / Firefox OS
 
2012 09-04 smart devcon - sencha touch 2
2012 09-04 smart devcon - sencha touch 22012 09-04 smart devcon - sencha touch 2
2012 09-04 smart devcon - sencha touch 2
 
2012 09-04 smart devcon - boot to the web, boot 2 gecko
2012 09-04 smart devcon - boot to the web, boot 2 gecko2012 09-04 smart devcon - boot to the web, boot 2 gecko
2012 09-04 smart devcon - boot to the web, boot 2 gecko
 
Let's take over the world with Zend Framework
Let's take over the world with Zend FrameworkLet's take over the world with Zend Framework
Let's take over the world with Zend Framework
 
Improving code quality with continuous integration (PHPBenelux Conference 2011)
Improving code quality with continuous integration (PHPBenelux Conference 2011)Improving code quality with continuous integration (PHPBenelux Conference 2011)
Improving code quality with continuous integration (PHPBenelux Conference 2011)
 
Improving code quality using CI
Improving code quality using CIImproving code quality using CI
Improving code quality using CI
 
Continuous integration why and how? [DPC uncon quick-prep version]
Continuous integration   why and how? [DPC uncon quick-prep version]Continuous integration   why and how? [DPC uncon quick-prep version]
Continuous integration why and how? [DPC uncon quick-prep version]
 
Subversion In De Praktijk
Subversion In De PraktijkSubversion In De Praktijk
Subversion In De Praktijk
 

Último

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
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 Processorsdebabhi2
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
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 TerraformAndrey Devyatkin
 
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 productivityPrincipled Technologies
 
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...Miguel Araújo
 
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 Takeoffsammart93
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
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 BusinessPixlogix Infotech
 
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?Antenna Manufacturer Coco
 
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...Martijn de Jong
 
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 Scriptwesley chun
 
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?Igalia
 
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 WorkerThousandEyes
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
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...apidays
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 

Último (20)

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
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 value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
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
 
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
 
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...
 
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
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
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
 
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?
 
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...
 
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
 
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?
 
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
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
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...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 

Hybrid Mobile Web Apps with Sencha Touch 2

  • 1. Building mobile web applications with Sencha Touch 2 Martin de Keijzer iOSOnRailsConf 2013 13-14 April, Alushta Ukraine Sunday, 14 April 13
  • 2. Introduction 2 Sunday, 14 April 13
  • 3. About me Martin de Keijzer Dutch web developer Working for Ibuildings PHPBenelux Board Member @Martin1982 http://www.martindekeijzer.nl 3 Sunday, 14 April 13
  • 4. The mobile web 4 Sunday, 14 April 13
  • 5. Apps Languages ‣ Apple: Objective-C ‣ Android: Java ‣ Windows Phone: C# / Visual Basic Distribution Methods Apple: AppStore Android: Market Windows Phone: Microsoft Market Place 5 Sunday, 14 April 13
  • 6. Web Apps Available through the web 6 Sunday, 14 April 13
  • 7. Web Apps Platform independent 7 Sunday, 14 April 13
  • 8. Web Apps Can be transformed to an App-like experience 8 Sunday, 14 April 13
  • 9. Web Apps Can be wrapped as native apps 9 Sunday, 14 April 13
  • 11. The Sencha Touch way ‣ Building applications, not websites ‣ Pure JavaScript ‣ Touch framework ‣ MV(S)C Paradigm ‣ Based on ExtJS 4 Downloadable from http://www.sencha.com 11 Sunday, 14 April 13
  • 12. Sencha Cmd Rapidly starting 12 Sunday, 14 April 13
  • 13. Quick start: Sencha Cmd sencha generate app <name> <path> 13 Sunday, 14 April 13
  • 14. Quick start: Sencha Cmd •App •Resources •app.js •.json files •index.html •touch (DO NOT TOUCH!) 14 Sunday, 14 April 13
  • 15. Changing the SDK is bad! Extending is ok. 15 Sunday, 14 April 13
  • 16. Testing Webkit 16 Sunday, 14 April 13
  • 17. Interface design Setting up views 17 Sunday, 14 April 13
  • 18. User interface Abstraction of various app ui elements: ‣ containers ‣ panels ‣ tab panels ‣ carousels ‣ lists ‣ forms ‣ toolbars 18 Sunday, 14 April 13
  • 19. Creating views app/view/Technologies.js 19 Sunday, 14 April 13
  • 20. Creating views http://docs.sencha.com 20 Sunday, 14 April 13
  • 21. Creating views /app.js 21 Sunday, 14 April 13
  • 22. Creating views app/view/Main.js 22 Sunday, 14 April 13
  • 23. Creating views 23 Sunday, 14 April 13
  • 24. Taking control Bootstrapping & Controllers 24 Sunday, 14 April 13
  • 25. Bootstrapping and Controllers /app.js Final point of bootstrapping, controllers & profiles go first 25 Sunday, 14 April 13
  • 26. Bootstrapping and Controllers 26 Sunday, 14 April 13
  • 27. Events sencha generate controller <name> Create a new controller 27 Sunday, 14 April 13
  • 28. Events Make the component selectable 28 Sunday, 14 April 13
  • 29. Events app/controller/TechnologiesTab.js 29 Sunday, 14 April 13
  • 30. Events app/controller/TechnologiesTab.js 30 Sunday, 14 April 13
  • 31. Events Querying Predefined events 31 Sunday, 14 April 13
  • 32. Events app/controller/TechnologiesTab.js 32 Sunday, 14 April 13
  • 33. Events 33 Sunday, 14 April 13
  • 34. Data binding and communication 34 Sunday, 14 April 13
  • 35. Data communication 35 Sunday, 14 April 13
  • 36. Model Model Field Association Validation 36 Sunday, 14 April 13
  • 37. Model sencha generate model <name> <property:type,[property:type]...> 37 Sunday, 14 April 13
  • 38. Model app/model/Technologies.js 38 Sunday, 14 April 13
  • 39. Store Store Model Filter Grouper Sorter 39 Sunday, 14 April 13
  • 40. Store app/store/Technologies.js app.js 40 Sunday, 14 April 13
  • 41. Proxy Store Proxy Model Reader Writer 41 Sunday, 14 April 13
  • 42. Proxy app/model/Technologies.js 42 Sunday, 14 April 13
  • 43. Create a list app/view/Technologies.js 43 Sunday, 14 April 13
  • 44. Data in action! 44 Sunday, 14 April 13
  • 45. Device profiles When an OS doesn’t play well with your app 45 Sunday, 14 April 13
  • 46. Device profiles Different devices can require different options. 46 Sunday, 14 April 13
  • 47. Device Profiles Tablet has more screen real estate and can provide more user interaction than a phone. 47 Sunday, 14 April 13
  • 48. Device Profiles Device profiles provide a solution! 48 Sunday, 14 April 13
  • 49. Profile setup sencha generate profile <name> 49 Sunday, 14 April 13
  • 50. Profile overriding app/view/Desktop/Main.js 50 Sunday, 14 April 13
  • 51. Profile overriding app/view/Tablet/Main.js 51 Sunday, 14 April 13
  • 52. Profile overriding app/view/Phone/Main.js 52 Sunday, 14 April 13
  • 53. Profile overriding app/profile/Tablet.js 53 Sunday, 14 April 13
  • 54. Profile overriding Desktop 54 Sunday, 14 April 13
  • 55. Profile overriding Phone 55 Sunday, 14 April 13
  • 56. Profile overriding Tablet 56 Sunday, 14 April 13
  • 57. Your app’s got style! Styling an app 57 Sunday, 14 April 13
  • 59. Installing Compass gem install compass 59 Sunday, 14 April 13
  • 60. The scss file Extension: .scss compass compile compass watch 60 Sunday, 14 April 13
  • 61. The scss file resources/sass/app.scss 61 Sunday, 14 April 13
  • 62. Compass Variables touch/resources/ themes/ stylesheets/ sencha-touch/ default/ _variables.scss 62 Sunday, 14 April 13
  • 63. Compass Mixins 63 Sunday, 14 April 13
  • 64. Quick Tips •Well documented on http://docs.sencha.com •Sencha Command •Sencha Architect 2 •Keep your views clean, use controllers! •Mobile devices have limited hardware 64 Sunday, 14 April 13
  • 65. Need another look? http://www.github.com/ Martin1982/ iOSOnRailsConf 65 Sunday, 14 April 13
  • 66. Sencha Touch by Sencha 66 Sunday, 14 April 13
  • 67. Sencha Touch by Sencha 66 Sunday, 14 April 13
  • 68. Tomorrow’s mini Workshop Prepare to tag along: Sencha Cmd Sencha Touch 2.1.1 GPL 67 Sunday, 14 April 13
  • 69. QUESTIONS 68 Sunday, 14 April 13
  • 70. Thank you for listening mdkeijzer@ibuildings.nl @Martin1982 Sunday, 14 April 13