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

শুরু করার আগে

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

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

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

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

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

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

  1. আপনার UIApplicationDelegate-এ FirebaseCore মডিউল ইমপোর্ট করুন, সেইসাথে আপনার অ্যাপ ডেলিগেট ব্যবহার করে এমন অন্য যেকোনও 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 ব্যবহার করলে, আপনাকে অবশ্যই একটি অ্যাপ্লিকেশন ডেলিগেট তৈরি করতে হবে এবং এটি আপনার App স্ট্রাকচারে UIApplicationDelegateAdaptor বা NSApplicationDelegateAdaptor-এর মাধ্যমে অ্যাটাচ করতে হবে। এছাড়াও, আপনাকে অ্যাপ ডেলিগেট সুইজলিং বন্ধ করতে হবে। আরও তথ্যের জন্য, 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 কনসোলের পারফর্ম্যান্স ড্যাশবোর্ড থেকে পারফর্ম্যান্স ডেটা মনিটর করতে পারবেন।

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

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

পরবর্তী ধাপ