Proyek Perangkat Lunak
Mobile Development Platform
Agus Kurniawan
agusk@cs.ui.ac.id
http://blog.aguskurniawan.net
 Lecture Contents
• Mobile Development Platform
• Review
                                3
    Mobile Development Platform
•   Android
•   Blackberry
•   Qt Nokia
•   Windows Phone
•   iOS
                                  4
ANDROID
          5
Android OS
• Fastest growing mobile OS
• Over 300,000 Android activations a day
• Android overtook iOS as the dominant OS in US during 2H 2010
• First phone launched HTC G1 in 2008
• Currently an OS of choice for Motorola, HTC, Samsung, Sony Ericsson,
  among others
• Software updates every few months
Software Stack
• Linux kernel
• Libraries
• Android run time
   – core libraries
   – Dalvik virtual machine
• application layer
• application protocol
• Programming language
   • Java
   • C++
• Development Tools: Eclipse, Netbeans
Android Architecture
Development Tool
                   9
Phones
   HTC G1,
   Droid,                                 Motorola Droid (X)
   Tattoo
   Suno S880      Samsung Galaxy              Sony Ericsson
                                                        10
               @2010 Mihail L. Sichitiu
Tablets
  Velocity Micro Cruz        Gome FlyTouch          Acer beTouch
                            Toshiba Android        Cisco Android Tablet
   Dawa D7                  SmartBook
                                                             11
                        @2010 Mihail L. Sichitiu
BLACKBERRY
             12
 Understanding J2ME
• Java 2 Micro Edition (J2ME) is an umbrella term for a set of Java technologies
  created to run Java on less capable devices
• Key concepts of configurations, profiles and optional packages:
    • configuration = VM + runtime classes (horizontal)
    • profile = domain-specific classes for building standalone applications (vertical)
    • optional package = domain-specific classes that expose specific functionality but
      not applications (horizontal or vertical)
 BlackBerry and J2ME
• BlackBerry devices (Java-based) run MIDP and CLDC
    • MIDP 1.0/CLDC 1.0 for 3.6/3.7 devices
    • MIDP 2.0/CLDC 1.1 for 3.8/4.0 devices
    • Custom Java VM
• Additional APIs available
    • Some optional packages
    • Many BlackBerry-specific APIs (vendor extensions)
• Built-in apps written in Java
    • RIM eats it’s own food
 Application Models
• MIDlets
   • Applications built using MIDP application lifecycle and user interface classes
   • Portable to other platforms unless BB APIs used
• BlackBerry applications
   •   Standard “public static void main( String*+ args )” entry point
   •   Tied to BlackBerry, but more control over the application
   •   BlackBerry-specific UI classes
   •   Can run in background (no UI), on startup, etc.
 Software Stack
• Programming Language: Java
• IDE: Blackberry JDE, Eclipse
QT NOKIA
           17
Mobile Devices and Platforms of Nokia
 Phones                   Smartphones           Computers
 (Series 40)              (Symbian)             (Maemo)
               Develop Java Apps
                                      Develop Native Apps
                           Develop Web Apps         Develop Web Apps
                                                               18
 Platform Positioning of Nokia
• Software platforms
   • Symbian based on Symbian
     Foundation
   • Maemo merging into MeeGo
   • Series 40
• Ovi Services
   • Offering the usual web based
     services that consumers use:
     Music, Maps, Store for
     applications, Social networking
     services and much more
• Development frameworks
   • Qt for native applications
   • Web Runtime                       Source: Nokia Software Strategy White Paper May 2010
                                                                                    19
 Qt on mobile platforms
• Qt is currently supported by Symbian and Maemo mobile platforms
• Programming Language: C++
• IDE : Qt SDK & Nokia Qt SDK
              Nokia N8                              Nokia N900
                                                                    20
 Symbian OS
• OS designed for mobile environment
   • Hardware efficiency from 100Mhz to Multi-Core
   • Full multitasking
   • Runs in over 250 000 000 devices
• Symbian foundation
   •   Manages OS: now completely open source
   • 25 million lines of code, 200 000+ source files
   • www.developer.symbian.org
                                                       21
 Symbian OS Architecture
• From the S60 5th Edition C++ Developers Library
                                                    22
 What is Qt for Symbian?
• Qt for Symbian offers
   • Cross-platform application development
     without needing to know Symbian C++
   • Qt Mobility APIs for taking advantage of
     mobile features
   • Qt APIs have been implemented on top
     of OpenC/Symbian APIs
   • Qt base libraries are compiled as
     Symbian DLLs and can be used in a
     Symbian environment as is
                                                23
Qt Applications on Symbian
#include <QtGui/QApplication>
#include <QtGui/QLabel>
int main( int argc, char** argv )
{
  QApplication app( argc, argv );
  QLabel label("My first Qt on Symbian SW" );
  label.show();
  return app.exec();
}
                                                24
Development &
Debugging host:
 Nokia Qt SDK
                  25
Nokia Qt SDK Simulator for testing
                                     26
 Qt Mobility
• Qt: Desktop → Mobile
• Requires new APIs for
   •   Sensors
   •   Location
   •   Messaging
   •   Contacts
   •   System information
   •   Multimedia
   •   etc.
• Qt Mobility: new cross-platform APIs for mobile use cases
   • Back-end implementation on all platforms where it makes sense
                                                                     27
    Qt Mobility APIs
•   New APIs for utilizing mobile phone features
•   The first preview released on 1st December, 2009
•   Mobility 1.0 , 27th April, 2010
•   Mobility 1.1.0 BETA, 30th September, 2010
•   Mobility 1.1.0, 9th November, 2010
                                                       28
WINDOWS PHONE
                29
Introduction
Great News, not only for End-Users but also for Developers
•   End-User experiences are very important
•   Windows Phone 7 Developers will use the latest Development Tools
•   The potential Windows Phone 7 Developer Community is large
•   Developing applications for Windows Phone 7 is fun
•   Free versions of the Development Tools for everybody
Introduction
Who can develop applications for Windows Phone 7?
•   The Windows Phone 7 Application Model is familiar to Silverlight
    Developers
    •   Windows Phone 7 Applications can be Silverlight based
        –   Keep in mind that you are developing for a phone
•   The Windows Phone 7 Application Model is familiar to Game Developers
    •   Windows Phone 7 Applications can be XNA based
        –   Keep in mind that you are developing for a small device
•   The Windows Phone 7 Application Model is familiar to WM Developers
    •   The life of managed application developers becomes easier
        –   No P/Invoke, limited number of form factors
Hardware Foundation
                          Capacitive touch
                          4 or more contact points
                          Sensors
                          A-GPS, Accelerometer, Compass, Light, Proximity
                          Camera
                          5 mega pixels or more
800 or 480
                          Multimedia
                          Common detailed specs, Codec acceleration
                          Memory
                          256MB RAM or more, 8GB Flash or more
                          GPU
                          DirectX 9 acceleration
                          CPU
                          ARMv7 Cortex/Scorpion or better
                          Hardware buttons | Back, Start, Search
             480 or 320
Elements of the Application Platform
            Runtime – On “Screen”                                Tools
           Sensors         Media    Data        Location       Phone Emulator
           Phone             Xbox LIVE         Notifications       Samples               Documentation
            .NET Framework managed code sandbox                    Guides                  Community
                                                                    Packaging and Verification Tools
  SCREEN
  CLOUD     Cloud Services                                       Portal Services
           Notifications                 App Deployment          Registration               Marketplace
             Location               Identity       Feeds         Validation              MO and CC Billing
                                     Social         Maps        Certification           Business Intelligence
                                                                 Publishing            Update Management
 Cloud Services
     Windows Phone                       Your Web Service
                                            Custom Web Service
                   Windows Phone
                                    Existing Web Services
                     Application
                                        Microsoft Services
                     Frameworks
Cloud integration client services
                                    Location Service   Notification Service
Location Service
    Windows Phone
                              Microsoft Services
   System.Device.Location
    Location client service
                                 Location Service
Microsoft Visual Studio 2010 Express for
Windows Phone
IOS
      37
    iPhone Overview
• Smart Phone
• iPod (Widescreen)
• Wireless Internet Communication Device
        • Wifi 802.11 b/g
•   PDA
•   Computer (OS X)
•   Camera
•   Multi-Touch interface
•   GPS
•   App Store
    iPhone Development
•   Development done with the help of iPhone SDK
•   Uses Objective-C
•   IDE XCODE
•   Only push your application through App Store
        • 99 $ membership
        • Review of your application
                  Code also
• 70 % and 30 % share.
iPhone SDK
    •    iPhone Sdk have five powerful tools to do iPhone programming.
    1.   XCODE
             • Professional text editor
             • Debugger
             • GCC compiler
    2.   Interface Builder
             • For creating user interface
    3.   Instruments
             • For optimizing application
    4.   Dash Code
             • For creating web applications for Safari
    5.   iPhone Simulator
 Things to consider before programming
• Low resources
      • 128 mb Ram
      • Limited Battery life
• Application should take less execution time.
• Exceptional Handling
• Multi Touch Events
 iPhone OS overview and Technologies
iPhone Os can be viewed as set of layers
Cocoa Touch Layer
    • The Cocoa Touch layer comprises the UIKit and Foundation frameworks
      (UIKit.framework and Foundation.framework), which provide the basic tools
      and infrastructure you need to implement graphical, event-driven
      applications in iPhone OS
    • iPhone OS uses this layer to implement features:
        •   Application management
        •   Graphics and windowing support
        •   Event-handling support
        •   User interface management
        •   Objects representing the standard system views and controls
        •   Support for text and web content
        •   Accelerometer data
        •   The built-in camera
        •   The user’s photo library
        •   Device-specific information
Media Layer
    •   The Media layer provides graphics and media technologies in iPhone OS that are
        geared toward creating most advanced multimedia experience on a mobile device
    •   Graphics Technologies
         • technologies to do your 2D and 3D drawing
         • OpenGLES.framework (OpenGL), EAGL.framework, QuartzCore.framework (Core
            Animation), Core- Graphics.framework (Quartz)
    •   Core Audio
         • Native support for audio is provided by the Core Audio family of frameworks
         • CoreAudio.framework (audio type and file info), AudioToolbox.framework
            (playback and recording), AudioUnit.framework (audio processing)
    •   OpenAL
         • The Open Audio Library (OpenAL) interface is a cross-platform standard for
            delivering 3D audio in applications
    •   Video Technologies
         • iPhone OS provides support for full-screen video playback through the Media
            Player framework (MediaPlayer.framework)
         • supports the playback of movie files with the .mov, .mp4, .m4v, and .3gp filename
            extensions
Core Services
    •   The Core Services layer provides the fundamental system services that all applications use
    •   Address Book
         • AddressBook.framework: provides programmatic access to the contacts stored on a
             user’s device
         • AddressBookUI.framework: complements the Address Book framework by providing a
             graphical interface for accessing the user’s contacts
    •   Core Location
         • CoreLocation.framework: lets you determine the current latitude and longitude of a
             device
    •   CFNetwork
         • CFNetwork.framework: high-performance, C-based framework that provides a set of
             object-oriented abstractions for working with network protocols, for tasks such as
             communicating with FTP and HTTP servers or resolving DNS hosts
    •   Security
         • Security.framework: provides interfaces for managing certificates, public and private
             keys, and trust policies
    •   SQLite
         • The SQLite library lets you embed a lightweight SQL database into your application
             without running a separate remote database server process
         • From your application, you can create local database files and manage the tables and
             records in those files
Core OS
    • The Core OS layer encompasses the kernel environment, drivers, and
      basic interfaces of the operating system
    • iPhone OS provides a set of interfaces for accessing many low-level
      features of the operating system. Your application accesses these
      features through the LibSystem library. The interfaces are C-based and
      provide support for the following:
       • Threading (POSIX threads)
       • Networking (BSD sockets)
       • File-system access
       • Standard I/O
       • Bonjour and DNS services
       • Locale information
       • Memory allocation