James Pearce
 Director, Developer Relations

 @ jamespearce
   jamesp@sencha.com
Sencha Touch
Sencha Touch is...
...a JavaScript framework for building
rich mobile apps with web standards
Why should I be building
rich mobile apps with with
Q1
      web standards?
               Q2
Q1:   Mobile
            New users
        New relationships
          New contexts
       New business models
          New channels

“The future of human communication”
Q2:     Mobile Web
           Cross-platform*
         Existing skills & tools
         No approval required
             Native APIs*
             Easy updates

“The next era of the web as we know it”


                                          * YMMV!
“HTML5”



     The Web is Evolving...
   Documents          Applications
Declarative HTML    Programmatic DOM
   Templates              APIs
     URLs              Arguments
Request/Response     Synchronization
Introducing Sencha Touch




            Let’s start with some demos...
Coming Soon: BlackBerry 6 & Meego
US Mobile Smartphone Traffic

                                     39%

                                           iOS
                                           Android
                                           RIM
47%                                        WebOS
                                           Winmo
                                           Other

                               7%
                      3%
               2%2%

              http://metrics.admob.com
                      January 2010
WebKit Rocks!
HTML5 + CSS3
Transforms, Transitions, & Animations
Canvas
SQLite
Cache Manifest
Geo-Location
What’s in Sencha Touch?
Layouts & components
Touch events & scroller
Data package
MVC framework
Orientation & animation
Theming & icons

...and more
Components
Lists
- Nested, Grouped, Sortable
Carousel
Picker
Overlay
Slider
Forms & fields
Toolbars & buttons
HTML5
- Audio
- Video
- GeoLocation
Forms
Touch Events
Built on native events

Abstracted for performance

Additional events
- Tap
- Double tap
- Tap and hold
- Swipe
- Rotate
- Drag & drop
Scrolling
Momentum/bounce physics

Hardware accelerated

Throughout all components:
- Lists
- Carousel
- Pickers
Data Package
Models, Stores, and Proxies
- Associations
- Validation
- Local & server storage

Easily consume web services
- JSON/P
- XML
- YQL
“The Kitchen Sink”




                     http://sencha.com/x/5e
Theming
CSS3, SASS & Compass
- Flexible themes
- Highly optimized

300+ Pre-included icons

Robust Animations

Resolution Independent
Applification
Working with the Web
Evolving sites for mobile

   Views
               HTML, CSS...


 Controllers
  Models
Evolving sites for mobile
           Desktop
Switcher


                     HTML, CSS...
            Mobile


  Controllers
           Models
Mobile Fu
class ApplicationController < ActionController::Base
    has_mobile_fu
end



*.mobile.erb

is_mobile_device?
in_mobile_view?




  https://github.com/brendanlim/mobile-fu
An application approach
            Desktop
Switchers



             Mobile
             REST
  Controllers         JSO
                         N
            Models
The stack of the present


                 req/res
User interface             Rendering
Business logic
   Storage
The stack of the future



                  User interface
           sync
Security          Business logic
Storage              Storage
Let’s build an app
A few other considerations
Thematic consistency
w3c-speak


             http://mysite.com/posts/123



            http://mysite.com/#!/posts/123
Smart detection
 & user choice
“Switch to our desktop site”




   http://mobiforge.com/
Brand consistency
Mobile devices
              are di erent
               Geolocation
              Telephony
              Camera
       Messaging

And mobile users
are different too!
Good luck!
http://sencha.com/products/touch/
James Pearce
 Director, Developer Relations

 @ jamespearce
   jamesp@sencha.com

Sencha Touch for Rubyists