iOS কুইকস্টার্ট

এই পৃষ্ঠায় বর্ণিত ধাপগুলি ব্যাখ্যা করে যে কীভাবে দ্রুত একটি সহজ iOS অ্যাপ্লিকেশন তৈরি করা যায় যা YouTube ডেটা API-তে অনুরোধ করে। এই নমুনাটি GoogleDevelopers ইউটিউব চ্যানেল সম্পর্কে ডেটা কীভাবে পুনরুদ্ধার করতে হয় তা দেখায়। কোডটিতে এমন মন্তব্যও রয়েছে যা বর্তমান ব্যবহারকারীর YouTube চ্যানেল সম্পর্কে ডেটা পুনরুদ্ধার করার জন্য কোয়েরিটি কীভাবে পরিবর্তন করতে হয় তা ব্যাখ্যা করে।

পূর্বশর্ত

এই কুইকস্টার্টটি চালানোর জন্য, আপনার প্রয়োজন হবে:

  • এক্সকোড ৮.০ বা তার বেশি।
  • কোকোপডস নির্ভরতা ব্যবস্থাপক।
  • ইন্টারনেট এবং একটি ওয়েব ব্রাউজার অ্যাক্সেস।
  • একটি গুগল অ্যাকাউন্ট।

ধাপ ১: ইউটিউব ডেটা এপিআই চালু করুন

  1. এই উইজার্ডটি ব্যবহার করে গুগল ডেভেলপারস কনসোলে একটি প্রকল্প তৈরি বা নির্বাচন করুন এবং স্বয়ংক্রিয়ভাবে API চালু করুন। Continue এ ক্লিক করুন, তারপর credentials এ যান

  2. ক্রিয়েশনাল তৈরি করুন পৃষ্ঠায়, বাতিল করুন বোতামে ক্লিক করুন।

  3. পৃষ্ঠার শীর্ষে, OAuth সম্মতি স্ক্রিন ট্যাবটি নির্বাচন করুন। একটি ইমেল ঠিকানা নির্বাচন করুন, যদি ইতিমধ্যে সেট না করা থাকে তবে একটি পণ্যের নাম লিখুন এবং সংরক্ষণ বোতামে ক্লিক করুন।

  4. শংসাপত্র ট্যাব নির্বাচন করুন, শংসাপত্র তৈরি করুন বোতামে ক্লিক করুন এবং OAuth ক্লায়েন্ট আইডি নির্বাচন করুন।

  5. অ্যাপ্লিকেশন টাইপ iOS নির্বাচন করুন, "YouTube Data API Quickstart" নামটি লিখুন, বান্ডেল আইডি com.example.QuickstartApp লিখুন এবং Create বোতামে ক্লিক করুন।

ধাপ ২: কর্মক্ষেত্র প্রস্তুত করুন

  1. এক্সকোড খুলুন এবং একটি নতুন প্রকল্প তৈরি করুন:
    1. ফাইল > নতুন > প্রকল্প ক্লিক করুন, iOS > অ্যাপ্লিকেশন > একক দৃশ্য অ্যাপ্লিকেশন টেমপ্লেট নির্বাচন করুন এবং পরবর্তী ক্লিক করুন।
    2. পণ্যের নাম "QuickstartApp", সংগঠন শনাক্তকারী "com.example" এবং ভাষা "Language" এ সেট করুন।অবজেক্টিভ-সি। প্রতিষ্ঠান শনাক্তকারীর নীচে, আপনি একটি জেনারেটেড বান্ডেল আইডেন্টিফায়ার দেখতে পাবেন যা ধাপ 1.b এ আপনার প্রবেশ করানো iOS বান্ডেল আইডি ( com.example.QuickstartApp ) এর সাথে মেলে।
    3. পরবর্তী ক্লিক করুন।
    4. প্রকল্পের জন্য একটি গন্তব্য ডিরেক্টরি নির্বাচন করুন এবং তৈরি করুন ক্লিক করুন।
  2. ফাইল > প্রকল্প বন্ধ করুন ক্লিক করে প্রকল্পটি বন্ধ করুন।
  3. একটি টার্মিনাল উইন্ডো খুলুন এবং আপনার তৈরি করা QuickstartApp.xcodeproj ফাইলটি ধারণকারী ডিরেক্টরিতে যান।
  4. পডফাইল তৈরি করতে, লাইব্রেরি ইনস্টল করতে এবং ফলস্বরূপ XCode প্রকল্পটি খুলতে নিম্নলিখিত কমান্ডগুলি চালান:

    cat << EOF > Podfile &&
    platform :ios, '8.0'
    target 'QuickstartApp' do
        pod 'GoogleAPIClientForREST/YouTube', '~> 1.2.1'
        pod 'Google/SignIn', '~> 3.0.3'
    end
    EOF
    pod install &&
    open QuickstartApp.xcworkspace
    
  5. XCode Project Navigator-এ "QuickstartApp" প্রজেক্ট নোডটি নির্বাচন করুন। তারপর মেনু আইটেম File > Add files to "QuickstartApp" এ ক্লিক করুন।

  6. পূর্বে ডাউনলোড করা GoogleService-Info.plist ফাইলটি খুঁজে বের করুন এবং এটি নির্বাচন করুন। বিকল্প বোতামে ক্লিক করুন।

  7. অপশন উইন্ডোতে নিম্নলিখিত নির্বাচনগুলি করুন এবং তারপর Add বোতামে ক্লিক করুন:

    1. "প্রয়োজনে আইটেম কপি করুন" চেকবক্সটি চেক করুন।
    2. "লক্ষ্যবস্তুতে যোগ করুন" বিভাগে তালিকাভুক্ত সমস্ত লক্ষ্যবস্তু পরীক্ষা করুন।

  8. প্রজেক্ট নোডটি এখনও নির্বাচিত থাকা অবস্থায়, নীচের দুটি ছবিতে দেখানো TARGETS বিভাগে "QuickstartApp" নির্বাচন করুন:

    1. এই স্ক্রিনশটে দেখানো জায়গায় ক্লিক করুন:

    2. তারপর সঠিক লক্ষ্য নির্বাচন করুন:

  9. তথ্য ট্যাবটি নির্বাচন করুন এবং URL প্রকার বিভাগটি প্রসারিত করুন।

  10. + বোতামে ক্লিক করুন এবং আপনার বিপরীত ক্লায়েন্ট আইডির জন্য একটি URL স্কিম যোগ করুন। এই মানটি খুঁজে পেতে, ধাপ 2.f-এ নির্বাচিত GoogleService-Info.plist কনফিগারেশন ফাইলটি খুলুন। REVERSED_CLIENT_ID কীটি খুঁজুন। সেই কীটির মানটি কপি করুন এবং কনফিগারেশন পৃষ্ঠার URL স্কিম বাক্সে পেস্ট করুন। অন্যান্য ক্ষেত্রগুলি ফাঁকা রাখুন।

  11. প্রকল্পটি পুনর্নির্মাণ করুন:

    1. প্রোডাক্ট > ক্লিন বিল্ড ফোল্ডারে ক্লিক করুন ( অপশন কী ধরে রেখে)।
    2. পণ্য > তৈরি করুন ক্লিক করুন।

ধাপ ৩: নমুনা সেট আপ করুন

নিম্নলিখিত ফাইলগুলির বিষয়বস্তু প্রদত্ত কোড দিয়ে প্রতিস্থাপন করুন:

AppDelegate.h সম্পর্কে
#import <UIKit/UIKit.h>
@import GoogleSignIn;

@interface AppDelegate : UIResponder <UIApplicationDelegate>

@property (strong, nonatomic) UIWindow *window;


@end
AppDelegate.m সম্পর্কে
#import "AppDelegate.h"

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Initialize Google sign-in.
    [GIDSignIn sharedInstance].clientID = @"<YOUR_CLIENT_ID>";

    return YES;
}

- (BOOL)application:(UIApplication *)application
            openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication
         annotation:(id)annotation {
    return [[GIDSignIn sharedInstance] handleURL:url
                               sourceApplication:sourceApplication
                                      annotation:annotation];
}


@end
ভিউকন্ট্রোলার.এইচ
#import <UIKit/UIKit.h>
@import GoogleSignIn;
#import <GTLRYouTube.h>

@interface ViewController : UIViewController <GIDSignInDelegate, GIDSignInUIDelegate>

@property (nonatomic, strong) IBOutlet GIDSignInButton *signInButton;
@property (nonatomic, strong) UITextView *output;
@property (nonatomic, strong) GTLRYouTubeService *service;


@end
ভিউকন্ট্রোলার.এম
#import "ViewController.h"

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Configure Google Sign-in.
    GIDSignIn* signIn = [GIDSignIn sharedInstance];
    signIn.delegate = self;
    signIn.uiDelegate = self;
    signIn.scopes = [NSArray arrayWithObjects:kGTLRAuthScopeYouTubeReadonly, nil];
    [signIn signInSilently];

    // Add the sign-in button.
    self.signInButton = [[GIDSignInButton alloc] init];
    [self.view addSubview:self.signInButton];

    // Create a UITextView to display output.
    self.output = [[UITextView alloc] initWithFrame:self.view.bounds];
    self.output.editable = false;
    self.output.contentInset = UIEdgeInsetsMake(20.0, 0.0, 20.0, 0.0);
    self.output.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
    self.output.hidden = true;
    [self.view addSubview:self.output];

    // Initialize the service object.
    self.service = [[GTLRYouTubeService alloc] init];
}

- (void)signIn:(GIDSignIn *)signIn
didSignInForUser:(GIDGoogleUser *)user
     withError:(NSError *)error {
    if (error != nil) {
        [self showAlert:@"Authentication Error" message:error.localizedDescription];
        self.service.authorizer = nil;
    } else {
        self.signInButton.hidden = true;
        self.output.hidden = false;
        self.service.authorizer = user.authentication.fetcherAuthorizer;
        [self fetchChannelResource];
    }
}


// Construct a query and retrieve the channel resource for the GoogleDevelopers
// YouTube channel. Display the channel title, description, and view count.
- (void)fetchChannelResource {
    GTLRYouTubeQuery_ChannelsList *query =
    [GTLRYouTubeQuery_ChannelsList queryWithPart:@"snippet,statistics"];
  query.identifier = @"UC_x5XG1OV2P6uZZ5FSM9Ttw";
  // To retrieve data for the current user's channel, comment out the previous
  // line (query.identifier ...) and uncomment the next line (query.mine ...).
  // query.mine = true;

  [self.service executeQuery:query
                    delegate:self
           didFinishSelector:@selector(displayResultWithTicket:finishedWithObject:error:)];
}

// Process the response and display output
- (void)displayResultWithTicket:(GTLRServiceTicket *)ticket
             finishedWithObject:(GTLRYouTube_ChannelListResponse *)channels
                          error:(NSError *)error {
  if (error == nil) {
    NSMutableString *output = [[NSMutableString alloc] init];
    if (channels.items.count > 0) {
      [output appendString:@"Channel information:\n"];
      for (GTLRYouTube_Channel *channel in channels) {
        NSString *title = channel.snippet.title;
        NSString *description = channel.snippet.description;
        NSNumber *viewCount = channel.statistics.viewCount;
        [output appendFormat:@"Title: %@\nDescription: %@\nViewCount: %@\n", title, description, viewCount];
      }
    } else {
      [output appendString:@"Channel not found."];
    }
    self.output.text = output;
  } else {
    [self showAlert:@"Error" message:error.localizedDescription];
  }
}


// Helper for showing an alert
- (void)showAlert:(NSString *)title message:(NSString *)message {
    UIAlertController *alert =
    [UIAlertController alertControllerWithTitle:title
                                        message:message
                                 preferredStyle:UIAlertControllerStyleAlert];
    UIAlertAction *ok =
    [UIAlertAction actionWithTitle:@"OK"
                             style:UIAlertActionStyleDefault
                           handler:^(UIAlertAction * action)
     {
         [alert dismissViewControllerAnimated:YES completion:nil];
     }];
    [alert addAction:ok];
    [self presentViewController:alert animated:YES completion:nil];
}


@end

ধাপ ৪: নমুনাটি চালান

Product > Scheme > QuickstartApp এ ক্লিক করে QuickstartApp স্কিমে স্যুইচ করুন এবং ডিভাইস সিমুলেটর অথবা কনফিগার করা ডিভাইস ব্যবহার করে নমুনা (Cmd+R) চালান। প্রথমবার নমুনা চালানোর সময়, এটি আপনাকে আপনার Google অ্যাকাউন্টে লগ ইন করতে এবং অ্যাক্সেস অনুমোদন করতে বলবে।

মন্তব্য

  • অনুমোদনের তথ্য আপনার কীচেইনে সংরক্ষিত থাকে, তাই পরবর্তী সম্পাদনগুলি অনুমোদনের জন্য অনুরোধ করবে না।

আরও পড়া