Lecture 1 - Introduction Mobile Programming

Embed Size (px)

Citation preview

  • 8/7/2019 Lecture 1 - Introduction Mobile Programming

    1/41

    Mobile Pla*orm Overview

  • 8/7/2019 Lecture 1 - Introduction Mobile Programming

    2/41

    Mobile Pla*orms Nokia

    Symbian Pla*orm MeeGo

    Google

    Android Apple

    iOS 4

    Others (Windows Phone 7, BlackBerry, HP webOS) Cross-pla*orm: Java ME

  • 8/7/2019 Lecture 1 - Introduction Mobile Programming

    3/41

    SYMBIAN PLATFORM

  • 8/7/2019 Lecture 1 - Introduction Mobile Programming

    4/41

    Symbian OS (History)

    Most popular smartphonemobile opera ng system inthe world

    Based on EPOC OS for PsionPDAs in the 90's.

    First Nokia devices: 9210Communicator and 7650

  • 8/7/2019 Lecture 1 - Introduction Mobile Programming

    5/41

    Symbian Pla*orm Open source OS designed for

    smartphones by SymbianFounda on

    Successor to Symbian OS

    Versions: Symbian^1 (= S60 5th Edi on)

    Nokia 5800, n97, Samsung i8910, SonyEricsson Sa o...

    Symbian^3 Nokia N8, C6-01, C7-00, E7-00

    Symbian^4 (Not released yet)

    Since 21th of October, Nokiais not referring to Symbian^3

    or Symbian^4.

  • 8/7/2019 Lecture 1 - Introduction Mobile Programming

    6/41

    Symbian Roadmapdeveloper.symbian.org

    Since 21th of October, Nokia isnot referring to Symbian^3 or

    Symbian^4.

  • 8/7/2019 Lecture 1 - Introduction Mobile Programming

    7/41

  • 8/7/2019 Lecture 1 - Introduction Mobile Programming

    8/41

    Developing for Symbian^3

    1. Qt framework2. Java ME3. WRT: Web Techniques

    Others: Flash, Silverlight, Python, Na;ve Symbian C++..

  • 8/7/2019 Lecture 1 - Introduction Mobile Programming

    9/41

    October 21:Nokia renes Development Strategy

    Sole focus on Qt framework and support for HTML5 further claries plaJorm strategy

    The decision to focus on Qt as the sole applica1on

    development framework will ensure that applica;ons willcon;nue to be compa;ble with future evolu;ons ofSymbian as well as upcoming MeeGo products.

    Nokia will no longer refer to Symbian^3 or Symbian^4

    Updates and upgrades for exis;ng Symbian^3 users

  • 8/7/2019 Lecture 1 - Introduction Mobile Programming

    10/41

    ??

    1. Qt framework2. Java ME3. WRT: Web Techniques

    Others: Flash, Silverlight, Python, Na;ve Symbian C++..

  • 8/7/2019 Lecture 1 - Introduction Mobile Programming

    11/41

    MEEGO

  • 8/7/2019 Lecture 1 - Introduction Mobile Programming

    12/41

    Maemo Maemo is a linux-based open mobile

    pla*orm Nokia n770, n800, n810 (without

    phone capabili es) and n900 Introduced in 2005 App por ng is easy, Maemo uses

    familiar components from DebianLinux

    Maemo 5 (Nokia n900)

  • 8/7/2019 Lecture 1 - Introduction Mobile Programming

    13/41

    MeeGo

    Combining Intel's Moblin andNokia's Maemo into one.

    Open source Linux project Intended to run variety hardware

    pla*orms: handhelds, netbooks,television

    MeeGo core, User Experience layer(UX)

    Mobile phones: Handset UX

  • 8/7/2019 Lecture 1 - Introduction Mobile Programming

    14/41

    14 "

    Settings DatabaseGConf

    Platform Infolibudev

    Message BusD-Bus

    System Librariesglibc, glib

    MeeGo Kernel "

    MeeGo API "

    CommsServices !

    Connection MgmtConnMan

    Netbook UX " Netbook UI + Apps "

    Netbook UI Framework "

    TelephonyoFono

    VOIP, IM, PresTelepathy

    BluetoothBlueZ

    InternetServices !

    Layout EngineWebKit

    Web Run-TimeWebKit

    Web ServicesLib SocialWeb

    LocationGeoClue

    VisualServices !

    3D GraphicsOpenGL / ES

    2D GraphicsCairo, QPainter

    I18n RenderingPango, QText

    GTK /Clutter

    MediaServices !

    Media FWGStreamer

    CameraGStreamer plug-in

    CodecsGStreamer plug-in

    AudioPulseAudio

    Data Mgmt !

    Content Framework Tracker

    Context Framework ContextKit

    Package Manager PackageKit

    DeviceServices !

    Device Health

    Sensor Framework

    Resource Manager

    Backup & Restore

    PersonalServices !

    PIM Services

    Device Sync

    Accts & SSO

    Handset UX " Handset UI + Apps "

    Handset UI Framework "

    X UPnPGUPnP

  • 8/7/2019 Lecture 1 - Introduction Mobile Programming

    15/41

    Nokia's View MeeGo is targeted on high end phones (superphones or

    computers ) Symbian OS is targeted on mid-range phones

    (smartphones

    ) Upcoming N8 is a mid-range phone! Series 40 / 30 / 20for low end ( phones )

    No na ve development environment Java ME!

  • 8/7/2019 Lecture 1 - Introduction Mobile Programming

    16/41

    First MeeGo Phone: Nokia N9(Rumors)

  • 8/7/2019 Lecture 1 - Introduction Mobile Programming

    17/41

    QT

  • 8/7/2019 Lecture 1 - Introduction Mobile Programming

    18/41

    Qt?

    Qt is a cross-pla orm applica on and UIframework.

  • 8/7/2019 Lecture 1 - Introduction Mobile Programming

    19/41

    Qt Tools Qt SDK 4.7

    For developing desktop apps Available for Windows, Linux and Mac

    Nokia Qt SDK 1.0.1 For developing desktop apps and mobile apps

    Mobility APIs Available for Windows, Linux and Mac (beta)

    Mac version: desktop and Maemo Windows version: desktop and Symbian Linux version: desktop and Maemo

    Remote Compila on!

  • 8/7/2019 Lecture 1 - Introduction Mobile Programming

    20/41

    Demo

  • 8/7/2019 Lecture 1 - Introduction Mobile Programming

    21/41

  • 8/7/2019 Lecture 1 - Introduction Mobile Programming

    22/41

  • 8/7/2019 Lecture 1 - Introduction Mobile Programming

    23/41

  • 8/7/2019 Lecture 1 - Introduction Mobile Programming

    24/41

    Qt Supported Phones?

    Symbian^3 devices support Qt by na ve (Nokia n8,etc)

    What about "old" Symbian devices? Don't have any Qt support by default Qt app includessmart installer! Smart installer checks that if device does not include

    Qt, it will install it automa cally! S60 3.1 and later!

  • 8/7/2019 Lecture 1 - Introduction Mobile Programming

    25/41

    Qt Quick

    QML is a JavaScript based declara ve language fordesigning UI centric applica ons!

    Qt is a C++ - framework, so C++ knowledge isrequired. C++ can be hard.

    UI Designers may not want to learn C++ Fluid anima on and touch

    Comes with Qt 4.7. Nokia's Qt SDK supports at thisme Qt 4.6

  • 8/7/2019 Lecture 1 - Introduction Mobile Programming

    26/41

    QML Syntaximport Qt 4.7

    Rectangle {

    id: canvas

    width: 200

    height: 200

    color: "blue"

    Image {

    id: logo

    source: "pics/logo.png"

    anchors.centerIn: parent

    x: canvas.height / 5}

    }Demo

  • 8/7/2019 Lecture 1 - Introduction Mobile Programming

    27/41

    Future of UI - design?

    1) MeeGo Touch Specic UI style primarily for touch

    screen devices

    Built on top of Qt (C++) 2) Qt Quick Components

    Premade UI components Focus on MeeGo Look and Feel Built on top of Qt Quick

  • 8/7/2019 Lecture 1 - Introduction Mobile Programming

    28/41

    Nokia's Ovi

    Market place for Java ME, Flash, Qt - apps.

    Millions of poten al users Publishing

    Individual the cost is 1 euro For Symbian apps, ovi signing is required

    30% of revenue to Nokia

  • 8/7/2019 Lecture 1 - Introduction Mobile Programming

    29/41

    ANDROID

  • 8/7/2019 Lecture 1 - Introduction Mobile Programming

    30/41

    Google Android Android is a Linux-based open pla*orm Developed by Open Handset Alliance,

    which is lead by Google. HTC, Intel, Motorola, Qualcomm, T-Mobile

    and NVIDIA Google Nexus One introduced on Jan 5.

    2010 Several phones and manufactures Gartner predic on: in 2012 Android is

    the second popular Mobile OS! Versions 1.5, 1.6, 2.1 and 2.2

  • 8/7/2019 Lecture 1 - Introduction Mobile Programming

    31/41

    Android Development

    Programming Language: Java Google's SDK available for Win, Linux and Mac Google's own virtual machine: Dalvik Android Java-apps are not the same than standard

    Java apps. Oracle sues Google for the usage of Java

    technology (august 2010)

  • 8/7/2019 Lecture 1 - Introduction Mobile Programming

    32/41

    Demo

  • 8/7/2019 Lecture 1 - Introduction Mobile Programming

    33/41

    Android Market

    Register with Google Account Registra on fee $25 Free Apps: no fee, otherwise 30% Available in Finland

    users can purchase apps and developers can sell apps Apps can be distributed also via non-market

  • 8/7/2019 Lecture 1 - Introduction Mobile Programming

    34/41

    IOS

  • 8/7/2019 Lecture 1 - Introduction Mobile Programming

    35/41

    Apple's iPhone

    Prior to iPhone (2007/2008) No touch screens No mul touch No markets Na ve app development was very hard (symbian C++)

    iPhone was a revolu on in mobile pla*orms

  • 8/7/2019 Lecture 1 - Introduction Mobile Programming

    36/41

    iOS 4 Mobile pla*orm developed by Apple

    for iPhone , iPod Touch and iPad Based on Mac OS X

    Development kit only available for MacOS X Programming Language: Objec ve-C App distribu on only via Apples App

    Store

  • 8/7/2019 Lecture 1 - Introduction Mobile Programming

    37/41

    Demo

  • 8/7/2019 Lecture 1 - Introduction Mobile Programming

    38/41

    App Store

    Central Pla*orm for iOS 4 apps By far the most successful market place for mobile

    applica ons 99$ fee for the developer program Free Apps: no fee, otherwise 30% Apple Approval

  • 8/7/2019 Lecture 1 - Introduction Mobile Programming

    39/41

    FUTURE?

  • 8/7/2019 Lecture 1 - Introduction Mobile Programming

    40/41

    Thoughts on future:Ba le for Developers

    Nokia+ Qt looks very promising+ Hardware excellent+ Market leader: zillions shipped

    devices+ Open- Qt under heavy development- Fragmenta on?- MeeGo's future?- Ovi Store and Ecosystem- Success in USA?

    Android+ Lot of support from non-

    Nokia manufactures+ Good programming

    environment+ Open+ Ecosystem- Fragmenta on

  • 8/7/2019 Lecture 1 - Introduction Mobile Programming

    41/41

    Thoughts on future:Ba le for Developers

    Apple+ Ecosystem+ One OS, couple devices, no fragmenta on

    + App Store, millions of applica ons+ Mature programming environment- Apple's control for everything- Close OS and rules