Challenges of AJAX Development for Smartphone Platforms

2,294 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,294
On SlideShare
0
From Embeds
0
Number of Embeds
19
Actions
Shares
0
Downloads
29
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Challenges of AJAX Development for Smartphone Platforms

  1. 1. Challenges Of AJAX Development For Smartphone Platforms <ul><li>Max Motovilov </li></ul><ul><li>VP Engineering </li></ul><ul><li>kannuu, Inc. </li></ul>
  2. 2. Scope Of The Presentation <ul><li>Smartphone platforms: iPhone, Symbian S60, Android, Windows Mobile, Blackberry </li></ul><ul><li>Core challenges specific to AJAX applications on smartphones </li></ul><ul><li>Case study: search UI with assisted input by kannuu Inc. Demonstrated on Nokia E71 and Apple iPod Touch. </li></ul><ul><li>Platform-specific issues uncovered </li></ul>
  3. 3. Core Challenges on Smartphones <ul><li>Presentation: screen size </li></ul><ul><li>Input methods </li></ul><ul><ul><li>Keypads (unusual layouts, navigation keys, software keyboards) </li></ul></ul><ul><ul><li>Touch screens (w & w/o stylus) </li></ul></ul><ul><li>Feature support (language and DOM) </li></ul><ul><ul><li>Javascript limitations </li></ul></ul><ul><ul><li>CSS & DOM API limitations </li></ul></ul><ul><ul><li>Hardwired input controls </li></ul></ul><ul><li>Network performance: high latency </li></ul><ul><li>Browser performance and stability </li></ul>
  4. 4. kannuu Search Client <ul><li>Purpose: </li></ul><ul><ul><li>Assisted input technology for mobile devices </li></ul></ul><ul><ul><li>Embeddable front end for navigating long lists of items or search term dictionaries </li></ul></ul><ul><ul><li>Context-sensitive ad delivery </li></ul></ul><ul><li>Backend: </li></ul><ul><ul><li>Stateless REST server, JSONP or JSON over XHR </li></ul></ul><ul><ul><li>Conversion paths for relational sources or Web spider </li></ul></ul><ul><ul><li>Bridged to external ad server(s) </li></ul></ul>
  5. 5. kannuu Search Client <ul><li>Front-end software design </li></ul><ul><ul><li>Styled combo-box widget with extended functionality </li></ul></ul><ul><ul><li>By-fragment completion + priority-based autosuggest </li></ul></ul><ul><ul><li>Support for option selection and direct keyboard input </li></ul></ul><ul><ul><li>Separate UIs for keypads and touch screens </li></ul></ul><ul><ul><li>Asynchronous transport layer with cache and heavy pre-fetch </li></ul></ul><ul><li>Implementation status/compatibility </li></ul><ul><ul><li>Desktop: Mozilla/FF, WebKit/Safari/Chrome, Opera, IE* </li></ul></ul><ul><ul><li>Successes: Symbian S60 3.1+ (WebKit), iPhone (Safari) </li></ul></ul><ul><ul><li>Failures: Android (mini-Chrome), Windows Mobile (PIE*) </li></ul></ul><ul><ul><li>Prospects: BlackBerry 4.6+ (Bold/Storm), Windows Mobile (Opera Mobile), Android (Chrome) </li></ul></ul>
  6. 6. Platform Specific Issues <ul><li>Symbian S60 </li></ul><ul><ul><li>Requires WebKit based browser, first available in S60 release 3 feature pack 1. </li></ul></ul><ul><ul><li>Hardwired controls </li></ul></ul><ul><ul><li>Keyboard events and focus </li></ul></ul><ul><ul><li>Tabbed mode vs. mouse simulation mode and arrow keys </li></ul></ul><ul><ul><li>CSS issues (no overflow:auto or scrollbars, others?) </li></ul></ul><ul><ul><li>JSONP stability issues </li></ul></ul><ul><li>iPhone </li></ul><ul><ul><li>Touch event processing </li></ul></ul><ul><ul><li>Software keyboard and text box widget </li></ul></ul><ul><ul><li>Screen size and zoom factor </li></ul></ul><ul><ul><li>Dynamic/animated CSS layout very hard on CPU </li></ul></ul>
  7. 7. Failures and Prospects <ul><li>Android (based on released SDK/simulator) </li></ul><ul><ul><li>Mouse/touch event processing is shot; admitted by Google in a forum message. New Chrome may or may not provide an iPhone-like API. </li></ul></ul><ul><li>Windows Mobile </li></ul><ul><ul><li>IE stability issues and quirks. An alternative ActiveX supported implementation works well on desktop Windows. </li></ul></ul><ul><ul><li>PIE incompatible with IE down to DOM level. Potential for [different] ActiveX implementation. </li></ul></ul><ul><ul><li>Opera Mobile claimed to be compatible with desktop Opera 9.x (not tested) </li></ul></ul><ul><li>BlackBerry </li></ul><ul><ul><li>First browser with reasonable level of AJAX support available with BlackBerry OS 4.6. Only [very recent] Bold and Storm run this system. Not yet tested. </li></ul></ul><ul><ul><li>No navigation keys available on Bold; trackball can only be used for mouse simulation. </li></ul></ul>

×