একটি Xcode প্রকল্প সেট আপ করুন

আপনি বিলিং সক্ষম করার পরে এবং একটি API কী তৈরি করার পরে, আপনি Xcode প্রকল্পটি সেট আপ করতে প্রস্তুত যা আপনি আপনার অ্যাপ বিকাশ করতে ব্যবহার করেন৷

রিলিজ নোট প্রতিটি রিলিজের জন্য উপলব্ধ.

ধাপ 1: প্রয়োজনীয় সফ্টওয়্যার ইনস্টল করুন

iOS এর জন্য Places SDK ব্যবহার করে একটি প্রকল্প তৈরি করতে, আপনার প্রয়োজন:

  • Xcode সংস্করণ 14.0 বা তার পরে
  • কোকোপডস
  • ধাপ 2: Xcode প্রকল্প তৈরি করুন এবং iOS এর জন্য Places SDK ইনস্টল করুন

    একটি নতুন প্রকল্পে API ইনস্টল করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

    কোকোপড ব্যবহার করুন

    iOS-এর জন্য Places SDK একটি CocoaPod পড হিসেবে উপলব্ধ, GooglePlaces , যাতে সমস্ত স্থানের কার্যকারিতা রয়েছে৷

    CocoaPods হল সুইফট এবং অবজেক্টিভ-সি কোকো প্রকল্পগুলির জন্য একটি ওপেন সোর্স নির্ভরতা ব্যবস্থাপক। আপনার যদি ইতিমধ্যেই CocoaPods টুল না থাকে, তাহলে টার্মিনাল থেকে নিম্নলিখিত কমান্ডটি চালিয়ে ম্যাকোসে এটি ইনস্টল করুন। বিস্তারিত জানার জন্য, CocoaPods শুরু করার নির্দেশিকা দেখুন।

    sudo gem install cocoapods

    iOS এর জন্য স্থান SDK-এর জন্য একটি Podfile তৈরি করুন এবং SDK এবং এর নির্ভরতা ইনস্টল করতে এটি ব্যবহার করুন:

    1. আপনার যদি এখনও একটি Xcode প্রকল্প না থাকে তবে এখনই একটি তৈরি করুন এবং এটি আপনার স্থানীয় মেশিনে সংরক্ষণ করুন। আপনি iOS ডেভেলপমেন্টে নতুন হলে, একটি নতুন প্রকল্প তৈরি করুন এবং iOS অ্যাপ টেমপ্লেট নির্বাচন করুন।
    2. আপনার প্রকল্প ডিরেক্টরিতে Podfile নামে একটি ফাইল তৈরি করুন। এই ফাইলটি আপনার প্রকল্পের নির্ভরতা সংজ্ঞায়িত করে।
    3. Podfile সম্পাদনা করুন এবং তাদের সংস্করণ সহ আপনার নির্ভরতা যোগ করুন। এখানে একটি উদাহরণ যা আপনার অ্যাপ্লিকেশন লক্ষ্যের নাম এবং GooglePlaces পডের নাম উল্লেখ করে:
      source 'https://github.com/CocoaPods/Specs.git'
      
      platform :ios, '14.0'
      
      target 'YOUR_APPLICATION_TARGET_NAME_HERE' do
        pod 'GooglePlaces', '8.3.0'
      end
      
      আপনি সর্বদা সর্বশেষে আছেন তা নিশ্চিত করার জন্য একটি নতুন সংস্করণ আছে তা সনাক্ত করতে নিয়মিতভাবে pod outdated চালানো নিশ্চিত করুন৷
    4. Podfile সংরক্ষণ করুন।
    5. একটি টার্মিনাল খুলুন এবং Podfile ধারণকারী ডিরেক্টরিতে যান:

      cd <path-to-project>
    6. pod install কমান্ড চালান। এটি Podfile এ নির্দিষ্ট করা APIগুলিকে ইনস্টল করবে, সাথে তাদের যে কোনো নির্ভরতা থাকতে পারে।

      pod install
    7. Xcode বন্ধ করুন, এবং তারপর Xcode চালু করতে আপনার প্রকল্পের .xcworkspace ফাইল খুলুন (ডাবল-ক্লিক করুন)। এই সময় থেকে, আপনাকে প্রকল্পটি খুলতে .xcworkspace ফাইলটি ব্যবহার করতে হবে।

    একটি বিদ্যমান প্রকল্পের জন্য API আপডেট করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

    1. একটি টার্মিনাল খুলুন এবং Podfile ধারণকারী প্রকল্প ডিরেক্টরিতে যান।
    2. pod update কমান্ড চালান। এটি Podfile এ উল্লিখিত সমস্ত API সর্বশেষ সংস্করণে আপডেট করবে।

    ম্যানুয়ালি ইনস্টল করুন

    এই নির্দেশিকাটি দেখায় কিভাবে ম্যানুয়ালি আপনার প্রোজেক্টে iOS এর জন্য Places SDK ধারণকারী XCFramework যোগ করতে হয় এবং Xcode-এ আপনার বিল্ড সেটিংস কনফিগার করতে হয়। একটি XCFramework হল একটি বাইনারি প্যাকেজ যা আপনি Apple সিলিকন ব্যবহার করে মেশিন সহ একাধিক প্ল্যাটফর্মে ব্যবহার করতে পারেন।

    1. নিম্নলিখিত SDK বাইনারি এবং সংস্থান ফাইলগুলি ডাউনলোড করুন:
    2. XCFramework এবং সংস্থানগুলি অ্যাক্সেস করতে জিপ করা ফাইলগুলি আনপ্যাক করুন৷
    3. Xcode চালু করুন এবং হয় একটি বিদ্যমান প্রকল্প খুলুন, অথবা একটি নতুন প্রকল্প তৈরি করুন। আপনি iOS ডেভেলপমেন্টে নতুন হলে, একটি নতুন প্রকল্প তৈরি করুন এবং iOS অ্যাপ টেমপ্লেট নির্বাচন করুন।
    4. আপনার প্রোজেক্ট থেকে আগের রিলিজ থেকে যেকোনও ম্যাপ বান্ডিল সরান।
    5. ফ্রেমওয়ার্ক, লাইব্রেরি এবং এমবেডেড কন্টেন্টের অধীনে নিম্নলিখিত XCFrameworkটিকে আপনার প্রকল্পে টেনে আনুন। এম্বেড করবেন না নির্বাচন নিশ্চিত করুন:
      • GooglePlaces.xcframework
    6. আপনার Xcode প্রকল্পের শীর্ষ স্তরের ডিরেক্টরিতে আপনার ডাউনলোড করা GooglePlacesResources থেকে GooglePlaces.bundle টেনে আনুন। প্রম্পট করা হলে, গন্তব্য গোষ্ঠীর ফোল্ডারে আইটেমগুলি অনুলিপি করুন নির্বাচন করা হয়েছে তা নিশ্চিত করুন।
    7. প্রজেক্ট নেভিগেটর থেকে আপনার প্রজেক্ট সিলেক্ট করুন এবং আপনার অ্যাপ্লিকেশনের টার্গেট বেছে নিন।
    8. বিল্ড ফেজ ট্যাবটি খুলুন, এবং লাইব্রেরিগুলির সাথে লিঙ্ক বাইনারি এর মধ্যে, এবং নিম্নলিখিত ফ্রেমওয়ার্ক এবং লাইব্রেরিগুলি যুক্ত করুন:
      • CoreGraphics.framework
      • CoreLocation.framework
      • libc++.tbd
      • libz.tbd
      • QuartzCore.framework
      • UIKit.framework
    9. একটি নির্দিষ্ট লক্ষ্যের পরিবর্তে আপনার প্রকল্পটি বেছে নিন এবং বিল্ড সেটিংস ট্যাবটি খুলুন।

    10. অন্যান্য লিঙ্কার পতাকা বিভাগে, -ObjC যোগ করুন। যদি এই সেটিংসগুলি দৃশ্যমান না হয়, তবে বিল্ড সেটিংস বারে ফিল্টারটি বেসিক থেকে সকলে পরিবর্তন করুন৷

    ধাপ 3: আপনার অ্যাপে API কী যোগ করুন

    নিম্নলিখিত উদাহরণগুলিতে, আপনার API কী দিয়ে YOUR_API_KEY প্রতিস্থাপন করুন।

    সুইফট

    নিম্নরূপ আপনার AppDelegate.swift এ আপনার API কী যোগ করুন:

    • নিম্নলিখিত আমদানি বিবৃতি যোগ করুন:
      import GooglePlaces
    • আপনার এপিআই কী দিয়ে YOUR_API_KEY প্রতিস্থাপন করে আপনার application(_:didFinishLaunchingWithOptions:) পদ্ধতিতে নিম্নলিখিত যোগ করুন:
      GMSPlacesClient.provideAPIKey("YOUR_API_KEY")

    উদ্দেশ্য গ

    নিম্নরূপ আপনার AppDelegate.m এ আপনার API কী যোগ করুন:

    • নিম্নলিখিত আমদানি বিবৃতি যোগ করুন:
      @import GooglePlaces;
    • আপনার application:didFinishLaunchingWithOptions: পদ্ধতি, আপনার API কী দিয়ে YOUR_API_KEY প্রতিস্থাপন করুন:
      [GMSPlacesClient provideAPIKey:@"YOUR_API_KEY"];

    ধাপ 4: কোড লেখা শুরু করুন

    নিম্নলিখিত কোড নমুনাগুলি বর্তমান স্থানটি কীভাবে পেতে হয় তা প্রদর্শন করে।

    সুইফট

    import GooglePlaces
    import UIKit
    
    class GetStartedViewController : UIViewController {
    
      // Add a pair of UILabels in Interface Builder, and connect the outlets to these variables.
      @IBOutlet private var nameLabel: UILabel!
      @IBOutlet private var addressLabel: UILabel!
    
      private var placesClient: GMSPlacesClient!
    
      override func viewDidLoad() {
        super.viewDidLoad()
        placesClient = GMSPlacesClient.shared()
      }
    
      // Add a UIButton in Interface Builder, and connect the action to this function.
      @IBAction func getCurrentPlace(_ sender: UIButton) {
        let placeFields: GMSPlaceField = [.name, .formattedAddress]
        placesClient.findPlaceLikelihoodsFromCurrentLocation(withPlaceFields: placeFields) { [weak self] (placeLikelihoods, error) in
          guard let strongSelf = self else {
            return
          }
    
          guard error == nil else {
            print("Current place error: \(error?.localizedDescription ?? "")")
            return
          }
    
          guard let place = placeLikelihoods?.first?.place else {
            strongSelf.nameLabel.text = "No current place"
            strongSelf.addressLabel.text = ""
            return
          }
    
          strongSelf.nameLabel.text = place.name
          strongSelf.addressLabel.text = place.formattedAddress
        }
      }
    }
          

    উদ্দেশ্য গ

    #import "GetStartedViewController.h"
    @import GooglePlaces;
    
    @interface GetStartedViewController ()
    // Add a pair of UILabels in Interface Builder and connect the outlets to these variables
    @property (weak, nonatomic) IBOutlet UILabel *nameLabel;
    @property (weak, nonatomic) IBOutlet UILabel *addressLabel;
    @end
    
    @implementation GetStartedViewController {
      GMSPlacesClient *_placesClient;
    }
    
    - (void)viewDidLoad {
      [super viewDidLoad];
      _placesClient = [GMSPlacesClient sharedClient];
    }
    
    // Add a pair of UILabels in Interface Builder and connect the outlets to these variables.
    - (IBAction)getCurrentPlace:(UIButton *)sender {
      GMSPlaceField placeFields = (GMSPlaceFieldName | GMSPlaceFieldFormattedAddress);
    
      __weak typeof(self) weakSelf = self;
      [_placesClient findPlaceLikelihoodsFromCurrentLocationWithPlaceFields:placeFields callback:^(NSArray<GMSPlaceLikelihood *> * _Nullable likelihoods, NSError * _Nullable error) {
        __typeof__(self) strongSelf = weakSelf;
        if (strongSelf == nil) {
          return;
        }
    
        if (error != nil) {
          NSLog(@"An error occurred %@", [error localizedDescription]);
          return;
        }
    
        GMSPlace *place = likelihoods.firstObject.place;
        if (place == nil) {
          strongSelf.nameLabel.text = @"No current place";
          strongSelf.addressLabel.text = @"";
          return;
        }
    
        strongSelf.nameLabel.text = place.name;
        strongSelf.addressLabel.text = place.formattedAddress;
      }];
    }
    
    @end
          

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

    আপনার প্রোজেক্ট কনফিগার হওয়ার পরে, আপনি নমুনা অ্যাপগুলি অন্বেষণ করতে পারেন৷ আপনাকে Cocoapods v1.6.1 ইনস্টল করতে হবে।