SlideShare ist ein Scribd-Unternehmen logo
1 von 45
Downloaden Sie, um offline zu lesen
Basics of making mobile
websites with Drupal
Tom Deryckere
Software Architect / Siruna
@twom
Technology Trends

  25 years ago :The first GSM:11   kg
  Today: iPhoney’s, HSDPA, MID’s
Technology that works

 From WAP to iMode to xHTML
Network side TECHNOLOGY
 From slow connections to fast connections
5
Making content mobile
is the basis


Making mobile content
useful and usable
is the need


                6
Mobile Web Applications
     that :
     Work on a phone
     Fit on a phone
     Make SENSE on a phone
     Call to ACTION
     and have REVENUE models




7
Examples (Drupal)
DrupalCon Paris:
http://drupalcon.siruna.com
Slate:
http://twom.slate.mobixx.eu




                  8
Examples (Drupal)
Garland mobile:
http://twom.garland.mobixx.eu
Marina:
http://twom.marina.mobixx.eu
Zen:
http://twom.zen.mobixx.eu
XIO:
http://xio.siruna.com
http://portal.siruna.com




                           9
WHERE IS THE COMPLEXITY


       10
Complexity
 Device fragmentation:
 − Millions of devices
 − Different Operating systems
 − Different capabilities
      • Ex: screen sizes, javascript support, CSS / xHTML support, video support
 − ...
 Usability: make a fun and easy experience
 −   Content has to be easy to find
 −   Reduce scrolling (no horizontal scrolling)
 −   Make links clickable (not too small)
 −   Easy navigation structure that is easy to find
 −   ...




                        11
On fragmentation
  Convergence is coming
  Javascript becomes more and more the standard
  Desktop html works on mobile devices




               12
More interesting data
        United States Handset Data - April 2009   India Handset Data - April 2009
        Requests: 3,538,714,000                   Requests: 447,079,855


480x320 px


176x220 px

240x320 px



320 x 240 px

480x320 px




               Palm pre: 480 x 320




                                     13
Source: AdMob
Complexity
 Optmization of download size
  − Network connections are not always optimal (between 50kb/s –
    1,8Mbit/s
  − Don’t let the user wait, don’t let him download content that he will
    not use
 Bring relevant content to the mobile user
  − Understand what he will look for (think and plan well!!)
  − Is not easy (especially for the customer)




                     14
Complexity




Simple (double) navigation
No video
Easy access to stories     15
SOME MORE EXAMPLES


       16
General                              Login or Register


 Form a multi-column based site going towards a 1
 column site
 We are talking about generic designs




                     Second navigation
                     New forum posts
               17    New Comments
                     Sponsors etc ...
Design
 Rules of thumb
  −   No fixed margins
  −   No floats
  −   No big fixed fonts
  −   Reduce the usage of tables (or reduce the number of columns)
  −   Make a block with links to views like
       • Most recent comments
       • Most recent forum topics
  −   Remove node content from frontpage
  −   Replace the user login block by a link
  −   Navigation in a dropdown list works well
  −   No who is online, who is new kind of blogs (not relevant)
  −   You can make things sexy for iphone, android, ...


                      18
Examples




       19
Examples




       20
Examples




       21
Examples




       22
Examples




       23
THE TOOLS


       24
Mobile modules for Drupal
    Many attempts in the comunity
    Focus on
    − Providing mobile themes (e.g. iUI, mobile theme)
    − Theme switching
    − Mobile payments
    Not a lot of demos
    General no proven long term strategy
    An overview on
 http://mobiledrupal.com/content/overview-mobile-modules-drupal




                      25
Some Drupal modules
 Under my maintenance – Co-maintainers welcome!
 http://drupal.org/project/mobile_tools
 (release 6.x-1.7)
  http://drupal.org/project/siruna
 (release 6.x-1.0-beta)
  http://drupal.org/project/wurfl
 (release 6.x-dev)
 Planned:
 − Image resizing module
 − Video transcoding solution (based on Media Mover)
 − Providing some more mobile themes



                  26
First define the flow (4 steps)
                        Device Detection
                (Mobile device, desktop, PSP, ...)



                          Switching
        (Make sure the user gets access to the best site)



                     Functionality + content
    (What functionality and content is relevant for the device)



                            Theming
     (Layout, image resizing, navigation, table linearization)



                   27
User notification / redirection
   Device detection
  − Notify mobile users for the existence of a mobile site
  − Automatically redirect mobile users to the mobile site
  − Provide custom configurable message: e.g.: “View mobile |
    classic”
  − Support for Browscap, Wurfl and other third party device detection
    modules




                    28
Mobile permissions
 Mobile context in the permission system
  − Roles of the mobile visitor gets replaced by a mobile variant of his
    normal roles
  − Administrator can use role permissions to toggle functionality
      • Node Acces, Menu per role, etc ... Can help
  − = Mobile context for permissions
  − Very powerfull tool to toggle functionality on your mobile site!




                     29
Theme switching
 Theme switching (based on device group if needed)
 Based on domain name or device detection
 Switching per device group (Android, iPhone, etc ...)




                  30
Demo 1




         31
Creating the mobile look
  Two main solutions
  Create you own themes (see rules of thumb)
  −   No fixed margins                                               Currently high risk and
  −   No floats                                                      complexity, but allows more
  −   No big fixed fonts
  −   Reduce the usage of tables (or reduce the number of columns)   creativity!
  −   Make a block with links to views like
        • Most recent comments
        • Most recent forum topics
  −   Remove node content from frontpage
  −   Replace the user login block by a link
  −   Navigation in a dropdown list works well
  −   No who is online, who is new kind of blogs (not relevant)
  −   You can make things sexy for iphone, android, ...


  Use an adaptation service (like Siruna ;))
  − Does most of the work for you (image transcoding, device
    detection, adaptation for difference devices)
  − Build in functionality to help creating different versions
  − Fast prototyping
  − High Quality
Adaptation engine =
proxy to the mobile user
     Mobile URL               Desktop URL




                        DNS




         Adaptation
          engine




              Website / XML stream
The Siruna platform




     Website          XML Feed


                                 34
How does it work?
                                  Automatic
                                   Content
 Device              Content      Adaptation
Detection           Adaptation
                     Engine
                                    Select
Content                             Menu
Fetcher
                                 Select mobile
                                    content


                                 Adapt Style




                                                 35
Content adaptation engine
 Siruna Composer
Previewing   XML based rules
             (http://open.siruna.org/documentation/sitemap-api)




             36
XML scripting language:
syntax
 <map:transform />
 means you want to define a transformation on the content.

 <map:transform type=“sirunaElementTransformer” />
 means you want to use an “Element Transformer”
 (http://open.siruna.org/documentation/sitemap-api for more
 transformers.
 <map:transform type=“sirunaElementTransformer>
   <map:parameter name="task0"
 value="remove(//p:form[@id='comment-form']//p:fieldset)" />
 </map:transform>
 => Means you want to remove the fieldset of the form
Adaptations (some examples)
         Remove content (example remove content of nodes on
         frontpage)
     < <map:transform type="sirunaElementTransformer">
          <map:parameter name="task0" value="remove(//p:div[@class='views-field-teaser'])" />
     </map:transform>


         Make drupal forms mobile friendly:
<map:transform type="sirunaElementTransformer">
    <map:parameter name="task0" value="remove(//p:form[@id='comment-form']//p:fieldset)" />
    <map:parameter name="task1" value="removeAttribute(//p:textarea, cols)" />
    <map:parameter name="task2" value="removeAttribute(//p:input, size)" />
    <map:parameter name="task3" value="setAttribute(//p:textarea, rows, 3)" />
    <map:parameter name="task4" value="setAttribute(//p:textarea, style, width:90%)" />
    <map:parameter name="task5" value="setAttribute(//p:form[@id='comment-form']//p:input, style, width:90%)"
/>
</map:transform>



                                      38
Adaptations (examples)
     Extract several menu structures and collect as dropdown
<map:transform type="sirunaMenuExtractor">
 <map:parameter name="task0" value="extract(//p:ul[@class='links primary-links'], false, false, true)" />
 <map:parameter name="task1" value="extract(//p:ul[@class='links secondary-links'], false, false, true)" />
</map:transform>
 <map:transform type="sirunaMenuInserter">
 <map:parameter name="select_current_url" value="true" />
</map:transform>


     Change / remove CSS attributes

   <map:transform type="sirunaCSSTransformer">
      <map:parameter name="task0" value="addCSSItemAttribute(.front #block-block-13, background-position, center)" />
      <map:parameter name="task1" value="removeCSSItemAttribute(#block-block-13, height)" />
      <map:parameter name="task2" value="removeCSSItemAttribute(#block-block-13, margin-bottom)" />
      <map:parameter name="task3" value="removeCSSItemAttribute(#block-block-13, margin-top)" />
      <map:parameter name="task4" value="removeCSSItemAttribute(#block-block-13, padding-top)" />
      <map:parameter name="task5" value="addCSSItemAttribute(#block-block-13, background-position, center)" />
   </map:transform>




                                    39
Adaptations (examples)

     Different adaptations for different devices:
<map:select type="sirunaExpressionSelector">
<map:when test="width &lt; 160 || !imageSupported">
  <map:transform type="sirunaElementTransformer">
     <map:parameter name="task0" value="remove(//p:div[@id='contentsurround']//p:img)" />
  </map:transform>
</map:when>
</map:select>


     Analtyics inserter
   <map:transform type="sirunaGoogleAnalyticsInserter">
       <map:parameter name="identifier" value="UA-2883003-5"/>
     </map:transform>




                             40
Siruna module
  Tight integration between Siruna and Drupal
  Flexible definition of filters for content types, menu
 pages, views and individual pages
  Duplication of theme enabling a “mobile configuration”
 for the mobile users
  Possibility to apply predefined adaptations
  Previewing of the mobile site from within Drupal




                  41
Predefined adaptations
  Module allows creating adaptation for your own
  themes
  Creation of a repository of mobile adaptations




               42
Define your filters
 Filter is a adaptation pipeline for group of pages
 − E.g. Specific pages or nodetypes can have a different filter!
 Powerfull concept to make complex sites mobile!




                       43
Demo 2




         44
Contact
Mail : Tom.Deryckere@siruna.com
Blog: http://www.mobiledrupal.com
Twitter: @twom, @siruna
Siruna: http://www.siruna.com, http://open.siruna.com




         Looking for partnerships with Drupal agencies
                        and developers!



                   45

Weitere ähnliche Inhalte

Ähnlich wie Siruna presentation Mobile Drupal @ Drupalcamp Colorado Jun09

Creating Mobile Aps without Coding
Creating Mobile Aps without CodingCreating Mobile Aps without Coding
Creating Mobile Aps without Coding
Jack Molisani
 
Get the Jump on Mobilizing your Notes and Domino Applications Today! (JMP103...
Get the Jump on Mobilizing your Notes and Domino Applications Today!  (JMP103...Get the Jump on Mobilizing your Notes and Domino Applications Today!  (JMP103...
Get the Jump on Mobilizing your Notes and Domino Applications Today! (JMP103...
Paul Della-Nebbia
 

Ähnlich wie Siruna presentation Mobile Drupal @ Drupalcamp Colorado Jun09 (20)

Drupalcamp LA Aug 2009
Drupalcamp LA Aug 2009Drupalcamp LA Aug 2009
Drupalcamp LA Aug 2009
 
Drupalcamp New York 2009
Drupalcamp New York 2009Drupalcamp New York 2009
Drupalcamp New York 2009
 
Building Mobile Websites with Joomla
Building Mobile Websites with JoomlaBuilding Mobile Websites with Joomla
Building Mobile Websites with Joomla
 
Siruna session at Drupalcon Paris 2009
Siruna session at Drupalcon Paris 2009Siruna session at Drupalcon Paris 2009
Siruna session at Drupalcon Paris 2009
 
Jmp103-Get the Jump on Mobilizing Your Notes and Domino Applications Today!
Jmp103-Get the Jump on Mobilizing Your Notes and Domino Applications Today!Jmp103-Get the Jump on Mobilizing Your Notes and Domino Applications Today!
Jmp103-Get the Jump on Mobilizing Your Notes and Domino Applications Today!
 
Drupal Recipe
Drupal RecipeDrupal Recipe
Drupal Recipe
 
Towards Collaborative Portable Web Spaces
Towards Collaborative Portable Web SpacesTowards Collaborative Portable Web Spaces
Towards Collaborative Portable Web Spaces
 
Creating Mobile Aps without Coding
Creating Mobile Aps without CodingCreating Mobile Aps without Coding
Creating Mobile Aps without Coding
 
Making your site mobile-friendly - Standards-Next 12.06.2010
Making your site mobile-friendly - Standards-Next 12.06.2010Making your site mobile-friendly - Standards-Next 12.06.2010
Making your site mobile-friendly - Standards-Next 12.06.2010
 
Dori waldman android _course
Dori waldman android _courseDori waldman android _course
Dori waldman android _course
 
Dori waldman android _course_2
Dori waldman android _course_2Dori waldman android _course_2
Dori waldman android _course_2
 
The XPages Mobile Controls: What's New in Notes 9.0.1
The XPages Mobile Controls: What's New in Notes 9.0.1The XPages Mobile Controls: What's New in Notes 9.0.1
The XPages Mobile Controls: What's New in Notes 9.0.1
 
Distribution best practices
Distribution best practicesDistribution best practices
Distribution best practices
 
01 introduction to darwino
01   introduction to darwino01   introduction to darwino
01 introduction to darwino
 
BEdita, a development platform
BEdita, a development platformBEdita, a development platform
BEdita, a development platform
 
Demystifying Decoupled Drupal for Developers & Content Authors
Demystifying Decoupled Drupal for Developers & Content AuthorsDemystifying Decoupled Drupal for Developers & Content Authors
Demystifying Decoupled Drupal for Developers & Content Authors
 
Get the Jump on Mobilizing your Notes and Domino Applications Today! (JMP103...
Get the Jump on Mobilizing your Notes and Domino Applications Today!  (JMP103...Get the Jump on Mobilizing your Notes and Domino Applications Today!  (JMP103...
Get the Jump on Mobilizing your Notes and Domino Applications Today! (JMP103...
 
Bruce lawson-over-the-air
Bruce lawson-over-the-airBruce lawson-over-the-air
Bruce lawson-over-the-air
 
IBM Connect 2014 - AD205: Creating State-of-the-Art Web Applications with Dom...
IBM Connect 2014 - AD205: Creating State-of-the-Art Web Applications with Dom...IBM Connect 2014 - AD205: Creating State-of-the-Art Web Applications with Dom...
IBM Connect 2014 - AD205: Creating State-of-the-Art Web Applications with Dom...
 
IBM ConnectED SPOT104: Lightning-Fast Development of Native Mobile Apps for I...
IBM ConnectED SPOT104: Lightning-Fast Development of Native Mobile Apps for I...IBM ConnectED SPOT104: Lightning-Fast Development of Native Mobile Apps for I...
IBM ConnectED SPOT104: Lightning-Fast Development of Native Mobile Apps for I...
 

Mehr von Tom Deryckere (6)

Briding the Gap between Desktop and Mobile publishing
Briding the Gap between Desktop and Mobile publishingBriding the Gap between Desktop and Mobile publishing
Briding the Gap between Desktop and Mobile publishing
 
Mobile-izing Your Organization with Drupal: Acquia webinar
Mobile-izing Your Organization with Drupal: Acquia webinarMobile-izing Your Organization with Drupal: Acquia webinar
Mobile-izing Your Organization with Drupal: Acquia webinar
 
Introduction to Drupal
Introduction to DrupalIntroduction to Drupal
Introduction to Drupal
 
Mobile CMS - CMSExpo 2010
Mobile CMS - CMSExpo 2010Mobile CMS - CMSExpo 2010
Mobile CMS - CMSExpo 2010
 
Open Source to the Rescue of Mobile App and Mobile Web Fragmentation
Open Source to the Rescue of Mobile App and Mobile Web FragmentationOpen Source to the Rescue of Mobile App and Mobile Web Fragmentation
Open Source to the Rescue of Mobile App and Mobile Web Fragmentation
 
Mobile Strategies for Drupal (NY DrupalCamp6)
Mobile Strategies for Drupal (NY DrupalCamp6)Mobile Strategies for Drupal (NY DrupalCamp6)
Mobile Strategies for Drupal (NY DrupalCamp6)
 

Kürzlich hochgeladen

Call Girls From Pari Chowk Greater Noida ❤️8448577510 ⊹Best Escorts Service I...
Call Girls From Pari Chowk Greater Noida ❤️8448577510 ⊹Best Escorts Service I...Call Girls From Pari Chowk Greater Noida ❤️8448577510 ⊹Best Escorts Service I...
Call Girls From Pari Chowk Greater Noida ❤️8448577510 ⊹Best Escorts Service I...
lizamodels9
 
Call Now ☎️🔝 9332606886🔝 Call Girls ❤ Service In Bhilwara Female Escorts Serv...
Call Now ☎️🔝 9332606886🔝 Call Girls ❤ Service In Bhilwara Female Escorts Serv...Call Now ☎️🔝 9332606886🔝 Call Girls ❤ Service In Bhilwara Female Escorts Serv...
Call Now ☎️🔝 9332606886🔝 Call Girls ❤ Service In Bhilwara Female Escorts Serv...
Anamikakaur10
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
dollysharma2066
 
FULL ENJOY Call Girls In Majnu Ka Tilla, Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Majnu Ka Tilla, Delhi Contact Us 8377877756FULL ENJOY Call Girls In Majnu Ka Tilla, Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Majnu Ka Tilla, Delhi Contact Us 8377877756
dollysharma2066
 
Russian Call Girls In Gurgaon ❤️8448577510 ⊹Best Escorts Service In 24/7 Delh...
Russian Call Girls In Gurgaon ❤️8448577510 ⊹Best Escorts Service In 24/7 Delh...Russian Call Girls In Gurgaon ❤️8448577510 ⊹Best Escorts Service In 24/7 Delh...
Russian Call Girls In Gurgaon ❤️8448577510 ⊹Best Escorts Service In 24/7 Delh...
lizamodels9
 

Kürzlich hochgeladen (20)

Uneak White's Personal Brand Exploration Presentation
Uneak White's Personal Brand Exploration PresentationUneak White's Personal Brand Exploration Presentation
Uneak White's Personal Brand Exploration Presentation
 
Call Girls From Pari Chowk Greater Noida ❤️8448577510 ⊹Best Escorts Service I...
Call Girls From Pari Chowk Greater Noida ❤️8448577510 ⊹Best Escorts Service I...Call Girls From Pari Chowk Greater Noida ❤️8448577510 ⊹Best Escorts Service I...
Call Girls From Pari Chowk Greater Noida ❤️8448577510 ⊹Best Escorts Service I...
 
Call Girls Service In Old Town Dubai ((0551707352)) Old Town Dubai Call Girl ...
Call Girls Service In Old Town Dubai ((0551707352)) Old Town Dubai Call Girl ...Call Girls Service In Old Town Dubai ((0551707352)) Old Town Dubai Call Girl ...
Call Girls Service In Old Town Dubai ((0551707352)) Old Town Dubai Call Girl ...
 
Call Now ☎️🔝 9332606886🔝 Call Girls ❤ Service In Bhilwara Female Escorts Serv...
Call Now ☎️🔝 9332606886🔝 Call Girls ❤ Service In Bhilwara Female Escorts Serv...Call Now ☎️🔝 9332606886🔝 Call Girls ❤ Service In Bhilwara Female Escorts Serv...
Call Now ☎️🔝 9332606886🔝 Call Girls ❤ Service In Bhilwara Female Escorts Serv...
 
Falcon Invoice Discounting: The best investment platform in india for investors
Falcon Invoice Discounting: The best investment platform in india for investorsFalcon Invoice Discounting: The best investment platform in india for investors
Falcon Invoice Discounting: The best investment platform in india for investors
 
JAYNAGAR CALL GIRL IN 98274*61493 ❤CALL GIRLS IN ESCORT SERVICE❤CALL GIRL
JAYNAGAR CALL GIRL IN 98274*61493 ❤CALL GIRLS IN ESCORT SERVICE❤CALL GIRLJAYNAGAR CALL GIRL IN 98274*61493 ❤CALL GIRLS IN ESCORT SERVICE❤CALL GIRL
JAYNAGAR CALL GIRL IN 98274*61493 ❤CALL GIRLS IN ESCORT SERVICE❤CALL GIRL
 
(Anamika) VIP Call Girls Napur Call Now 8617697112 Napur Escorts 24x7
(Anamika) VIP Call Girls Napur Call Now 8617697112 Napur Escorts 24x7(Anamika) VIP Call Girls Napur Call Now 8617697112 Napur Escorts 24x7
(Anamika) VIP Call Girls Napur Call Now 8617697112 Napur Escorts 24x7
 
Mysore Call Girls 8617370543 WhatsApp Number 24x7 Best Services
Mysore Call Girls 8617370543 WhatsApp Number 24x7 Best ServicesMysore Call Girls 8617370543 WhatsApp Number 24x7 Best Services
Mysore Call Girls 8617370543 WhatsApp Number 24x7 Best Services
 
Famous Olympic Siblings from the 21st Century
Famous Olympic Siblings from the 21st CenturyFamous Olympic Siblings from the 21st Century
Famous Olympic Siblings from the 21st Century
 
It will be International Nurses' Day on 12 May
It will be International Nurses' Day on 12 MayIt will be International Nurses' Day on 12 May
It will be International Nurses' Day on 12 May
 
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service AvailableCall Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
 
FULL ENJOY Call Girls In Majnu Ka Tilla, Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Majnu Ka Tilla, Delhi Contact Us 8377877756FULL ENJOY Call Girls In Majnu Ka Tilla, Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Majnu Ka Tilla, Delhi Contact Us 8377877756
 
Call Girls Zirakpur👧 Book Now📱7837612180 📞👉Call Girl Service In Zirakpur No A...
Call Girls Zirakpur👧 Book Now📱7837612180 📞👉Call Girl Service In Zirakpur No A...Call Girls Zirakpur👧 Book Now📱7837612180 📞👉Call Girl Service In Zirakpur No A...
Call Girls Zirakpur👧 Book Now📱7837612180 📞👉Call Girl Service In Zirakpur No A...
 
Falcon Invoice Discounting platform in india
Falcon Invoice Discounting platform in indiaFalcon Invoice Discounting platform in india
Falcon Invoice Discounting platform in india
 
Cheap Rate Call Girls In Noida Sector 62 Metro 959961乂3876
Cheap Rate Call Girls In Noida Sector 62 Metro 959961乂3876Cheap Rate Call Girls In Noida Sector 62 Metro 959961乂3876
Cheap Rate Call Girls In Noida Sector 62 Metro 959961乂3876
 
How to Get Started in Social Media for Art League City
How to Get Started in Social Media for Art League CityHow to Get Started in Social Media for Art League City
How to Get Started in Social Media for Art League City
 
Business Model Canvas (BMC)- A new venture concept
Business Model Canvas (BMC)-  A new venture conceptBusiness Model Canvas (BMC)-  A new venture concept
Business Model Canvas (BMC)- A new venture concept
 
Russian Call Girls In Gurgaon ❤️8448577510 ⊹Best Escorts Service In 24/7 Delh...
Russian Call Girls In Gurgaon ❤️8448577510 ⊹Best Escorts Service In 24/7 Delh...Russian Call Girls In Gurgaon ❤️8448577510 ⊹Best Escorts Service In 24/7 Delh...
Russian Call Girls In Gurgaon ❤️8448577510 ⊹Best Escorts Service In 24/7 Delh...
 
Cracking the Cultural Competence Code.pptx
Cracking the Cultural Competence Code.pptxCracking the Cultural Competence Code.pptx
Cracking the Cultural Competence Code.pptx
 

Siruna presentation Mobile Drupal @ Drupalcamp Colorado Jun09

  • 1. Basics of making mobile websites with Drupal Tom Deryckere Software Architect / Siruna @twom
  • 2. Technology Trends 25 years ago :The first GSM:11 kg Today: iPhoney’s, HSDPA, MID’s
  • 3. Technology that works From WAP to iMode to xHTML
  • 4. Network side TECHNOLOGY From slow connections to fast connections
  • 5. 5
  • 6. Making content mobile is the basis Making mobile content useful and usable is the need 6
  • 7. Mobile Web Applications that : Work on a phone Fit on a phone Make SENSE on a phone Call to ACTION and have REVENUE models 7
  • 10. WHERE IS THE COMPLEXITY 10
  • 11. Complexity Device fragmentation: − Millions of devices − Different Operating systems − Different capabilities • Ex: screen sizes, javascript support, CSS / xHTML support, video support − ... Usability: make a fun and easy experience − Content has to be easy to find − Reduce scrolling (no horizontal scrolling) − Make links clickable (not too small) − Easy navigation structure that is easy to find − ... 11
  • 12. On fragmentation Convergence is coming Javascript becomes more and more the standard Desktop html works on mobile devices 12
  • 13. More interesting data United States Handset Data - April 2009 India Handset Data - April 2009 Requests: 3,538,714,000 Requests: 447,079,855 480x320 px 176x220 px 240x320 px 320 x 240 px 480x320 px Palm pre: 480 x 320 13 Source: AdMob
  • 14. Complexity Optmization of download size − Network connections are not always optimal (between 50kb/s – 1,8Mbit/s − Don’t let the user wait, don’t let him download content that he will not use Bring relevant content to the mobile user − Understand what he will look for (think and plan well!!) − Is not easy (especially for the customer) 14
  • 15. Complexity Simple (double) navigation No video Easy access to stories 15
  • 17. General Login or Register Form a multi-column based site going towards a 1 column site We are talking about generic designs Second navigation New forum posts 17 New Comments Sponsors etc ...
  • 18. Design Rules of thumb − No fixed margins − No floats − No big fixed fonts − Reduce the usage of tables (or reduce the number of columns) − Make a block with links to views like • Most recent comments • Most recent forum topics − Remove node content from frontpage − Replace the user login block by a link − Navigation in a dropdown list works well − No who is online, who is new kind of blogs (not relevant) − You can make things sexy for iphone, android, ... 18
  • 19. Examples 19
  • 20. Examples 20
  • 21. Examples 21
  • 22. Examples 22
  • 23. Examples 23
  • 24. THE TOOLS 24
  • 25. Mobile modules for Drupal Many attempts in the comunity Focus on − Providing mobile themes (e.g. iUI, mobile theme) − Theme switching − Mobile payments Not a lot of demos General no proven long term strategy An overview on http://mobiledrupal.com/content/overview-mobile-modules-drupal 25
  • 26. Some Drupal modules Under my maintenance – Co-maintainers welcome! http://drupal.org/project/mobile_tools (release 6.x-1.7) http://drupal.org/project/siruna (release 6.x-1.0-beta) http://drupal.org/project/wurfl (release 6.x-dev) Planned: − Image resizing module − Video transcoding solution (based on Media Mover) − Providing some more mobile themes 26
  • 27. First define the flow (4 steps) Device Detection (Mobile device, desktop, PSP, ...) Switching (Make sure the user gets access to the best site) Functionality + content (What functionality and content is relevant for the device) Theming (Layout, image resizing, navigation, table linearization) 27
  • 28. User notification / redirection Device detection − Notify mobile users for the existence of a mobile site − Automatically redirect mobile users to the mobile site − Provide custom configurable message: e.g.: “View mobile | classic” − Support for Browscap, Wurfl and other third party device detection modules 28
  • 29. Mobile permissions Mobile context in the permission system − Roles of the mobile visitor gets replaced by a mobile variant of his normal roles − Administrator can use role permissions to toggle functionality • Node Acces, Menu per role, etc ... Can help − = Mobile context for permissions − Very powerfull tool to toggle functionality on your mobile site! 29
  • 30. Theme switching Theme switching (based on device group if needed) Based on domain name or device detection Switching per device group (Android, iPhone, etc ...) 30
  • 31. Demo 1 31
  • 32. Creating the mobile look Two main solutions Create you own themes (see rules of thumb) − No fixed margins Currently high risk and − No floats complexity, but allows more − No big fixed fonts − Reduce the usage of tables (or reduce the number of columns) creativity! − Make a block with links to views like • Most recent comments • Most recent forum topics − Remove node content from frontpage − Replace the user login block by a link − Navigation in a dropdown list works well − No who is online, who is new kind of blogs (not relevant) − You can make things sexy for iphone, android, ... Use an adaptation service (like Siruna ;)) − Does most of the work for you (image transcoding, device detection, adaptation for difference devices) − Build in functionality to help creating different versions − Fast prototyping − High Quality
  • 33. Adaptation engine = proxy to the mobile user Mobile URL Desktop URL DNS Adaptation engine Website / XML stream
  • 34. The Siruna platform Website XML Feed 34
  • 35. How does it work? Automatic Content Device Content Adaptation Detection Adaptation Engine Select Content Menu Fetcher Select mobile content Adapt Style 35
  • 36. Content adaptation engine Siruna Composer Previewing XML based rules (http://open.siruna.org/documentation/sitemap-api) 36
  • 37. XML scripting language: syntax <map:transform /> means you want to define a transformation on the content. <map:transform type=“sirunaElementTransformer” /> means you want to use an “Element Transformer” (http://open.siruna.org/documentation/sitemap-api for more transformers. <map:transform type=“sirunaElementTransformer> <map:parameter name="task0" value="remove(//p:form[@id='comment-form']//p:fieldset)" /> </map:transform> => Means you want to remove the fieldset of the form
  • 38. Adaptations (some examples) Remove content (example remove content of nodes on frontpage) < <map:transform type="sirunaElementTransformer"> <map:parameter name="task0" value="remove(//p:div[@class='views-field-teaser'])" /> </map:transform> Make drupal forms mobile friendly: <map:transform type="sirunaElementTransformer"> <map:parameter name="task0" value="remove(//p:form[@id='comment-form']//p:fieldset)" /> <map:parameter name="task1" value="removeAttribute(//p:textarea, cols)" /> <map:parameter name="task2" value="removeAttribute(//p:input, size)" /> <map:parameter name="task3" value="setAttribute(//p:textarea, rows, 3)" /> <map:parameter name="task4" value="setAttribute(//p:textarea, style, width:90%)" /> <map:parameter name="task5" value="setAttribute(//p:form[@id='comment-form']//p:input, style, width:90%)" /> </map:transform> 38
  • 39. Adaptations (examples) Extract several menu structures and collect as dropdown <map:transform type="sirunaMenuExtractor"> <map:parameter name="task0" value="extract(//p:ul[@class='links primary-links'], false, false, true)" /> <map:parameter name="task1" value="extract(//p:ul[@class='links secondary-links'], false, false, true)" /> </map:transform> <map:transform type="sirunaMenuInserter"> <map:parameter name="select_current_url" value="true" /> </map:transform> Change / remove CSS attributes <map:transform type="sirunaCSSTransformer"> <map:parameter name="task0" value="addCSSItemAttribute(.front #block-block-13, background-position, center)" /> <map:parameter name="task1" value="removeCSSItemAttribute(#block-block-13, height)" /> <map:parameter name="task2" value="removeCSSItemAttribute(#block-block-13, margin-bottom)" /> <map:parameter name="task3" value="removeCSSItemAttribute(#block-block-13, margin-top)" /> <map:parameter name="task4" value="removeCSSItemAttribute(#block-block-13, padding-top)" /> <map:parameter name="task5" value="addCSSItemAttribute(#block-block-13, background-position, center)" /> </map:transform> 39
  • 40. Adaptations (examples) Different adaptations for different devices: <map:select type="sirunaExpressionSelector"> <map:when test="width &lt; 160 || !imageSupported"> <map:transform type="sirunaElementTransformer"> <map:parameter name="task0" value="remove(//p:div[@id='contentsurround']//p:img)" /> </map:transform> </map:when> </map:select> Analtyics inserter <map:transform type="sirunaGoogleAnalyticsInserter"> <map:parameter name="identifier" value="UA-2883003-5"/> </map:transform> 40
  • 41. Siruna module Tight integration between Siruna and Drupal Flexible definition of filters for content types, menu pages, views and individual pages Duplication of theme enabling a “mobile configuration” for the mobile users Possibility to apply predefined adaptations Previewing of the mobile site from within Drupal 41
  • 42. Predefined adaptations Module allows creating adaptation for your own themes Creation of a repository of mobile adaptations 42
  • 43. Define your filters Filter is a adaptation pipeline for group of pages − E.g. Specific pages or nodetypes can have a different filter! Powerfull concept to make complex sites mobile! 43
  • 44. Demo 2 44
  • 45. Contact Mail : Tom.Deryckere@siruna.com Blog: http://www.mobiledrupal.com Twitter: @twom, @siruna Siruna: http://www.siruna.com, http://open.siruna.com Looking for partnerships with Drupal agencies and developers! 45