Android Studio প্রোজেক্ট সেট-আপ করা

এই পৃষ্ঠায় বর্ণনা করা হয়েছে যে কীভাবে কুইকস্টার্ট-এ বিস্তারিতভাবে উল্লেখ করা Google Maps টেমপ্লেট ব্যবহার না করে Android-এর জন্য Maps SDK ব্যবহার করার জন্য Android Studio প্রোজেক্ট কনফিগার করতে হয়।

Google Maps টেমপ্লেট অটোমেটিক কনফিগার করে এবং নতুন Android Studio প্রোজেক্টে একটি বেসিক ম্যাপ যোগ করে। তবে, আপনি Android প্রোজেক্টেও ম্যাপ যোগ করতে পারেন যা অন্য Android Studio টেমপ্লেট ব্যবহার করে। এটি করতে, আপনাকে ম্যানুয়ালি প্রোজেক্ট কনফিগার করতে হবে এবং তারপর ম্যাপ যোগ করতে হবে।

ধাপ ১: Android Studio সেট-আপ করা

এই ডকুমেন্ট Android Studio Hedgehog এবং Android Gradle প্লাগ-ইন ভার্সন ৮.২ ব্যবহার করে ডেভেলপমেন্ট এনভায়রনমেন্টের বর্ণনা দেয়।

ধাপ ২. SDK সেট-আপ করা

Maps SDK for Android লাইব্রেরি Google-এর Maven রিপোজিটরি-এর মাধ্যমে উপলভ্য। আপনার অ্যাপে SDK যোগ করতে, নিম্নলিখিত ধাপগুলি অনুসরণ করুন:

  1. আপনার টপ-লেভেল settings.gradle.kts ফাইলে, pluginManagement ব্লকের অধীনে Gradle প্লাগ-ইন পোর্টাল, Google Maven রিপোজিটরি এবং Maven সেন্ট্রাল রিপোজিটরি অন্তর্ভুক্ত করুন। স্ক্রিপ্টের অন্য যেকোনও স্টেটমেন্টের আগে pluginManagement ব্লকটি অবশ্যই থাকতে হবে।
    pluginManagement {
        repositories {
            google()
            mavenCentral()
            gradlePluginPortal()
        }
    } 
  2. আপনার টপ-লেভেল settings.gradle.kts ফাইলে, dependencyResolutionManagement ব্লকের অধীনে Google-এর Maven রিপোজিটরি এবং Maven সেন্ট্রাল রিপোজিটরি অন্তর্ভুক্ত করুন:
    dependencyResolutionManagement {
        repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS)
        repositories {
            google()
            mavenCentral()
        }
    } 
  3. আপনার মডিউল-লেভেল build.gradle.kts বা build.gradle ফাইলে, Android-এর জন্য Maps SDK-এর Google Play পরিষেবা ডিপেন্ডেন্সি যোগ করুন।

    Kotlin

    dependencies {
    
        // Maps SDK for Android
        implementation(libs.play.services.maps)
    }

    Groovy

    dependencies {
    
        // Maps SDK for Android
        implementation "com.google.android.gms:play-services-maps:20.1.0"
    }
  4. আপনার মডিউল-লেভেল build.gradle.kts বা build.gradle ফাইলে, compileSdk এবং minSdk-কে নিম্নলিখিত ভ্যালুতে সেট করুন:

    Kotlin

    android {
        compileSdk = 34
    
        defaultConfig {
            minSdk = 23
            // ...
        }
    }

    Groovy

    android {
        compileSdk 34
    
        defaultConfig {
            minSdk 23
            // ...
        }
    }
  5. আপনার মডিউল-লেভেল build.gradle.kts বা build.gradle ফাইলের buildFeatures বিভাগে, BuildConfig ক্লাস যোগ করুন, যা আপনি এই পদ্ধতিতে পরে সংজ্ঞায়িত মেটাডেটা ভ্যালু অ্যাক্সেস করতে ব্যবহার করতে পারবেন:

    Kotlin

    android {
      // ...
      buildFeatures {
        buildConfig = true
        // ...
      }
    }

    Groovy

    android {
      // ...
      buildFeatures {
        buildConfig true
        // ...
      }
    }
  6. আপনার libs.versions.toml ফাইলে, নিম্নলিখিতগুলি যোগ করুন:
    [versions]
    play-services-maps = "20.1.0"
    
    [libraries]
    play-services-maps = { module = "com.google.android.gms:play-services-maps", version.ref = "play-services-maps" }
        

ধাপ ৩: প্রোজেক্টে আপনার API key যোগ করুন

এই বিভাগে আপনার API কী কীভাবে স্টোর করবেন তা বর্ণনা করা হয়েছে যাতে আপনার অ্যাপ নিরাপদে রেফারেন্স করতে পারে। আপনার ভার্সন কন্ট্রোল সিস্টেমে API কী চেক করা উচিত নয়, তাই আমরা আপনার প্রোজেক্টের রুট ডিরেক্টরিতে secrets.properties ফাইলে এটি স্টোর করার এবং ভার্সন কন্ট্রোল থেকে সেই ফাইলটি বাদ দেওয়ার সাজেশন দিই। Gradle প্রপার্টি ফাইল সম্পর্কে আরও জানতে, Gradle প্রপার্টি ফাইল দেখুন।

এই টাস্ক আরও সহজ করতে, আমরা আপনাকে Android-এর জন্য Secrets Gradle প্লাগ-ইন ব্যবহার করার সাজেশন দিই।

Android-এর জন্য Secrets Gradle প্লাগ-ইন ইনস্টল করতে এবং আপনার API key স্টোর করতে:

  1. Android Studio-তে, আপনার টপ-লেভেল build.gradle.kts বা build.gradle ফাইল খুলুন এবং plugins ব্লকে নিম্নলিখিত কোড যোগ করুন।

    Kotlin

    plugins {
        // ...
        id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin") version "2.0.1" apply false
    }

    Groovy

    plugins {
        // ...
        id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin' version '2.0.1' apply false
    }
  2. আপনার মডিউল-লেভেল build.gradle.kts বা build.gradle ফাইল খুলুন এবং নিম্নলিখিত কোডটি plugins এলিমেন্টে যোগ করুন।

    Kotlin

    plugins {
        id("com.android.application")
        // ...
        id("com.google.android.libraries.mapsplatform.secrets-gradle-plugin")
    }

    Groovy

    plugins {
        id 'com.android.application'
        // ...
        id 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin'
    }
  3. আপনি Android Studio ব্যবহার করলে, Gradle-এর সাথে আপনার প্রোজেক্ট সিঙ্ক করুন।
  4. আপনার টপ-লেভেল ডিরেক্টরিতে secrets.properties ফাইলটি খুলুন, এবং তারপরে নিম্নলিখিত কোডটি যোগ করুন। YOUR_API_KEY-এর জায়গায় আপনার API key লিখুন। আপনার .gitignore ফাইলে secrets.properties যোগ করতে ভুলবেন না (অথবা আপনার ভার্সন কন্ট্রোল সিস্টেম থেকে এটি বাদ দিন) যাতে আপনি ভার্সন কন্ট্রোলে আপনার API কী চেক না করেন।
    MAPS_API_KEY=YOUR_API_KEY
  5. আপনার টপ-লেভেল ডিরেক্টরিতে local.defaults.properties ফাইল তৈরি করুন, secrets.properties ফাইলের মতো একই ফোল্ডার এবং তারপর নিম্নলিখিত কোড যোগ করুন।

    MAPS_API_KEY=DEFAULT_API_KEY

    এই ফাইলের উদ্দেশ্য হল API কী-এর জন্য একটি ব্যাক-আপ লোকেশন প্রদান করা যদি secrets.properties ফাইলটি খুঁজে না পাওয়া যায় যাতে বিল্ড ব্যর্থ না হয়। আপনি যদি এমন কোনও ভার্সন কন্ট্রোল সিস্টেম থেকে অ্যাপ ক্লোন করেন যা secrets.properties বাদ দেয় এবং আপনি এখনও API কী প্রদান করার জন্য স্থানীয়ভাবে secrets.properties ফাইল তৈরি না করে থাকেন, তাহলে এটি হতে পারে।

  6. আপনার AndroidManifest.xml ফাইলে, com.google.android.geo.API_KEY-এ যান এবং android:value অ্যাট্রিবিউটটি এইভাবে আপডেট করুন:
    <meta-data
        android:name="com.google.android.geo.API_KEY"
        android:value="${MAPS_API_KEY}" />
        

    মনে রাখবেন: API কী-এর জন্য সাজেস্ট করা মেটাডেটার নাম হল com.google.android.geo.API_KEY। এই নামের একটি 'কী' Android প্ল্যাটফর্মে Google Maps-ভিত্তিক একাধিক API-তে যাচাইকরণের জন্য ব্যবহার করা যেতে পারে, যার মধ্যে Maps SDK for Android অন্তর্ভুক্ত। ব্যাকওয়ার্ড কম্প্যাটিবিলিটির জন্য, API-তে com.google.android.maps.v2.API_KEY নামও কাজ করে। এই লিগ্যাসি নাম শুধুমাত্র Android Maps API v2-তে যাচাইকরণের অনুমতি দেয়। কোনও অ্যাপ্লিকেশন শুধুমাত্র একটি API কী মেটাডেটার নাম উল্লেখ করতে পারে। দুটিই নির্দিষ্ট করা থাকলে, API ব্যতিক্রম দেখায়।

  7. Android Studio-তে, আপনার মডিউল-লেভেল build.gradle.kts বা build.gradle ফাইল খুলুন এবং secrets প্রপার্টি এডিট করুন। secrets প্রপার্টি না থাকলে, এটি যোগ করুন।

    propertiesFileName-কে "secrets.properties"-এ সেট করতে, defaultPropertiesFileName-কে "local.defaults.properties"-এ সেট করতে এবং অন্য যেকোনও প্রপার্টি সেট করতে প্লাগ-ইনের প্রপার্টি এডিট করুন।

    Kotlin

    secrets {
        // To add your Maps API key to this project:
        // 1. If the secrets.properties file does not exist, create it in the root directory (the same folder as the root local.properties file).
        // 2. Add this line, where YOUR_API_KEY is your API key:
        //        MAPS_API_KEY=YOUR_API_KEY
        propertiesFileName = "secrets.properties"
    
        // A properties file containing default secret values. This file can be
        // checked in version control.
        defaultPropertiesFileName = "local.defaults.properties"
    }

    Groovy

    secrets {
        // To add your Maps API key to this project:
        // 1. If the secrets.properties file does not exist, create it in the root directory (the same folder as the root local.properties file).
        // 2. Add this line, where YOUR_API_KEY is your API key:
        //        MAPS_API_KEY=YOUR_API_KEY
        propertiesFileName = "secrets.properties"
    
        // A properties file containing default secret values. This file can be
        // checked in version control.
        defaultPropertiesFileName = "local.defaults.properties"
    }

ধাপ ৪: অ্যাপ ম্যানিফেস্ট আপডেট করুন

এই বিভাগে আপনার AndroidManifest.xml ফাইলে যোগ করার জন্য সেটিংসের বিবরণ দেওয়া আছে।

Google Play পরিষেবার ভার্সন নম্বর

application এলিমেন্টের মধ্যে নিম্নলিখিত ঘোষণা যোগ করুন। এটি Google Play পরিষেবার সেই ভার্সন এম্বেড করে যেটির সাথে অ্যাপটি কম্পাইল করা হয়েছে।

<meta-data
    android:name="com.google.android.gms.version"
    android:value="@integer/google_play_services_version"/>

লোকেশন সংক্রান্ত অনুমতি

আপনার অ্যাপকে ব্যবহারকারীর লোকেশন অ্যাক্সেস করতে হলে, আপনাকে AndroidManifest.xml ফাইলে লোকেশন সংক্রান্ত অনুমতি অনুরোধ করতে হবে। বিকল্পগুলি হল ACCESS_FINE_LOCATION, যা ডিভাইসের সুনির্দিষ্ট লোকেশন প্রদান করে এবং ACCESS_COARSE_LOCATION, যা কম সুনির্দিষ্ট। বিস্তারিত জানতে, লোকেশন ডেটা সংক্রান্ত নির্দেশিকা দেখুন।

ACCESS_FINE_LOCATION অনুমতির জন্য অনুরোধ করতে, এই কোডটি manifest এলিমেন্টে যোগ করুন:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

এক্সটার্নাল স্টোরেজ সংক্রান্ত অনুমতি

আপনি যদি Google Play পরিষেবা SDK-এর ভার্সন ৮.৩ বা তার পরের ভার্সন টার্গেট করেন, তাহলে আপনার WRITE_EXTERNAL_STORAGE অনুমতি লাগবে না। আপনি যদি Google Play পরিষেবা SDK-এর আগের ভার্সন টার্গেট করেন, তাহলে আপনাকে অবশ্যই WRITE_EXTERNAL_STORAGE অনুমতির জন্য manifest এলিমেন্টে অনুরোধ করতে হবে।

<uses-permission
        android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

Apache HTTP লিগ্যাসি লাইব্রেরি

আপনি com.google.android.gms:play-services-maps:16.0.0 বা তার আগের ভার্সন ব্যবহার করলে এবং আপনার অ্যাপ API লেভেল 28 (Android 9.0) বা তার পরের ভার্সনকে টার্গেট করলে, আপনাকে AndroidManifest.xml-এর <application> এলিমেন্টের মধ্যে নিম্নলিখিত ঘোষণা অন্তর্ভুক্ত করতে হবে। অন্যথায়, এই ঘোষণা এড়িয়ে যান।

<uses-library
    android:name="org.apache.http.legacy"
    android:required="false"/>

ধাপ ৫: Android ডিভাইস সেট-আপ করা

Maps SDK for Android ব্যবহার করে এমন অ্যাপ চালাতে, আপনাকে অবশ্যই এটি Android 6.0 বা তার পরবর্তী যেকোনও ভার্সন এবং Google API-এর উপর ভিত্তি করে তৈরি Android ডিভাইস বা Android এমুলেটরে ডিপ্লয় করতে হবে।

  • Android ডিভাইস ব্যবহার করতে, হার্ডওয়্যার ডিভাইসে অ্যাপ রান করুন লিঙ্কে দেওয়া নির্দেশাবলী অনুসরণ করুন।
  • Android এমুলেটর ব্যবহার করতে, আপনি ভার্চুয়াল ডিভাইস তৈরি করতে এবং ডিভাইস ম্যানেজার ব্যবহার করে এমুলেটর ইনস্টল করতে পারবেন যা Android Studio-এর সাথে আসে।

ধাপ ৬: বিকল্প হিসেবে Play পরিষেবা কাজ করছে কিনা তা চেক করা

Maps SDK for Android-এর জন্য আপনার অ্যাপ যে ডিভাইসে ডিপ্লয় করবেন, সেটিতে Google Play পরিষেবা ইনস্টল করা থাকতে হবে। Google এমন একটি পদ্ধতি প্রদান করে যা আপনি চেক করার জন্য আপনার অ্যাপ থেকে কল করতে পারেন। আরও তথ্যের জন্য, Google Play পরিষেবা ইনস্টল করা আছে কিনা তা চেক করুন।

পরবর্তী ধাপ

আপনার প্রোজেক্ট কনফিগার করা হয়ে গেলে, আপনি ম্যাপ যোগ করতে পারবেন।