iOS 17 Public Release
Overview
iOS 17 was released on September 18, 2023, bringing significant changes that impact both users and developers. This release includes new features like StandBy mode, interactive widgets, Contact Posters, and significant improvements to autocorrect functionality.
Why This Matters for iOS Developers
iOS 17 introduces several APIs and features that require developer attention to fully leverage the platform’s capabilities and ensure apps remain compatible and competitive.
Critical Changes
-
Interactive Widgets: Users now expect widgets to be interactive, not just informational. Apps without interactive widgets may be perceived as outdated.
-
Privacy Changes: Additional privacy requirements and permissions that may impact data collection and user tracking capabilities.
-
API Deprecations: Several older APIs have been deprecated and will require migration to newer alternatives.
-
Performance Expectations: iOS 17 sets new benchmarks for app performance, particularly around launch times and battery usage.
Key Features to Implement
Interactive Widgets
Widgets in iOS 17 support direct interaction without opening the app, including:
- Checkboxes
- Buttons
- Toggles
- Text fields (limited)
struct MyInteractiveWidget: Widget {
var body: some WidgetConfiguration {
StaticConfiguration(
kind: "MyWidget",
provider: MyTimelineProvider()
) { entry in
MyWidgetView(entry: entry)
}
.configurationDisplayName("My Interactive Widget")
.description("Demonstrates interactive elements")
.supportedFamilies([.systemSmall, .systemMedium])
}
}
StandBy Mode Support
When iPhones are charging in landscape orientation, StandBy mode provides a full-screen experience. Considerations:
- Ensure your widgets look good at larger sizes
- Test notifications in StandBy context
- Consider StandBy-specific features for relevant apps (alarms, timers, etc.)
Contact Posters
Apps that deal with contacts can leverage Contact Posters API:
// Example of setting a contact poster
let poster = CNContactPoster()
poster.imageData = imageData
poster.imageFilter = .vibrant
contact.setValue(poster, forKey: "poster")
Testing Recommendations
- Test all app features thoroughly on iOS 17 devices
- Pay special attention to:
- Widget functionality
- Background processing
- Notification delivery
- System integration points
Submission Requirements
When submitting iOS 17-compatible apps to the App Store:
- Update your app’s privacy declarations
- Ensure compliance with new App Review guidelines
- Test on multiple device types, especially those with dynamic island