WWDC 2017
Session video and resources: https://developer.apple.com/videos/play/wwdc2017/713/ Provided by @mihriminaz
- Updated contacts framework
- Geocode CNPostalAddress
- Obtain a CNPostalAddress from a CLPlaceMark
- Address dictionary methods are deprecated..
- Supports geocoding with a locale overrides user preference
- Better heading estimates.
- Fully automatic
- Use CMDeviceMotion for raw heading (for AR etc)
- Accuracy (>=gps quality)
- Responsiveness - detects floors quickly
- Availability - even venue is not covered
- Interoperability - wireless accesories
- Now available on watchOS (previously available through HealthKit)
- Valuable specifically for navigation and fitness apps
- Workout apps must adopt - otherwise it won’t access to user location (3 steps: 1. Background modes-location updates, 2. locationManager.allowsBackgroundLocationUpdates = true 3. When app Is foreground locationManager.startLocationUpdating() -will continue on background)
- Use HKWorkoutSession
- Use CMPedometer for pedestrian distance..
- Now
- When-in-use or always
- New
- When-in-use authorization questioned to user
- Developer confusion
- Pursuit of magical experiences : always
- WhenInUse support is required!
NSLocationWhenInUseUsageDescription
- otherwise always authorization won’t work as well..NSLocationAlwaysAndWhenInUseUsageDescription
- Use all:
NSLocationWhenInUseUsageDescription
NSLocationAlwaysAndWhenInUseUsageDescription
NSLocationAlwaysUsageDescription
- Because for <11 iOS version devices to install your app
- To give options to the user
- Ask for the user only the type of authorization when you need that type First ask when in use, than always -> can be a better transition for user
- watchOS will ask for authorization prompt on watch itself.. NEW!!
- New arrow policy
- Hollow arrow when requesting
- Solid arrow when receiving
- Blue status bar for Always apps
- Matches user expectations