SlideShare a Scribd company logo
100




iOS Sensors
Where Mobile Begins
Roadmap   100




Roadmap
Where We’re Going
Teaser: What to Expect!   96




Teaser
What to Expect!
Teaser: What to Expect!   96




Teaser
What to Expect!




     Digital Camera
Teaser: What to Expect!                   96




Teaser
What to Expect!




                                            Audio Sampler

     Digital Camera
Teaser: What to Expect!                   96




Teaser
What to Expect!




Navigation System

                                            Audio Sampler

     Digital Camera
Teaser: What to Expect!                   96




Teaser
What to Expect!




                                            Air Level

Navigation System

                                            Audio Sampler

     Digital Camera
Teaser: What to Expect!                   96




Teaser
What to Expect!




            Ball Game

                                              Air Level

Navigation System

                                              Audio Sampler

     Digital Camera
Teaser: What to Expect!                   96




Teaser
What to Expect!

                                              Compass

            Ball Game

                                              Air Level

Navigation System

                                              Audio Sampler

     Digital Camera
Mobile vs. Desktop: What’s the Difference   92




Mobile vs. Desktop
What’s the Difference
Mobile vs. Desktop: What’s the Difference              92




Mobile vs. Desktop
What’s the Difference




    Speakers                                                      Speakers
Mobile vs. Desktop: What’s the Difference                92




Mobile vs. Desktop
What’s the Difference




   Speakers                                                        Speakers
  Microphone                                                      Microphone
Mobile vs. Desktop: What’s the Difference                92




Mobile vs. Desktop
What’s the Difference




   Speakers                                                        Speakers
  Microphone                                                      Microphone
    Camera                                                          Camera
Mobile vs. Desktop: What’s the Difference                92




Mobile vs. Desktop
What’s the Difference




   Speakers                                                        Speakers
  Microphone                                                      Microphone
    Camera                                                          Camera

        GPS
Mobile vs. Desktop: What’s the Difference                92




Mobile vs. Desktop
What’s the Difference




   Speakers                                                        Speakers
  Microphone                                                      Microphone
    Camera                                                          Camera

     GPS
Accelerometer
Mobile vs. Desktop: What’s the Difference                92




Mobile vs. Desktop
What’s the Difference




   Speakers                                                        Speakers
  Microphone                                                      Microphone
    Camera                                                          Camera

     GPS
Accelerometer
  Gyroscope
Mobile vs. Desktop: What’s the Difference                92




Mobile vs. Desktop
What’s the Difference




   Speakers                                                        Speakers
  Microphone                                                      Microphone
    Camera                                                          Camera

     GPS
Accelerometer
  Gyroscope
Magnetometer
Mobile vs. Desktop: What’s the Difference                92




Mobile vs. Desktop
What’s the Difference




   Speakers                                                        Speakers
  Microphone                                                      Microphone
    Camera                                                          Camera

     GPS
Accelerometer
                                                           Mobile Sensors
  Gyroscope
Magnetometer
Sensors in 12 Device Generations                  88




Sensors in Device Generations
Great Common Denominators
                                                           With iPod
All 12 Generations - 2007+                                 Without iPod
Sensors in 12 Device Generations                                       88




          Sensors in Device Generations
          Great Common Denominators
                                                                                        With iPod
          All 12 Generations - 2007+                                                    Without iPod
100.00%




 75.00%




 50.00%




 25.00%




    0%
           Speaker   Microphone   Accelerometer         GPS               Camera   Gyroscope   Magnetometer
Sensors in 7 Device Generations                                       84




          Sensors in Device Generations
          Great Common Denominators
                                                                                        With iPod
          Latest 7 Generations - 2010+                                                  Without iPod
100.00%




 75.00%




 50.00%




 25.00%




    0%
           Speaker   Microphone   Accelerometer         GPS               Camera   Gyroscope   Magnetometer
Sensors in 7 Device Generations                                       84




          Sensors in Device Generations
          Great Common Denominators
                                                                                        With iPod
          Latest 7 Generations - 2010+                                                  Without iPod
100.00%




 75.00%




 50.00%                                       Majority

 25.00%




    0%
           Speaker   Microphone   Accelerometer         GPS               Camera   Gyroscope   Magnetometer
Delegate Pattern   80




Delegate Pattern
Quick Look
Delegate Pattern   80




Delegate Pattern
Quick Look




  Delegate
Delegate Pattern     80




Delegate Pattern
Quick Look




  Delegate




             didArriveAtBar:
             didDrinkBeerNumber:
             didUpdateAlcoholLevel:
             wantsMeToComeHome:
             didCallCab:
             didEnterCab:
             didExitCab:
Roadmap   76




Roadmap
Where We’re Going
Light: Implementing a Camera   72




Light
Implementing a Camera
Light: Implementing a Camera                     72




        Light
         Implementing a Camera


// setup image picker controller
imagePickerController = [[UIImagePickerController alloc] init];
imagePickerController.allowsEditing = NO;
imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera;
imagePickerController.delegate = self;


// display
[viewController presentModalViewController:imagePickerController animated:YES];


// grab photo as soon as it was taken
-(void) imagePickerController:(UIImagePickerController *)picker /
didFinishPickingMediaWithInfo:(NSDictionary *)info{

    // captured image
    UIImage *image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
    
    // dismiss image picker
    [viewController dismissModalViewControllerAnimated:YES];
}
Light: Implementing a Camera                     72




        Light
         Implementing a Camera


// setup image picker controller
imagePickerController = [[UIImagePickerController alloc] init];
imagePickerController.allowsEditing = NO;
imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera;
imagePickerController.delegate = self;


// display
                           Camera Demo
[viewController presentModalViewController:imagePickerController animated:YES];


// grab photo as soon as it was taken
-(void) imagePickerController:(UIImagePickerController *)picker /
didFinishPickingMediaWithInfo:(NSDictionary *)info{

    // captured image
    UIImage *image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
    
    // dismiss image picker
    [viewController dismissModalViewControllerAnimated:YES];
}
Sound: Implementing a Sound Recorder   68




Sound
Implementing a Sound Recorder
Sound: Implementing a Sound Recorder                     68




         Sound
          Implementing a Sound Recorder

// get audio session
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
[audioSession setCategory:AVAudioSessionCategoryRecord error:nil];
[audioSession setActive:YES error:nil];

// some settings 
NSMutableDictionary *settings = [[NSMutableDictionary alloc] init];
[settings setValue:[NSNumber numberWithInt:kAudioFormatAppleIMA4] forKey:AVFormatIDKey];
[settings setValue:[NSNumber numberWithFloat:44100.0] forKey:AVSampleRateKey];
[settings setValue:[NSNumber numberWithInt:2] forKey:AVNumberOfChannelsKey];
    
tmpRecording = [NSURL fileURLWithPath:[NSTemporaryDirectory() /
stringByAppendingPathComponent:@"recording.caf"]];

// start recording  
audioRecorder = [[AVAudioRecorder alloc] initWithURL:tmpRecording settings:settings
error:nil];
[audioRecorder setDelegate:self];
[audioRecorder prepareToRecord];
[audioRecorder recordForDuration:2.0];
    
// do when recording is finished
- (void)audioRecorderDidFinishRecording:(AVAudioRecorder *)recorder successfully:(BOOL)flag{
    isRecording = NO;
    
}
Sound: Implementing a Sound Player   64




Sound
Implementing a Sound Player
Sound: Implementing a Sound Player               64




        Sound
         Implementing a Sound Player



// get audio session
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
[audioSession setCategory:AVAudioSessionCategoryPlayback error:nil];
[audioSession setActive:YES error:nil];
    
tmpRecording = [NSURL fileURLWithPath:[NSTemporaryDirectory() /
stringByAppendingPathComponent:@"recording.caf"]];

// start playing  
AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL:tmpRecording
error:nil];
[player setDelegate:self];
[player prepareToPlay];
[player play];
    
// do when recording is finished
- (void)audioRecorderDidFinishPlaying:(AVAudioRecorder *)recorder successfully:
(BOOL)flag{
    isPlaying = NO;  
}
Sound: Implementing a Sound Player               64




        Sound
         Implementing a Sound Player



// get audio session
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
[audioSession setCategory:AVAudioSessionCategoryPlayback error:nil];
[audioSession setActive:YES error:nil];
    

                            Sound Demo
tmpRecording = [NSURL fileURLWithPath:[NSTemporaryDirectory() /
stringByAppendingPathComponent:@"recording.caf"]];

// start playing  
AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL:tmpRecording
error:nil];
[player setDelegate:self];
[player prepareToPlay];
[player play];
    
// do when recording is finished
- (void)audioRecorderDidFinishPlaying:(AVAudioRecorder *)recorder successfully:
(BOOL)flag{
    isPlaying = NO;  
}
Location: Implementing a Positioning System   60




Location
Implementing a Positioning System
Location: Implementing a Positioning System   60




        Location
         Implementing a Positioning System



// create location manager
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters;
    
// start location update
[locationManager startUpdatingLocation];

// process position
-(void)locationManager:(CLLocationManager *)manager
   didUpdateToLocation:(CLLocation *)newLocation
          fromLocation:(CLLocation *)oldLocation{

   // access position
   float latitude = newLocation.coordinate.latitude;
   float longitude = newLocation.coordinate.longitude;

    // one position is enough
    [locationManager stopUpdatingLocation];
}
Location: Implementing a Positioning System   60




        Location
         Implementing a Positioning System



// create location manager
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters;
    

                       Positioning Demo
// start location update
[locationManager startUpdatingLocation];

// process position
-(void)locationManager:(CLLocationManager *)manager
   didUpdateToLocation:(CLLocation *)newLocation
          fromLocation:(CLLocation *)oldLocation{

   // access position
   float latitude = newLocation.coordinate.latitude;
   float longitude = newLocation.coordinate.longitude;

    // one position is enough
    [locationManager stopUpdatingLocation];
}
Magnetic Field: Implementing a Compass   56




Magnetic Field
Implementing a Compass
Magnetic Field: Implementing a Compass   56




      Magnetic Field
      Implementing a Compass




// setup location manager
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
[locationManager startUpdatingHeading];

// receive update of heading
-(void)locationManager:(CLLocationManager *)manager
      didUpdateHeading:(CLHeading *)newHeading{

  // device is pointing ‘heading’ away from north
  float heading = manager.heading.magneticHeading;
    
}
Magnetic Field: Implementing a Compass   56




      Magnetic Field
      Implementing a Compass




// setup location manager
locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
                     Compass Demo
[locationManager startUpdatingHeading];

// receive update of heading
-(void)locationManager:(CLLocationManager *)manager
      didUpdateHeading:(CLHeading *)newHeading{

  // device is pointing ‘heading’ away from north
  float heading = manager.heading.magneticHeading;
    
}
Roadmap   52




Roadmap
Where We’re Going
Accelerometer: May the Force be with you   48




Accelerometer
May the Force be with you
Accelerometer: May the Force be with you   48




Accelerometer
May the Force be with you


      Force
      in g-force




              -1.0

0.0



                     0.0
Accelerometer: May the Force be with you                       48




Accelerometer
May the Force be with you


      Force                                                           Rotation
      in g-force                                                      in degrees




              -1.0
                                                                        0.0
0.0                                                                                -0.5



                     0.0


                                                                                   0.5
Accelerometer: May the Force be with you                       48




Accelerometer
May the Force be with you


      Force                                                           Rotation
      in g-force                                                      in degrees




            Accelerometer Demo
              -1.0
                                                                        0.0
0.0                                                                                -0.5



                     0.0


                                                                                   0.5
Accelerometer: May the Force be with you   44




Accelerometer
May the Force be with you
Accelerometer: May the Force be with you   44




        Accelerometer
        May the Force be with you




// enable accelerometer
[[UIAccelerometer sharedAccelerometer] setDelegate:self];

// receive the acceleration values
- (void) accelerometer:(UIAccelerometer *)accelerometer
         didAccelerate:(UIAcceleration *)acceleration {

    // move ball
    ball.x += acceleration.x * kBallSpeed;
    ball.y += acceleration.y * kBallSpeed;

    // rotate air level
    level.rotation = acceleration.y * 90;
}
Gyroscope: I’m spinnin’ around   40




Gyroscope
I’m spinnin’ around
Gyroscope: I’m spinnin’ around   40




Gyroscope
I’m spinnin’ around


Rotation Rate
in radians per second




              0.0

0.0



                      0.0
Gyroscope: I’m spinnin’ around                             40




Gyroscope
I’m spinnin’ around


Rotation Rate                                           Absolute Rotation
in radians per second                                       in radians
                                              by adding all rates to reference frame




              0.0
                                                               0.78
0.0                                                                         0.0



                      0.0


                                                                            0.0
Gyroscope: I’m spinnin’ around                             40




Gyroscope
I’m spinnin’ around


Rotation Rate                                           Absolute Rotation
in radians per second                                       in radians
                                              by adding all rates to reference frame


                Gyroscope Demo
              0.0
                                                               0.78
0.0                                                                         0.0



                      0.0


                                                                            0.0
Gyroscope: I’m spinnin’ around   36




Gyroscope
I’m spinnin’ around
Gyroscope: I’m spinnin’ around   36




         Gyroscope
         I’m spinnin’ around


// create core motion manager
motionManager = [[CMMotionManager alloc] init];
motionManager.gyroUpdateInterval = 1.0/60.0;
[motionManager startGyroUpdates];

// frequently call the update method
[self schedule:@selector(update:)];

// frequently read the gyro data
-(void)update:(ccTime)dt {

    // absolute rotation
    rotationX += motionManager.gyroData.rotationRate.x;
    rotationY += motionManager.gyroData.rotationRate.y;

    // move ball
    ball.x += rotationX + kBallSpeed;
    ball.y += rotationY + kBallSpeed;

    // rotate air level
    level.rotation = rotationY * 180/PI;
}
CoreMotion: Use this!   32




CoreMotion
Use this!
CoreMotion: Use this!   32




CoreMotion
Use this!



                          +
                 Raw data
            Accelerometer + Gyroscope
CoreMotion: Use this!   32




CoreMotion
Use this!



                            +
                   Raw data
              Accelerometer + Gyroscope




            CoreMotion Framework

     6 Degrees of Freedom Inertial System
                  Dead Reckoning
CoreMotion: Use this!       28




CoreMotion
Use this!
                                     +
CoreMotion: Use this!       28




      CoreMotion
      Use this!
                                                  +


// create core motion manager
motionManager = [[CMMotionManager alloc] init];
motionManager.motionUpdateInterval = 1.0/60.0;
[motionManager startMotionUpdates];

// frequently call the update method
[self schedule:@selector(update:)];
CoreMotion: Use this!       20




CoreMotion
Use this!
                                     +
CoreMotion: Use this!              20




        CoreMotion
         Use this!
                                                               +
// frequently read the gyro data
-(void)update:(ccTime)dt {

    // absolute   rotation
    rotationX =   motionManager.deviceMotion.attitude.pitch;
    rotationY =   motionManager.deviceMotion.attitude.yaw;
    rotationZ =   motionManager.deviceMotion.attitude.roll;

    // absolute gravity
    gravityX = motionManager.deviceMotion.gravity.x;
    gravityY = motionManager.deviceMotion.gravity.y;
    gravityZ = motionManager.deviceMotion.gravity.z;

    // user acceleration
    accelerationX = motionManager.deviceMotion.userAcceleration.x;
    accelerationY = motionManager.deviceMotion.userAcceleration.y;
    accelerationZ = motionManager.deviceMotion.userAcceleration.z;

}
CoreMotion: Use this!              20




        CoreMotion
         Use this!
                                                               +
// frequently read the gyro data
-(void)update:(ccTime)dt {

    // absolute   rotation
    rotationX =   motionManager.deviceMotion.attitude.pitch;
    rotationY =
    rotationZ =        CoreMotion Demo
                  motionManager.deviceMotion.attitude.yaw;
                  motionManager.deviceMotion.attitude.roll;

    // absolute gravity
    gravityX = motionManager.deviceMotion.gravity.x;
    gravityY = motionManager.deviceMotion.gravity.y;
    gravityZ = motionManager.deviceMotion.gravity.z;

    // user acceleration
    accelerationX = motionManager.deviceMotion.userAcceleration.x;
    accelerationY = motionManager.deviceMotion.userAcceleration.y;
    accelerationZ = motionManager.deviceMotion.userAcceleration.z;

}
Roadmap   16




Roadmap
Where We’re Going
Summary: What we did not cover   10




Summary
What we did not cover
Summary: What we did not cover   10




Summary
What we did not cover




                        GPS Accuracy
Summary: What we did not cover   10




Summary
What we did not cover




               Shaking-Motion Events

                        GPS Accuracy
Summary: What we did not cover   10




Summary
What we did not cover




                  Recording Movies

               Shaking-Motion Events

                        GPS Accuracy
Summary: What we did not cover   10




Summary
What we did not cover



                  Sensor Availability

                  Recording Movies

               Shaking-Motion Events

                        GPS Accuracy
Summary: What we did not cover   10




Summary
What we did not cover



                  Sensor Availability

                  Recording Movies

               Shaking-Motion Events

                        GPS Accuracy
             http://developer.apple.com/library/ios
Summary: What we learned!   5




Summary
What we learned!
Summary: What we learned!     5




Summary
What we learned!




           Capturing                    Images
Summary: What we learned!     5




 Summary
 What we learned!




Recording & Playing                      Sound

            Capturing                    Images
Summary: What we learned!     5




 Summary
 What we learned!




         Geolocating                     Device

Recording & Playing                      Sound

            Capturing                    Images
Summary: What we learned!                   5




     Summary
     What we learned!




Reading Device Position            +         6 Degrees of Freedom


             Geolocating                     Device

   Recording & Playing                       Sound

                Capturing                    Images
Summary: What we learned!                   5




     Summary
     What we learned!


                    Finding                   Magnetic North


Reading Device Position             +         6 Degrees of Freedom


             Geolocating                      Device

   Recording & Playing                        Sound

                Capturing                     Images
Thank you: You learned a lot!   0




Thank you
You learned a lot!
Thank you: You learned a lot!                                0




                   Download!
        https://github.com/southdesign/SuperBall


                                                             Me!
Read!                                                 Thomas Fankhauser
                                                    tommylefunk@googlemail.com



                 Thank you                                  Hire!
                   You learned a lot!                   southdesign.de


                                                             Buy!
                                                          Beatfreak
                                                          PianoTabs
                                                         QuestionPad

More Related Content

What's hot

All about monitors2
All about monitors2All about monitors2
All about monitors2
Saumya Sood
 
Sony HVR-Z5E
Sony HVR-Z5ESony HVR-Z5E
Sony HVR-Z5E
AV ProfShop
 
Sony HVR-S270E
Sony HVR-S270ESony HVR-S270E
Sony HVR-S270E
AV ProfShop
 
Motion Sensor Presentation
Motion Sensor PresentationMotion Sensor Presentation
Motion Sensor Presentation
Fibaro USA
 
Katalóg Sekonic C-700, colormeter
Katalóg Sekonic C-700, colormeterKatalóg Sekonic C-700, colormeter
Katalóg Sekonic C-700, colormeter
Darian
 
Dukane 6340 dlp projector
Dukane 6340 dlp projectorDukane 6340 dlp projector
Dukane 6340 dlp projector
SchoolVision Inc.
 
Impact of cloud connected, location-aware, media-rich world on consumers, ent...
Impact of cloud connected, location-aware, media-rich world on consumers, ent...Impact of cloud connected, location-aware, media-rich world on consumers, ent...
Impact of cloud connected, location-aware, media-rich world on consumers, ent...
CSR
 
Robotics
RoboticsRobotics
Robotics
A Tê Hát
 
Izinova display-solution 2013
Izinova  display-solution 2013Izinova  display-solution 2013
Izinova display-solution 2013
openerp1
 
Games With Sensors: CommonSenses - A proposed health game platform
Games With Sensors: CommonSenses - A proposed health game platformGames With Sensors: CommonSenses - A proposed health game platform
Games With Sensors: CommonSenses - A proposed health game platform
James Burns
 
Elektor 0304-2020
Elektor 0304-2020Elektor 0304-2020
Elektor 0304-2020
khonarphub chikdee
 
Bringing Consumers a Premium Audio Experience
Bringing Consumers a Premium Audio ExperienceBringing Consumers a Premium Audio Experience
Bringing Consumers a Premium Audio Experience
Ellis Reid
 
Computer control using hand gestures
Computer control using hand gesturesComputer control using hand gestures
Computer control using hand gestures
RohithND
 
02 a pcam dcv specification sheet
02 a pcam dcv specification sheet02 a pcam dcv specification sheet
02 a pcam dcv specification sheet
Ilias Varsamis
 
D link dcs-7010 l brochure
D link dcs-7010 l brochureD link dcs-7010 l brochure
D link dcs-7010 l brochure
EUROMARITS, La Solution Pro Pour Tous
 

What's hot (15)

All about monitors2
All about monitors2All about monitors2
All about monitors2
 
Sony HVR-Z5E
Sony HVR-Z5ESony HVR-Z5E
Sony HVR-Z5E
 
Sony HVR-S270E
Sony HVR-S270ESony HVR-S270E
Sony HVR-S270E
 
Motion Sensor Presentation
Motion Sensor PresentationMotion Sensor Presentation
Motion Sensor Presentation
 
Katalóg Sekonic C-700, colormeter
Katalóg Sekonic C-700, colormeterKatalóg Sekonic C-700, colormeter
Katalóg Sekonic C-700, colormeter
 
Dukane 6340 dlp projector
Dukane 6340 dlp projectorDukane 6340 dlp projector
Dukane 6340 dlp projector
 
Impact of cloud connected, location-aware, media-rich world on consumers, ent...
Impact of cloud connected, location-aware, media-rich world on consumers, ent...Impact of cloud connected, location-aware, media-rich world on consumers, ent...
Impact of cloud connected, location-aware, media-rich world on consumers, ent...
 
Robotics
RoboticsRobotics
Robotics
 
Izinova display-solution 2013
Izinova  display-solution 2013Izinova  display-solution 2013
Izinova display-solution 2013
 
Games With Sensors: CommonSenses - A proposed health game platform
Games With Sensors: CommonSenses - A proposed health game platformGames With Sensors: CommonSenses - A proposed health game platform
Games With Sensors: CommonSenses - A proposed health game platform
 
Elektor 0304-2020
Elektor 0304-2020Elektor 0304-2020
Elektor 0304-2020
 
Bringing Consumers a Premium Audio Experience
Bringing Consumers a Premium Audio ExperienceBringing Consumers a Premium Audio Experience
Bringing Consumers a Premium Audio Experience
 
Computer control using hand gestures
Computer control using hand gesturesComputer control using hand gestures
Computer control using hand gestures
 
02 a pcam dcv specification sheet
02 a pcam dcv specification sheet02 a pcam dcv specification sheet
02 a pcam dcv specification sheet
 
D link dcs-7010 l brochure
D link dcs-7010 l brochureD link dcs-7010 l brochure
D link dcs-7010 l brochure
 

Similar to iOS Sensors

Augmented Reality: Beyond the Hype
Augmented Reality: Beyond the HypeAugmented Reality: Beyond the Hype
Augmented Reality: Beyond the Hype
Paul Coulton
 
Virtual Reality (VR) - technology and product overview
Virtual Reality (VR) - technology and product overviewVirtual Reality (VR) - technology and product overview
Virtual Reality (VR) - technology and product overview
Kun-Da Wu
 
Programmable watches
Programmable watchesProgrammable watches
Programmable watches
Dan Eisenreich
 
Мобильный Virtual Reality - что это такое и как работает / Алексей Рыбаков (D...
Мобильный Virtual Reality - что это такое и как работает / Алексей Рыбаков (D...Мобильный Virtual Reality - что это такое и как работает / Алексей Рыбаков (D...
Мобильный Virtual Reality - что это такое и как работает / Алексей Рыбаков (D...
Ontico
 
Track 1 session 2 - st dev con 2016 - dsp concepts - innovating iot+wearab...
Track 1   session 2 - st dev con 2016 -  dsp concepts - innovating iot+wearab...Track 1   session 2 - st dev con 2016 -  dsp concepts - innovating iot+wearab...
Track 1 session 2 - st dev con 2016 - dsp concepts - innovating iot+wearab...
ST_World
 
“Designing the Next Ultra-Low-Power Always-On Solution,” a Presentation from ...
“Designing the Next Ultra-Low-Power Always-On Solution,” a Presentation from ...“Designing the Next Ultra-Low-Power Always-On Solution,” a Presentation from ...
“Designing the Next Ultra-Low-Power Always-On Solution,” a Presentation from ...
Edge AI and Vision Alliance
 
On-device Motion Tracking for Immersive VR
On-device Motion Tracking for Immersive VROn-device Motion Tracking for Immersive VR
On-device Motion Tracking for Immersive VR
Qualcomm Research
 
Trends in mobile sensors: how smartphones keep changing our life
Trends in mobile sensors: how smartphones keep changing our lifeTrends in mobile sensors: how smartphones keep changing our life
Trends in mobile sensors: how smartphones keep changing our life
SnapbackLabs
 
2014 mobile trends_27th Jan
2014 mobile trends_27th Jan2014 mobile trends_27th Jan
2014 mobile trends_27th Jan
momoahmedabad
 
Ads injection and Metrics for Online Radio by Patrick Roger Adswizz @ Jornada...
Ads injection and Metrics for Online Radio by Patrick Roger Adswizz @ Jornada...Ads injection and Metrics for Online Radio by Patrick Roger Adswizz @ Jornada...
Ads injection and Metrics for Online Radio by Patrick Roger Adswizz @ Jornada...
ACTUONDA
 
Wearable Computing and Human Computer Interfaces
Wearable Computing and Human Computer InterfacesWearable Computing and Human Computer Interfaces
Wearable Computing and Human Computer Interfaces
Jeffrey Funk
 
"Achieving High-Performance Vision Processing for Embedded Applications with ...
"Achieving High-Performance Vision Processing for Embedded Applications with ..."Achieving High-Performance Vision Processing for Embedded Applications with ...
"Achieving High-Performance Vision Processing for Embedded Applications with ...
Edge AI and Vision Alliance
 
gesture recognition!
gesture recognition!gesture recognition!
gesture recognition!
mehran kordavani
 
Sensors intigration.docx
Sensors intigration.docxSensors intigration.docx
Sensors intigration.docx
DIVEETHMp
 
FUTURE-PROOFING VEHICLES BY LEVERAGING PERCEPTION RADAR
FUTURE-PROOFING VEHICLES BY LEVERAGING PERCEPTION RADARFUTURE-PROOFING VEHICLES BY LEVERAGING PERCEPTION RADAR
FUTURE-PROOFING VEHICLES BY LEVERAGING PERCEPTION RADAR
iQHub
 
Алексей Рыбаков (Senior Engineer,Technical Evangelist DataArt )
Алексей Рыбаков (Senior Engineer,Technical Evangelist DataArt ) Алексей Рыбаков (Senior Engineer,Technical Evangelist DataArt )
Алексей Рыбаков (Senior Engineer,Technical Evangelist DataArt )
Alina Vilk
 
Goertek’s Experience with the Qualcomm Virtual Reality (VR) Accelerator Program
Goertek’s Experience with the Qualcomm Virtual Reality (VR) Accelerator ProgramGoertek’s Experience with the Qualcomm Virtual Reality (VR) Accelerator Program
Goertek’s Experience with the Qualcomm Virtual Reality (VR) Accelerator Program
AugmentedWorldExpo
 
Mixed Reality Interfaces and Product Management
Mixed Reality Interfaces and Product ManagementMixed Reality Interfaces and Product Management
Mixed Reality Interfaces and Product Management
Jeremy Horn
 
Augmented Reality
Augmented RealityAugmented Reality
Augmented Reality
Kaviyaraj R
 
I Adept Marketing, New Delhi, VIBRATION MONITORING SERVICES
I Adept Marketing, New Delhi, VIBRATION MONITORING SERVICESI Adept Marketing, New Delhi, VIBRATION MONITORING SERVICES
I Adept Marketing, New Delhi, VIBRATION MONITORING SERVICES
IndiaMART InterMESH Limited
 

Similar to iOS Sensors (20)

Augmented Reality: Beyond the Hype
Augmented Reality: Beyond the HypeAugmented Reality: Beyond the Hype
Augmented Reality: Beyond the Hype
 
Virtual Reality (VR) - technology and product overview
Virtual Reality (VR) - technology and product overviewVirtual Reality (VR) - technology and product overview
Virtual Reality (VR) - technology and product overview
 
Programmable watches
Programmable watchesProgrammable watches
Programmable watches
 
Мобильный Virtual Reality - что это такое и как работает / Алексей Рыбаков (D...
Мобильный Virtual Reality - что это такое и как работает / Алексей Рыбаков (D...Мобильный Virtual Reality - что это такое и как работает / Алексей Рыбаков (D...
Мобильный Virtual Reality - что это такое и как работает / Алексей Рыбаков (D...
 
Track 1 session 2 - st dev con 2016 - dsp concepts - innovating iot+wearab...
Track 1   session 2 - st dev con 2016 -  dsp concepts - innovating iot+wearab...Track 1   session 2 - st dev con 2016 -  dsp concepts - innovating iot+wearab...
Track 1 session 2 - st dev con 2016 - dsp concepts - innovating iot+wearab...
 
“Designing the Next Ultra-Low-Power Always-On Solution,” a Presentation from ...
“Designing the Next Ultra-Low-Power Always-On Solution,” a Presentation from ...“Designing the Next Ultra-Low-Power Always-On Solution,” a Presentation from ...
“Designing the Next Ultra-Low-Power Always-On Solution,” a Presentation from ...
 
On-device Motion Tracking for Immersive VR
On-device Motion Tracking for Immersive VROn-device Motion Tracking for Immersive VR
On-device Motion Tracking for Immersive VR
 
Trends in mobile sensors: how smartphones keep changing our life
Trends in mobile sensors: how smartphones keep changing our lifeTrends in mobile sensors: how smartphones keep changing our life
Trends in mobile sensors: how smartphones keep changing our life
 
2014 mobile trends_27th Jan
2014 mobile trends_27th Jan2014 mobile trends_27th Jan
2014 mobile trends_27th Jan
 
Ads injection and Metrics for Online Radio by Patrick Roger Adswizz @ Jornada...
Ads injection and Metrics for Online Radio by Patrick Roger Adswizz @ Jornada...Ads injection and Metrics for Online Radio by Patrick Roger Adswizz @ Jornada...
Ads injection and Metrics for Online Radio by Patrick Roger Adswizz @ Jornada...
 
Wearable Computing and Human Computer Interfaces
Wearable Computing and Human Computer InterfacesWearable Computing and Human Computer Interfaces
Wearable Computing and Human Computer Interfaces
 
"Achieving High-Performance Vision Processing for Embedded Applications with ...
"Achieving High-Performance Vision Processing for Embedded Applications with ..."Achieving High-Performance Vision Processing for Embedded Applications with ...
"Achieving High-Performance Vision Processing for Embedded Applications with ...
 
gesture recognition!
gesture recognition!gesture recognition!
gesture recognition!
 
Sensors intigration.docx
Sensors intigration.docxSensors intigration.docx
Sensors intigration.docx
 
FUTURE-PROOFING VEHICLES BY LEVERAGING PERCEPTION RADAR
FUTURE-PROOFING VEHICLES BY LEVERAGING PERCEPTION RADARFUTURE-PROOFING VEHICLES BY LEVERAGING PERCEPTION RADAR
FUTURE-PROOFING VEHICLES BY LEVERAGING PERCEPTION RADAR
 
Алексей Рыбаков (Senior Engineer,Technical Evangelist DataArt )
Алексей Рыбаков (Senior Engineer,Technical Evangelist DataArt ) Алексей Рыбаков (Senior Engineer,Technical Evangelist DataArt )
Алексей Рыбаков (Senior Engineer,Technical Evangelist DataArt )
 
Goertek’s Experience with the Qualcomm Virtual Reality (VR) Accelerator Program
Goertek’s Experience with the Qualcomm Virtual Reality (VR) Accelerator ProgramGoertek’s Experience with the Qualcomm Virtual Reality (VR) Accelerator Program
Goertek’s Experience with the Qualcomm Virtual Reality (VR) Accelerator Program
 
Mixed Reality Interfaces and Product Management
Mixed Reality Interfaces and Product ManagementMixed Reality Interfaces and Product Management
Mixed Reality Interfaces and Product Management
 
Augmented Reality
Augmented RealityAugmented Reality
Augmented Reality
 
I Adept Marketing, New Delhi, VIBRATION MONITORING SERVICES
I Adept Marketing, New Delhi, VIBRATION MONITORING SERVICESI Adept Marketing, New Delhi, VIBRATION MONITORING SERVICES
I Adept Marketing, New Delhi, VIBRATION MONITORING SERVICES
 

More from Thomas Fankhauser

Hands on AngularJS
Hands on AngularJSHands on AngularJS
Hands on AngularJS
Thomas Fankhauser
 
Restats
RestatsRestats
Github - Social Coding
Github - Social CodingGithub - Social Coding
Github - Social Coding
Thomas Fankhauser
 
Benji - Ruby on Rails Profiler
Benji - Ruby on Rails ProfilerBenji - Ruby on Rails Profiler
Benji - Ruby on Rails Profiler
Thomas Fankhauser
 
Railscale
RailscaleRailscale
Super Social Everybody
Super Social EverybodySuper Social Everybody
Super Social Everybody
Thomas Fankhauser
 
OAuth 101
OAuth 101OAuth 101

More from Thomas Fankhauser (7)

Hands on AngularJS
Hands on AngularJSHands on AngularJS
Hands on AngularJS
 
Restats
RestatsRestats
Restats
 
Github - Social Coding
Github - Social CodingGithub - Social Coding
Github - Social Coding
 
Benji - Ruby on Rails Profiler
Benji - Ruby on Rails ProfilerBenji - Ruby on Rails Profiler
Benji - Ruby on Rails Profiler
 
Railscale
RailscaleRailscale
Railscale
 
Super Social Everybody
Super Social EverybodySuper Social Everybody
Super Social Everybody
 
OAuth 101
OAuth 101OAuth 101
OAuth 101
 

Recently uploaded

Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
saastr
 
AWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptxAWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptx
HarisZaheer8
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
 
Trusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process MiningTrusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process Mining
LucaBarbaro3
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
Finale of the Year: Apply for Next One!
Finale of the Year: Apply for Next One!Finale of the Year: Apply for Next One!
Finale of the Year: Apply for Next One!
GDSC PJATK
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
Postman
 
dbms calicut university B. sc Cs 4th sem.pdf
dbms  calicut university B. sc Cs 4th sem.pdfdbms  calicut university B. sc Cs 4th sem.pdf
dbms calicut university B. sc Cs 4th sem.pdf
Shinana2
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Wask
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
ssuserfac0301
 
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStrDeep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
saastr
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Tatiana Kojar
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
MichaelKnudsen27
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
Azure API Management to expose backend services securely
Azure API Management to expose backend services securelyAzure API Management to expose backend services securely
Azure API Management to expose backend services securely
Dinusha Kumarasiri
 

Recently uploaded (20)

Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
Deep Dive: AI-Powered Marketing to Get More Leads and Customers with HyperGro...
 
AWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptxAWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptx
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
 
Trusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process MiningTrusted Execution Environment for Decentralized Process Mining
Trusted Execution Environment for Decentralized Process Mining
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
Finale of the Year: Apply for Next One!
Finale of the Year: Apply for Next One!Finale of the Year: Apply for Next One!
Finale of the Year: Apply for Next One!
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
 
dbms calicut university B. sc Cs 4th sem.pdf
dbms  calicut university B. sc Cs 4th sem.pdfdbms  calicut university B. sc Cs 4th sem.pdf
dbms calicut university B. sc Cs 4th sem.pdf
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
 
Taking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdfTaking AI to the Next Level in Manufacturing.pdf
Taking AI to the Next Level in Manufacturing.pdf
 
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStrDeep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
Deep Dive: Getting Funded with Jason Jason Lemkin Founder & CEO @ SaaStr
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
Azure API Management to expose backend services securely
Azure API Management to expose backend services securelyAzure API Management to expose backend services securely
Azure API Management to expose backend services securely
 

iOS Sensors

  • 2. Roadmap 100 Roadmap Where We’re Going
  • 3. Teaser: What to Expect! 96 Teaser What to Expect!
  • 4. Teaser: What to Expect! 96 Teaser What to Expect! Digital Camera
  • 5. Teaser: What to Expect! 96 Teaser What to Expect! Audio Sampler Digital Camera
  • 6. Teaser: What to Expect! 96 Teaser What to Expect! Navigation System Audio Sampler Digital Camera
  • 7. Teaser: What to Expect! 96 Teaser What to Expect! Air Level Navigation System Audio Sampler Digital Camera
  • 8. Teaser: What to Expect! 96 Teaser What to Expect! Ball Game Air Level Navigation System Audio Sampler Digital Camera
  • 9. Teaser: What to Expect! 96 Teaser What to Expect! Compass Ball Game Air Level Navigation System Audio Sampler Digital Camera
  • 10. Mobile vs. Desktop: What’s the Difference 92 Mobile vs. Desktop What’s the Difference
  • 11. Mobile vs. Desktop: What’s the Difference 92 Mobile vs. Desktop What’s the Difference Speakers Speakers
  • 12. Mobile vs. Desktop: What’s the Difference 92 Mobile vs. Desktop What’s the Difference Speakers Speakers Microphone Microphone
  • 13. Mobile vs. Desktop: What’s the Difference 92 Mobile vs. Desktop What’s the Difference Speakers Speakers Microphone Microphone Camera Camera
  • 14. Mobile vs. Desktop: What’s the Difference 92 Mobile vs. Desktop What’s the Difference Speakers Speakers Microphone Microphone Camera Camera GPS
  • 15. Mobile vs. Desktop: What’s the Difference 92 Mobile vs. Desktop What’s the Difference Speakers Speakers Microphone Microphone Camera Camera GPS Accelerometer
  • 16. Mobile vs. Desktop: What’s the Difference 92 Mobile vs. Desktop What’s the Difference Speakers Speakers Microphone Microphone Camera Camera GPS Accelerometer Gyroscope
  • 17. Mobile vs. Desktop: What’s the Difference 92 Mobile vs. Desktop What’s the Difference Speakers Speakers Microphone Microphone Camera Camera GPS Accelerometer Gyroscope Magnetometer
  • 18. Mobile vs. Desktop: What’s the Difference 92 Mobile vs. Desktop What’s the Difference Speakers Speakers Microphone Microphone Camera Camera GPS Accelerometer Mobile Sensors Gyroscope Magnetometer
  • 19. Sensors in 12 Device Generations 88 Sensors in Device Generations Great Common Denominators With iPod All 12 Generations - 2007+ Without iPod
  • 20. Sensors in 12 Device Generations 88 Sensors in Device Generations Great Common Denominators With iPod All 12 Generations - 2007+ Without iPod 100.00% 75.00% 50.00% 25.00% 0% Speaker Microphone Accelerometer GPS Camera Gyroscope Magnetometer
  • 21. Sensors in 7 Device Generations 84 Sensors in Device Generations Great Common Denominators With iPod Latest 7 Generations - 2010+ Without iPod 100.00% 75.00% 50.00% 25.00% 0% Speaker Microphone Accelerometer GPS Camera Gyroscope Magnetometer
  • 22. Sensors in 7 Device Generations 84 Sensors in Device Generations Great Common Denominators With iPod Latest 7 Generations - 2010+ Without iPod 100.00% 75.00% 50.00% Majority 25.00% 0% Speaker Microphone Accelerometer GPS Camera Gyroscope Magnetometer
  • 23. Delegate Pattern 80 Delegate Pattern Quick Look
  • 24. Delegate Pattern 80 Delegate Pattern Quick Look Delegate
  • 25. Delegate Pattern 80 Delegate Pattern Quick Look Delegate didArriveAtBar: didDrinkBeerNumber: didUpdateAlcoholLevel: wantsMeToComeHome: didCallCab: didEnterCab: didExitCab:
  • 26. Roadmap 76 Roadmap Where We’re Going
  • 27. Light: Implementing a Camera 72 Light Implementing a Camera
  • 28. Light: Implementing a Camera 72 Light Implementing a Camera // setup image picker controller imagePickerController = [[UIImagePickerController alloc] init]; imagePickerController.allowsEditing = NO; imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera; imagePickerController.delegate = self; // display [viewController presentModalViewController:imagePickerController animated:YES]; // grab photo as soon as it was taken -(void) imagePickerController:(UIImagePickerController *)picker / didFinishPickingMediaWithInfo:(NSDictionary *)info{     // captured image     UIImage *image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];          // dismiss image picker     [viewController dismissModalViewControllerAnimated:YES]; }
  • 29. Light: Implementing a Camera 72 Light Implementing a Camera // setup image picker controller imagePickerController = [[UIImagePickerController alloc] init]; imagePickerController.allowsEditing = NO; imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera; imagePickerController.delegate = self; // display Camera Demo [viewController presentModalViewController:imagePickerController animated:YES]; // grab photo as soon as it was taken -(void) imagePickerController:(UIImagePickerController *)picker / didFinishPickingMediaWithInfo:(NSDictionary *)info{     // captured image     UIImage *image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];          // dismiss image picker     [viewController dismissModalViewControllerAnimated:YES]; }
  • 30. Sound: Implementing a Sound Recorder 68 Sound Implementing a Sound Recorder
  • 31. Sound: Implementing a Sound Recorder 68 Sound Implementing a Sound Recorder // get audio session AVAudioSession *audioSession = [AVAudioSession sharedInstance]; [audioSession setCategory:AVAudioSessionCategoryRecord error:nil]; [audioSession setActive:YES error:nil]; // some settings  NSMutableDictionary *settings = [[NSMutableDictionary alloc] init]; [settings setValue:[NSNumber numberWithInt:kAudioFormatAppleIMA4] forKey:AVFormatIDKey]; [settings setValue:[NSNumber numberWithFloat:44100.0] forKey:AVSampleRateKey]; [settings setValue:[NSNumber numberWithInt:2] forKey:AVNumberOfChannelsKey];      tmpRecording = [NSURL fileURLWithPath:[NSTemporaryDirectory() / stringByAppendingPathComponent:@"recording.caf"]]; // start recording   audioRecorder = [[AVAudioRecorder alloc] initWithURL:tmpRecording settings:settings error:nil]; [audioRecorder setDelegate:self]; [audioRecorder prepareToRecord]; [audioRecorder recordForDuration:2.0];      // do when recording is finished - (void)audioRecorderDidFinishRecording:(AVAudioRecorder *)recorder successfully:(BOOL)flag{     isRecording = NO;      }
  • 32. Sound: Implementing a Sound Player 64 Sound Implementing a Sound Player
  • 33. Sound: Implementing a Sound Player 64 Sound Implementing a Sound Player // get audio session AVAudioSession *audioSession = [AVAudioSession sharedInstance]; [audioSession setCategory:AVAudioSessionCategoryPlayback error:nil]; [audioSession setActive:YES error:nil];      tmpRecording = [NSURL fileURLWithPath:[NSTemporaryDirectory() / stringByAppendingPathComponent:@"recording.caf"]]; // start playing   AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL:tmpRecording error:nil]; [player setDelegate:self]; [player prepareToPlay]; [player play];      // do when recording is finished - (void)audioRecorderDidFinishPlaying:(AVAudioRecorder *)recorder successfully: (BOOL)flag{     isPlaying = NO;   }
  • 34. Sound: Implementing a Sound Player 64 Sound Implementing a Sound Player // get audio session AVAudioSession *audioSession = [AVAudioSession sharedInstance]; [audioSession setCategory:AVAudioSessionCategoryPlayback error:nil]; [audioSession setActive:YES error:nil];      Sound Demo tmpRecording = [NSURL fileURLWithPath:[NSTemporaryDirectory() / stringByAppendingPathComponent:@"recording.caf"]]; // start playing   AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL:tmpRecording error:nil]; [player setDelegate:self]; [player prepareToPlay]; [player play];      // do when recording is finished - (void)audioRecorderDidFinishPlaying:(AVAudioRecorder *)recorder successfully: (BOOL)flag{     isPlaying = NO;   }
  • 35. Location: Implementing a Positioning System 60 Location Implementing a Positioning System
  • 36. Location: Implementing a Positioning System 60 Location Implementing a Positioning System // create location manager locationManager = [[CLLocationManager alloc] init]; locationManager.delegate = self; locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters;      // start location update [locationManager startUpdatingLocation]; // process position -(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation{ // access position float latitude = newLocation.coordinate.latitude; float longitude = newLocation.coordinate.longitude;     // one position is enough     [locationManager stopUpdatingLocation]; }
  • 37. Location: Implementing a Positioning System 60 Location Implementing a Positioning System // create location manager locationManager = [[CLLocationManager alloc] init]; locationManager.delegate = self; locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters;      Positioning Demo // start location update [locationManager startUpdatingLocation]; // process position -(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation{ // access position float latitude = newLocation.coordinate.latitude; float longitude = newLocation.coordinate.longitude;     // one position is enough     [locationManager stopUpdatingLocation]; }
  • 38. Magnetic Field: Implementing a Compass 56 Magnetic Field Implementing a Compass
  • 39. Magnetic Field: Implementing a Compass 56 Magnetic Field Implementing a Compass // setup location manager locationManager = [[CLLocationManager alloc] init]; locationManager.delegate = self; [locationManager startUpdatingHeading]; // receive update of heading -(void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading{ // device is pointing ‘heading’ away from north float heading = manager.heading.magneticHeading;      }
  • 40. Magnetic Field: Implementing a Compass 56 Magnetic Field Implementing a Compass // setup location manager locationManager = [[CLLocationManager alloc] init]; locationManager.delegate = self; Compass Demo [locationManager startUpdatingHeading]; // receive update of heading -(void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading{ // device is pointing ‘heading’ away from north float heading = manager.heading.magneticHeading;      }
  • 41. Roadmap 52 Roadmap Where We’re Going
  • 42. Accelerometer: May the Force be with you 48 Accelerometer May the Force be with you
  • 43. Accelerometer: May the Force be with you 48 Accelerometer May the Force be with you Force in g-force -1.0 0.0 0.0
  • 44. Accelerometer: May the Force be with you 48 Accelerometer May the Force be with you Force Rotation in g-force in degrees -1.0 0.0 0.0 -0.5 0.0 0.5
  • 45. Accelerometer: May the Force be with you 48 Accelerometer May the Force be with you Force Rotation in g-force in degrees Accelerometer Demo -1.0 0.0 0.0 -0.5 0.0 0.5
  • 46. Accelerometer: May the Force be with you 44 Accelerometer May the Force be with you
  • 47. Accelerometer: May the Force be with you 44 Accelerometer May the Force be with you // enable accelerometer [[UIAccelerometer sharedAccelerometer] setDelegate:self]; // receive the acceleration values - (void) accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration { // move ball ball.x += acceleration.x * kBallSpeed; ball.y += acceleration.y * kBallSpeed; // rotate air level level.rotation = acceleration.y * 90; }
  • 48. Gyroscope: I’m spinnin’ around 40 Gyroscope I’m spinnin’ around
  • 49. Gyroscope: I’m spinnin’ around 40 Gyroscope I’m spinnin’ around Rotation Rate in radians per second 0.0 0.0 0.0
  • 50. Gyroscope: I’m spinnin’ around 40 Gyroscope I’m spinnin’ around Rotation Rate Absolute Rotation in radians per second in radians by adding all rates to reference frame 0.0 0.78 0.0 0.0 0.0 0.0
  • 51. Gyroscope: I’m spinnin’ around 40 Gyroscope I’m spinnin’ around Rotation Rate Absolute Rotation in radians per second in radians by adding all rates to reference frame Gyroscope Demo 0.0 0.78 0.0 0.0 0.0 0.0
  • 52. Gyroscope: I’m spinnin’ around 36 Gyroscope I’m spinnin’ around
  • 53. Gyroscope: I’m spinnin’ around 36 Gyroscope I’m spinnin’ around // create core motion manager motionManager = [[CMMotionManager alloc] init]; motionManager.gyroUpdateInterval = 1.0/60.0; [motionManager startGyroUpdates]; // frequently call the update method [self schedule:@selector(update:)]; // frequently read the gyro data -(void)update:(ccTime)dt { // absolute rotation rotationX += motionManager.gyroData.rotationRate.x; rotationY += motionManager.gyroData.rotationRate.y; // move ball ball.x += rotationX + kBallSpeed; ball.y += rotationY + kBallSpeed; // rotate air level level.rotation = rotationY * 180/PI; }
  • 54. CoreMotion: Use this! 32 CoreMotion Use this!
  • 55. CoreMotion: Use this! 32 CoreMotion Use this! + Raw data Accelerometer + Gyroscope
  • 56. CoreMotion: Use this! 32 CoreMotion Use this! + Raw data Accelerometer + Gyroscope CoreMotion Framework 6 Degrees of Freedom Inertial System Dead Reckoning
  • 57. CoreMotion: Use this! 28 CoreMotion Use this! +
  • 58. CoreMotion: Use this! 28 CoreMotion Use this! + // create core motion manager motionManager = [[CMMotionManager alloc] init]; motionManager.motionUpdateInterval = 1.0/60.0; [motionManager startMotionUpdates]; // frequently call the update method [self schedule:@selector(update:)];
  • 59. CoreMotion: Use this! 20 CoreMotion Use this! +
  • 60. CoreMotion: Use this! 20 CoreMotion Use this! + // frequently read the gyro data -(void)update:(ccTime)dt { // absolute rotation rotationX = motionManager.deviceMotion.attitude.pitch; rotationY = motionManager.deviceMotion.attitude.yaw; rotationZ = motionManager.deviceMotion.attitude.roll; // absolute gravity gravityX = motionManager.deviceMotion.gravity.x; gravityY = motionManager.deviceMotion.gravity.y; gravityZ = motionManager.deviceMotion.gravity.z; // user acceleration accelerationX = motionManager.deviceMotion.userAcceleration.x; accelerationY = motionManager.deviceMotion.userAcceleration.y; accelerationZ = motionManager.deviceMotion.userAcceleration.z; }
  • 61. CoreMotion: Use this! 20 CoreMotion Use this! + // frequently read the gyro data -(void)update:(ccTime)dt { // absolute rotation rotationX = motionManager.deviceMotion.attitude.pitch; rotationY = rotationZ = CoreMotion Demo motionManager.deviceMotion.attitude.yaw; motionManager.deviceMotion.attitude.roll; // absolute gravity gravityX = motionManager.deviceMotion.gravity.x; gravityY = motionManager.deviceMotion.gravity.y; gravityZ = motionManager.deviceMotion.gravity.z; // user acceleration accelerationX = motionManager.deviceMotion.userAcceleration.x; accelerationY = motionManager.deviceMotion.userAcceleration.y; accelerationZ = motionManager.deviceMotion.userAcceleration.z; }
  • 62. Roadmap 16 Roadmap Where We’re Going
  • 63. Summary: What we did not cover 10 Summary What we did not cover
  • 64. Summary: What we did not cover 10 Summary What we did not cover GPS Accuracy
  • 65. Summary: What we did not cover 10 Summary What we did not cover Shaking-Motion Events GPS Accuracy
  • 66. Summary: What we did not cover 10 Summary What we did not cover Recording Movies Shaking-Motion Events GPS Accuracy
  • 67. Summary: What we did not cover 10 Summary What we did not cover Sensor Availability Recording Movies Shaking-Motion Events GPS Accuracy
  • 68. Summary: What we did not cover 10 Summary What we did not cover Sensor Availability Recording Movies Shaking-Motion Events GPS Accuracy http://developer.apple.com/library/ios
  • 69. Summary: What we learned! 5 Summary What we learned!
  • 70. Summary: What we learned! 5 Summary What we learned! Capturing Images
  • 71. Summary: What we learned! 5 Summary What we learned! Recording & Playing Sound Capturing Images
  • 72. Summary: What we learned! 5 Summary What we learned! Geolocating Device Recording & Playing Sound Capturing Images
  • 73. Summary: What we learned! 5 Summary What we learned! Reading Device Position + 6 Degrees of Freedom Geolocating Device Recording & Playing Sound Capturing Images
  • 74. Summary: What we learned! 5 Summary What we learned! Finding Magnetic North Reading Device Position + 6 Degrees of Freedom Geolocating Device Recording & Playing Sound Capturing Images
  • 75. Thank you: You learned a lot! 0 Thank you You learned a lot!
  • 76. Thank you: You learned a lot! 0 Download! https://github.com/southdesign/SuperBall Me! Read! Thomas Fankhauser tommylefunk@googlemail.com Thank you Hire! You learned a lot! southdesign.de Buy! Beatfreak PianoTabs QuestionPad