An Introduction To Mobile Technologies and Services. by Michael Sharon, Co-founder / CTO, Socialight



Similar documents
Guide to Wireless Communications. Digital Cellular Telephony. Learning Objectives. Digital Cellular Telephony. Chapter 8

Comparative Study of Different Mobile Operating Systems

Mobile Operating Systems. Week I

Nokia 9210i/9290 Communicators and PersonalJava TM Application Development

2 Selecting Operating System - Symbian OS

Mobile Device Manual for 3G DVRs

Mobile Development Discovery Document

Mobile Operating Systems Lesson 07 Symbian OS

Mobility Introduction Android. Duration 16 Working days Start Date 1 st Oct 2013

Wireless Java Programming for Enterprise Applications

History of Mobile Applications

Introduction to Android

Overview focus on breadth understanding not depth (that s what the labs are for )

the future of mobile web by startech.ro

rich mobile applications made easy

Lee Barnes, CTO Utopia Solutions. Utopia Solutions

Mobile Software Development Services

Getting Started with Tizen SDK : How to develop a Web app. Hong Gyungpyo 洪 競 杓 Samsung Electronics Co., Ltd

GUI/Custom GUI, SIP Stack, Telephony, DB, Sockets, Bluetooth, QT.

Chapter 3 Cellular Networks. Wireless Network and Mobile Computing Professor: Dr. Patrick D. Cerna

A Review of Different Comparative Studies on Mobile Operating System

Symbian Operating System

Mobile Phones Operating Systems

Java ME & NetBeans Mobility. Petr Suchomel Architect, NetBeans Mobility Sun Microsystems

Programming Mobile Apps with Python

Getting Started with iphone SDK, Android and others: Mobile Application Development Create your Mobile Applications Best Practices Guide

Development of Java ME

Real time vehicle tracking and driver behaviour monitoring using cellular handset based accelerometer and GPS data

Computer and Set of Robots

Evolution of Smartphones And Android Operating System

Mobile Application Marketplace 2015: Market Analysis and Assessment of Future Evolution and Opportunities

Module Title: Software Development A: Mobile Application Development

Integrating Mobile Devices into the Computer Science Curriculum

Beginning Smartphone Web Development

2sms SMS API Overview

Python for Series 60 Platform

How To Understand The History Of The United States

The Java Virtual Machine and Mobile Devices. John Buford, Ph.D. Oct 2003 Presented to Gordon College CS 311

Testing Mobile Applications

Towards the Web of Things

SYST35300 Hybrid Mobile Application Development

OXYGEN FORENSIC SUITE 2010 GETTING STARTED

Java Platform, Micro Edition (Java ME) Mokoena F.R. The 7046 Team

Industry Analysis of the Nigerian Mobile Technology Development

Worldwide Major Mobile Phone Vendor Performance, 2Q 2015

HYBRID APPLICATION DEVELOPMENT IN PHONEGAP USING UI TOOLKITS

MOBILE APPLICATION DEVELOPMENT

Specialized Android APP Development Program with Java (SAADPJ) Duration 2 months

esarinformation Systems Simplifying your Technology Mobile Applications Development Profile

Bridging the Gap: from a Web App to a Mobile Device App

ANDROID OPERATING SYSTEM

Lehrstuhl für Informatik 4 Kommunikation und verteilte Systeme

Mobile-PC Suite: Using Mobile Phone as Remote to Control PC Operations

Introduction to BlackBerry Smartphone Web Development Widgets

Wireless Broadband Access

Internationalization Programming for Mobile Applications

Here to take you beyond Mobile Application development using Android Course details

Important Notice Baracoda products works with all Bluetooth devices accepting both SPP connection and sniff mode.

BlackBerry Smartphone Application Development

Mobile Test Strategy. Shankar Garg. Senior Consultant - Testing

Mobile Operating Systems Lesson 05 Windows CE Part 1

ipad, a revolutionary device - Apple

Automated testing for Mobility New age applications require New age Mobility solutions

UPnP Control Point for Mobile Phones in Residential Networks

General background on mobile devices and solutions including context awareness

Considerations for Mobile Application Development

«compl*tc IDIOT'S GUIDE. Android App. Development. by Christopher Froehlich ALPHA. A member of Penguin Group (USA) Inc.

MOBILE TECHNOLOGIES AND DISTANCE EDUCATION

Lecture 3 Mobile App Development (Android, ios, BlackBerry, Windows Mobile) <lecturer, date>

Android Development. Lecture AD 0 Android SDK & Development Environment. Università degli Studi di Parma. Mobile Application Development

Development of Wireless Networks

Designing for Mobile Devices

ANDROID. Programming basics

HTML5 the new. standard for Interactive Web

Android Architecture. Alexandra Harrison & Jake Saxton

Lecture 1 Introduction to Android

ATLAS CARTOGRAPHIC TECHNOLOGIES LTD. (ATLASCT) Dedicated Geo-Server. Business Proposal

The Rise and Fall of Japanese 'Smart' Mobile Phones:

Mobility and cellular networks

Transcription:

An Introduction To Mobile Technologies and Services by Michael Sharon, Co-founder / CTO, Socialight

Overview 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 mean?

Mobile 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, industry

Mobile 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 laden

Multimedia Computer Reinvented Phone

Many devices. Many manufacturers. Many formats.

RIM BenQ Palm Samsung Motorola Kyocera Nokia Fujitsu Mobile device manufacturers Sanyo SonyEricsson LG Apple Sharp

Feature phones Smart phones PDAs/ handheld Price $ $$ $$$ OS Proprietary, Series40 S60, Windows Mobile, Linux PalmOS, PocketPC Applications Java or BREW Any Any

Mobile development ecosystem Certification Mobile operator Mobile UI Mobile OS Platform Publishing Air interface Data bearer Deployment Packaging Language

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

Mobile phone capabilities Bluetooth WAP WiFi GPS TDMA PTT GPRS EDGE GSM CDMA UMTS W-CDMA ringtones monochrome colour voice text graphics images speaker cameras microphone RFID 1990 2000 2007 NFC WiMax

Mobile 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.

0G 1946-1980 s Early mobile phones Expensive In cars/trucks/briefcases Voice only

1G 1980 s-now First generation cellular networks Radio signals = analog Technologies - AMPS / DataTac First Blackberry (850) Voice + Limited data

2G 1990 s-now Second generation cellular networks Digital. Voice + SMS + Circuit switched data GSM, iden, CDMA, TDMA 2.5G 1990 s-now Marketing term GPRS, HSCSD, WiDEN Also EDGE, CDMA2000 1x-RTT

GSM 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 = T-Mobile, Cingular * according to this http://en.wikipedia.org/wiki/gsm

GPRS 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 = Sprint-Nextel / Boost

CDMA Code Division Multiple Access A second generation (2G) standard for mobile phones. US Operators = Sprint, Verizon

3G 2004-now Third generation cellular networks Broadband data + voice, streaming video! W-CDMA (UMTS, FOMA), 1xEV-DO 4G the future! high-speed broadband for data- and visual- centric information Transmits data at 100mbps while moving and 1Gbs while standing still

some 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 - http://cognections.typepad.com/lifeblog/2006/08/eh_kinda_quiet_.html

2. The State of the Industry

Operators in the US Service Cingular Verizon Sprint T-Mobile Subscribers 61m 59.1m 53.1m 25m Technology GSM CDMA CDMA/ iden GSM Platform J2ME BREW J2ME J2ME Openness Open Semi- Walled Open Semi- Walled Network 2.5G/3G 2.5G/3G 2.5G/3G 2.5G/3G Location TDOA (no access) A-GPS A-GPS TDOA (no access)

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 2007 is kinda like the web in 1997

Anybody remember <blink>? <marquee>?

This is worse

1997 2007 Netscape vs Microsoft Symbian vs Flash Lite vs Java ME vs Python vs BREW vs.net vs WAP vs Palm Proprietary features vs standards <blink> vs <marquee> Platform features / standards OEM APIs (Java) Free environment Free development tools Clear development / deployment process $$ environment (contracts) Mostly free development tools (except for BREW) Convoluted development & painful deployment process

Java 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, language

Symbian 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 FOMA

Python for Series 60 Open source scripting language ported by Nokia Only on Series 60 smartphones Python wrappers around low-level APIs, easy access to native OS features

BREW 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.

sources: http://www.biskero.org/?p=430, http://alindh.iki.fi/2006/06/27/mobile-platform-statistics/, http://en.wikipedia.org/wiki/mobile_development Platform Overview Java ME Flash Lite Symbian Second best reach, best overall development Good for graphics-heavy applications in supported markets 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: http://www.biskero.org/?p=430, http://alindh.iki.fi/2006/06/27/mobile-platform-statistics/, http://en.wikipedia.org/wiki/mobile_development Platform Language X-Platform Learning Curve Emulator Availability Java ME Java Average Average Free ~1.5bn Flash Lite AS Excellent Average With IDE 77-115m Symbian C++ Average STEEP! Free 120m.NET BREW C#, C++, VB.NET C++ WM STEEP! IDE 4.5m CDMA only STEEP! Simulator???? Python Python FREE Gentle Add-on Nokia-only WAP / Mobile Web XHTML, WML FREE Gentle Free 2bn+

Platform GUI Functionality Phone Data Access Developer Community Java ME Flash Lite Symbian.NET BREW 2D/3D, Many widgets, Visual Form Builder 2D/3D, Many widgets, Visual IDE 2D/3D, Many widgets, Visual Form Builder 2D/3D, Many widgets, Visual Form Builder 2D/3D, Many widgets, uione Varies by handset, no CellID, high res pics Partial through API Varies by handset, Optional APIs None Extensive Extensive No restriction Simulator Extensive Limited audio Full MSDN Operator dependent Full Limited Python 2D Graphics, some widgets Partial through API Partial Small, but growing WAP / Mobile Web Basic forms. Inconsistencies Limited to browser None Extensive sources: http://www.biskero.org/?p=430, http://alindh.iki.fi/2006/06/27/mobile-platform-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 VM Other Apps Virtual Machine (KVM) Native Apps Operating System Hardware

A 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 - 160-512k of memory for Java - limited power / batteries - intermittent, low-bandwidth connectivity CLDC 1.0 - May 2000, JSR 30 - java.lang CLDC 1.1 - Dec 2002, JSR 139 - adds floating point support - bug fixes

2. Profiles: MIDP Mobile Information Device Profile MIDP 1.0 - December 2000, JSR 37 - java.microedition.midlet - java.microedition.rms - java.microedition.lcdui - java.microedition.io.httpconnection MIDP 2.0 - Nov 2002, JSR 118 - java.microedition.media - java.microedition.lcdui.game 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, multi-part messages Mobile Media API (JSR 135) - audio, video and multimedia Location API (JSR 179) - interface to location services

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

MIDlets MIDlets are like Java applets for mobile devices. Has a lifecycle with four stages, created, started, paused, destroyed.

Applications

Games Pang The Sims2 Web Opera Mini GCalSync Mapping Google Maps mgmaps ulocate Mapping Wayfinder Photos Mobup Shozu Zonetag Art Balldroppings Social BEDD Flirtomatic Loopt RSS Widsets MobileGlu Hybrids MogiMogi Socialight Yahoo 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 oriented programming language Very powerful language + terse syntax. Modules, classes, exceptions, dynamic typing

Java statically typed String blah = ; Python dynamically ( duck ) typed blah = string blah = 1 verbose concise public class HelloWorld { public static void main (String[] args) { System.out.println("Hello, world!"); } } print Hello World

Java ME Python S60 freshly open source open source broad manufacturer support Symbian Series60 complex, multiple APIs (High Level, Low Level), confusing exception model, runs in sandbox extremely terse. no checked exceptions. uses Python standard library. simpler APIs, C++ wrapper

Capabilities of PyS60 GUI: Menu, Forms, Listboxes, Input fields, Dialogs, Notes Graphics: - color, font and style attributes, - direct-screen drawing, - displaying images and icons Key-down and key-up 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 (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 (circuit switched data/dialup)/cdpd Date connnection speeds: CSD=9.6kbs/ CDPD=14.4kbs Light weight protocol needed to transfer data.

1G 1980 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 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)

2G 1990 s-now Second generation cellular networks Digital. Voice + SMS + Circuit switched data GSM, iden, CDMA, TDMA 2.5G 1990 s-now 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 to enhancement of languges WAP 2.0 and XHTML-MP 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)

3G 2004-now Third generation cellular networks Broadband data + voice, streaming video! W-CDMA (UMTS, FOMA), 1xEV-DO 4G the future! high-speed broadband for data- and visual- centric information Transmits data at 100mbps while moving and 1Gbs while standing still

WML vs XHTML Standards Body Content displaying Content Encoding Document Layout control Colour control Support WML 1.x WAP Forum (defunct) Content + layout in same document. Tailored separately for different devices. Binary Basic Only colour images, no colour control for fonts, backgrounds, borders etc. XHTML-MP W3C + OMA Content + layout separate. Can be rendered separately. No encoding required Advanced layout with CSS Full support with CSS, fonts, backgrounds, borders Data bearer WAP Wireless profile - TCP/IP

Java WAP Complex syntax, powerful language Simple syntax, not so powerful Download apps Use built in browser (no download necessary) public class HelloWorld { public static void main (String[] args) { System.out.println("Hello, world!"); } } <p>hello, WAP</p>

Mobile application development can be challenging.

Start small, keep it simple, add constraints

Choose your platform wisely

Thanks!

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