iOS কনজিউমার SDK মডুলারাইজেশনের জন্য মাইগ্রেশন

iOS-এর জন্য কনজিউমার SDK আপনাকে মডুলার আর্কিটেকচার ব্যবহার করে রাইডশেয়ারিং অ্যাপ তৈরি করতে দেয়। আপনি API এর অংশগুলি ব্যবহার করতে পারেন যা আপনি আপনার নির্দিষ্ট অ্যাপের জন্য ব্যবহার করতে চান এবং সেগুলিকে আপনার নিজস্ব APIগুলির সাথে একীভূত করতে পারেন৷ বিভিন্ন বৈশিষ্ট্যের জন্য উপভোক্তা SDK APIগুলি পৃথক মডিউলগুলিতে অন্তর্ভুক্ত করা হয়েছে৷

আপনার রাইডশেয়ারিং অ্যাপ যদি কনজিউমার SDK-এর আগের সংস্করণ ব্যবহার করে, তাহলে এই মডুলার আর্কিটেকচার ব্যবহার করার জন্য আপনাকে আপনার অ্যাপ আপগ্রেড করতে হবে। এই মাইগ্রেশন গাইড বর্ণনা করে কিভাবে আপনার অ্যাপ আপগ্রেড করতে হয়।

ওভারভিউ

কনজিউমার SDK মডুলার আর্কিটেকচার একটি MapViewSession অবজেক্ট প্রবর্তন করে যা ইউজার ইন্টারফেস স্টেট ধারণ করে। উপভোক্তা SDK-এর পূর্ববর্তী সংস্করণগুলিতে, অ্যাপগুলি রাজ্যগুলির মধ্যে প্রবাহিত হয়েছিল৷ এই মডুলার আর্কিটেকচারের সাহায্যে, আপনি একটি MapViewSession অবজেক্ট তৈরি করেন এবং ম্যাপে সেশন প্রদর্শন করার বিকল্প থাকে। যদি কোনো সেশন না দেখানো হয়, তাহলে ম্যাপ একই বিষয়বস্তু প্রদর্শন করে যা শুধুমাত্র iOS-এর জন্য Maps SDK ব্যবহার করে।

একটি MapViewSession অবজেক্ট একটি মডিউলের একটি একক জীবনচক্র ব্যবহারের উদাহরণ উপস্থাপন করে। সেশন হল মডিউল API-এর অ্যাক্সেস পয়েন্ট। উদাহরণস্বরূপ, একটি জার্নি শেয়ারিং সেশন একটি একক ট্রিপ অনুসরণ করে। আপনি ট্রিপ নিরীক্ষণ করতে JourneySharingSession অবজেক্টের সাথে ইন্টারঅ্যাক্ট করেন।

TripModel অবজেক্ট

কনজিউমার SDK-এর পূর্ববর্তী সংস্করণগুলিতে, একটি TripService উদাহরণ আপনাকে একবারে শুধুমাত্র একটি লাইভ ট্রিপ নিরীক্ষণ করতে দেয়। একটি TripModel অবজেক্ট ব্যবহার করে, আপনি একটি TripService উদাহরণে একাধিক লাইভ ট্রিপ নিরীক্ষণ করতে পারেন। TripService থেকে TripModel এর একটি উদাহরণ তৈরি করা যেতে পারে, এবং TripModel এর প্রতিটি উদাহরণ একটি নির্দিষ্ট ট্রিপে আবদ্ধ৷

TripModel ইনস্ট্যান্স আপডেট ইভেন্টগুলিকে কল করে যদি কোনও নিবন্ধিত গ্রাহক ট্রিপে থাকে যখন এটি আপডেট করা হয়।

TripModel অবজেক্টটি JourneySharingSession অবজেক্টের একটি উদাহরণ তৈরি করতেও ব্যবহার করা যেতে পারে।

MapViewSession রাজ্যগুলি

একটি MapViewSession উদাহরণ একবারে শুধুমাত্র একটি mapView যোগ করা যেতে পারে এবং এটি নিম্নলিখিত দুটি অবস্থার একটিতে হতে পারে:

  • GMTCMapViewSessionStateInactive অবস্থা ইঙ্গিত করে যে এই MapViewSession এখনও কোনো mapView এ যোগ করা হয়নি, অথবা এটি একটি mapView থেকে সরানো হয়েছে। যখন MapViewSession দৃষ্টান্ত একটি mapView থেকে সরানো হয়, didRemoveFromMapView পদ্ধতি বলা হয়।

    hideMapViewSession বা hideAllMapViewSessions পদ্ধতিতে কল করা একটি mapView থেকে mapViewSession সরিয়ে দেয়:

    [_mapView hideMapViewSession:mapViewSessionA];
    

    বা

    [_mapView hideAllMapViewSessions];
    
  • GMTCMapViewSessionStateActive অবস্থা নির্দেশ করে যে এই MapViewSession একটি mapView এ যোগ করা হয়েছে। যখন MapViewSession এর একটি উদাহরণ একটি mapView এ যোগ করা হয়, তখন didAddToMapView পদ্ধতি বলা হয়। showMapViewSession পদ্ধতিতে কল করা টার্গেট mapViewmapViewSession যোগ করে:

    [_mapView showMapViewSession:mapViewSessionA];
    

শুধুমাত্র ডেটা এবং ইউজার ইন্টারফেস উপাদান ব্যবহার করে

আপনি শুধুমাত্র ডেটা উপাদান বা অন-ডিমান্ড রাইডস এবং ডেলিভারি সলিউশন দ্বারা প্রদত্ত ব্যবহারকারী ইন্টারফেস উপাদান API ব্যবহার করে একটি রাইড শেয়ারিং অ্যাপ তৈরি করতে পারেন।

শুধুমাত্র ডেটা উপাদান ব্যবহার করে

শুধুমাত্র ডেটা উপাদান ব্যবহার করে একটি রাইডশেয়ারিং অ্যাপ তৈরি করতে:

  1. প্রদানকারী আইডি এবং অ্যাক্সেস টোকেন প্রদানকারী নির্দিষ্ট করে একটি GMTCServices অবজেক্ট শুরু করুন।
  2. GMTCServices অবজেক্টের শেয়ার করা উদাহরণ থেকে tripService সম্পত্তি পান।
  3. tripService অবজেক্টের tripModelForTripName পদ্ধতি ব্যবহার করে একটি নির্দিষ্ট ট্রিপের জন্য একটি GMTCTripModel অবজেক্টের একটি উদাহরণ তৈরি করুন বা পুনরুদ্ধার করুন।
  4. ট্রিপ মনিটরিং শুরু করতে GMTCTripModel উদাহরণের জন্য কলব্যাক নিবন্ধন করুন।

নিম্নলিখিত উদাহরণ দেখায় কিভাবে শুধুমাত্র ডেটা উপাদান ব্যবহার করতে হয়:

[GMTCServices setAccessTokenProvider:[[AccessTokenProvider alloc] init]
                          providerID:yourProviderID];
GMTCTripService *tripService = [GMTCServices sharedServices].tripService;

// Create a tripModel instance for listening to updates to the trip specified by this trip name.
GMTCTripModel *tripModel = [tripService tripModelForTripName:tripName];

// Register for the trip update events.
[tripModel registerSubscriber:self];

// To stop listening for the trip update.
[tripModel unregisterSubscriber:self];

UI উপাদান API ব্যবহার করে

অন-ডিমান্ড রাইডস এবং ডেলিভারি সলিউশন ইউজার ইন্টারফেস এলিমেন্ট এপিআই সহ একটি কনজিউমার অ্যাপ তৈরি করতে এই পদ্ধতি অনুসরণ করুন:

  1. প্রদানকারী আইডি এবং অ্যাক্সেস টোকেন প্রদানকারী নির্দিষ্ট করে একটি GMTCServices অবজেক্ট শুরু করুন।
  2. বেস ম্যাপ রেন্ডার করার জন্য একটি GMTCMapView অবজেক্ট শুরু করুন।
  3. GMTCServices অবজেক্টের শেয়ার করা উদাহরণ থেকে tripService সম্পত্তি পান।
  4. tripService অবজেক্টের tripModelForTripName পদ্ধতি ব্যবহার করে একটি নির্দিষ্ট ট্রিপের জন্য একটি GMTCTripModel অবজেক্টের একটি উদাহরণ তৈরি করুন বা পুনরুদ্ধার করুন।
  5. GMTCTripModel উদাহরণ সহ একটি GMTCJourneySharingSession অবজেক্ট তৈরি করুন।
  6. mapView GMTCJourneySharingSession অবজেক্টটি দেখান।
  7. ট্রিপ মনিটরিং শুরু করতে GMTCTripModel উদাহরণের জন্য কলব্যাক নিবন্ধন করুন।

নিম্নলিখিত উদাহরণ দেখায় কিভাবে ব্যবহারকারী ইন্টারফেস API ব্যবহার করতে হয়:

[GMTCServices setAccessTokenProvider:[[AccessTokenProvider alloc] init]
                          providerID:yourProviderID];
GMTCTripService *tripService = [GMTCServices sharedServices].tripService;

// Create a tripModel instance for listening to updates to the trip specified by this trip name.
GMTCTripModel *tripModel = [tripService tripModelForTripName:tripName];
GMTCJourneySharingSession *journeySharingSession =
  [[GMTCJourneySharingSession alloc] initWithTripModel:tripModel];

// Add the journeySharingSession instance on the mapView for UI updating.
[self.mapView showMapViewSession:journeySharingSession];

// Register for the trip update events.
[tripModel registerSubscriber:self];

// To remove the JourneySharingSession from the mapView:
[self.mapView hideMapViewSession:journeySharingSession];

// To stop listening for the trip update.
[tripModel unregisterSubscriber:self];

মডুলার আর্কিটেকচার কোড পরিবর্তন

যদি আপনার রাইডশেয়ারিং অ্যাপ কনজিউমার SDK-এর আগের সংস্করণ ব্যবহার করে, তাহলে আপডেট হওয়া মডুলার আর্কিটেকচারে আপনার কোডে কিছু পরিবর্তন প্রয়োজন। এই বিভাগে সেই পরিবর্তনগুলির কিছু বর্ণনা করা হয়েছে।

ট্রিপ মনিটরিং

আপডেট করা মডুলার আর্কিটেকচারের জন্য ডেটা-লেয়ার এবং ইউজার-ইন্টারফেস ব্যবহারকারী উভয়ের জন্য কোড পরিবর্তন প্রয়োজন।

পূর্ববর্তী সংস্করণগুলিতে, একজন ডেটা-লেয়ার ব্যবহারকারী নিম্নলিখিত কোড ব্যবহার করে ট্রিপ মনিটরিং পরিচালনা করতে পারে:

GRCTripRequest *tripRequest =
    [[GRCTripRequest alloc] initWithRequestHeader:[GRSRequestHeader defaultHeader]
                                         tripName:tripName
                          autoRefreshTimeInterval:1];
GRCTripService *tripService = [GRCServices sharedServices].tripService;
[tripService registerServiceSubscriber:self];
[tripService setActiveTripWithRequest:tripRequest];

মডুলার আর্কিটেকচার ব্যবহার করে, একটি ডেটা-লেয়ার ব্যবহারকারী নিম্নলিখিত কোড ব্যবহার করবে:

GMTCTripService *tripService = [GMTCServices sharedServices].tripService;
GMTCTripModel *tripModel = [tripService tripModelForTripName:tripName];
tripModel.options.autoRefreshTimeInterval = 1;
[tripModel registerSubscriber:self];

পূর্ববর্তী সংস্করণে, একজন ব্যবহারকারী-ইন্টারফেস ব্যবহারকারী নিম্নলিখিত কোড ব্যবহার করে ট্রিপ পর্যবেক্ষণ পরিচালনা করতে পারে:

// Show the Journey Sharing user interface.
[self.mapView startTripMonitoring];

// Hide the Journey Sharing user interface.
[self.mapView resetCustomerState];

মডুলার আর্কিটেকচার ব্যবহার করে, একজন ব্যবহারকারী-ইন্টারফেস ব্যবহারকারী নিম্নলিখিত কোড ব্যবহার করবে:

// Show the Journey Sharing user interface.
GMTCJourneySharingSession *journeySharingSession =
  [[GMTCJourneySharingSession alloc] initWithTripModel:tripModel];
[self.mapView showMapViewSession:journeySharingSession];

// Hide the Journey Sharing user interface.
[self.mapView hideMapViewSession:journeySharingSession];