# iOS SDK 7.0+ quick start

Get started with the Pushwoosh iOS SDK using this quick and simple example.

## What's new in iOS SDK 7.0+

Starting with version 7.0, the Pushwoosh iOS SDK has been redesigned with a fully modular architecture. The SDK is now split into separate modules: **PushwooshFramework**, **PushwooshCore**, **PushwooshBridge**, and **PushwooshLiveActivities** are required for basic integration, while **PushwooshForegroundPush**, **PushwooshVoIP**, and **PushwooshTVOS** can be added optionally based on your needs.

This modular approach allows you to include only the features your app actually uses, reducing the final binary size and improving build times. Each module can be updated independently, making it easier to adopt new features without affecting the rest of your integration.

This release introduces native Swift Package Manager support for easier dependency management, along with improved Swift interoperability across all modules. Documentation is now embedded directly into the binary frameworks, so you can access API reference and code examples right in Xcode via Quick Help and the Developer Documentation window. New features include full support for iOS 16+ Live Activities with Dynamic Island integration, customizable foreground push notifications with animated banners and haptic feedback, enhanced VoIP capabilities, and a dedicated tvOS module for Apple TV applications.

## Prerequisites

To integrate the Pushwoosh iOS SDK into your app, you will need the following:

<TranslatedFragment id="prerequisites-ios" />

## Download the example project

Clone the example project from GitHub:
```bash
git clone https://github.com/Pushwoosh/pushwoosh-ios-sample.git
```

## Configure the project

<TranslatedFragment id="configure-sample-app-ios" />

## Run the project

1. Build and run the project.
2. The app will have two tabs: "Actions" and "Settings". Navigate to the **Settings** tab.
3. Tap the **Register for Pushes** button.
4. Grant permission for push notifications. The device will be registered with Pushwoosh.

You should see a log entry like this:
```bash
Pushwoosh: Initializing application runtime
[PW] BUNDLE ID: __YOUR_BUNDLE_ID__
[PW] APP CODE: __YOUR_APP_CODE__
[PW] PUSHWOOSH SDK VERSION: 7.0.0
[PW] HWID: __YOUR_HWID__
[PW] PUSH TOKEN: (null)
[PW] [I] -[PWNotificationManagerCompatiOS10] NotificationCenter authorization granted: 1
[PW] [I] -[PWPushNotificationsManagerCommon] Registered for push notifications: __YOUR_PUSH_TOKEN__
```
Your device is now registered with Pushwoosh.

## Send a push notification

Go back to the Pushwoosh Control Panel and [send a push notification](/product/messaging-channels/push-notifications/send-push-notifications/one-time-push) to your registered device.


## Migrating from SDK 6.x

If you're upgrading from SDK version 6.x, the main change is how you access the Pushwoosh instance. In version 7.0+, use `Pushwoosh.configure` instead of `Pushwoosh.sharedInstance()`:

**Before (6.x):**
```swift
Pushwoosh.sharedInstance().registerForPushNotifications()
Pushwoosh.sharedInstance().delegate = self
```

**After (7.0+):**
```swift
Pushwoosh.configure.registerForPushNotifications()
Pushwoosh.configure.delegate = self
```

All other APIs remain the same, so updating your code requires only replacing `sharedInstance()` with `configure` throughout your project.

## What's next
To learn more, please refer to the [basic integration guide](/developer/pushwoosh-sdk/ios-sdk/setting-up-pushwoosh-ios-sdk-7-0/basic-integration-guide/)