Presentation held by me on Mobile Monday Tartu event on 20. April 2008.
http://www.momoestonia.com/2008/05/thank-you-for-second-great-momo-estonia.html
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
Editor's Notes
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