# SDK 17

Airship SDK 17 for iOS and Android delivers new features for Journeys and in-app experiences, updated and additional modules, and more.

Changes to your app depend on your implementation of Airship. Please make sure to review the migration guides and changelogs linked below. In the coming weeks, we will also update our frameworks (Flutter, React Native, etc.) to SDK 17. 

## New features

* **More ways to create** [Journeys](https://www.airship.com/docs/reference/glossary/#journey) — Previously you could route users to another [Sequence](https://www.airship.com/docs/reference/glossary/#sequence) when all the messages in the current sequence were delivered or when an exit event occurred. Now you also have the option to route to a [Scene](https://www.airship.com/docs/reference/glossary/#scene), [Survey](https://www.airship.com/docs/reference/glossary/#survey), or [In-App Automation](https://www.airship.com/docs/reference/glossary/#iaa). You can also set up a **fallback sequence**. If the user doesn't meet the conditions for routing to the in-app experience during a certain period of time, they will be routed to the fallback sequence instead. See: [Whats New: Downstream In-App Experiences in Journeys](https://www.airship.com/docs/whats-new/2023-06-15-downstream-in-app-experiences/).

* **Video in** [Scenes](https://www.airship.com/docs/reference/glossary/#scene) — Background video displays in portrait mode, starts automatically, and plays in a loop. Video in the Media element displays in landscape mode and does not start until a user clicks the Play button. See: [Create a Scene](https://www.airship.com/docs/guides/messaging/in-app-experiences/scenes/create/).

* **Stories** — When creating [Scenes](https://www.airship.com/docs/reference/glossary/#scene), you can enable **Story mode**. This setting presents the Scene with automatic transitions to the next screen instead of requiring swiping. Use Stories to engage your audience in a trending and familiar format. *Support for Stories is included in SDK 17, however the feature will not be available in the Airship dashboard till later this month.*

## Improvements

* **Allowed URLs** — The SDK now allows all URLs. After setting up or upgrading to SDK 17, you will see an implementation error until you either set your own defaults or accept the Airship default of allowing all URLs. See:
   * [Android: URL Allowlist](https://www.airship.com/docs/developer/sdk-integration/android/installation/advanced-integration/#url-allowlist)
   * [iOS: URL Allowlist](https://www.airship.com/docs/developer/sdk-integration/apple/installation/advanced-integration/#url-allowlist)

* **iOS Message Center** — We added a new Swift [Message Center](https://www.airship.com/docs/reference/glossary/#message_center) module with a new SwiftUI version of our out-of-the-box (OOTB) Message Center. We also added new APIs for things like fetching messages and marking as read. See: [iOS Message Center](https://www.airship.com/docs/developer/sdk-integration/apple/message-center/getting-started/).

* **iOS Preference Center** — We rewrote our iOS OOTB [Preference Center](https://www.airship.com/docs/reference/glossary/#preference_center) UI in SwiftUI. SDK 17 loads this new SwiftUI version of the OOTB UI by default. See: [iOS Preference Center](https://www.airship.com/docs/developer/sdk-integration/apple/preference-center/getting-started/).

## Breaking changes

SDK 17 introduces a number of breaking changes to the codebase. In addition to reading here, see the full list in the [changelogs](#changelogs).

* **Location Module** — We removed the location module. If you want to continue prompting users for location permissions, you must update your integrations to use the permission delegate. See [Permission Prompts](https://www.airship.com/docs/developer/sdk-integration/apple/data-collection/permission-gathering/) for iOS and [Permission Prompts](https://www.airship.com/docs/developer/sdk-integration/android/data-collection/permission-gathering/) for Android.

* **Accengage Module** — For apps previously migrated from Accengage SDK to Airship SDK, upgrading to Airship SDK 17 requires removing the Airship-Accengage module.   

## iOS minimum versions

iOS SDK 17 requires these minimums:

* Target version iOS 14.0
* Xcode 14

## SDK setup and migration

For new apps, follow our platform docs:

* [Android SDK Setup](https://www.airship.com/docs/developer/sdk-integration/android/installation/getting-started/)
* [iOS SDK Setup](https://www.airship.com/docs/developer/sdk-integration/apple/installation/getting-started/)

To upgrade your SDK version, follow our migration guides:

* [Android SDK migration guides](https://github.com/urbanairship/android-library/tree/main/documentation/migration#airship-android-sdk-migration-guides)
* [iOS SDK migration guides](https://github.com/urbanairship/ios-library/tree/main/Documentation/Migration#airship-ios-sdk-migration-guides)

## Changelogs

* [Android SDK Changelog](https://www.airship.com/docs/developer/sdk-integration/android/changelog/)
* [iOS SDK Changelog](https://www.airship.com/docs/developer/sdk-integration/apple/ios-changelog/)
