Export page to Open Document format View page as slide show

Wireless devices & their development issues

Properties of wireless devices

  • Different sizes
    • Screen sizes
    • Physical size
  • Operating systems
    • Different apps
    • Different libraries & APIs
    • Different possibilities for apps development
  • Communication capabilities
    • Support for different technologies
  • User interfaces
  • Storage space
  • memory
  • Computational power
  • Power source & “uptime”

Wireless mobile devices

  • Laptops
    • Notebooks, netbooks, mini-laptops (Eee PC)
  • Tablet computers
    • Internet tablets, iPad, Kindle, Nokia series (N770, N800, N810)…
  • PDAs
    • Palm Pilot, IPAQ, Zaurus
  • Mobile phones
    • From: Nokia, Motorola, Ericson, Apple, Siemens, Samsung, …
  • Gaming devices
    • Nintendo gameboy family, Sony PSP, Nokia N-gage
  • Special devices
    • Active badge, IBM personal server, Wiimote, RFID readers, one task devices
  • Others
    • Booklets, eBook readers, picture frames, etc

Device capabilities: laptops

  • Not truly mobile
    • Nomadic usage
  • Various sizes 11“,1.3 Kg to 17”, 6Kgs
  • Similar OS as in desktop computers
    • Windows, Linux, Solaris, OS X
    • Similar apps as in desktop computers
    • Porting software from desktop is simple
  • Support most wireless comm techno through (PCMCIA, USB)
    • WLAN, Bluetooth, Infrared are commonly built into new models

Device capabilities: Tablets

  • 1992: PacrPad a precursor for tablet computers
    • Pen input
    • wireless connection
    • “Scrap computer” pick one, make notes & leave. Not intended to be carried around
    • User computing session stored in the network
  • Tablet PCs
    • Laptops with ParcPad capabilities i.e. touch screens & wireless connections
    • Some OSs lack features for effective use on tablet PC

225px-tablet.jpg ipad.jpg

  • Sizes vary from 5“ to 11” screen
  • Some devices can be used with one hand
  • Variety of operating system
    • Some familiar from desktop world e.g. linux
    • Some have their own proprietary OS.
  • Touch screen based UIs
    • Normally no keyboard
  • Web browser usually installed.
  • Nokia N810 Internet tablet*
    • High resolution (800×480 pixels) touch screen with up to 65,536 colours
    • Stylus based UI
    • RAM 128 MB (> 64 MB for user)
    • Wireless connectivity - Bluetooth 1.2 & 802.11b/g
    • Apps
      • Web browser, Flash Player version 6
      • Email client, Internet radio
      • News reader, PDF viewer
      • File manager, games

Device capabilities: PDAs

  • Vendors: HP, Palm, Sharp, Toshiba, Samsung, …
  • Smallish screens
    • Common resolutions 240×320 with 65k colours
  • Mostly stylus or touch based UI
    • Some might have small keyboards
  • Memory capacities
    • 50MB - 150MB
  • Wireless connectivity - 802.11, GPRS, IrDA
  • OS
    • Palm OS, Windows Pockete PC, Linux
  • Apps - most applications exist for the given OS

Device capabilities: Mobile phones

  • Vendors: Apple, Samsung, Nokia, Ericsson, Samsung, …
  • Variety of screen sizes & resolutions
  • UI - number pads, keyboards, stylus, touch
  • Capabilities vary
    • Smart phones have more capabilities than normal phones
  • Various RAM & Storage capacities
  • Low computation power - rapidly advancing
  • Wireless connectivity: GSM, GPRS, EDGE, UMTS,LTE, IrDA, Bluetooth, 802.11,
  • OS:
    • Symbian, Linux, Windows mobile, iOS, Android, proprietary.
  • Apps - some apps available for some of the given OS
    • Depending on the devices capabilities
    • Web browser is quite common already on medium priced phones.

Device capabilities: Other Devices

  • IBM personal server
  • iPod
  • Portable gaming devices
    • Nintendo, Nokia N-gage, Sony PSP, Wiimote
  • Gaming consoles
    • PS3, xBox, Wii
  • Wear computing
  • RFID gadgets
  • NFC
  • Specific devices for specific use
    • e.g. Wiimote, RFID reader etc.

OSs on mobile devices

Gartner research for 2Q 2010 and 25labs for Q2 2011

  • Field rapidly changing

OSs on mobile devices: linux

  • Laptops, notebooks, netbooks, minipc, PDAs, mobile phones
  • Many other embedded devices also use Linux - APs, routers etc
  • Plenty of projects porting linux in other environments
  • Most desktop apps ported for ARM linux architectures
  • MeeGo from Nokia (MaeMo) and Intel (Moblin)
  • Bada from Samsung
  • Android software stack by google
  • OpenMoko linux → hardware + OS

OSs on mobile devices: Windows

  • Windows mobile for PDAs, mobile phones
  • XP, Vista, W7 laptops, notebooks, netbooks, minipc
  • Most apps for desktops have ports for windows mobile
  • Window phone 7
  • Windows 8 coming…

OSs on mobile devices: Others

  • Palm OS
  • PDAs & mobile phones
  • iOS
  • Symbian
  • Propriety & specialised OSs
  • Create you own

Developing apps for mobile devices

OS dependent development (native)

  • Programs run only on the devices OS
    • Programs compile for the given OS on the give hardware e.g. ARM
  • Lots of APIs
  • Good access to hardware
  • Symbian, windows, Linux, Palm
  • Window & Linux development
    • Similar development as on desktop
    • Programs compiled to proper hardware architecture
    • Restrictions on available libraries
      • Special libraries e.g. UI (springs portability problems)

Developing apps for mobile devices ...

OS independent development (interpreted)

  • Java, BREW (Binary Runtime Environment for Wireless)
  • Extra layer engine runnong on the devices's OS → additionaly overhead
  • Apps are compatible for many devices
  • Not all interfaces are available
  • Restricted / Limited access to hardware
  • Still require plenty of work on porting

Developing to Symbian

  • OO design
    • C++ libraries
    • Good support for mobility
    • Plenty of middleware
  • Good development tools
    • Different development platforms/libraries for different types of devices
      • Series 60, Series 80, UIQ
    • Emulators for different environments
    • Python support

Developing to Windows Phone

  • Formerly Windows Mobile, Windows Pocket PC, …
  • .NET compact framework
  • C, C++, C#, VB, IronPython, …
    • Numerous libraries available
    • APIs similar to desktop windows

Linux

  • Seldom “native” or pre-installed
  • Decent hardware access
  • Many different embedded Linux for different hardwares
    • ARM Linux for ARM based processors
  • Most apps cross-compiled to different architectures
    • Scratchbox - cross-compilling environment / toolkit
      • Also includes an emulator for ARM
  • APIs & libraries from desktop version can also be used
  • Same tools can be used for desktop apps development too

Familiar Linux

  • Familiar Linux home & wiki pages
  • Linux distribution for iPAQ, PDAs
  • A Windows CE alternative
  • PDA optimised GUI
    • Supports OPIE (trolltech qtopia) & GPE (GTK+X) UIs
  • Familiar v0.8.4 - iPAQ h3600 .., Siemens Simpad
  • ipkg - package management for Apps distribution

Java

  • Virtual machine (VM) interpreted byte code
    • Different VMs for different device types
    • Extra layer between hardware & apps
    • Bigger apps requiring more memory
  • Apps (may) have limited access to device resources
    • Sandbox based security

Java ...

Sun Java 2 Wireless toolkit

  • Formely J2ME
  • Different configurations for different devices
  • Configurations composed of
    • The 2 low-level APIs
    • Optimised VMs targeted at 2 broad categories of devices
      • Connected device configurations (CDC)
      • Connected limited device configuration (CLDC)

Java ...

Different profiles for different cases

  • Profile
    • Specification detailing the java technologies API
    • Built on top of & utilise underlying configurations
  • Mobile information device profile (MIDP) for CLDC
  • Foundation profile, personal profile, … for CDC

Issues

  • VMs on handsets function differently e.g. timers
  • Different profiles complicate porting apps

Android

  • Open handset alliance
  • Software platform running over Linux OS
  • Development done in Java
    • Do not follow java profiles
  • Have own VM
  • Own software development kit

BREW

  • Originally supported by qualcomm chipset based on CDMA phones
    • BREW air interface supports GSM, GPRS, 3G, UMTS, CDMA
    • Main market is USA
  • BREW code created using C, C++, Java

BREW ...

  • End to end solution
    • Apps give to BREW operators
    • Apps traded between BREW operators at BREW markets
    • Customers buy BREW apps from operators
  • BREW facilitates
    • Subscriber billing & settlement to publishers, developers & their partners via BREW delivery system

Python

  • Interpreted OO programming language
    • Compiles to interpreted byte code
      • implicit & automatic compilation
    • Same code works in most devices
  • Extensible (add modules)
    • C, C++, Fortran, …
    • Java (Jython), C#/Mono (IronPython)
  • Automatic memory management
    • Reference counting
    • GC added for cycle detection

Python ...

  • Safe
    • No core dumps due to bugs
    • Decent exception handling
  • Extremly portable
    • Unix/Linux, Windows, Mac, RiscOS, PlayStation, VMS, …
  • Supported in most new mobile platforms
    • Linux, PalmOS, Windows, Maemo, Symbian, S60

Python ...

  • Some module absent in some platforms
  • Module have different APIs in different platforms
    • GUI - Maemo (gtk+hildon), Symbian (appuifgw)
  • Some modules have been removed in maemo
    • E.g. dlelib, audiodev, curses, mutex, netrc, crypt, etc

Python ...

  • Performance
    • Slightly slower than java?
    • Requires less RAM than java
  • Good for prototypying apps
    • Fast tp write & understand
    • No cross compiling problems
  • What is the target group of our service / app?
    • What kind od devices does the group have
    • What are the capabilities of these devices
    • What is the environment for these services
  • What device capabilities are required for our service
    • Does the device have required apps?
    • Can we create our own app to the device
    • How much computation is required
  • What app types exist for the given OS
    • Thin client
    • Web browser
    • Messaging
  • Possible to create own apps for the OS
    • Smart client
    • At what cost?
    • What interfaces are offered/exposed
  • What development tools exists?
Last modified: 2013/07/01 14:42