An Introduction To Mobile Technologies And Services

Transcription

An Introduction To MobileTechnologies and Servicesby Michael Sharon, Co-founder / CTO, Socialight

Overview1.What does “mobile” mean? Components Typical device features2.The state of the industry Operators, Devices, Openness, Ease ofdevelopment3.Mobile development options Types of devices OSes, languages, platforms Applications

1. What does “mobile” mean?

MobileFrom the Latin mobilis - “to move”“able to move freely or easily”“able or willing to move freely oreasily between occupations, placesof residence and social classes”Device, state of being, industry

Mobile deviceMobile, wireless or cellular phone - aportable, handheld communicationsdevice connected to a wirelessnetwork that allows users to makevoice calls, send text messages andrun applications.AKA keitai, personal handy phoneWARNING: Jargon & Acronym laden

MultimediaComputerReinventedPhone

Many devices. Many manufacturers.Many formats.

e device manufacturersSanyoSharpLGSonyEricssonApple

PriceOSFeaturephonesSmartphonesPDAs/handheld Proprietary, S60, Windows PalmOS,Mobile, Linux PocketPCSeries40Applications Java or BREWAnyAny

Mobile development ecosystemPublishingCertificationAir interfaceMobile operatorData bearerMobile UIDeploymentMobile OSPlatformLanguagePackaging

why mobile?one handed uselimited (input, processing,battery life)rich (sensors, usage)small!truly ubiquitous

Mobile phone capabilitiesBluetooth WAPWiFiGPSTDMAPTTGPRS EDGEGSMCDMA UMTS W-CDMAringtonesmonochromecolourRFIDNFCvoicetext graphics imagesspeakercamerasmicrophone19902000WiMax2007

Mobile evolution (briefly)

G - 1/2/3/4 GG refers to the different generations ofmobile devices.First generation (1G) cellphones wereanalog devices. Second generation (2G)devices were digital, and thirdgeneration (3G) allows for voice, dataand advanced services.

0G1946-1980’sEarly mobile phones Expensive In cars/trucks/briefcases Voice only

1G1980’s-now First generation cellular networks Radio signals analog Technologies - AMPS / DataTac First Blackberry (850) Voice Limited data

2G1990’s-now2.5G1990’s-now Second generation cellular networks Digital.Voice SMS Circuit switched data GSM, iDEN, CDMA, TDMA Marketing term GPRS, HSCSD, WiDEN Also EDGE, CDMA2000 1x-RTT

GSMGlobal System for Mobile CommunicationsGSM is the most popular standard formobile phones worldwide used by 2.2billion people on over 210 networks.*US Operators T-Mobile, Cingular* according to this http://en.wikipedia.org/wiki/GSM

GPRSGeneral Packet Radio ServicesA mobile data service for use on GSMnetworks.Part of the 2.5G standards family

iDENIntegrated Digital Enhanced NetworkA second generation (2G) mobiletelecommunications standard developedentirely by Motorola.US Operators Sprint-Nextel / Boost

CDMACode Division Multiple AccessA second generation (2G) standard formobile phones.US Operators Sprint,Verizon

3G2004-now4Gthe future! Third generation cellular networks Broadband data voice, streaming video! W-CDMA (UMTS, FOMA), 1xEV-DO “high-speed broadband for data- and visual- centricinformation”Transmits data at 100mbps while moving and 1Gbswhile standing still

some refreshing statistics3.2m Blackberries50m PDAs70m iPods190m Gameboys820m PCs1.5bn TV sets2bn Mobile phones*Source: Charlie Schick’s blog - http://cognections.typepad.com/lifeblog/2006/08/eh kinda quiet .html

2. The State of the Industry

Operators in the A(no access)A-GPSTDOA(no access)A-GPS

Sprint (Nextel Boost),T-Mobile & Cingular*support J2ME* 3 out of the 4 largest carriers(but who’s counting anyway?)

3. Mobile Development Options

Mobile Development in 2007is kinda like the web in 1997

Anybody remember blink ? marquee ?

This is worse

1997Netscape vs Microsoft2007Symbian vs Flash Lite vsJava ME vs Python vs BREWvs .NET vs WAP vs PalmProprietary features vs standards blink vs marquee Platform features / standardsOEM APIs (Java)Free environment environment (contracts)Free development toolsMostly free development tools(except for BREW)Clear development /deployment processConvoluted development &painful deployment process

Java ME / J2MEJava ME (formerly known as Java 2Platform, Micro Edition or J2ME), is acollection of Java APIs for developingsoftware on resource constraineddevices such as PDAs, cell phones andother consumer appliances.

Flash LiteFlash Lite is a development platformcreated by Macromedia, based on theirhugely successful Flash web applicationplatform.v1.1 - most widely deployed, limitedv2.x - improved experience, language

SymbianOperating system based on originalPDAs from Psion. Largest installed base.Multiple versions customized fordifferent manufacturers. Language C UIQ - SonyEricssonSeries 60 - NokiaMOAP - NTT Docomo FOMA

Python for Series 60Open source scripting language portedby NokiaOnly on Series 60 smartphonesPython wrappers around low-level APIs,easy access to native OS features

BREWBinary Runtime Environment WirelessProprietary mobile device platformdeveloped by Qualcomm.Developmentlanguage is C with C interfaces.Certification and development processis expensive.

WAPWireless Application ProtocolOriginally used to describe lightweightprotocol which used Wireless MarkupLanguage (WML).Currently used to refer to Mobile Web,which uses XHTML MP/Basic CSS.

PlatformOverviewJava MESecond best reach, best overall developmentFlash LiteGood for graphics-heavy applications in supportedmarketsSymbianStrong support from Nokia, best access to hardware.NETPocketPC Windows Mobile DevicesBREWThe only option for CDMA networksPythonGreat for quick prototypes, still immatureWAPLargest overall reach, lightweight functionalitysources: http://www.biskero.org/?p m-statistics/, http://en.wikipedia.org/wiki/Mobile development

PlatformLanguage X-PlatformLearningCurveEmulatorAvailabilityJava MEJavaAverageAverageFree 1.5bnFlash LiteASExcellentAverageWith IDE77-115mSymbianC AverageSTEEP!Free120m.NETC#, C ,VB.NETWMSTEEP!IDE4.5mBREWC onNokia-onlyWAP /Mobile WebXHTML,WMLFREEGentleFree2bn sources: http://www.biskero.org/?p m-statistics/, http://en.wikipedia.org/wiki/Mobile development

PlatformJava MEGUIFunctionality2D/3D, Manywidgets,VisualForm Builder2D/3D, Manywidgets,VisualIDE2D/3D, Manywidgets,VisualForm BuilderPhone DataAccessVaries by handset, no Varies by handset,CellID, high res picsOptional APIsDeveloperCommunityExtensivePartial throughAPINoneExtensiveNo restrictionSimulatorExtensive.NET2D/3D, Manywidgets,VisualForm BuilderLimited audioFullMSDNBREW2D/3D, Manywidgets, uiOneOperatordependentFullLimitedPython2D Graphics,some widgetsPartial throughAPIPartialSmall, butgrowingLimited tobrowserNoneExtensiveFlash LiteSymbianWAP /Basic forms.Mobile Web Inconsistenciessources: http://www.biskero.org/?p m-statistics/, http://en.wikipedia.org/wiki/Mobile development

Java ME (J2ME)

Java Sources Java Community Process - http://jcp.org JSR specification requests reference implementations Sun - http://java.sun.com SDK, tools, community Manufacturer SDKs, community, device emulators

Java VMOther AppsNative AppsVirtual Machine (KVM)Operating SystemHardware

A typical Java ME stack1. Configurations- specifies minimum Java technology that we canexpect for certain devices- Includes language, virtual machine features, corelibraries2. Profiles- layer defining APIs and specifications for a particulardevice or market - MIDP, FP- MIDlets3. Optional Packages- includes additional functionality only supported bycertain devices - e.g. Bluetooth API, Location API

1. Configurations: CLDCConnected Limited Device Configuration- specifies environment for mobile phone, pagers- 160-512k of memory for Java- limited power / batteries- intermittent, low-bandwidth connectivityCLDC 1.0- May 2000, JSR 30- java.langCLDC 1.1- Dec 2002, JSR 139- adds floating point support- bug fixes

2. Profiles: MIDPMobile Information Device ProfileMIDP 1.0- December 2000, JSR 37- java.microedition.midlet- java.microedition.rms- java.microedition.lcdui- java.microedition.io.HttpConnectionMIDP 2.0- Nov 2002, JSR 118- java.microedition.media- java.microedition.lcdui.gameMIDP 3.0- Q3 2006? No! Sometime 2007.

3. Optional PackagesBluetooth API (JSR 82)- communication with Bluetooth devicesWireless Messaging API (JSR 120, JSR 205)- SMS, MMS, multi-part messagesMobile Media API (JSR 135)- audio, video and multimediaLocation API (JSR 179)- interface to location services

MIDP 3.0AKA “The Future” Background MIDlets (remember TSRs?) Drawing to secondary displays Improved large screen support Auto-start MIDlets And much more. to forget about for themoment

MIDletsMIDlets are like Java applets for mobiledevices.Has a lifecycle with four stages,created, started, paused, destroyed.

Applications

GamesPangThe Sims2MappingGoogle MapsmGmapsuLocatePhotosMobupShozuZonetagWebOpera MogiSocialightYahoo Go!

http://www.mogimogi.com/

http://www.wayfinder.com/

http://www.wayfinder.com/

http://www.gcalsync.com

http://www.mobup.org

Python for Series 60

What is Python? Created 1990 by Guido van Rossum Interpreted, object orientedprogramming language Very powerful language tersesyntax. Modules, classes, exceptions,dynamic typing

JavaPythonstatically typedString blah “”;dynamically (“duck”) typedblah “string”blah 1verboseconcisepublic class HelloWorld{public static void main (String[] args){System.out.println("Hello, world!");}}print “Hello World”

Java MEPython S60freshly open sourceopen sourcebroad manufacturersupportSymbian Series60extremely terse. nocomplex, multiple APIschecked exceptions. uses(High Level, Low Level),Python standard library.confusing exceptionsimpler APIs, C model, runs in sandboxwrapper

Capabilities of PyS60 GUI: Menu, Forms, Listboxes, Input fields, Dialogs, NotesGraphics: - color, font and style attributes, - direct-screen drawing, displaying images and iconsKey-down and key-up eventsSockets: TCP/IP, Bluetooth (RFCOMM, OBEX)Messaging (SMS) accessing the InboxNetworking (HTTP, FTP, )Access to file system, file reading, XML, RSSAccess to camera, telephoneAccess to calendar, contacts, sysinfoLocation (cell-id)Content handler (download open videos.)Python extensions can be written in C Package scripts into standalone applications - (using SIS files)

WAP

The birth of WAP The end of the 1990’s:Data service bearers available: CSD (circuitswitched data/dialup)/CDPDDate connnection speeds: CSD 9.6kbs/CDPD 14.4kbsLight weight protocol needed to transferdata.

1G1980’s-now First generation cellular networks Radio signals analog Technologies - AMPS / DataTac First Blackberry (850) Voice Limited data

Enter, WAP Enter, WAP, a light weight protocol stage left.Good for data speed at that timeWAP Wireless Application ProtocolLike HTTP with extra bits stripped outWAP Gateway (GW) handles translationLimited markup language resulted in HDML - Handheld Device MarkupLanguage WML (established by the WAP Forum)

2G1990’s-now2.5G1990’s-now Second generation cellular networks Digital.Voice SMS Circuit switched data GSM, iDEN, CDMA, TDMA Marketing term GPRS, HSCSD, WiDEN Also EDGE, CDMA2000 1x-RTT

WAP 2.0 (circa 2002) Data service bearers available: GPRS (54kbs)Development of 3G networks leads toenhancement of langugesWAP 2.0 and XHTML-MP released by theWAP forum.Smarter phones faster data (3G).WAP GW resembles typical Proxy ServerWAP GW is largely for legacy devicesupport (WAP 1.1 devices)

3G2004-now4Gthe future! Third generation cellular networks Broadband data voice, streaming video! W-CDMA (UMTS, FOMA), 1xEV-DO “high-speed broadband for data- and visual- centricinformation” Transmits data at 100mbps while moving and 1Gbswhile standing still

WML vs XHTMLWML 1.xXHTML-MPStandardsBodyWAP Forum (defunct)W3C OMAContentdisplayingContent layout in samedocument. Tailored separatelyfor different devices.Content layout separate.Can be rendered separately.ContentEncodingBinaryNo encoding requiredDocumentLayout controlBasicAdvanced layout with CSSOnly colour images, no colourColour controlcontrol for fonts, backgrounds,Supportborders etc.Data bearerWAPFull support with CSS,fonts, backgrounds, bordersWireless profile - TCP/IP

JavaWAPComplex syntax,powerful languageSimple syntax, not sopowerfulDownload appsUse built in browser (nodownload necessary)public class HelloWorld{public static void main (String[] args){System.out.println("Hello, world!");}} p Hello, WAP /p

Mobile application developmentcan be challenging.

Start small, keep it simple,add constraints

Choose your platform wisely

Thanks!

Questions? Comments? Suggestions?Michael Sharon646 591 3681michael@socialight.com

BREW Binary Runtime Environment Wireless Proprietary mobile device platform developed by Qualcomm.Development language is C with C interfaces. Certification and development process is