Apple প্ল্যাটফর্মের জন্য পারফর্ম্যান্স মনিটরিং ব্যবহার শুরু করা

শুরু করার আগে

আপনি আগে থেকে না করে থাকলে, আপনার Apple প্রোজেক্টে Firebase যোগ করুন।

ধাপ ১: আপনার অ্যাপে Performance Monitoring যোগ করুন

Performance Monitoring SDK যোগ করার পরে, Firebase অটোমেটিক আপনার অ্যাপের স্ক্রিন রেন্ডারিং, আপনার অ্যাপের লাইফসাইকেল (যেমন অ্যাপ শুরু হওয়ার সময়) এবং HTTP/S নেটওয়ার্ক অনুরোধ সংক্রান্ত ডেটা সংগ্রহ করা শুরু করে।

Firebase ডিপেন্ডেন্সি ইনস্টল ও ম্যানেজ করতে Swift Package Manager ব্যবহার করুন।

  1. Xcode-এ, আপনার অ্যাপ প্রোজেক্ট খোলা থাকা অবস্থায়, ফাইল > প্যাকেজ যোগ করুন বিকল্পে নেভিগেট করুন।
  2. প্রম্পট করা হলে, Firebase Apple প্ল্যাটফর্ম SDK রিপোজিটরি যোগ করুন:
  3.   https://github.com/firebase/firebase-ios-sdk.git
  4. Performance Monitoring লাইব্রেরি বেছে নিন।
  5. আপনার টার্গেটের বিল্ড সেটিংসের অন্যান্য লিঙ্কার ফ্ল্যাগ বিভাগে -ObjC ফ্ল্যাগ যোগ করুন।
  6. এটি সম্পূর্ণ হয়ে গেলে, Xcode অটোমেটিক আপনার ডিপেন্ডেন্সি ব্যাকগ্রাউন্ডে সমাধান ও ডাউনলোড করা শুরু করবে।

এরপরে, Firebase মডিউল কনফিগার করুন:

  1. আপনার FirebaseCore মডিউলটি আপনার UIApplicationDelegate-এ ইমপোর্ট করুন, সেইসাথে আপনার অ্যাপ ডেলিগেট ব্যবহার করে এমন যেকোনও Firebase মডিউল ইমপোর্ট করুন। যেমন, Cloud Firestore ও Authentication ব্যবহার করতে:

    SwiftUI

    import SwiftUI
    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    Swift

    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    Objective-C

    @import FirebaseCore;
    @import FirebaseFirestore;
    @import FirebaseAuth;
    // ...
          
  2. আপনার অ্যাপ ডেলিগেটের application(_:didFinishLaunchingWithOptions:) পদ্ধতিতে FirebaseApp শেয়ার করা ইনস্ট্যান্স কনফিগার করুন:

    SwiftUI

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    Swift

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    Objective-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
  3. আপনি SwiftUI ব্যবহার করলে, আপনাকে অবশ্যই একটি অ্যাপ্লিকেশন ডেলিগেট তৈরি করতে হবে এবং এটি UIApplicationDelegateAdaptor বা NSApplicationDelegateAdaptor-এর মাধ্যমে আপনার App struct-এর সাথে অ্যাটাচ করতে হবে। এছাড়াও, আপনাকে অবশ্যই অ্যাপ ডেলিগেট সোয়েজলিং বন্ধ করতে হবে। আরও তথ্যের জন্য, SwiftUI নির্দেশাবলী দেখুন।

    SwiftUI

    @main
    struct YourApp: App {
      // register app delegate for Firebase setup
      @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate
    
      var body: some Scene {
        WindowGroup {
          NavigationView {
            ContentView()
          }
        }
      }
    }
          
  4. আপনার অ্যাপ আবার কম্পাইল করুন।

ধাপ ২: প্রাথমিক ডেটা ডিসপ্লের জন্য পারফর্ম্যান্স ইভেন্ট জেনারেট করা

আপনি নিজের অ্যাপে SDK যোগ করার পরে Firebase ইভেন্ট প্রসেস করা শুরু করে। আপনি এখনও লোকালি ডেভেলপ করলে, প্রাথমিক ডেটা সংগ্রহ ও প্রসেস করার জন্য আপনার অ্যাপের সাথে ইন্টার‍্যাক্ট করুন।

  1. সিমুলেটর বা টেস্ট ডিভাইস ব্যবহার করে আপনার অ্যাপ ডেভেলপ করা চালিয়ে যান।

  2. আপনার অ্যাপকে ব্যাকগ্রাউন্ড ও ফোরগ্রাউন্ডের মধ্যে একাধিকবার পরিবর্তন করে, স্ক্রিন জুড়ে নেভিগেট করার মাধ্যমে আপনার অ্যাপের সাথে ইন্টার‍্যাক্ট করে এবং/অথবা নেটওয়ার্ক অনুরোধ ট্রিগার করে ইভেন্ট তৈরি করুন।

  3. Firebase কনসোলের পারফর্ম্যান্স ড্যাশবোর্ডে যান। কয়েক মিনিটের মধ্যে আপনার প্রাথমিক ডেটা ডিসপ্লেতে দেখতে পাওয়ার কথা।

    আপনি প্রাথমিক ডেটা দেখতে না পেলে, সমস্যার সমাধান সংক্রান্ত পরামর্শ পর্যালোচনা করুন।

ধাপ ৩: (ঐচ্ছিক) পারফর্ম্যান্স ইভেন্টের জন্য লগ মেসেজ দেখুন

  1. নিম্নলিখিত উপায়ে ডিবাগ লগিং চালু করুন:

    1. Xcode-এ (ন্যূনতম v26.2), প্রোডাক্ট > স্কিম > স্কিম এডিট করুন বিকল্প বেছে নিন।
    2. বাঁদিকের মেনু থেকে রান করুন বিকল্প বেছে নিন, তারপর আর্গুমেন্ট ট্যাব বেছে নিন।
    3. লঞ্চের সময় আর্গুমেন্ট পাস করা হয়েছে বিভাগে, -FIRDebugEnabled যোগ করুন।
  2. কোনও সমস্যার মেসেজ আছে কিনা তা জানতে আপনার লগ মেসেজ চেক করুন।

  3. Performance Monitoring তার লগ মেসেজ Firebase/Performance-এর সাথে ট্যাগ করে যাতে আপনি নিজের লগ মেসেজ ফিল্টার করতে পারেন।

  4. Performance Monitoring পারফর্ম্যান্স ইভেন্ট লগ করছে কিনা তা নির্ণয় করতে নিম্নলিখিত ধরনের লগ চেক করুন:

    • Logging trace metric: TRACE_NAME, FIREBASE_PERFORMANCE_CONSOLE_URL
    • Logging network request trace: URL
  5. Firebase কনসোলে আপনার ডেটা দেখতে URL-এ ক্লিক করুন। ড্যাশবোর্ডে ডেটা আপডেট হতে কয়েক মুহূর্ত সময় লাগতে পারে।

আপনার অ্যাপ পারফর্ম্যান্স ইভেন্ট লগ না করলে, সমস্যার সমাধানকরণ সংক্রান্ত পরামর্শ পর্যালোচনা করুন।

ধাপ ৪: (ঐচ্ছিক) নির্দিষ্ট কোডের জন্য কাস্টম মনিটরিং যোগ করুন

আপনার অ্যাপের নির্দিষ্ট কোডের সাথে যুক্ত পারফর্ম্যান্স ডেটা মনিটর করতে, আপনি কাস্টম কোড ট্রেস ইনস্ট্রুমেন্ট করতে পারেন।

কাস্টম কোড ট্রেসের সাহায্যে, আপনার অ্যাপের কোনও নির্দিষ্ট টাস্ক বা টাস্কের সেট সম্পূর্ণ করতে কত সময় লাগে তা আপনি পরিমাপ করতে পারবেন। যেমন, একগুচ্ছ ছবি লোড করা বা আপনার ডেটাবেস কোয়েরি করা। কাস্টম কোড ট্রেসের ডিফল্ট মেট্রিক হল এর সময়সীমা, তবে আপনি ক্যাশে হিট ও মেমরি ওয়ার্নিংয়ের মতো কাস্টম মেট্রিকও যোগ করতে পারবেন।

আপনার কোডে, Performance Monitoring SDK-এর দেওয়া API ব্যবহার করে কাস্টম কোড ট্রেসের শুরু ও শেষ ডিফাইন করেন (এবং পছন্দমতো কাস্টম মেট্রিক যোগ করেন)।

এইসব ফিচার সম্পর্কে আরও জানতে এবং কীভাবে আপনার অ্যাপে সেগুলি যোগ করবেন তা জানতে নির্দিষ্ট কোডের জন্য মনিটরিং যোগ করুন লিঙ্কে যান।

ধাপ ৫: আপনার অ্যাপ ডিপ্লয় করুন, তারপর ফলাফল পর্যালোচনা করুন

Xcode সিমুলেটর এবং এক বা একাধিক টেস্ট ডিভাইস ব্যবহার করে Performance Monitoring যাচাই করার পরে, আপনি ব্যবহারকারীদের জন্য অ্যাপের আপডেট করা ভার্সন ডেপ্লয় করতে পারবেন।

আপনি Firebase কনসোলের পারফর্ম্যান্স ড্যাশবোর্ড থেকে পারফর্ম্যান্স ডেটা মনিটর করতে পারবেন।

পরিচিত সমস্যা

  • Performance Monitoring-এর সাথে GTMSQLite-এর মানানসই হওয়া সংক্রান্ত পরিচিত সমস্যা আছে। আমরা GTMSQLite ব্যবহার করে এমন অ্যাপের সাথে Performance Monitoring ব্যবহার না করার সাজেশন দিই।
  • FirebaseApp.configure() কল করার পরে মেথড সোয়াজলিং Performance Monitoring SDK-এর সাথে ইন্টারফেয়ার করতে পারে।
  • iOS 8.0-8.2 সিমুলেটরে পরিচিত সমস্যার কারণে Performance Monitoring পারফর্ম্যান্স ইভেন্ট ক্যাপচার করতে পারে না। iOS 8.3 Simulator ও এর পরের ভার্সনে এইসব সমস্যার সমাধান করা হয়েছে।
  • NSURLSession-এর backgroundSessionConfiguration ব্যবহার করে তৈরি করা কানেকশন প্রত্যাশিত সময়ের চেয়ে বেশি সময় ধরে কানেক্ট করে থাকবে। এইসব কানেকশন প্রসেসের বাইরে এক্সিকিউট করা হয় এবং টাইমিং ইন-প্রসেস কলব্যাক ইভেন্টে প্রতিফলিত হয়।

পরবর্তী ধাপ