• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Beautiful Mind: iPhone Anatomy & Architecture
 

Beautiful Mind: iPhone Anatomy & Architecture

on

  • 9,003 views

O'Reilly Web20 Expo SF 2010 Conference Mobile Track

O'Reilly Web20 Expo SF 2010 Conference Mobile Track

Statistics

Views

Total Views
9,003
Views on SlideShare
8,781
Embed Views
222

Actions

Likes
32
Downloads
0
Comments
0

8 Embeds 222

http://www.slideshare.net 87
http://www.web2expo.com 79
http://mapesquera.blogspot.com 26
http://mapesquera.blogspot.com.es 24
http://mapesquera.blogspot.com.ar 2
http://mapesquera.blogspot.mx 2
http://www.lmodules.com 1
file:// 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • iPhone Tech Day, iPhone Dev Camp, Android Lab, Nokia Workshop, BlackBerry Conference, Palm Developer Day <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • 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 "solid performance" 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 "significant waviness and stair-stepping," even with the medium touch test. In the light touch, signal drops were extremely common. <br /> <br /> "On inferior touchscreens, it&#x2019;s basically impossible to draw straight lines," MOTO reports. "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." <br />
  • <br />
  • <br />
  • 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. <br />
  • <br />
  • <br />
  • <br />
  • A projected capacitive touchscreen &#x2014; the kind that&#x2019;s usually used in phones &#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.&#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. <br /> <br /> 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&#x2019;t keep up, it won&#x2019;t feel smooth or responsive. <br /> <br /> <br /> <br /> <br />
  • That&#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&#x2019;s touchscreen, while most other companies buy an ASIC from one of the touchscreen chipmakers. <br /> <br />
  • <br /> <br /> <br /> <br /> <br />
  • <br />
  • Palm tries to tweak the touchscreen through firmware updates. <br /> <br /> One reason why Apple&#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&#xA0;Moto. <br />
  • <br />
  • JavaScript or HTML5 doesn&#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&#x2019;t be able to manually release memory. It relies on window onload refresh page to release memory. <br />
  • JavaScript or HTML5 doesn&#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&#x2019;t be able to manually release memory. It relies on window onload refresh page to release memory. <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • Android - not open <br /> Palm - not open <br /> BlackBerry - not open <br /> Nokia - not open <br /> <br />
  • <br />
  • NASA&#x2019;s Ames Research Center NASA Scientist <br /> Silicon sensing chip in micro-board with 64 nanosensors <br /> Detect trace amounts of ammonia, methane, chlorine gas <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • 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. <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • Open up External Accessories. Simplify hardware certification. Accept medical applications. <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />

Beautiful Mind: iPhone Anatomy & Architecture Beautiful Mind: iPhone Anatomy & Architecture Presentation Transcript

  • 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