EventNinja
                          Dojo and Mobile
                   Building mobile applications with the Dojo Toolkit




Nikolai Onken - @uxebu, @nonken
What are we going to do next?




             • Mobile and Dojo? Where do we stand?
             • Lets dive in - EventNinja
             • Questions?


Nikolai Onken - @uxebu, @nonken
What are we going to do next?




             • Mobile and Dojo? Where do we stand?
             • Lets dive in - EventNinja
             • Questions?


Nikolai Onken - @uxebu, @nonken
Are we ready yet?



                                       YES :)
                                       NO =/




Nikolai Onken - @uxebu, @nonken
Why choose Dojo?



                                  performance benchmarks
                                        (even though they don’t count)




               http://blog.stefankolb.de/2009/05/13/javascript-
                     frameworks-within-mobile-widgets/




Nikolai Onken - @uxebu, @nonken
Very flexible build system:
                                     e.g. webkit mobile
             http://alex.dojotoolkit.org/2009/01/webkit-mobile/




Nikolai Onken - @uxebu, @nonken
Custom build




Nikolai Onken - @uxebu, @nonken
Custom build




Nikolai Onken - @uxebu, @nonken
What are we going to do next?




             • Dojo introduction
             • Mobile and Dojo? Where do we stand?
             • Lets dive in - EventNinja


Nikolai Onken - @uxebu, @nonken
EventNinja




Nikolai Onken - @uxebu, @nonken
The idea


             • upcoming, eventbrite, ...
             • finding all web dev events on one page?
             • YES: HTML, CSS, JS
             • NO: Objective C, Java, other proprietary stuff
             • AND: we are lazy ... fastest way from idea to
                  result? mobile devices and normal websites???



Nikolai Onken - @uxebu, @nonken
Nikolai Onken - @uxebu, @nonken
Use the cloud when possible




Nikolai Onken - @uxebu, @nonken
for your DATA




Nikolai Onken - @uxebu, @nonken
Nikolai Onken - @uxebu, @nonken
Nikolai Onken - @uxebu, @nonken
Nikolai Onken - @uxebu, @nonken
Use the cloud - again




Nikolai Onken - @uxebu, @nonken
for your JS/CSS/Images (CDN)

       Be careful though - mobile apps need custom builds for deploy




Nikolai Onken - @uxebu, @nonken
What could be a good architecture?

             • Something similar to the MVC pattern
             • Tiny base (especially for mobile)
             • Extra functionality through plugins
             • Styling via CSS
             • Platform specific design via templates (DTL)
                                          =

                                  Multiple Platforms

Nikolai Onken - @uxebu, @nonken
Nikolai Onken - @uxebu, @nonken
See it in action




Nikolai Onken - @uxebu, @nonken
The source




Nikolai Onken - @uxebu, @nonken
Templating




Nikolai Onken - @uxebu, @nonken
Templating - source




Nikolai Onken - @uxebu, @nonken
Plugins




Nikolai Onken - @uxebu, @nonken
Plugin - Structure




Nikolai Onken - @uxebu, @nonken
Mobile Version, the goal


             • W3C Widgets
             • Nokia S60 (W3C)
             • Palm Pre (NEW)
             • iPhone (Phonegap)
             • Android (Phonegap)
             • Blackberry (Phonegap)

Nikolai Onken - @uxebu, @nonken
See it in action - more details




Nikolai Onken - @uxebu, @nonken
Mobile development tips




Nikolai Onken - @uxebu, @nonken
Build platform/device specific




             • CSS Transitions (Webkit)
             • Device API support (geolocation, etc.)
             • Custom builds (Deliver in chunks, small initial
                  hit)




Nikolai Onken - @uxebu, @nonken
An example: iPhone




Nikolai Onken - @uxebu, @nonken
Extending objects / CSS transitions




Nikolai Onken - @uxebu, @nonken
Device API support




                                    OUPS, not there yet :(




Nikolai Onken - @uxebu, @nonken
Custom builds




Nikolai Onken - @uxebu, @nonken
Automate

         Set up deployment processes for all platforms you
         want to support (sh is your friend)




Nikolai Onken - @uxebu, @nonken
How do I test?



         • Debugging tools on mobile devices suck (most)
          • http://www.opera.com/dragonfly
         • Uhh, the screen is so tiny (firebug lite?)
         • phone specific deploy process takes ages (e.g.
               iPhone)




Nikolai Onken - @uxebu, @nonken
Some tips

         • Always test your app before you build the JS
         • Always test the built JS in a normal browser
         • e.g. iPhone: test in Webkit
         • e.g. iPhone, test on the iPhone browser before you
               compile your native app

         • e.g. S60: test in Opera
         • Always do this
         • Really!
Nikolai Onken - @uxebu, @nonken
Simulators are not devices,
                             unfortunately



                                  Do you have a phone for me?
                                   ....Start collecting phones,
                 optimize for the lowest common denominator




Nikolai Onken - @uxebu, @nonken
And once you have found the solution




                                  Share your knowledge




Nikolai Onken - @uxebu, @nonken
Questions?




Nikolai Onken - @uxebu, @nonken
thx

                                  http://blog.uxebu.com
                                      Nikolai Onken, uxebu
                                       nikolai@uxebu.com

                                       @uxebu, @nonken


Nikolai Onken - @uxebu, @nonken

EventNinja, Dojo and mobile

  • 1.
    EventNinja Dojo and Mobile Building mobile applications with the Dojo Toolkit Nikolai Onken - @uxebu, @nonken
  • 2.
    What are wegoing to do next? • Mobile and Dojo? Where do we stand? • Lets dive in - EventNinja • Questions? Nikolai Onken - @uxebu, @nonken
  • 3.
    What are wegoing to do next? • Mobile and Dojo? Where do we stand? • Lets dive in - EventNinja • Questions? Nikolai Onken - @uxebu, @nonken
  • 4.
    Are we readyyet? YES :) NO =/ Nikolai Onken - @uxebu, @nonken
  • 5.
    Why choose Dojo? performance benchmarks (even though they don’t count) http://blog.stefankolb.de/2009/05/13/javascript- frameworks-within-mobile-widgets/ Nikolai Onken - @uxebu, @nonken
  • 6.
    Very flexible buildsystem: e.g. webkit mobile http://alex.dojotoolkit.org/2009/01/webkit-mobile/ Nikolai Onken - @uxebu, @nonken
  • 7.
    Custom build Nikolai Onken- @uxebu, @nonken
  • 8.
    Custom build Nikolai Onken- @uxebu, @nonken
  • 9.
    What are wegoing to do next? • Dojo introduction • Mobile and Dojo? Where do we stand? • Lets dive in - EventNinja Nikolai Onken - @uxebu, @nonken
  • 10.
  • 11.
    The idea • upcoming, eventbrite, ... • finding all web dev events on one page? • YES: HTML, CSS, JS • NO: Objective C, Java, other proprietary stuff • AND: we are lazy ... fastest way from idea to result? mobile devices and normal websites??? Nikolai Onken - @uxebu, @nonken
  • 12.
    Nikolai Onken -@uxebu, @nonken
  • 13.
    Use the cloudwhen possible Nikolai Onken - @uxebu, @nonken
  • 14.
    for your DATA NikolaiOnken - @uxebu, @nonken
  • 15.
    Nikolai Onken -@uxebu, @nonken
  • 16.
    Nikolai Onken -@uxebu, @nonken
  • 17.
    Nikolai Onken -@uxebu, @nonken
  • 18.
    Use the cloud- again Nikolai Onken - @uxebu, @nonken
  • 19.
    for your JS/CSS/Images(CDN) Be careful though - mobile apps need custom builds for deploy Nikolai Onken - @uxebu, @nonken
  • 20.
    What could bea good architecture? • Something similar to the MVC pattern • Tiny base (especially for mobile) • Extra functionality through plugins • Styling via CSS • Platform specific design via templates (DTL) = Multiple Platforms Nikolai Onken - @uxebu, @nonken
  • 21.
    Nikolai Onken -@uxebu, @nonken
  • 22.
    See it inaction Nikolai Onken - @uxebu, @nonken
  • 23.
    The source Nikolai Onken- @uxebu, @nonken
  • 24.
  • 25.
    Templating - source NikolaiOnken - @uxebu, @nonken
  • 26.
    Plugins Nikolai Onken -@uxebu, @nonken
  • 27.
    Plugin - Structure NikolaiOnken - @uxebu, @nonken
  • 28.
    Mobile Version, thegoal • W3C Widgets • Nokia S60 (W3C) • Palm Pre (NEW) • iPhone (Phonegap) • Android (Phonegap) • Blackberry (Phonegap) Nikolai Onken - @uxebu, @nonken
  • 29.
    See it inaction - more details Nikolai Onken - @uxebu, @nonken
  • 30.
    Mobile development tips NikolaiOnken - @uxebu, @nonken
  • 31.
    Build platform/device specific • CSS Transitions (Webkit) • Device API support (geolocation, etc.) • Custom builds (Deliver in chunks, small initial hit) Nikolai Onken - @uxebu, @nonken
  • 32.
    An example: iPhone NikolaiOnken - @uxebu, @nonken
  • 33.
    Extending objects /CSS transitions Nikolai Onken - @uxebu, @nonken
  • 34.
    Device API support OUPS, not there yet :( Nikolai Onken - @uxebu, @nonken
  • 35.
    Custom builds Nikolai Onken- @uxebu, @nonken
  • 36.
    Automate Set up deployment processes for all platforms you want to support (sh is your friend) Nikolai Onken - @uxebu, @nonken
  • 37.
    How do Itest? • Debugging tools on mobile devices suck (most) • http://www.opera.com/dragonfly • Uhh, the screen is so tiny (firebug lite?) • phone specific deploy process takes ages (e.g. iPhone) Nikolai Onken - @uxebu, @nonken
  • 38.
    Some tips • Always test your app before you build the JS • Always test the built JS in a normal browser • e.g. iPhone: test in Webkit • e.g. iPhone, test on the iPhone browser before you compile your native app • e.g. S60: test in Opera • Always do this • Really! Nikolai Onken - @uxebu, @nonken
  • 39.
    Simulators are notdevices, unfortunately Do you have a phone for me? ....Start collecting phones, optimize for the lowest common denominator Nikolai Onken - @uxebu, @nonken
  • 40.
    And once youhave found the solution Share your knowledge Nikolai Onken - @uxebu, @nonken
  • 41.
  • 42.
    thx http://blog.uxebu.com Nikolai Onken, uxebu nikolai@uxebu.com @uxebu, @nonken Nikolai Onken - @uxebu, @nonken