# সুইফট প্যাকেজ ম্যানেজার দিয়ে InboxKit সেট আপ করুন

*iOS SDK [7.0.40](https://github.com/Pushwoosh/pushwoosh-ios-sdk/releases/tag/7.0.40) থেকে উপলব্ধ।*

InboxKit `Pushwoosh-XCFramework` সুইফট প্যাকেজের ভিতরে একটি পৃথক লাইব্রেরি প্রোডাক্ট হিসাবে আসে। আপনার প্রধান SDK আগে থেকেই ইন্টিগ্রেটেড থাকতে হবে; যদি আপনি স্ক্র্যাচ থেকে শুরু করেন, তাহলে প্রথমে [বেসিক ইন্টিগ্রেশন গাইড](/bn/developer/pushwoosh-sdk/ios-sdk/setting-up-pushwoosh-ios-sdk-7-0/basic-integration-guide/) অনুসরণ করুন।

## InboxKit প্যাকেজ প্রোডাক্ট যোগ করুন

১. Xcode-এ আপনার প্রজেক্ট খুলুন এবং প্রজেক্টের সেটিংস → **Package Dependencies**-এ যান, তারপর **+** বোতাম টিপুন।

২. নিম্নলিখিত প্যাকেজ URL লিখুন:

```bash
https://github.com/Pushwoosh/Pushwoosh-XCFramework
```

৩. সর্বশেষ স্থিতিশীল সংস্করণ সহ **Dependency Rule**-কে **Up to Next Major Version**-এ সেট আপ করুন, তারপর **Add Package**-এ ক্লিক করুন।

৪. প্যাকেজ নির্বাচন স্ক্রিনে, অন্তত নিম্নলিখিত প্রোডাক্টগুলো বেছে নিন এবং সেগুলোকে আপনার প্রধান অ্যাপ টার্গেটে যোগ করুন:

- **PushwooshFramework** (আবশ্যক)
- **PushwooshCore** (আবশ্যক)
- **PushwooshBridge** (আবশ্যক)
- **PushwooshInboxKit** (নতুন মডিউল)

<img src="/setting-up-pushwoosh-inboxkit-ios-spm-products.webp" alt="Xcode Choose Package Products ডায়ালগ যেখানে PushwooshBridge, PushwooshCore, PushwooshFramework, এবং PushwooshInboxKit MyApp টার্গেটে যোগ করা হয়েছে" width="640" style="display: block; margin: 0 auto;"/>

<p style="text-align: center; opacity: 0.7; font-size: 0.875rem; margin-top: 0.5rem;">আপনার প্রধান অ্যাপ টার্গেটে চারটি হাইলাইট করা প্রোডাক্ট যোগ করুন।</p>

৫. আপনার প্রধান অ্যাপ টার্গেট খুলুন এবং **Frameworks, Libraries, and Embedded Content**-এর অধীনে, নিশ্চিত করুন যে `PushwooshInboxKit.xcframework` তালিকাভুক্ত এবং এমবেড করা আছে।

ব্যাস — InboxKit এখন প্রধান SDK-এর সাথে লিঙ্ক করা হয়েছে।

## ইনবক্স দেখান

যেকোনো নেভিগেশন ফ্লোতে ইনবক্স কন্ট্রোলার যোগ করুন। ডিফল্ট কনফিগারেশন তিনটি স্ট্যান্ডার্ড সেল টাইপ সহ একটি কার্যকরী ইনবক্স পাওয়ার জন্য যথেষ্ট:

<Tabs syncKey="code-example">
<TabItem label="Swift">
```swift
import PushwooshInboxKit

let inboxVC = PushwooshInboxKitViewController()
navigationController?.pushViewController(inboxVC, animated: true)
```
</TabItem>

<TabItem label="Objective-C">
```objective-c
@import PushwooshInboxKit;

PushwooshInboxKitViewController *inboxVC = [PushwooshInboxKitViewController new];
[self.navigationController pushViewController:inboxVC animated:YES];
```
</TabItem>
</Tabs>

## ইনবক্স কাস্টমাইজ করুন

সুইফটে, `PushwooshInboxKitAttributes` ভ্যালু টাইপের মাধ্যমে কন্ট্রোলার কনফিগার করুন। অবজেক্টিভ-সি-তে, কন্ট্রোলারে `@objc`-ফ্রেন্ডলি সেটার ব্যবহার করুন — `PushwooshInboxKitAttributes` একটি সুইফট স্ট্রাকট এবং এটি ব্রিজ করা হয় না।

<Tabs syncKey="code-example">
<TabItem label="Swift">
```swift
var attributes = PushwooshInboxKitAttributes()
attributes.pullToRefreshEnabled = true
attributes.swipeToDeleteEnabled = true
attributes.pinningEnabled = true
attributes.style.unreadBadgeColor = .systemBlue
attributes.style.titleFont = .systemFont(ofSize: 17, weight: .semibold)

let inboxVC = PushwooshInboxKitViewController(attributes: attributes)
```
</TabItem>

<TabItem label="Objective-C">
```objective-c
PushwooshInboxKitViewController *inboxVC = [PushwooshInboxKitViewController new];
[inboxVC setBackgroundColor:[UIColor systemBackgroundColor]];
[inboxVC setEmptyMessage:@"You have no messages yet"];
```
</TabItem>
</Tabs>

`Style` স্ট্রাকট ডিফল্ট সেল দ্বারা ব্যবহৃত সমস্ত রঙ, ফন্ট, কর্নার রেডিয়াস এবং ডেট ফরম্যাটার প্রকাশ করে। প্রতিটি মান ডিফল্টরূপে একটি Apple সেমান্টিক রঙ, তাই ইনবক্স স্বয়ংক্রিয়ভাবে সিস্টেম ডার্ক মোডে প্রতিক্রিয়া জানায়।

<img src="/setting-up-pushwoosh-inboxkit-ios-custom.webp" alt="ব্র্যান্ডের রঙ টাইটেল এবং অপঠিত ইন্ডিকেটরে প্রয়োগ করা কাস্টম-স্টাইলযুক্ত InboxKit ফিড" width="280" style="display: block; margin: 0 auto;"/>

<p style="text-align: center; opacity: 0.7; font-size: 0.875rem; margin-top: 0.5rem;">`PushwooshInboxKitAttributes.Style` এর মাধ্যমে একটি কাস্টম থিম প্রয়োগ করা ক্যাপশনযুক্ত সেল।</p>

## ট্যাপ এবং রিফ্রেশ হ্যান্ডেল করুন

ব্যবহারকারীর ক্রিয়া এবং রিফ্রেশ ইভেন্টগুলিতে প্রতিক্রিয়া জানাতে `PushwooshInboxKitDelegate`-এর সাথে সঙ্গতিপূর্ণ হন। প্রতিটি পদ্ধতির একটি ডিফল্ট বাস্তবায়ন আছে, তাই আপনি শুধুমাত্র আপনার যা প্রয়োজন তা ওভাররাইড করবেন:

<Tabs syncKey="code-example">
<TabItem label="Swift">
```swift
final class InboxCoordinator: NSObject, PushwooshInboxKitDelegate {
    func inboxKit(_ vc: PushwooshInboxKitViewController,
                  didSelect message: PWInboxMessageProtocol) -> Bool {
        // Return true to let the SDK open the message URL or richmedia.
        // Return false if you handled the tap entirely (e.g. routed to a custom screen).
        return true
    }

    func inboxKit(_ vc: PushwooshInboxKitViewController,
                  didRefreshWith messages: [PWInboxMessageProtocol],
                  error: Error?) {
        // Show your own empty / error state here if needed.
    }
}

inboxVC.delegate = inboxCoordinator
```
</TabItem>
</Tabs>

<Aside type="note" title="স্থায়িত্ব">
পঠিত হিসাবে চিহ্নিত করুন, সমস্ত পঠিত হিসাবে চিহ্নিত করুন, মুছুন, এবং পঠিত পরিষ্কার করুন - এই সবগুলি নেটওয়ার্ক অনুরোধ পাঠানোর আগে স্থানীয় Pushwoosh ইনবক্স স্টোরেজে স্থায়ী হয়। ব্যাকএন্ড এখনও পরিবর্তনটি স্বীকার না করলেও স্টেট একটি প্রসেস রিস্টার্টের পরেও টিকে থাকে।
</Aside>

## পরবর্তী পদক্ষেপ

<LinkCard
  title="PushwooshInboxKit API রেফারেন্স"
  description="প্রতিটি পাবলিক টাইপের জন্য জেনারেট করা DocC ডকুমেন্টেশন।"
  href="https://pushwoosh.github.io/pushwoosh-ios-sdk/PushwooshInboxKit/documentation/pushwooshinboxkit/"
/>