Question? Leave a message!

An Introduction To Mobile Technologies and Services

An Introduction To Mobile Technologies and Services 23
An Introduction To Mobile Technologies and Services by Michael Sharon, Cofounder / CTO, SocialightOverview 1.What does “mobile” mean Components • Typical device features • 2.The state of the industry Operators, Devices, Openness, Ease of • development 3.Mobile development options Types of devices • OSes, languages, platforms • Applications •1. What does “mobile” meanMobile From the Latin mobilis “to move” “able to move freely or easily” “able or willing to move freely or easily between occupations, places of residence and social classes” Device, state of being, industryMobile device Mobile, wireless or cellular phone a portable, handheld communications device connected to a wireless network that allows users to make voice calls, send text messages and run applications. AKA keitai, personal handy phone WARNING: Jargon Acronym ladenMultimedia Reinvented Computer PhoneMany devices. Many manufacturers. Many formats. Motorola RIM Samsung Kyocera Palm Nokia BenQ Fujitsu Mobile device manufacturers Sanyo Sharp LG SonyEricsson AppleFeature Smart PDAs/ phones phones handheld Price Proprietary, PalmOS, S60, Windows OS Mobile, Linux Series40 PocketPC Applications Java or BREW Any AnyMobile development ecosystem Publishing Certification Air interface Mobile operator Data bearer Mobile UI Deployment Mobile OS Packaging Platform Languagewhy mobile one handed use limited (input, processing, battery life) rich (sensors, usage) small truly ubiquitousMobile phone capabilities Bluetooth WAP WiFi GPS TDMA PTT GPRS EDGE GSM CDMA UMTS WCDMA ringtones NFC monochrome colour RFID voice text graphics images WiMax speaker cameras microphone 1990 2000 2007Mobile evolution (briefly)G 1/2/3/4 G G refers to the different generations of mobile devices. First generation (1G) cellphones were analog devices. Second generation (2G) devices were digital, and third generation (3G) allows for voice, data and advanced services. Early mobile phones 0G Expensive • 19461980’s In cars/trucks/briefcases • Voice only •First generation cellular networks • 1G Radio signals = analog • 1980’snow Technologies AMPS / DataTac • First Blackberry (850) • Voice + Limited data •• Second generation cellular networks 2G • Digital. Voice + SMS + Circuit switched data 1990’snow • GSM, iDEN, CDMA, TDMA • Marketing term 2.5G • GPRS, HSCSD, WiDEN 1990’snow • Also EDGE, CDMA2000 1xRTTGSM Global System for Mobile Communications GSM is the most popular standard for mobile phones worldwide used by 2.2 billion people on over 210 networks. US Operators = TMobile, Cingular according to this General Packet Radio Services A mobile data service for use on GSM networks. Part of the 2.5G standards family iDEN Integrated Digital Enhanced Network A second generation (2G) mobile telecommunications standard developed entirely by Motorola. US Operators = SprintNextel / BoostCDMA Code Division Multiple Access A second generation (2G) standard for mobile phones. US Operators = Sprint, VerizonThird generation cellular networks • 3G Broadband data + voice, streaming video • 2004now WCDMA (UMTS, FOMA), 1xEVDO • “highspeed broadband for data and visual centric • information” 4G Transmits data at 100mbps while moving and 1Gbs • the future while standing stillsome refreshing statistics 3.2m Blackberries 50m PDAs 70m iPods 190m Gameboys 820m PCs 1.5bn TV sets 2bn+ Mobile phones Source: Charlie Schick’s blog The State of the IndustryOperators in the US Service Cingular Verizon Sprint TMobile Subscribers 61m 59.1m 53.1m 25m CDMA/ Technology GSM CDMA GSM iDEN Platform J2ME BREW J2ME J2ME Semi Semi Openness Open Open Walled Walled Network 2.5G/3G 2.5G/3G 2.5G/3G 2.5G/3G TDOA TDOA Location AGPS AGPS (no access) (no access)Sprint (Nextel + Boost), TMobile Cingular support J2ME 3 out of the 4 largest carriers (but who’s counting anyway)3. Mobile Development OptionsMobile Development in 2007 is kinda like the web in 1997Anybody remember blink marqueeThis is worse1997 2007 Symbian vs Flash Lite vs Netscape vs Microsoft Java ME vs Python vs BREW vs .NET vs WAP vs Palm Proprietary features vs standards Platform features / standards blink vs marquee OEM APIs (Java) Free environment environment (contracts) Mostly free development tools Free development tools (except for BREW) Clear development / Convoluted development painful deployment process deployment processJava ME / J2ME Java ME (formerly known as Java 2 Platform, Micro Edition or J2ME), is a collection of Java APIs for developing software on resource constrained devices such as PDAs, cell phones and other consumer appliances.Flash Lite Flash Lite is a development platform created by Macromedia, based on their hugely successful Flash web application platform. v1.1 most widely deployed, limited v2.x improved experience, languageSymbian Operating system based on original PDAs from Psion. Largest installed base. Multiple versions customized for different manufacturers. Language = C++ UIQ SonyEricsson Series 60 Nokia MOAP NTT Docomo FOMAPython for Series 60 Open source scripting language ported by Nokia Only on Series 60 smartphones Python wrappers around lowlevel APIs, easy access to native OS featuresBREW Binary Runtime Environment Wireless Proprietary mobile device platform developed by Qualcomm.Development language is C with C++ interfaces. Certification and development process is expensive. WAP Wireless Application Protocol Originally used to describe lightweight protocol which used Wireless Markup Language (WML). Currently used to refer to Mobile Web, which uses XHTML MP/Basic + CSS. Platform Overview Java ME Second best reach, best overall development Good for graphicsheavy applications in supported Flash Lite markets Symbian Strong support from Nokia, best access to hardware .NET PocketPC + Windows Mobile Devices BREW The only option for CDMA networks Python Great for quick prototypes, still immature WAP Largest overall reach, lightweight functionality sources:,, Platform Language XPlatform Emulator Availability Curve Java ME Java Average Average Free 1.5bn Flash Lite AS Excellent Average With IDE 77115m Symbian C++ Average STEEP Free 120m C, C++, .NET WM STEEP IDE 4.5m VB.NET CDMA BREW C++ STEEP Simulator only Python Python FREE Gentle Addon Nokiaonly WAP / XHTML, FREE Gentle Free 2bn+ Mobile Web WML sources:,, Data Developer Platform GUI Functionality Access Community 2D/3D, Many Varies by handset, no Varies by handset, widgets, Visual Java ME Extensive CellID, high res pics Optional APIs Form Builder 2D/3D, Many Partial through widgets, Visual Flash Lite None Extensive API IDE 2D/3D, Many widgets, Visual Symbian No restriction Simulator Extensive Form Builder 2D/3D, Many widgets, Visual .NET Limited audio Full MSDN Form Builder Operator 2D/3D, Many BREW Full Limited widgets, uiOne dependent Partial through Small, but 2D Graphics, Python Partial some widgets API growing WAP / Limited to Basic forms. None Extensive Inconsistencies Mobile Web browser sources:,, ME (J2ME)Java Sources Java Community Process • JSR specification requests • reference implementations • Sun • SDK, tools, community • Manufacturer • SDKs, community, device emulators • Java VM Other Apps Native Apps Virtual Machine (KVM) Operating System HardwareA typical Java ME stack 1. Configurations specifies minimum Java technology that we can expect for certain devices Includes language, virtual machine features, core libraries 2. Profiles layer defining APIs and specifications for a particular device or market MIDP, FP MIDlets 3. Optional Packages includes additional functionality only supported by certain devices e.g. Bluetooth API, Location API 1. Configurations: CLDC Connected Limited Device Configuration specifies environment for mobile phone, pagers 160512k of memory for Java limited power / batteries intermittent, lowbandwidth connectivity CLDC 1.0 May 2000, JSR 30 java.lang CLDC 1.1 Dec 2002, JSR 139 adds floating point support bug fixes2. Profiles: MIDP Mobile Information Device Profile MIDP 1.0 December 2000, JSR 37 java.microedition.midlet java.microedition.rms java.microedition.lcdui MIDP 2.0 Nov 2002, JSR 118 MIDP 3.0 Q3 2006 No Sometime 2007... 3. Optional Packages Bluetooth API (JSR 82) communication with Bluetooth devices Wireless Messaging API (JSR 120, JSR 205) SMS, MMS, multipart messages Mobile Media API (JSR 135) audio, video and multimedia Location API (JSR 179) interface to location servicesMIDP 3.0 AKA “The Future” Background MIDlets (remember TSRs) • Drawing to secondary displays • Improved large screen support • Autostart MIDlets • And much more... to forget about for the • momentMIDlets MIDlets are like Java applets for mobile devices. Has a lifecycle with four stages, created, started, paused, destroyed. ApplicationsGames Mapping Photos Pang Google Maps Mobup The Sims2 mGmaps Shozu uLocate Zonetag Web Mapping Art Opera Mini Wayfinder Balldroppings GCalSync Social Hybrids RSS BEDD MogiMogi Widsets Flirtomatic Socialight MobileGlu Loopt Yahoo Go for Series 60What is Python Created 1990 by Guido van Rossum • Interpreted, object oriented • programming language Very powerful language + terse • syntax. Modules, classes, exceptions, • dynamic typing Java Python dynamically (“duck”) typed statically typed blah = “string” String blah = “”; blah = 1 verbose concise public class HelloWorld public static void main (String args) print “Hello World” System.out.println("Hello, world"); Java ME Python S60 freshly open source open source broad manufacturer Symbian Series60 support extremely terse. no complex, multiple APIs checked exceptions. uses (High Level, Low Level), Python standard library. confusing exception simpler APIs, C++ model, runs in sandbox wrapperCapabilities of PyS60 GUI: Menu, Forms, Listboxes, Input fields, Dialogs, Notes • Graphics: color, font and style attributes, directscreen drawing, • displaying images and icons Keydown and keyup events • Sockets: TCP/IP, Bluetooth (RFCOMM, OBEX) • Messaging (SMS) + accessing the Inbox • Networking (HTTP, FTP, …) • Access to file system, file reading, XML, RSS • Access to camera, telephone • Access to calendar, contacts, sysinfo • Location (cellid) • Content handler (download + open videos..) • Python extensions can be written in C++ • Package scripts into standalone applications (using SIS files) •WAPThe birth of WAP The end of the 1990’s: • Data service bearers available: CSD (circuit • switched data/dialup)/CDPD Date connnection speeds: CSD=9.6kbs/ • CDPD=14.4kbs Light weight protocol needed to transfer • data.  First generation cellular networks • 1G Radio signals = analog • 1980’snow 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 time • WAP = Wireless Application Protocol • Like HTTP with extra bits stripped out • WAP Gateway (GW) handles translation • Limited markup language resulted in • HDML Handheld Device Markup • Language WML (established by the WAP Forum) •• Second generation cellular networks 2G • Digital. Voice + SMS + Circuit switched data 1990’snow • GSM, iDEN, CDMA, TDMA • Marketing term 2.5G • GPRS, HSCSD, WiDEN 1990’snow • Also EDGE, CDMA2000 1xRTTWAP 2.0 (circa 2002) Data service bearers available: GPRS (54kbs) • Development of 3G networks leads to • enhancement of languges WAP 2.0 and XHTMLMP released by the • WAP forum. Smarter phones + faster data (3G). • WAP GW resembles typical Proxy Server • WAP GW is largely for legacy device • support (WAP 1.1 devices)Third generation cellular networks • 3G Broadband data + voice, streaming video • 2004now WCDMA (UMTS, FOMA), 1xEVDO • • “highspeed broadband for data and visual centric information” 4G • Transmits data at 100mbps while moving and 1Gbs the future while standing stillWML vs XHTML WML 1.x XHTMLMP Standards WAP Forum (defunct) W3C + OMA Body Content + layout in same Content + layout separate. Content document. Tailored separately displaying Can be rendered separately. for different devices. Content Binary No encoding required Encoding Document Basic Advanced layout with CSS Layout control Only colour images, no colour Full support with CSS, Colour control control for fonts, backgrounds, Support fonts, backgrounds, borders borders etc. Data bearer WAP Wireless profile TCP/IPJava WAP Complex syntax, Simple syntax, not so powerful powerful language Use built in browser (no Download apps download necessary) public class HelloWorld public static void main (String args) pHello, WAP/p System.out.println("Hello, world"); Mobile application development can be challenging. Start small, keep it simple, add constraintsChoose your platform wiselyThanksQuestions Comments Suggestions Michael Sharon 646 591 3681