SlideShare a Scribd company logo
1 of 196
A Beautiful Mind:
   Anatomy and
Architecture of the
    iPhone App

      Bess Ho

     May 4, 2010 Tue
  9:00 AM San Francsico
Silence
Follow QR Code
   My Slides
Follow QR Code
    Linkedin
Follow QR Code
     vCard
My Bio
TEXT Short Code

 99702
Friendly
Assessment
A Beautiful Mind
Anatomy and
Architecture of the
   iPhone App
STANFORD UNIVERSITY
  School of Engineering
Three Years Ago
    Jan 2007
Widescreen iPod with touch controls
Revolutionary mobile phone
Breakthrough internet communicator
iPod   Phone   Internet
iMirror
M-RFID
 Tag
iBadge
iDoor (Inside)
iDoor (Outside)
To boldly go where no man
     has gone before:
Data      Portable     Data
Communication Sensing     Analysis
     s

              Tricorder
Locator Scanner Compass



Recorder Sensor Search



 Text    Data   Voice
Phone         Camera
                         (Audio)     (Photo / Video)
         GPS
        (Geo)
    Magnetometer
     (Compass)

  Accelerometer
       (XZY)                       Touch
(Device Orientation)

    Wireless Bluetooth                 Network / WiFi
           (File)                      (Web / Email)
         External Accessory Microphone      SMS
               (Data)         (Audio)      (Data)
                 iPhone’s Anatomy
Phone         Camera
                         (Audio)     (Photo / Video)
         GPS
        (Geo)
    Magnetometer
     (Compass)

  Accelerometer
       (XZY)                       Touch
(Device Orientation)

    Wireless Bluetooth                 Network / WiFi
           (File)                      (Web / Email)
         External Accessory Microphone      SMS
               (Data)         (Audio)      (Data)
                  Portable Sensors
iPhone SDK




Xcode           Interface Builder




        Data Analysis
Phone         Camera
                         (Audio)     (Photo / Video)
         GPS
        (Geo)
    Magnetometer
     (Compass)

  Accelerometer
       (XZY)                       Touch
(Device Orientation)

    Wireless Bluetooth                 Network / WiFi
           (File)                      (Web / Email)
         External Accessory Microphone      SMS
               (Data)         (Audio)      (Data)
                Data Communications
Touch
  Audio
  Visual
  Sensor
  Geo
  Data
iPhone’s Anatomy
Laboratory robot has confirmed with a human
            test: Apple’s iPhone touchscreen is by far the
            most accurate touch panel on the market


                                                                  iPhone
                                                                  Google Nexus One
                                                                  Motorola Droid
                                                                  HTC Droid Eris
                                                                  Palm Pre
                                                                  BlackBerry Storm 2

Reference: http://www.appleinsider.com/articles/10/03/24/robotic_test_reconfirms_apples_iphone_touchscreen_superiority.html




                                                 iPhone’s Anatomy
Laboratory robot has confirmed with a human
            test: Apple’s iPhone touchscreen is by far the
            most accurate touch panel on the market




Reference: http://www.appleinsider.com/articles/10/03/24/robotic_test_reconfirms_apples_iphone_touchscreen_superiority.html




                                                 iPhone’s Anatomy
MOTO Lab Experiment
7mm robotic “finger” for “medium touch”
4mm robotic “finger” for a “very light
touch”




         iPhone’s Anatomy
iPhone’s Anatomy
“All touchscreens are
not created equal.”
 Screen sensitivity is a combination of
 1) hardware component quality
 2) design and
 3) software integration - Operating System to
 ensure responsiveness for the user


           iPhone’s Anatomy
Resistive   VS      Capacitive




     Touchscreen Technology
Resistive Touchscreens




A screen where two thin metallic layers are separated by a
narrow gap. A finger pushing down on the top layer makes
contact with the bottom surface and the point of contact is
computed by the accompanying electronics.


                 iPhone’s Anatomy
Resistive Touchscreens




A screen where two thin metallic layers are separated by a
narrow gap. A finger pushing down on the top layer makes
contact with the bottom surface and the point of contact is
computed by the accompanying electronics.


                 iPhone’s Anatomy
Resistive Touchscreens




A screen where two thin metallic layers are separated by a
narrow gap. A finger pushing down on the top layer makes
contact with the bottom surface and the point of contact is
computed by the accompanying electronics.


                 iPhone’s Anatomy
Resistive Touchscreens

Step 1:             Step 2:
Touch               Press




    Pressure-sensitive
     iPhone’s Anatomy
Capacitive Touchscreens




This capacitive technology responds to the electrical
properties of your skin, not the pressure of your finger
to figure out where you are touching the screen.


               iPhone’s Anatomy
Capacitive Touchscreens




This capacitive technology responds to the electrical
properties of your skin, not the pressure of your finger
to figure out where you are touching the screen.


               iPhone’s Anatomy
Resistive   VS      Capacitive




     Touchscreen Technology
Resistive   VS      Capacitive




     Touchscreen Technology
Resistive   VS       Capacitive




      Touchscreen Technology
Web OS             VS     Native




HTML5 / JS / CSS        JAVA    Objective-C

       Touchscreen Technology
WebOS     VS          Native




   Touchscreen Technology
Web Plug-in                    WebOS
              Web Run Time
Widget SDK                   PDK (C / C+
                   QT
   Java                          +)
                Symbian
                  Java

      WebOS & Native Platforms
Path of Innovation
Web App   Native App
Xcode
                   Interface
DashCode
                    Builder
Activity Monitor
             CPU Sampler
             Leaks
             Object
             Allocations
             Core Data
             File Activity
             UI Recorder
             Core Animation
             Open GL ES
             System Usage


Available Instruments
Activity    Monitor overall CPU, memory, disk &
  Monitor     network activity
            Precise time-based sampling of CPU
CPU Sampler
            usage
   Leaks      Detects memory leaks
  Object
              Measures memory usage by class
Allocations
              Monitor Core Data activity &
 Core Data
              performance
              Monitor application’s interaction with
File Activity
              the file system

              Available Instruments
Captures & play back UI events to
 UI Recorder run exact same sequence of user
             interactions

   Core      Measures Core Animation graphics
 Animation   performance and resulting CPU load
            Measures Open GL ES graphics
 Open GL ES
            performance and resulting CPU load
             Monitors file, network & memory I/O
System Usage
             use and duration for each method




             Available Instruments
Touch
Cocoa Touch Layer

           Media Layer

        Core Services Layer

          Core OS Layer


iPhone SDK Frameworks
320 pixel




                              480 pixel




iPhone / iTouch Screen Size
768 pixel




                      1024 pixel




iPad Screen Size
Large       High (hdpi)
3.2” Screen
 320 pixel                 Normal     Medium (mdpi)
                            Small       Low (ldpi)




               480 pixel




Android <1.5                    Android 1.6+

               Android Screen Sizes
Screen Sizes
      84 x 84 pixel
      128 x 128 pixel
      176 x 208 pixel
      240 x 320 pixel
      360 x 640 pixel
      120 x 160 pixel

   Screen Width
      Tiny: 84, 96, 101, 128,
      130,132
      Small: 160, 176
      Medium: 208, 220, 240
      Large: 320, 360, 480
Nokia Screen Sizes
1       2               3




iPhone   iPad          Universal
                         App

          Native App
iPhone Icon

  Promotion


                    57 x 57 pixel

                     iPad Icon




512 x 512 pixel     72 x 72 pixel

 iPhone App Store Submission
162 ppi              132 ppi




                Core Text Framework
                Text-rendering & layout
                features
                Animated text with special
                effects

Display Density (pixels per inch)
Hardware                     Software


                          Prefer saving and
Accelerometer
                          loading data invisibly
Compass
                          Without an explicit
Core Location
                          “save” or “load” option
Wi-Fi
                          Supports Open GL ES
Bluetooth
                          2.0 with legacy
Microphone
                          support for Open GL
headphone socket
                          ES 1.0
                   iPad
Supports external
displays and
projectors
Supports external
Apple or third-party
keyboard
Likely supports
external devices -
music keyboards,
media controllers,
game hardware


                   iPad
iPhone UI Library
Carrier        10:32 AM


  Carrier        10:32 AM


  Carrier   3G   10:32 AM




     Signal Strength
     Carrier
     Current Network
     Connection
     Time
     Battery Charge




Status Bar
6

    Music       Videos        Podcasts       Search   More




            9            99                  999


            Should be present on all
            screens
            switch between modes &
            views
            Badges are
            superimposed in the tab
            bar to inform user of
            new items

Tab Bar & Badges
6

 Music   Videos   Podcasts       Search   More




Tab Bar
Activity indicator for nav bar




          on grey background...




                                  Network activity




        Display if it takes more
        than a couple of seconds
        to perform the task




Activity Indicator
Back Button           Pane Label                       Button


                    Optional instructions for this pane

    Cancel                  Pane Label                        Save




                            Pane Label                    Disabled




    Groups                 All Contacts                          +

     Inbox (20)                2 of 50




      Display title of current
      view
      Display buttons that
      trigger action to the view
      or navigate
Navigation Bar
Page Indicator
5




           Progress Indicator 24 of 39




       Primary                   Secondary




  Touch size 44 x 44 pixels
  < 5 toolbar icons




Toolbar
Toolbar Icons
MockApp


  mockapp.com/                    Google




                        MockApp            Cancel




  http://mockapp.com/




                        MockApp            Cancel




   Google




Browser Bar
Sample search text



        Search


    Clear               Directions             Cancel


            Start: Current Location

             End:


            Type a company name or stock ID.

                                               Cancel




       Search                                  Cancel


Placeholder text
Bookmarks button & Clear
button
Prompt with descriptive title
above the search bar
Search Bar
Primary action

            you can also do this

               or maybe this

              or why not that


                  Cancel




                  Delete


                  Cancel


    Selection Or Confirmation Menu
    Important or common action
    should appear to the top
    Destructive action use red button

Action Sheets
0:00                    0:28




             OK     Delete




             Play    Record




Action Sheets
Select             Select All   Paste




           MockApp




Bubbles
Main Message
  Optional explanation of what a user needs to do


                Primary Button



          Confirmation Message
    Optional explanation of what the system is
                      asking


      Secondary                 Primary



          Confirmation Message
       Please enter your password
    Optional explanation of what the system is
                 john@doe.com
                      asking
     Password

         Cancel                   OK
                                Primary




Use it wisely
Require immediate user attention


Alerts
Web20 Expo SF

   Sent from iPhone




      It supports multiple lines
      It supports scrolling




Text Views
From:         Twitter                                  Hide



      To:     Dotan Saguy


     Everybody is now following you on Twitter!


     April 1, 2035 1:33 PM                        Mark Unread




             Display rich HTML content




Web / Email Views
Q W E R T Y U I O P

      A S D F G H J K L

    #+=    Z X C V B N M

    ABC          space   @     .   return




          1               2
                         ABC
                                   3
                                   DEF


          4
          GHI
                         5
                         JKL
                                    6
                                   MNO


           7
          PQRS
                          8
                         TUV
                                    9
                                   WXYZ


                         0
                         +




Keyboards
N                                            G                 A
                                         A                     B
     This is a regular table             B   Pete Gardener     C
                                                               D
                                         C
     view                                D                     E
                                                               F
M
                                         E
                                         F   Tess Grady        G
                                         G                     H
                                                               I
     Divided into sections               H
                                         I   M.J. Grey         J
     (the letters are the sections)      J                     K
                                         K                     L

     Each row is an item                 L
                                         M
                                             Jenn Guggenheim   M
                                                               N
                                                               O
     of the list                         N
                                         O   H                 P
                                         P                     Q
     and can contain several             Q
                                             Sara Hashimoto
                                                               R
                                         R                     S
     data elements (image, text, etc.)   S                     T
                                         T                     U
O                                        U   Em Hirsch         V
                                                               W




                   Display lists of items
                   List is divided into
                   sections separated by grey
                   headers




    Table Views
Unread                        29

     First Last name           mobile

        Item to delete or move

        Ready to be deleted         Delete


      Not pressed yet Current status

      When pressed          it highlights



          This is a regular table view

          With icons like in

          The “more” tab

          of the iPod app

          Podcasts




Table Views
This group has 3 items

             This item has been selected

           Items highlight briefly when hit


             This group has only 1 item

          You can insert headers too

          This one lets you drill down

          This one shows      Current status


          Segmented controls

          Tab One      Tab Two    Tab Three


          Tab One     Tab Two     Tab Three


          Tab One      Tab Two    Tab Three




Grouped Table Views
Bess Ho


               home (111) 222-3333


              mobile (111) 222-3333


                work (111) 222-3333


            whatever (111) 222-3333



             Text Message             Share Contact

          You can even insert instructions like these as
              well if they’re helpful in this context.




               Silent

          This item is turned                   OFF


               Ring

          This item is turned             ON
                                          ON




Grouped Table Views
August 03 2007          7    45
    September 04 2008           8    46
       October 05 2009          9    47    AM

     November 06 2010          10    48    PM

     December 07 2011          11    49

    Sat Oct 3   7 50                      28
    Sun Oct 4   8 55                      29
       Today    9 00 AM    0 hours        30 mins
    Tue Oct 6   10 05 PM   1              31
    Wed Oct 7   11 10      2              32




Date & Time Pickers
First & default value
       Second value
       Third value




Value Picker
Tap
~ Single Mouse Click



     Swipe
Reveal the delete button
in a table-view row


     Drag
Scroll or Pan

                   Gestures
Tap
~ Single Mouse Click



     Swipe
Reveal the delete button
in a table-view row


     Drag
Scroll or Pan

                   Gestures
Tap
~ Single Mouse Click



     Swipe                    swipe
Reveal the delete button
in a table-view row


     Drag
Scroll or Pan

                   Gestures
Tap
~ Single Mouse Click



     Swipe
Reveal the delete button
in a table-view row


     Drag
Scroll or Pan

                   Gestures
Tap
~ Single Mouse Click



     Swipe
Reveal the delete button
in a table-view row


     Drag                     drag
Scroll or Pan

                   Gestures
Double
    Tap
Zoom-in / Zoom-out




     Touch &
     Hold view in
Display a magnified
editable text



                Gestures
Double
    Tap
Zoom-in / Zoom-out
                            2x
                           tap


     Touch &
     Hold view in
Display a magnified
editable text



                Gestures
Double
    Tap
Zoom-in / Zoom-out
                            2x
                           tap


     Touch &
     Hold view in
Display a magnified
                           touch
                            and
editable text               hold


                Gestures
Pinch
    Close
Zoom-in




    Pinch Open
Zoom-out




            Gestures
Pinch
    Close
Zoom-in

             pinch     close


    Pinch Open
Zoom-out




            Gestures
Pinch
    Close
Zoom-in

                   pinch   close


    Pinch Open
Zoom-out

           pinch                   open


               Gestures
Audio
30-pin dock connector
                Require Certification




                       SDK
                      iPhone
          External Accessory Framework


External Accessory (Data)
iPhone Headset Microphone
iPhone Headset Microphone
Audible Frequency
                Ambient
                 Voice
                 Music

        Inaudible Frequency
                Heartbeat
                Breathing
                 Sleeping
            Instrument Signal


iPhone Microphone
Recording / Playing     Audio Processing


            iPhone Microphone
Audio Toolbox
          Framework
          AV Foundation
          Framework
          OpenAL Framework
          Audio Unit Framework
             Audio Queue Services
             Remote IO Unit
          Media Player Framework



iPhone Audio Frameworks
Visual Sensor
Digial Telephoto Camera
Digital Microscope
Camera
(Photo / Video)
   Scanner
  Bar Code




   QR Code
Camera
(Photo / Video)
 Card Scanner

Business Card
Camera
       (Photo / Video)
        Text Scanner


Optical Character Recognition
            (OCR)
Camera
  (Photo / Video)
Language Translator
Camera
    (Photo / Video)
    “Live” Scanner

Augmented Reality (AR)
Camera
(Photo / Video)
  Recording
   Playing
Kodak Pearl Module
        Dental System
Practice Management Systems




    3D & Extraoral Imaging
    Intraoral Radiography
    Intraoral Digital Image

     Intraoral X-ray Image
Video Conferencing
                    Eye Tracking
                    Iris Scanning


Front-Facing Camera (Future)
Geo
Cocoa Touch Layer
              Map Kit



           Media Layer

        Core Services Layer
              Core Location


          Core OS Layer




iPhone SDK Frameworks
MapKit      Core
           Location



iPhone SDK Frameworks
CLLocation Manager
        CLLocation
        CLHeading

Core Location Framework: Class
UIViewController Interface
                   CLLocationManager




#import <CoreLocation/CoreLocation.h>
@interface GetLocationViewController :
UIViewController <CLLocationManagerDelegate> {
   CLLocationManager *locationManager;
   CLLocation *bestEffortAtLocation;
}
@property (nonatomic, retain) CLLocationManager
*locationManager;
@property (nonatomic, retain) CLLocation
*bestEffortAtLocation;



     Core Services Layer: Core Location
ViewController Method
                    CLLocationManager




// Create the manager object
self.locationManager = [[[CLLocationManager alloc]
init] autorelease];
locationManager.delegate = self;
locationManager.desiredAccuracy = [[setupInfo
objectForKey:kSetupInfoKeyAccuracy] doubleValue];
[locationManager startUpdatingLocation];




     Core Services Layer: Core Location
CLLocation Class
                Constants
              CCLocationDegrees

           CCLocationCoordinate2D

              CCLocationAccuracy

              Accuracy Constants

               CCLocationSpeed

              CCLocationDirection

Core Services Layer: Core Location
Accuracy Constants
                                 CCLocation Class


                    locationManager.desiredAccuracy
                    is the most important property of
                   Location Manager. It determines the
                      amount of power it consumed.

   Constant values are to specify the accuracy of a location.


                kCLLocationAccuracyBest
         Best
                kCLLocationAccuracyNearestTenMete
  10   Meters
                rs
 100   Meters
                kCLLocationAccuracyHundredMeters
1000   Meters
                kCLLocationAccuracyKilometer
3000   Meters
                kCLLocationAccuracyThreeKilometers


   Core Services Layer: Core Location
CLLocation Class
                        Constants
                      CCLocationDegrees

Delivers a latitude or longitude value specified in
degrees. Data type is double.


                        CCLocationSpeed

Delivers the speed at which the device is moving in
meters per second. Data type is double.



   Core Services Layer: Core Location
CLLocation Class
                       Constants
                     CCLocationDirection

Delivers a direction that is measured in degrees
and relative to true north. Data type is double.



   North is 0 degrees
   East is 90 degrees
   South is 180 degrees
   Any “-” value indicates an invalid direction



   Core Services Layer: Core Location
CLLocation Class
                 Properties
                    altitude

                  coordinate

                    course

              horizontalAccuracy

                     speed

                  timestamp

                verticalAccuracy
Core Services Layer: Core Location
Measurement Units
                altitude (meters)

                  coordinate

                course (degrees)

          horizontalAccuracy (meters)

             speed (meters per sec)

              timestamp (NSDate)

           verticalAccuracy (meters)
Core Services Layer: Core Location
CLLocation Manager
        CLLocation
        CLHeading

Core Location Framework: Class
CCLocationManager
                      Core Location



        Create a CCLocationManager object to
               get heading by invoking
                 [CCLocationManager
               startUpdatingHeading].

      iPhone 3GS contains a magnetometer - a
        magnetic field detector. It displays the
        raw x, y, and z magnetometer values.
         Magnitude of the magnetic field is
                computed in strength.




Core Services Layer: Core Location
CLLocationManager
                               Core Location



if (locationManager.headingAvailable == NO) {
      self.locationManager = nil; // No compass is
      available
} else {
      // heading service configuration
      locationManager.headingFilter =
kCLHeadingFilterNone;
      // setup delegate callbacks
      locationManager.delegate = self;
      // start the compass
      [locationManager startUpdatingHeading];
    }
}


      Core Services Layer: Core Location
CLLocation Manager
               CLLocation
               CLHeading


Core Location Framework: Class
CLHeading
                                     Core Location




- (void)locationManager:(CLLocationManager *)manager
didUpdateHeading:(CLHeading *)heading {
   // Update the labels with the raw x, y, and z values.

 [xLabel setText:[NSString stringWithFormat:@"%.1f",
heading.x]];

 [yLabel setText:[NSString stringWithFormat:@"%.1f",
heading.y]];

 [zLabel setText:[NSString stringWithFormat:@"%.1f",
heading.z]];
}



               MapKit Framework: Class
MapKit      Core
           Location



iPhone SDK Frameworks
MKAnnotationView
               MKMapView
               MKPinAnnotationView
               MKPlacemark
               MKReverseGeocoder
               MKUserLocation


MapKit Framework: Class
MKReverseGeocoder


             MKReverseGeocoder offers
             services to convert a map
         coordinate (latitude & Longitude)
          to info such as country, city, or
          street. It works with a network-
           based map service to look up
            placemark information for a
             specified coordinate value.




Cocoa Touch Layer: MapKit Framework
MKReverseGeocoder

           Each app is limited to amount
           of reverse geocoding
           Send one reverse-geocoding
           request for any one user action
           Reuse the results from initial
           request
           Suggest not to send one
           reverse-geocode request per
           minute


Cocoa Touch Layer: MapKit Framework
MKAnnotationView
               MKMapView
               MKPinAnnotationView
               MKPlacemark
               MKReverseGeocoder
               MKUserLocation


MapKit Framework: Class
MKMapView Class
               Properties
     annotations            scrollEnabled

annotationsVisibleRect   selectedAnnotations

  centerCoordinate       showsUserLocation

      delegate              userLocation

      mapType            userLocationVisible

       region               zoomEnabled

  Cocoa Touch Layer: MapKit Framework
MKMapView Class
                        MKMapType




    It delivers the type of map to display.



  MKMapTypeStandard
  MKMapTypeSatellite
  MKMapTypeHybrid


Cocoa Touch Layer: MapKit Framework
MKAnnotationView
               MKMapView
               MKPinAnnotationView
               MKPlacemark
               MKReverseGeocoder
               MKUserLocation


MapKit Framework: Class
MKAnnotationView Class
         Properties


  annotation               image

 calloutOffset    leftCalloutAccessoryView

canShowCallout        reuseIdentifier

 centerOffset    rightCalloutAccessoryView

   enabled               selected


Cocoa Touch Layer: MapKit Framework
MKAnnotationView
               MKMapView
               MKPinAnnotationView
               MKPlacemark
               MKReverseGeocoder
               MKUserLocation


MapKit Framework: Class
MKAnnotationView Class
            Properties
                         Properties

                      animatesDrop

                         pinColor
                         Constants
                 MKPinAnnotationColor

MKPinAnnotationColorRed (Destination Points)
MKPinAnnotationColorGreen (Starting Points)
MKPinAnnotationColorPurple (User-specified
Points)


Cocoa Touch Layer: MapKit Framework
Google    Location
     Maps     Services
   External
   Library




Android SDK
Interfaces

         GpsStatus.Listener

      GpsStatus.NmeaListener

          LocationListener




package: android.location
Classes



  Address              GpsStatus

  Criteria             Location

 Geocoder          LocationManager

GpsSatellite       LocationProvider

    package: android.location
Location Class Methods


getAccuracy()

getAltitude()         getLongitude()

getBearing()           getProvider()

 getExtras()            getSpeed()

getLatitude()           getTime()


    package: android.location
Classes



  Address              GpsStatus

  Criteria             Location

 Geocoder          LocationManager

GpsSatellite       LocationProvider

    package: android.location
LocationManager Class
                   Methods



getAllProviders()     getLastKnownLocation

getBestProvider()         getProvider()

 getGpsStatus()          getProviders()



       package: android.location
Google    Location
     Maps     Services
   External
   Library




Android SDK
Google Maps
        External Library


Use Google APIs add-on
Download Maps external library
Must register with Google Maps
service
Obtain a Maps API Key




         Android SDK
AndroidManifest.xml
 Declare Maps Library
 Request internet permission
 Hide title bar

<uses-library
android:name=”com.google.android.maps” />
<uses-permission
android:name=”android.permission.INTERNET” />
<activity android:name=”.HelloMaps”
android:label=”@string/app_name”
android:theme=”@android:style/Theme.NoTitleBar”>


                 Android SDK
res/layout/main.xml


<?xml version=”1.0” encoding=”utf-8”?>
<com.google.android.maps.MapView
    xmlns:android=”http://schmas.android.com/
apk/res/android”
    android:id=@+id/mapview”
    android:layout_width=”fill_parent”
    android:layout_height=”fill_parent”
    android:clickable=”true”
    android:apiKey=”Map API Key”
/>



                Android SDK
+    HelloMaps.java
public class HelloMaps extends MapActivity

@Override protected boolean isRouteDisplayed() {
return false;
}

@Override public void onCreate(Bundle
savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}


MapView mapView = (MapView)
findViewById(R.id.mapview);
mapView.setBuiltInZoomControls(true);

                 Android SDK
Data


iPhone Screen Size
y axis    x axis         z axis
         Accelerometer
TEXT Email
        openURL: Method
              To
             From
              CC
             BCC

         HTML Email
    MessuageUI Framework
           Attachment

Email
Push Notification
HTTP protocol
          GET / POST



          Data Store
          .plist files
            SQLite
          CoreData




Network
Controller

             Heliptor




                      Automobile




Bluetooth / WiFi
Yes      Yes                    Yes
iPhone Cupcake 1.5               S40
OS 3.1                           S60




            Wireless Bluetooth
30-pin dock connector




             Point of Sale (POS)
             Credit Card Terminal

External Accessory
Medical Tricorder
STANFORD UNIVERSITY
       School of Engineering (EE46)


 Engineering For Good
Save The World
     Have Fun Doing It
Save The World

     Malaria
     TB
     HIV
Augmented Reality (AR)
   Camera
(Photo / Video)
                     Bar Code



                                   Optical Character
                                     Recognition
                     QR Code            (OCR)




                  Scanner: 2D Objects
Detect Diseases




    Scanner: Micro Life Forms
Identify Patients




       Scanner: Body Parts
Scan
Diseases & Patients




      Scanner: Life Forms
Challenges
Scanner: Mosquitoes
Q&A
@bess

            Attendee Directory

http://www.slideshare.net/bess.ho

More Related Content

What's hot

Gesture Gaming on the World Wide Web Using an Ordinary Web Camera
Gesture Gaming on the World Wide Web Using an Ordinary Web CameraGesture Gaming on the World Wide Web Using an Ordinary Web Camera
Gesture Gaming on the World Wide Web Using an Ordinary Web CameraIJERD Editor
 
XY Lao Tablet
XY Lao TabletXY Lao Tablet
XY Lao Tabletlaonux
 
IRJET- Navigation and Camera Reading System for Visually Impaired
IRJET- Navigation and Camera Reading System for Visually ImpairedIRJET- Navigation and Camera Reading System for Visually Impaired
IRJET- Navigation and Camera Reading System for Visually ImpairedIRJET Journal
 
multitouch screen
multitouch screenmultitouch screen
multitouch screenveena jl
 
Multi Touch Tomorrow's Interface
Multi Touch Tomorrow's InterfaceMulti Touch Tomorrow's Interface
Multi Touch Tomorrow's Interfaceguest2ece86
 
Large Multitouch infographic
Large Multitouch infographicLarge Multitouch infographic
Large Multitouch infographicAndreas Köster
 
A Study on Wearable Gestural Interface – A SixthSense Technology
A Study on Wearable Gestural Interface – A SixthSense TechnologyA Study on Wearable Gestural Interface – A SixthSense Technology
A Study on Wearable Gestural Interface – A SixthSense TechnologyIOSR Journals
 
Natural User Interface Microsoft Kinect and Surface Computing
Natural User Interface Microsoft Kinect and Surface ComputingNatural User Interface Microsoft Kinect and Surface Computing
Natural User Interface Microsoft Kinect and Surface ComputingYuvaraj Ilangovan
 
Real time hand gesture recognition system for dynamic applications
Real time hand gesture recognition system for dynamic applicationsReal time hand gesture recognition system for dynamic applications
Real time hand gesture recognition system for dynamic applicationsijujournal
 
Real time hand gesture recognition system for dynamic applications
Real time hand gesture recognition system for dynamic applicationsReal time hand gesture recognition system for dynamic applications
Real time hand gesture recognition system for dynamic applicationsijujournal
 
SMARCOS Abstract Paper submitted to ICCHP 2012
SMARCOS Abstract Paper submitted to ICCHP 2012SMARCOS Abstract Paper submitted to ICCHP 2012
SMARCOS Abstract Paper submitted to ICCHP 2012Smarcos Eu
 

What's hot (20)

MultiTouch
MultiTouchMultiTouch
MultiTouch
 
Multi touch
Multi touchMulti touch
Multi touch
 
Gesture Gaming on the World Wide Web Using an Ordinary Web Camera
Gesture Gaming on the World Wide Web Using an Ordinary Web CameraGesture Gaming on the World Wide Web Using an Ordinary Web Camera
Gesture Gaming on the World Wide Web Using an Ordinary Web Camera
 
Multi touch technology
Multi touch technologyMulti touch technology
Multi touch technology
 
Multi touch interaction
Multi touch interactionMulti touch interaction
Multi touch interaction
 
multi touch screen
multi touch screenmulti touch screen
multi touch screen
 
XY Lao Tablet
XY Lao TabletXY Lao Tablet
XY Lao Tablet
 
Gesture phones final
Gesture phones  finalGesture phones  final
Gesture phones final
 
IRJET- Navigation and Camera Reading System for Visually Impaired
IRJET- Navigation and Camera Reading System for Visually ImpairedIRJET- Navigation and Camera Reading System for Visually Impaired
IRJET- Navigation and Camera Reading System for Visually Impaired
 
multitouch screen
multitouch screenmultitouch screen
multitouch screen
 
Multi Touch Tomorrow's Interface
Multi Touch Tomorrow's InterfaceMulti Touch Tomorrow's Interface
Multi Touch Tomorrow's Interface
 
Surface computer
Surface computer Surface computer
Surface computer
 
Blue eyes technology
Blue eyes technologyBlue eyes technology
Blue eyes technology
 
Large Multitouch infographic
Large Multitouch infographicLarge Multitouch infographic
Large Multitouch infographic
 
A Study on Wearable Gestural Interface – A SixthSense Technology
A Study on Wearable Gestural Interface – A SixthSense TechnologyA Study on Wearable Gestural Interface – A SixthSense Technology
A Study on Wearable Gestural Interface – A SixthSense Technology
 
Natural User Interface Microsoft Kinect and Surface Computing
Natural User Interface Microsoft Kinect and Surface ComputingNatural User Interface Microsoft Kinect and Surface Computing
Natural User Interface Microsoft Kinect and Surface Computing
 
Topics
TopicsTopics
Topics
 
Real time hand gesture recognition system for dynamic applications
Real time hand gesture recognition system for dynamic applicationsReal time hand gesture recognition system for dynamic applications
Real time hand gesture recognition system for dynamic applications
 
Real time hand gesture recognition system for dynamic applications
Real time hand gesture recognition system for dynamic applicationsReal time hand gesture recognition system for dynamic applications
Real time hand gesture recognition system for dynamic applications
 
SMARCOS Abstract Paper submitted to ICCHP 2012
SMARCOS Abstract Paper submitted to ICCHP 2012SMARCOS Abstract Paper submitted to ICCHP 2012
SMARCOS Abstract Paper submitted to ICCHP 2012
 

Viewers also liked

Learn Entity Framework in a day with Code First, Model First and Database First
Learn Entity Framework in a day with Code First, Model First and Database FirstLearn Entity Framework in a day with Code First, Model First and Database First
Learn Entity Framework in a day with Code First, Model First and Database FirstJibran Rasheed Khan
 
Beyond Gamification: designing the player journey
Beyond Gamification: designing the player journeyBeyond Gamification: designing the player journey
Beyond Gamification: designing the player journeyAmy Jo Kim
 
.net framework from 1.0 -> 4.0
.net framework from 1.0 -> 4.0.net framework from 1.0 -> 4.0
.net framework from 1.0 -> 4.0ligaoren
 
Nakov - .NET Framework Overview - English
Nakov - .NET Framework Overview - EnglishNakov - .NET Framework Overview - English
Nakov - .NET Framework Overview - EnglishSvetlin Nakov
 
Deep-dive building solutions on the SharePoint Framework
Deep-dive building solutions on the SharePoint FrameworkDeep-dive building solutions on the SharePoint Framework
Deep-dive building solutions on the SharePoint FrameworkWaldek Mastykarz
 
Deep Dive building solutions on the SharePoint Framework - SPS Brussels 2016
Deep Dive building solutions on the SharePoint Framework - SPS Brussels 2016Deep Dive building solutions on the SharePoint Framework - SPS Brussels 2016
Deep Dive building solutions on the SharePoint Framework - SPS Brussels 2016Waldek Mastykarz
 
.NET Framework Overview
.NET Framework Overview.NET Framework Overview
.NET Framework OverviewDoncho Minkov
 
A Comparison of .NET Framework vs. Java Virtual Machine
A Comparison of .NET Framework vs. Java Virtual MachineA Comparison of .NET Framework vs. Java Virtual Machine
A Comparison of .NET Framework vs. Java Virtual MachineAbdelrahman Hosny
 
Wwi Good Copy 2
Wwi Good Copy 2Wwi Good Copy 2
Wwi Good Copy 2rgilpin
 
4.1.08 Pascals Triangle2
4.1.08   Pascals Triangle24.1.08   Pascals Triangle2
4.1.08 Pascals Triangle2chrismac47
 
5.12.08 Advanced Factoring1
5.12.08   Advanced Factoring15.12.08   Advanced Factoring1
5.12.08 Advanced Factoring1chrismac47
 
維基經濟學999
維基經濟學999維基經濟學999
維基經濟學999valvpatton
 
Aso’S Sweets
Aso’S SweetsAso’S Sweets
Aso’S Sweetspchb
 
Het Open Source Paradigma Ontleed
Het Open Source Paradigma OntleedHet Open Source Paradigma Ontleed
Het Open Source Paradigma OntleedFabrice Mous
 
Mariana Trench
Mariana TrenchMariana Trench
Mariana Trenchbiology6
 
Design Approaches07
Design Approaches07Design Approaches07
Design Approaches07guest8042e6
 

Viewers also liked (20)

Learn Entity Framework in a day with Code First, Model First and Database First
Learn Entity Framework in a day with Code First, Model First and Database FirstLearn Entity Framework in a day with Code First, Model First and Database First
Learn Entity Framework in a day with Code First, Model First and Database First
 
Beyond Gamification: designing the player journey
Beyond Gamification: designing the player journeyBeyond Gamification: designing the player journey
Beyond Gamification: designing the player journey
 
.net framework from 1.0 -> 4.0
.net framework from 1.0 -> 4.0.net framework from 1.0 -> 4.0
.net framework from 1.0 -> 4.0
 
Nakov - .NET Framework Overview - English
Nakov - .NET Framework Overview - EnglishNakov - .NET Framework Overview - English
Nakov - .NET Framework Overview - English
 
Deep-dive building solutions on the SharePoint Framework
Deep-dive building solutions on the SharePoint FrameworkDeep-dive building solutions on the SharePoint Framework
Deep-dive building solutions on the SharePoint Framework
 
Deep Dive building solutions on the SharePoint Framework - SPS Brussels 2016
Deep Dive building solutions on the SharePoint Framework - SPS Brussels 2016Deep Dive building solutions on the SharePoint Framework - SPS Brussels 2016
Deep Dive building solutions on the SharePoint Framework - SPS Brussels 2016
 
.NET Framework Overview
.NET Framework Overview.NET Framework Overview
.NET Framework Overview
 
A Comparison of .NET Framework vs. Java Virtual Machine
A Comparison of .NET Framework vs. Java Virtual MachineA Comparison of .NET Framework vs. Java Virtual Machine
A Comparison of .NET Framework vs. Java Virtual Machine
 
Wwi Good Copy 2
Wwi Good Copy 2Wwi Good Copy 2
Wwi Good Copy 2
 
Cubby 2006-08-23
Cubby 2006-08-23Cubby 2006-08-23
Cubby 2006-08-23
 
4.1.08 Pascals Triangle2
4.1.08   Pascals Triangle24.1.08   Pascals Triangle2
4.1.08 Pascals Triangle2
 
Cs5
Cs5Cs5
Cs5
 
5.12.08 Advanced Factoring1
5.12.08   Advanced Factoring15.12.08   Advanced Factoring1
5.12.08 Advanced Factoring1
 
維基經濟學999
維基經濟學999維基經濟學999
維基經濟學999
 
Aso’S Sweets
Aso’S SweetsAso’S Sweets
Aso’S Sweets
 
Het Open Source Paradigma Ontleed
Het Open Source Paradigma OntleedHet Open Source Paradigma Ontleed
Het Open Source Paradigma Ontleed
 
Mariana Trench
Mariana TrenchMariana Trench
Mariana Trench
 
Islam
IslamIslam
Islam
 
Lesson 2 1
Lesson 2 1Lesson 2 1
Lesson 2 1
 
Design Approaches07
Design Approaches07Design Approaches07
Design Approaches07
 

Similar to Beautiful Mind: iPhone Anatomy & Architecture

콘텐츠 플랫폼 구조 분석
콘텐츠 플랫폼 구조 분석콘텐츠 플랫폼 구조 분석
콘텐츠 플랫폼 구조 분석Jaehyeuk Oh
 
Going Mobile - Flash Gaming Summit 2012
Going Mobile - Flash Gaming Summit 2012Going Mobile - Flash Gaming Summit 2012
Going Mobile - Flash Gaming Summit 2012Nate Beck
 
Google glass and the wearable revolution - NYCCamp 2013
Google glass and the wearable revolution - NYCCamp 2013Google glass and the wearable revolution - NYCCamp 2013
Google glass and the wearable revolution - NYCCamp 2013Frank Carey
 
Stanford Lecture: Saving the World and Have Fun Doing It
Stanford Lecture: Saving the World and Have Fun Doing ItStanford Lecture: Saving the World and Have Fun Doing It
Stanford Lecture: Saving the World and Have Fun Doing ItBess Ho
 
Android
AndroidAndroid
Androiddavs7
 
Going Mobile by Nate Beck
Going Mobile by Nate BeckGoing Mobile by Nate Beck
Going Mobile by Nate Beckmochimedia
 
Day 2 android internals a quick overview
Day 2 android internals a quick overviewDay 2 android internals a quick overview
Day 2 android internals a quick overviewAhsanul Karim
 
iPhone Seminar Part 1
iPhone Seminar Part  1iPhone Seminar Part  1
iPhone Seminar Part 1NAILBITER
 
Mobile sector's idea
Mobile sector's ideaMobile sector's idea
Mobile sector's ideaChen Chen
 
Android Development Workshop
Android Development WorkshopAndroid Development Workshop
Android Development WorkshopMuthu Kumar
 
New Technology in 2012
New Technology in 2012New Technology in 2012
New Technology in 2012somey_oung
 
aibo introduction at ROSCon2018@Madrid
aibo introduction at ROSCon2018@Madridaibo introduction at ROSCon2018@Madrid
aibo introduction at ROSCon2018@MadridTomoya Fujita
 
Android Workshop Day 1 Part 2
Android Workshop Day 1 Part 2Android Workshop Day 1 Part 2
Android Workshop Day 1 Part 2Ahsanul Karim
 

Similar to Beautiful Mind: iPhone Anatomy & Architecture (20)

콘텐츠 플랫폼 구조 분석
콘텐츠 플랫폼 구조 분석콘텐츠 플랫폼 구조 분석
콘텐츠 플랫폼 구조 분석
 
Going Mobile - Flash Gaming Summit 2012
Going Mobile - Flash Gaming Summit 2012Going Mobile - Flash Gaming Summit 2012
Going Mobile - Flash Gaming Summit 2012
 
Google glass and the wearable revolution - NYCCamp 2013
Google glass and the wearable revolution - NYCCamp 2013Google glass and the wearable revolution - NYCCamp 2013
Google glass and the wearable revolution - NYCCamp 2013
 
Introducción a iOS
Introducción a iOSIntroducción a iOS
Introducción a iOS
 
Stanford Lecture: Saving the World and Have Fun Doing It
Stanford Lecture: Saving the World and Have Fun Doing ItStanford Lecture: Saving the World and Have Fun Doing It
Stanford Lecture: Saving the World and Have Fun Doing It
 
iPhone 3GS
iPhone 3GSiPhone 3GS
iPhone 3GS
 
Android
AndroidAndroid
Android
 
Going Mobile by Nate Beck
Going Mobile by Nate BeckGoing Mobile by Nate Beck
Going Mobile by Nate Beck
 
Basic Intro to iOS
Basic Intro to iOSBasic Intro to iOS
Basic Intro to iOS
 
Day 2 android internals a quick overview
Day 2 android internals a quick overviewDay 2 android internals a quick overview
Day 2 android internals a quick overview
 
iPhone Seminar Part 1
iPhone Seminar Part  1iPhone Seminar Part  1
iPhone Seminar Part 1
 
Mobile sector's idea
Mobile sector's ideaMobile sector's idea
Mobile sector's idea
 
Android Development Workshop
Android Development WorkshopAndroid Development Workshop
Android Development Workshop
 
iPhone Programming
iPhone ProgrammingiPhone Programming
iPhone Programming
 
New Technology in 2012
New Technology in 2012New Technology in 2012
New Technology in 2012
 
Smart phones
Smart phonesSmart phones
Smart phones
 
Android
AndroidAndroid
Android
 
aibo introduction at ROSCon2018@Madrid
aibo introduction at ROSCon2018@Madridaibo introduction at ROSCon2018@Madrid
aibo introduction at ROSCon2018@Madrid
 
Android Workshop Day 1 Part 2
Android Workshop Day 1 Part 2Android Workshop Day 1 Part 2
Android Workshop Day 1 Part 2
 
Iphone
IphoneIphone
Iphone
 

More from Bess Ho

Product Design Using Solidworks
Product Design Using SolidworksProduct Design Using Solidworks
Product Design Using SolidworksBess Ho
 
4/7/2021 Investment Panel
4/7/2021 Investment Panel4/7/2021 Investment Panel
4/7/2021 Investment PanelBess Ho
 
SVB 4/21/2021 Introduction
SVB 4/21/2021 IntroductionSVB 4/21/2021 Introduction
SVB 4/21/2021 IntroductionBess Ho
 
Competitor Analysis
Competitor AnalysisCompetitor Analysis
Competitor AnalysisBess Ho
 
InvoTech Happy Hour 2019
InvoTech Happy Hour 2019InvoTech Happy Hour 2019
InvoTech Happy Hour 2019Bess Ho
 
Fundraising in Silicon Valley
Fundraising in Silicon ValleyFundraising in Silicon Valley
Fundraising in Silicon ValleyBess Ho
 
Empowered Entrepreneurs and Hyper Growth in Mobile Era
Empowered Entrepreneurs and Hyper Growth in Mobile EraEmpowered Entrepreneurs and Hyper Growth in Mobile Era
Empowered Entrepreneurs and Hyper Growth in Mobile EraBess Ho
 
WITI Summit 2013 Mobile Trend
WITI Summit 2013 Mobile TrendWITI Summit 2013 Mobile Trend
WITI Summit 2013 Mobile TrendBess Ho
 
Gmicsv 2012 oct
Gmicsv 2012 octGmicsv 2012 oct
Gmicsv 2012 octBess Ho
 
WITI.ORG Women Technology Summit 2012
WITI.ORG Women Technology Summit 2012WITI.ORG Women Technology Summit 2012
WITI.ORG Women Technology Summit 2012Bess Ho
 
Stanford EE402T 2012: Hong Kong Startup & Funding Between Hong Kong and US
Stanford EE402T 2012: Hong Kong Startup & Funding Between Hong Kong and USStanford EE402T 2012: Hong Kong Startup & Funding Between Hong Kong and US
Stanford EE402T 2012: Hong Kong Startup & Funding Between Hong Kong and USBess Ho
 
Putting Web Into Native App
Putting Web Into Native AppPutting Web Into Native App
Putting Web Into Native AppBess Ho
 
Android Open 2011
Android Open 2011Android Open 2011
Android Open 2011Bess Ho
 
Silicon Valley China Wireless Conference m-commerce Panel
Silicon Valley China Wireless Conference m-commerce PanelSilicon Valley China Wireless Conference m-commerce Panel
Silicon Valley China Wireless Conference m-commerce PanelBess Ho
 
Iosdevcamp 2011.key
Iosdevcamp 2011.keyIosdevcamp 2011.key
Iosdevcamp 2011.keyBess Ho
 
Icon & App Design Secrets for Mobile
Icon & App Design Secrets for MobileIcon & App Design Secrets for Mobile
Icon & App Design Secrets for MobileBess Ho
 
SF Lean Startup Machine Workshop
SF Lean Startup Machine WorkshopSF Lean Startup Machine Workshop
SF Lean Startup Machine WorkshopBess Ho
 
JumpyBirds iTunes for Toddlers & Amazon for Moms
JumpyBirds iTunes for Toddlers & Amazon for MomsJumpyBirds iTunes for Toddlers & Amazon for Moms
JumpyBirds iTunes for Toddlers & Amazon for MomsBess Ho
 
Where Should I Go: Smart Phones
Where Should I Go: Smart PhonesWhere Should I Go: Smart Phones
Where Should I Go: Smart PhonesBess Ho
 
Women in Mobile
Women in MobileWomen in Mobile
Women in MobileBess Ho
 

More from Bess Ho (20)

Product Design Using Solidworks
Product Design Using SolidworksProduct Design Using Solidworks
Product Design Using Solidworks
 
4/7/2021 Investment Panel
4/7/2021 Investment Panel4/7/2021 Investment Panel
4/7/2021 Investment Panel
 
SVB 4/21/2021 Introduction
SVB 4/21/2021 IntroductionSVB 4/21/2021 Introduction
SVB 4/21/2021 Introduction
 
Competitor Analysis
Competitor AnalysisCompetitor Analysis
Competitor Analysis
 
InvoTech Happy Hour 2019
InvoTech Happy Hour 2019InvoTech Happy Hour 2019
InvoTech Happy Hour 2019
 
Fundraising in Silicon Valley
Fundraising in Silicon ValleyFundraising in Silicon Valley
Fundraising in Silicon Valley
 
Empowered Entrepreneurs and Hyper Growth in Mobile Era
Empowered Entrepreneurs and Hyper Growth in Mobile EraEmpowered Entrepreneurs and Hyper Growth in Mobile Era
Empowered Entrepreneurs and Hyper Growth in Mobile Era
 
WITI Summit 2013 Mobile Trend
WITI Summit 2013 Mobile TrendWITI Summit 2013 Mobile Trend
WITI Summit 2013 Mobile Trend
 
Gmicsv 2012 oct
Gmicsv 2012 octGmicsv 2012 oct
Gmicsv 2012 oct
 
WITI.ORG Women Technology Summit 2012
WITI.ORG Women Technology Summit 2012WITI.ORG Women Technology Summit 2012
WITI.ORG Women Technology Summit 2012
 
Stanford EE402T 2012: Hong Kong Startup & Funding Between Hong Kong and US
Stanford EE402T 2012: Hong Kong Startup & Funding Between Hong Kong and USStanford EE402T 2012: Hong Kong Startup & Funding Between Hong Kong and US
Stanford EE402T 2012: Hong Kong Startup & Funding Between Hong Kong and US
 
Putting Web Into Native App
Putting Web Into Native AppPutting Web Into Native App
Putting Web Into Native App
 
Android Open 2011
Android Open 2011Android Open 2011
Android Open 2011
 
Silicon Valley China Wireless Conference m-commerce Panel
Silicon Valley China Wireless Conference m-commerce PanelSilicon Valley China Wireless Conference m-commerce Panel
Silicon Valley China Wireless Conference m-commerce Panel
 
Iosdevcamp 2011.key
Iosdevcamp 2011.keyIosdevcamp 2011.key
Iosdevcamp 2011.key
 
Icon & App Design Secrets for Mobile
Icon & App Design Secrets for MobileIcon & App Design Secrets for Mobile
Icon & App Design Secrets for Mobile
 
SF Lean Startup Machine Workshop
SF Lean Startup Machine WorkshopSF Lean Startup Machine Workshop
SF Lean Startup Machine Workshop
 
JumpyBirds iTunes for Toddlers & Amazon for Moms
JumpyBirds iTunes for Toddlers & Amazon for MomsJumpyBirds iTunes for Toddlers & Amazon for Moms
JumpyBirds iTunes for Toddlers & Amazon for Moms
 
Where Should I Go: Smart Phones
Where Should I Go: Smart PhonesWhere Should I Go: Smart Phones
Where Should I Go: Smart Phones
 
Women in Mobile
Women in MobileWomen in Mobile
Women in Mobile
 

Recently uploaded

Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesThousandEyes
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 

Recently uploaded (20)

Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyesAssure Ecommerce and Retail Operations Uptime with ThousandEyes
Assure Ecommerce and Retail Operations Uptime with ThousandEyes
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 

Beautiful Mind: iPhone Anatomy & Architecture

  • 1. A Beautiful Mind: Anatomy and Architecture of the iPhone App Bess Ho May 4, 2010 Tue 9:00 AM San Francsico
  • 3. Follow QR Code My Slides
  • 4. Follow QR Code Linkedin
  • 6. My Bio TEXT Short Code 99702
  • 10.
  • 11.
  • 12.
  • 13. STANFORD UNIVERSITY School of Engineering
  • 14.
  • 15.
  • 16. Three Years Ago Jan 2007
  • 17. Widescreen iPod with touch controls
  • 20. iPod Phone Internet
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 30.
  • 34. To boldly go where no man has gone before:
  • 35.
  • 36. Data Portable Data Communication Sensing Analysis s Tricorder
  • 37. Locator Scanner Compass Recorder Sensor Search Text Data Voice
  • 38. Phone Camera (Audio) (Photo / Video) GPS (Geo) Magnetometer (Compass) Accelerometer (XZY) Touch (Device Orientation) Wireless Bluetooth Network / WiFi (File) (Web / Email) External Accessory Microphone SMS (Data) (Audio) (Data) iPhone’s Anatomy
  • 39. Phone Camera (Audio) (Photo / Video) GPS (Geo) Magnetometer (Compass) Accelerometer (XZY) Touch (Device Orientation) Wireless Bluetooth Network / WiFi (File) (Web / Email) External Accessory Microphone SMS (Data) (Audio) (Data) Portable Sensors
  • 40. iPhone SDK Xcode Interface Builder Data Analysis
  • 41. Phone Camera (Audio) (Photo / Video) GPS (Geo) Magnetometer (Compass) Accelerometer (XZY) Touch (Device Orientation) Wireless Bluetooth Network / WiFi (File) (Web / Email) External Accessory Microphone SMS (Data) (Audio) (Data) Data Communications
  • 42. Touch Audio Visual Sensor Geo Data iPhone’s Anatomy
  • 43. Laboratory robot has confirmed with a human test: Apple’s iPhone touchscreen is by far the most accurate touch panel on the market iPhone Google Nexus One Motorola Droid HTC Droid Eris Palm Pre BlackBerry Storm 2 Reference: http://www.appleinsider.com/articles/10/03/24/robotic_test_reconfirms_apples_iphone_touchscreen_superiority.html iPhone’s Anatomy
  • 44. Laboratory robot has confirmed with a human test: Apple’s iPhone touchscreen is by far the most accurate touch panel on the market Reference: http://www.appleinsider.com/articles/10/03/24/robotic_test_reconfirms_apples_iphone_touchscreen_superiority.html iPhone’s Anatomy
  • 45. MOTO Lab Experiment 7mm robotic “finger” for “medium touch” 4mm robotic “finger” for a “very light touch” iPhone’s Anatomy
  • 47. “All touchscreens are not created equal.” Screen sensitivity is a combination of 1) hardware component quality 2) design and 3) software integration - Operating System to ensure responsiveness for the user iPhone’s Anatomy
  • 48. Resistive VS Capacitive Touchscreen Technology
  • 49. Resistive Touchscreens A screen where two thin metallic layers are separated by a narrow gap. A finger pushing down on the top layer makes contact with the bottom surface and the point of contact is computed by the accompanying electronics. iPhone’s Anatomy
  • 50. Resistive Touchscreens A screen where two thin metallic layers are separated by a narrow gap. A finger pushing down on the top layer makes contact with the bottom surface and the point of contact is computed by the accompanying electronics. iPhone’s Anatomy
  • 51. Resistive Touchscreens A screen where two thin metallic layers are separated by a narrow gap. A finger pushing down on the top layer makes contact with the bottom surface and the point of contact is computed by the accompanying electronics. iPhone’s Anatomy
  • 52. Resistive Touchscreens Step 1: Step 2: Touch Press Pressure-sensitive iPhone’s Anatomy
  • 53. Capacitive Touchscreens This capacitive technology responds to the electrical properties of your skin, not the pressure of your finger to figure out where you are touching the screen. iPhone’s Anatomy
  • 54. Capacitive Touchscreens This capacitive technology responds to the electrical properties of your skin, not the pressure of your finger to figure out where you are touching the screen. iPhone’s Anatomy
  • 55. Resistive VS Capacitive Touchscreen Technology
  • 56. Resistive VS Capacitive Touchscreen Technology
  • 57. Resistive VS Capacitive Touchscreen Technology
  • 58. Web OS VS Native HTML5 / JS / CSS JAVA Objective-C Touchscreen Technology
  • 59. WebOS VS Native Touchscreen Technology
  • 60. Web Plug-in WebOS Web Run Time Widget SDK PDK (C / C+ QT Java +) Symbian Java WebOS & Native Platforms
  • 61.
  • 63. Web App Native App
  • 64. Xcode Interface DashCode Builder
  • 65. Activity Monitor CPU Sampler Leaks Object Allocations Core Data File Activity UI Recorder Core Animation Open GL ES System Usage Available Instruments
  • 66. Activity Monitor overall CPU, memory, disk & Monitor network activity Precise time-based sampling of CPU CPU Sampler usage Leaks Detects memory leaks Object Measures memory usage by class Allocations Monitor Core Data activity & Core Data performance Monitor application’s interaction with File Activity the file system Available Instruments
  • 67. Captures & play back UI events to UI Recorder run exact same sequence of user interactions Core Measures Core Animation graphics Animation performance and resulting CPU load Measures Open GL ES graphics Open GL ES performance and resulting CPU load Monitors file, network & memory I/O System Usage use and duration for each method Available Instruments
  • 68.
  • 69. Touch
  • 70. Cocoa Touch Layer Media Layer Core Services Layer Core OS Layer iPhone SDK Frameworks
  • 71. 320 pixel 480 pixel iPhone / iTouch Screen Size
  • 72. 768 pixel 1024 pixel iPad Screen Size
  • 73. Large High (hdpi) 3.2” Screen 320 pixel Normal Medium (mdpi) Small Low (ldpi) 480 pixel Android <1.5 Android 1.6+ Android Screen Sizes
  • 74. Screen Sizes 84 x 84 pixel 128 x 128 pixel 176 x 208 pixel 240 x 320 pixel 360 x 640 pixel 120 x 160 pixel Screen Width Tiny: 84, 96, 101, 128, 130,132 Small: 160, 176 Medium: 208, 220, 240 Large: 320, 360, 480 Nokia Screen Sizes
  • 75. 1 2 3 iPhone iPad Universal App Native App
  • 76. iPhone Icon Promotion 57 x 57 pixel iPad Icon 512 x 512 pixel 72 x 72 pixel iPhone App Store Submission
  • 77. 162 ppi 132 ppi Core Text Framework Text-rendering & layout features Animated text with special effects Display Density (pixels per inch)
  • 78. Hardware Software Prefer saving and Accelerometer loading data invisibly Compass Without an explicit Core Location “save” or “load” option Wi-Fi Supports Open GL ES Bluetooth 2.0 with legacy Microphone support for Open GL headphone socket ES 1.0 iPad
  • 79. Supports external displays and projectors Supports external Apple or third-party keyboard Likely supports external devices - music keyboards, media controllers, game hardware iPad
  • 81. Carrier 10:32 AM Carrier 10:32 AM Carrier 3G 10:32 AM Signal Strength Carrier Current Network Connection Time Battery Charge Status Bar
  • 82. 6 Music Videos Podcasts Search More 9 99 999 Should be present on all screens switch between modes & views Badges are superimposed in the tab bar to inform user of new items Tab Bar & Badges
  • 83. 6 Music Videos Podcasts Search More Tab Bar
  • 84. Activity indicator for nav bar on grey background... Network activity Display if it takes more than a couple of seconds to perform the task Activity Indicator
  • 85. Back Button Pane Label Button Optional instructions for this pane Cancel Pane Label Save Pane Label Disabled Groups All Contacts + Inbox (20) 2 of 50 Display title of current view Display buttons that trigger action to the view or navigate Navigation Bar
  • 87. 5 Progress Indicator 24 of 39 Primary Secondary Touch size 44 x 44 pixels < 5 toolbar icons Toolbar
  • 89. MockApp mockapp.com/ Google MockApp Cancel http://mockapp.com/ MockApp Cancel Google Browser Bar
  • 90. Sample search text Search Clear Directions Cancel Start: Current Location End: Type a company name or stock ID. Cancel Search Cancel Placeholder text Bookmarks button & Clear button Prompt with descriptive title above the search bar Search Bar
  • 91. Primary action you can also do this or maybe this or why not that Cancel Delete Cancel Selection Or Confirmation Menu Important or common action should appear to the top Destructive action use red button Action Sheets
  • 92. 0:00 0:28 OK Delete Play Record Action Sheets
  • 93. Select Select All Paste MockApp Bubbles
  • 94. Main Message Optional explanation of what a user needs to do Primary Button Confirmation Message Optional explanation of what the system is asking Secondary Primary Confirmation Message Please enter your password Optional explanation of what the system is john@doe.com asking Password Cancel OK Primary Use it wisely Require immediate user attention Alerts
  • 95. Web20 Expo SF Sent from iPhone It supports multiple lines It supports scrolling Text Views
  • 96. From: Twitter Hide To: Dotan Saguy Everybody is now following you on Twitter! April 1, 2035 1:33 PM Mark Unread Display rich HTML content Web / Email Views
  • 97. Q W E R T Y U I O P A S D F G H J K L #+= Z X C V B N M ABC space @ . return 1 2 ABC 3 DEF 4 GHI 5 JKL 6 MNO 7 PQRS 8 TUV 9 WXYZ 0 + Keyboards
  • 98. N G A A B This is a regular table B Pete Gardener C D C view D E F M E F Tess Grady G G H I Divided into sections H I M.J. Grey J (the letters are the sections) J K K L Each row is an item L M Jenn Guggenheim M N O of the list N O H P P Q and can contain several Q Sara Hashimoto R R S data elements (image, text, etc.) S T T U O U Em Hirsch V W Display lists of items List is divided into sections separated by grey headers Table Views
  • 99. Unread 29 First Last name mobile Item to delete or move Ready to be deleted Delete Not pressed yet Current status When pressed it highlights This is a regular table view With icons like in The “more” tab of the iPod app Podcasts Table Views
  • 100. This group has 3 items This item has been selected Items highlight briefly when hit This group has only 1 item You can insert headers too This one lets you drill down This one shows Current status Segmented controls Tab One Tab Two Tab Three Tab One Tab Two Tab Three Tab One Tab Two Tab Three Grouped Table Views
  • 101. Bess Ho home (111) 222-3333 mobile (111) 222-3333 work (111) 222-3333 whatever (111) 222-3333 Text Message Share Contact You can even insert instructions like these as well if they’re helpful in this context. Silent This item is turned OFF Ring This item is turned ON ON Grouped Table Views
  • 102. August 03 2007 7 45 September 04 2008 8 46 October 05 2009 9 47 AM November 06 2010 10 48 PM December 07 2011 11 49 Sat Oct 3 7 50 28 Sun Oct 4 8 55 29 Today 9 00 AM 0 hours 30 mins Tue Oct 6 10 05 PM 1 31 Wed Oct 7 11 10 2 32 Date & Time Pickers
  • 103. First & default value Second value Third value Value Picker
  • 104. Tap ~ Single Mouse Click Swipe Reveal the delete button in a table-view row Drag Scroll or Pan Gestures
  • 105. Tap ~ Single Mouse Click Swipe Reveal the delete button in a table-view row Drag Scroll or Pan Gestures
  • 106. Tap ~ Single Mouse Click Swipe swipe Reveal the delete button in a table-view row Drag Scroll or Pan Gestures
  • 107. Tap ~ Single Mouse Click Swipe Reveal the delete button in a table-view row Drag Scroll or Pan Gestures
  • 108. Tap ~ Single Mouse Click Swipe Reveal the delete button in a table-view row Drag drag Scroll or Pan Gestures
  • 109. Double Tap Zoom-in / Zoom-out Touch & Hold view in Display a magnified editable text Gestures
  • 110. Double Tap Zoom-in / Zoom-out 2x tap Touch & Hold view in Display a magnified editable text Gestures
  • 111. Double Tap Zoom-in / Zoom-out 2x tap Touch & Hold view in Display a magnified touch and editable text hold Gestures
  • 112. Pinch Close Zoom-in Pinch Open Zoom-out Gestures
  • 113. Pinch Close Zoom-in pinch close Pinch Open Zoom-out Gestures
  • 114. Pinch Close Zoom-in pinch close Pinch Open Zoom-out pinch open Gestures
  • 115. Audio
  • 116. 30-pin dock connector Require Certification SDK iPhone External Accessory Framework External Accessory (Data)
  • 119. Audible Frequency Ambient Voice Music Inaudible Frequency Heartbeat Breathing Sleeping Instrument Signal iPhone Microphone
  • 120. Recording / Playing Audio Processing iPhone Microphone
  • 121. Audio Toolbox Framework AV Foundation Framework OpenAL Framework Audio Unit Framework Audio Queue Services Remote IO Unit Media Player Framework iPhone Audio Frameworks
  • 125. Camera (Photo / Video) Scanner Bar Code QR Code
  • 126. Camera (Photo / Video) Card Scanner Business Card
  • 127. Camera (Photo / Video) Text Scanner Optical Character Recognition (OCR)
  • 128. Camera (Photo / Video) Language Translator
  • 129. Camera (Photo / Video) “Live” Scanner Augmented Reality (AR)
  • 130. Camera (Photo / Video) Recording Playing
  • 131. Kodak Pearl Module Dental System Practice Management Systems 3D & Extraoral Imaging Intraoral Radiography Intraoral Digital Image Intraoral X-ray Image
  • 132. Video Conferencing Eye Tracking Iris Scanning Front-Facing Camera (Future)
  • 133. Geo
  • 134. Cocoa Touch Layer Map Kit Media Layer Core Services Layer Core Location Core OS Layer iPhone SDK Frameworks
  • 135. MapKit Core Location iPhone SDK Frameworks
  • 136. CLLocation Manager CLLocation CLHeading Core Location Framework: Class
  • 137. UIViewController Interface CLLocationManager #import <CoreLocation/CoreLocation.h> @interface GetLocationViewController : UIViewController <CLLocationManagerDelegate> { CLLocationManager *locationManager; CLLocation *bestEffortAtLocation; } @property (nonatomic, retain) CLLocationManager *locationManager; @property (nonatomic, retain) CLLocation *bestEffortAtLocation; Core Services Layer: Core Location
  • 138. ViewController Method CLLocationManager // Create the manager object self.locationManager = [[[CLLocationManager alloc] init] autorelease]; locationManager.delegate = self; locationManager.desiredAccuracy = [[setupInfo objectForKey:kSetupInfoKeyAccuracy] doubleValue]; [locationManager startUpdatingLocation]; Core Services Layer: Core Location
  • 139. CLLocation Class Constants CCLocationDegrees CCLocationCoordinate2D CCLocationAccuracy Accuracy Constants CCLocationSpeed CCLocationDirection Core Services Layer: Core Location
  • 140. Accuracy Constants CCLocation Class locationManager.desiredAccuracy is the most important property of Location Manager. It determines the amount of power it consumed. Constant values are to specify the accuracy of a location. kCLLocationAccuracyBest Best kCLLocationAccuracyNearestTenMete 10 Meters rs 100 Meters kCLLocationAccuracyHundredMeters 1000 Meters kCLLocationAccuracyKilometer 3000 Meters kCLLocationAccuracyThreeKilometers Core Services Layer: Core Location
  • 141. CLLocation Class Constants CCLocationDegrees Delivers a latitude or longitude value specified in degrees. Data type is double. CCLocationSpeed Delivers the speed at which the device is moving in meters per second. Data type is double. Core Services Layer: Core Location
  • 142. CLLocation Class Constants CCLocationDirection Delivers a direction that is measured in degrees and relative to true north. Data type is double. North is 0 degrees East is 90 degrees South is 180 degrees Any “-” value indicates an invalid direction Core Services Layer: Core Location
  • 143. CLLocation Class Properties altitude coordinate course horizontalAccuracy speed timestamp verticalAccuracy Core Services Layer: Core Location
  • 144. Measurement Units altitude (meters) coordinate course (degrees) horizontalAccuracy (meters) speed (meters per sec) timestamp (NSDate) verticalAccuracy (meters) Core Services Layer: Core Location
  • 145. CLLocation Manager CLLocation CLHeading Core Location Framework: Class
  • 146. CCLocationManager Core Location Create a CCLocationManager object to get heading by invoking [CCLocationManager startUpdatingHeading]. iPhone 3GS contains a magnetometer - a magnetic field detector. It displays the raw x, y, and z magnetometer values. Magnitude of the magnetic field is computed in strength. Core Services Layer: Core Location
  • 147. CLLocationManager Core Location if (locationManager.headingAvailable == NO) { self.locationManager = nil; // No compass is available } else { // heading service configuration locationManager.headingFilter = kCLHeadingFilterNone; // setup delegate callbacks locationManager.delegate = self; // start the compass [locationManager startUpdatingHeading]; } } Core Services Layer: Core Location
  • 148. CLLocation Manager CLLocation CLHeading Core Location Framework: Class
  • 149. CLHeading Core Location - (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)heading { // Update the labels with the raw x, y, and z values. [xLabel setText:[NSString stringWithFormat:@"%.1f", heading.x]]; [yLabel setText:[NSString stringWithFormat:@"%.1f", heading.y]]; [zLabel setText:[NSString stringWithFormat:@"%.1f", heading.z]]; } MapKit Framework: Class
  • 150. MapKit Core Location iPhone SDK Frameworks
  • 151. MKAnnotationView MKMapView MKPinAnnotationView MKPlacemark MKReverseGeocoder MKUserLocation MapKit Framework: Class
  • 152. MKReverseGeocoder MKReverseGeocoder offers services to convert a map coordinate (latitude & Longitude) to info such as country, city, or street. It works with a network- based map service to look up placemark information for a specified coordinate value. Cocoa Touch Layer: MapKit Framework
  • 153. MKReverseGeocoder Each app is limited to amount of reverse geocoding Send one reverse-geocoding request for any one user action Reuse the results from initial request Suggest not to send one reverse-geocode request per minute Cocoa Touch Layer: MapKit Framework
  • 154. MKAnnotationView MKMapView MKPinAnnotationView MKPlacemark MKReverseGeocoder MKUserLocation MapKit Framework: Class
  • 155. MKMapView Class Properties annotations scrollEnabled annotationsVisibleRect selectedAnnotations centerCoordinate showsUserLocation delegate userLocation mapType userLocationVisible region zoomEnabled Cocoa Touch Layer: MapKit Framework
  • 156. MKMapView Class MKMapType It delivers the type of map to display. MKMapTypeStandard MKMapTypeSatellite MKMapTypeHybrid Cocoa Touch Layer: MapKit Framework
  • 157. MKAnnotationView MKMapView MKPinAnnotationView MKPlacemark MKReverseGeocoder MKUserLocation MapKit Framework: Class
  • 158. MKAnnotationView Class Properties annotation image calloutOffset leftCalloutAccessoryView canShowCallout reuseIdentifier centerOffset rightCalloutAccessoryView enabled selected Cocoa Touch Layer: MapKit Framework
  • 159. MKAnnotationView MKMapView MKPinAnnotationView MKPlacemark MKReverseGeocoder MKUserLocation MapKit Framework: Class
  • 160. MKAnnotationView Class Properties Properties animatesDrop pinColor Constants MKPinAnnotationColor MKPinAnnotationColorRed (Destination Points) MKPinAnnotationColorGreen (Starting Points) MKPinAnnotationColorPurple (User-specified Points) Cocoa Touch Layer: MapKit Framework
  • 161. Google Location Maps Services External Library Android SDK
  • 162. Interfaces GpsStatus.Listener GpsStatus.NmeaListener LocationListener package: android.location
  • 163. Classes Address GpsStatus Criteria Location Geocoder LocationManager GpsSatellite LocationProvider package: android.location
  • 164. Location Class Methods getAccuracy() getAltitude() getLongitude() getBearing() getProvider() getExtras() getSpeed() getLatitude() getTime() package: android.location
  • 165. Classes Address GpsStatus Criteria Location Geocoder LocationManager GpsSatellite LocationProvider package: android.location
  • 166. LocationManager Class Methods getAllProviders() getLastKnownLocation getBestProvider() getProvider() getGpsStatus() getProviders() package: android.location
  • 167. Google Location Maps Services External Library Android SDK
  • 168. Google Maps External Library Use Google APIs add-on Download Maps external library Must register with Google Maps service Obtain a Maps API Key Android SDK
  • 169. AndroidManifest.xml Declare Maps Library Request internet permission Hide title bar <uses-library android:name=”com.google.android.maps” /> <uses-permission android:name=”android.permission.INTERNET” /> <activity android:name=”.HelloMaps” android:label=”@string/app_name” android:theme=”@android:style/Theme.NoTitleBar”> Android SDK
  • 170. res/layout/main.xml <?xml version=”1.0” encoding=”utf-8”?> <com.google.android.maps.MapView xmlns:android=”http://schmas.android.com/ apk/res/android” android:id=@+id/mapview” android:layout_width=”fill_parent” android:layout_height=”fill_parent” android:clickable=”true” android:apiKey=”Map API Key” /> Android SDK
  • 171. + HelloMaps.java public class HelloMaps extends MapActivity @Override protected boolean isRouteDisplayed() { return false; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } MapView mapView = (MapView) findViewById(R.id.mapview); mapView.setBuiltInZoomControls(true); Android SDK
  • 173. y axis x axis z axis Accelerometer
  • 174. TEXT Email openURL: Method To From CC BCC HTML Email MessuageUI Framework Attachment Email
  • 176. HTTP protocol GET / POST Data Store .plist files SQLite CoreData Network
  • 177. Controller Heliptor Automobile Bluetooth / WiFi
  • 178. Yes Yes Yes iPhone Cupcake 1.5 S40 OS 3.1 S60 Wireless Bluetooth
  • 179. 30-pin dock connector Point of Sale (POS) Credit Card Terminal External Accessory
  • 180.
  • 182.
  • 183.
  • 184.
  • 185. STANFORD UNIVERSITY School of Engineering (EE46) Engineering For Good Save The World Have Fun Doing It
  • 186. Save The World Malaria TB HIV
  • 187. Augmented Reality (AR) Camera (Photo / Video) Bar Code Optical Character Recognition QR Code (OCR) Scanner: 2D Objects
  • 188. Detect Diseases Scanner: Micro Life Forms
  • 189. Identify Patients Scanner: Body Parts
  • 190. Scan Diseases & Patients Scanner: Life Forms
  • 192.
  • 193.
  • 195. Q&A
  • 196. @bess Attendee Directory http://www.slideshare.net/bess.ho

Editor's Notes

  1. iPhone Tech Day, iPhone Dev Camp, Android Lab, Nokia Workshop, BlackBerry Conference, Palm Developer Day
  2. iPhone was found to have straight and accurate lines, with some weaknesses at the edge of the panel with the light touch. Nexus One, which MOTO said had &quot;solid performance&quot; much like the Droid Eris. Both the Palm Pre and BlackBerry Storm 2 performed well in the medium test, but produced significant signal loss when the very light touch was employed. The poorest performer of the bunch was the Motorola Droid, which featured &quot;significant waviness and stair-stepping,&quot; even with the medium touch test. In the light touch, signal drops were extremely common. &quot;On inferior touchscreens, it&amp;#x2019;s basically impossible to draw straight lines,&quot; MOTO reports. &quot;Instead, the lines look jagged or zig-zag, no matter how slowly you go, because the sensor size is too big, the touch-sampling rate is too low, and/or the algorithms that convert gestures into images are too non-linear to faithfully represent user inputs.&quot;
  3. Many layers account for the performance of a touchscreen But it all comes down to how well the electronics and the mechanical hardware are integrated.
  4. A projected capacitive touchscreen &amp;#x2014; the kind that&amp;#x2019;s usually used in phones &amp;#x2014; has a glass insulator coated with a transparent conductive layer. The layer is etched into a gridlike pattern. When a finger touches the surface of the screen, it distorts the electrostatic field. That can be measured as a change in capacitance.&amp;#xA0; The location of the touch is computed and it is passed on to a software application that relates the touch into actions for the device. Smartphone users have no way to measure exactly how well the capacitive sensor system on their phone is actually working. Their perception is based on the feedback they see on the screen, says Hsu. That means a touchscreen could be quite fast and accurate, but if the visual display doesn&amp;#x2019;t keep up, it won&amp;#x2019;t feel smooth or responsive.
  5. That&amp;#x2019;s where an ASIC, or application specific integrated circuit, is needed to measure and amplify the signals. Apple reportedly designed its own ASIC for the iPhone&amp;#x2019;s touchscreen, while most other companies buy an ASIC from one of the touchscreen chipmakers.
  6. Palm tries to tweak the touchscreen through firmware updates. One reason why Apple&amp;#x2019;s touch sensor is so sensitive to light touch is that the company uses a 12-volt power source for the sensing lines in the touchscreen sensor, versus the 3- to 5-volt power source that most other component manufacturers have. That higher voltage drive takes a toll on the battery life because it uses up more power, but it also translates into more accurate sensing, which means a better touch experience, say researchers at&amp;#xA0;Moto.
  7. JavaScript or HTML5 doesn&amp;#x2019;t support multi-touch events. Sense up to 5 touches. None of JS or HTML5 are designed to handle 5 OnClick events. WebOS also has tough time in playing multiple audio tags simultaneously. JS won&amp;#x2019;t be able to manually release memory. It relies on window onload refresh page to release memory.
  8. JavaScript or HTML5 doesn&amp;#x2019;t support multi-touch events. Sense up to 5 touches. None of JS or HTML5 are designed to handle 5 OnClick events. WebOS also has tough time in playing multiple audio tags simultaneously. JS won&amp;#x2019;t be able to manually release memory. It relies on window onload refresh page to release memory.
  9. Android - not open Palm - not open BlackBerry - not open Nokia - not open
  10. NASA&amp;#x2019;s Ames Research Center NASA Scientist Silicon sensing chip in micro-board with 64 nanosensors Detect trace amounts of ammonia, methane, chlorine gas
  11. This zoom lens by Conice attaches to your iPhone via a protective plastic case which snaps onto your iPhone, it can easily be removed when not in use. The lens and case weigh in at 4.69 ounces, which nearly doubles the 4.8 ounce weight of youriPhone, so you will need a steady hand while taking your photos.
  12. Open up External Accessories. Simplify hardware certification. Accept medical applications.