Designing Content For Phones / Fragmentation in the mobile world


Published on

Presentation held by me on Mobile Monday Tartu event on 20. April 2008.

Published in: Technology, Business
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • Mobile vs. Web/Desktop - Resources (bad side) - bandwidth, memory are higher on desktop app. - Spatial ability (bad side) - on desktop, a user can navigate around the computer's big screen in various ways, through various multi-capable input devices like the mouse, keyboard, etc. How about a mouse for the phone? On 'small screens' the spatial navigation styles are limited. - Deeper penetration (good side) - there are more people with mobile phones and the capability to use them then there are computers and computer-friendly people (don't look at each-other :D you probl. won't find them here). - Variety of mobiles (bad side) - there are no standard screen sizes (are emerging on some platforms like Symbian). Fonts, graphics, pictures may look and act differently. - Multi-tasking (good side, from concentrating on the application) - desktop can have multiple windows open and operated on them simultaneously; generally mobiles can have only one app at the time (do see changes depending on the platforms).
  • Software that lives inside the device. We gonna talk about biggest players. Java – MIDP, JME. Fragmentation comes from the fact: numerous extensions JSRs (Java Specification Request, ~20 for mobile from ~300) that differ by device; device specific APIs (Nokia, Samsung, BlackBerry) [TODO: any help from new standard of MSA?] Symbian – C++. Accesses wide range of platform features (do not have same affect as JSRs might have). Fragmentation: backward compatibility (recompilation, re-signing); currently still a case of spread of the devices. Possibly to be seen fragmentation, targeted mostly on high-end devices:
  • Windows Mobile – C++, cut-down version of .Net. [TODO: how many Windows Mobile devices do we have?] Browsers - Giacomo Flash Lite – cut-down Flash for some high-end mobile phones. Fragmentation on how it works: standalone app; flash embedded only in the browser; Flash might have restricted access to the phone (input devices); some devices can integrate flash into the phone's UI (menus). Possibly to be seen fragmentation, targeted mostly on high-end devices: Linux – no “singularity” here, yet. Probably designed the other way around. Mobile AJAX – in many cases there are other factors that do not enable this technology to flourish. Android – no one knows...
  • Bad sounds: MIDIs can be handled differently (BB 7290). Mine is bigger than your's syndrom :D – depends what do you value: music, games, photography, fashion, business, “combo”. 3 dimensions: Output – screen(s) [TODO: draw all the Nokia screen sizes currently on the market – nokia official search engine?]. Probably the most complex to handle; requires work within different departments. file:///C:/Documents%20and%20Settings/Mask/My%20Documents/sven/Personal/MoMo/events/Tartu_280408/NeedReading/mobile-screen-size-trends.html – can add some specific screen info. Input – keyboards (layout), pens, touch-screens and -pads, cameras, dedicated keys (BB, SE), trackballs [TODO: SE different input devices; BB suretype; SE removing scroll's in/out after P800] Power – processor, memory.
  • Don’t go into detail – traditional keypad layout, others… 6230i E61i Nokia 7600 Nokia N-Gage QD E70 E90 SE P990 Apple iPhone – accelerometer (auto-rotate); proximity sensor (auto turn-off). Sony Ericsson XPERIA X1 - optical joystick navigation + TS
  • Examples: Networking – restrictions on sockets, ports. Content restrictions. Pricing – alates 1 st Aprillist alandab EMT välisriigis andmeside hinda kuni neli korda 59 krooni MB! Device availability – BlackBerry in Estonia.
  • - J2ME Polish is a suite of tools and technologies aimed at mobile developers and companies within the mobile space. - WURFL is an XML configuration file which contains information about capabilities and features of many mobile devices. - JBenchmark – mobile performance + feat. DB.
  • Some platforms can be handled with simple translation: iMode DoJa (big in Japan) is very similar to MIDP Convert using regular expressions WML is a lot like XHTML-MP Strip styling, convert XML with XSLT Or use WURFL and eg. WALL APIs Conversion tool – J2ME Polish’s Janus project: J2ME -> Windows Mobile, iPhone and Android.
  • “ I expect the application to work like the phone itself” : Follow phone’s input convention - BB sidemenu, wheels, scrolls, dedicated keys. Wheels, scrolls, device specific function keys! – should work as the phone’s input convention.
  • Power Keep your footprint small – application size; memory it uses. Understand memory (management) – memory fragmentation issues; resource management. Release resources (there are none anyway) – :D DON’T use OOP (much) – especially.
  • MSA - Mobile Service Architecture, JSR 248, 249 Mobile Service Architecture Advanced; A stack of APIs for the devices. MSA's charter is not to create any new technology, but to take technologies that are available, and combine those to create a nice unfragmented stack. Some handsets are out with JSR 248: Nokia Series 40 5th Edition – MSA Subset; Sony Ericsson Java Platform 8 – W890; JTWI - Java Technology for the Wireless Industry, JSR 185; That was the first try at defining a full API stack for developers, requiring, for instance, that a handset provide MIDP or a messaging API. MIDP 3.0 introduces a number of new features that build upon the previous success of MIDP. These new features are intended to enable a wide range of applications and services, as well as to improve the stability, and predictability of MIDP implementations. These new features are : • Support for both CLDC and CDC • System and Application Events • Concurrency • InterMIDlet Communication • RMS Data Provisioning & RMS Interchange File Format • Shared Components (LIBlets)‏ • MIDlet Categories (Screen Savers, Idle Screen MIDlets, Auto Start MIDlets)‏ • Multiple MIDlet Suite Signers • LCDUI enhancements: Support for multiple displays, FileSelector, tabs
  • Designing Content For Phones / Fragmentation in the mobile world

    1. 1. Designing Content For Phones Fragmentation in the mobile world Sven Kirsimäe
    2. 2. What is m-fragmentation? <ul><li>“Write once, run anywhere” </li></ul><ul><li>Sun Microsystems </li></ul><ul><li>“Write once, try to make it work on most” </li></ul><ul><li>Mobile Developer (retired?) </li></ul><ul><li>Reason – Mobile differs from Desktop </li></ul><ul><li>Fragmentation falls into 3 categories: </li></ul><ul><ul><li>Software </li></ul></ul><ul><ul><li>Hardware </li></ul></ul><ul><ul><li>Operator </li></ul></ul><ul><li>Introduces application fragmentation? </li></ul>
    3. 3. Software fragmentation (1/2) <ul><li>Java Micro Edition </li></ul><ul><ul><li>Profiles and configurations (sockets, https vs. http) </li></ul></ul><ul><ul><li>Numerous extensions (for SMS, camera, location, sensors, ...) </li></ul></ul><ul><ul><li>Device specific API (Nokia, Samsung, BlackBerry) </li></ul></ul><ul><li>Native platforms (Symbian, Windows Mobile, ...) </li></ul><ul><ul><li>Access to a wider range of platform features </li></ul></ul><ul><ul><li>Backward compatibility issues (recompilation, -signing) </li></ul></ul><ul><ul><li>Smartphones are still only a small fraction of the market </li></ul></ul>
    4. 4. Software fragmentation (2/2) <ul><li>Flash Lite </li></ul><ul><ul><li>higher-end devices </li></ul></ul><ul><ul><li>standalone? embedded in browser? restricted access? </li></ul></ul><ul><li>Fragmentation to be seen: </li></ul><ul><ul><li>Linux – many flavours of mobile Linux, no standard </li></ul></ul><ul><ul><li>Android – interesting, very different, no hardware yet </li></ul></ul><ul><ul><li>iPhone – Apple decide if you can release your software </li></ul></ul><ul><li>Obviously I skipped some  </li></ul><ul><li>(browsers – a separate huge topic) </li></ul>
    5. 5. Hardware fragmentation (1/3) <ul><li>“ Mine [phone] is bigger than yours” </li></ul><ul><li>3 dimensions: </li></ul><ul><ul><li>Input </li></ul></ul><ul><ul><ul><li>NOT like a PC – you can’t “click” on things </li></ul></ul></ul><ul><ul><ul><li>keyboards, keypads, pens, touch-screens and –pads, trackballs, wheels, dedicated keys, sensors, cameras, microphones… </li></ul></ul></ul><ul><ul><li>Output </li></ul></ul><ul><ul><ul><li>NOT like a PC – screens are small, sound is “bad” </li></ul></ul></ul><ul><ul><li>Power </li></ul></ul><ul><ul><ul><li>NOT like a PC at all </li></ul></ul></ul><ul><ul><ul><li>Processors speeds – hundreds of MHz </li></ul></ul></ul><ul><ul><ul><li>Memory - heap from 200Kb to 20+Mb </li></ul></ul></ul>
    6. 6. Hardware fragmentation (2/3)
    7. 7. Hardware fragmentation (3/3)
    8. 8. Operator fragmentation <ul><li>Networking (sockets, ports, protocols) </li></ul><ul><li>Content restrictions (locked-down APIs, PTT in Estonia) </li></ul><ul><li>Pricing (roaming data 59 eek/MB) </li></ul><ul><li>Device availability (no BlackBerry in Estonia) </li></ul>
    9. 9. Managing fragmentation <ul><li>Describing the device: </li></ul><ul><ul><li>Custom (independent, manual, more work, more flexible?) </li></ul></ul><ul><ul><li>Existing DBs (may be limited to platform, extending? valid info?) </li></ul></ul><ul><ul><ul><li>WURFL ( </li></ul></ul></ul><ul><ul><ul><li>J2ME Polish ( </li></ul></ul></ul><ul><ul><ul><li>JBenchmark ( $ </li></ul></ul></ul><ul><ul><li>Use hybrid of all? </li></ul></ul><ul><li>Probably will end up with (many) custom builds. </li></ul>
    10. 10. Managing software fragmentation <ul><li>Coding for one platform is always easier </li></ul><ul><ul><li>Now your problem and target audience/customers </li></ul></ul><ul><ul><li>Pick the widest supported platform that meets these customers </li></ul></ul><ul><ul><li>Try to make work on others </li></ul></ul><ul><ul><ul><li>Some translations between platforms are “easy” </li></ul></ul></ul><ul><ul><ul><li>Some companies sell conversion tools </li></ul></ul></ul><ul><li>Don’t design ahead, solve the problem </li></ul><ul><ul><li>You never know how platforms may evolve </li></ul></ul><ul><ul><li>Probably need to get out things as quickly as possible </li></ul></ul><ul><ul><li>Support everything you currently can </li></ul></ul>
    11. 11. Managing hardware fragmentation (1/2) <ul><li>Input </li></ul><ul><ul><li>Common denominator </li></ul></ul><ul><ul><ul><li>Up/Down (Left/Right) Select & Keypad </li></ul></ul></ul><ul><ul><li>Design your app to support common denominator </li></ul></ul><ul><ul><li>“ I expect the application to work like the phone itself”: </li></ul></ul><ul><ul><ul><li>Follow phone’s input conventions </li></ul></ul></ul><ul><ul><ul><li>Wheels, scrolls, device specific dedicated keys – use them! </li></ul></ul></ul><ul><ul><ul><ul><li>( and look at the previous point… ) </li></ul></ul></ul></ul><ul><li>The future is touchable? </li></ul>
    12. 12. Managing hardware fragmentation (2/2) <ul><li>Output </li></ul><ul><ul><li>Looks sell </li></ul></ul><ul><ul><ul><li>design for many screen sizes </li></ul></ul></ul><ul><ul><ul><li>be ready to add </li></ul></ul></ul><ul><ul><li>Sound </li></ul></ul><ul><ul><ul><li>be ready for surprises… </li></ul></ul></ul><ul><ul><ul><li>keep sounds simple </li></ul></ul></ul><ul><li>Power </li></ul><ul><ul><li>Keep your footprint small </li></ul></ul><ul><ul><li>Understand memory (management) </li></ul></ul><ul><ul><li>Explicitly release resources </li></ul></ul><ul><ul><li>DON’T use OOP (much), keep it flat </li></ul></ul>
    13. 13. Managing operator fragmentation <ul><li>May (re)define your market </li></ul><ul><ul><li>Support fewer countries? Operators? </li></ul></ul><ul><li>May (re)define your product </li></ul><ul><ul><li>Some things can’t be done at all </li></ul></ul><ul><ul><li>Some things “can” be done, but with huge usability issues </li></ul></ul><ul><li>KISS (http:80 should work everywhere) </li></ul>
    14. 14. Any light at the end of the tunnel? <ul><li>Software </li></ul><ul><ul><li>“ Older” platforms are getting better and better. </li></ul></ul><ul><ul><ul><li>Java ME MIDP 2 is de facto </li></ul></ul></ul><ul><ul><ul><li>Device specific extensions are vanishing or evolving onto standard JSRs (BlackBerry) </li></ul></ul></ul><ul><ul><li>Advances in “Older” platforms may still “shake” the state </li></ul></ul><ul><ul><li>Commercial deadlines always beat standards </li></ul></ul><ul><ul><ul><li>No one is ever 100% standards compliant </li></ul></ul></ul><ul><li>Hardware fragmentation – probably no… </li></ul><ul><li>Operator fragmentation – definitely no… </li></ul><ul><li>Application level – UP TO YOU! </li></ul>
    15. 15. Thank you (and MoMo team) ! Designing Content For Phones Fragmentation in the mobile world It's easy to make things difficult, but difficult to make things easy. Sven Kirsimäe