সর্বোত্তম অনুশীলন

অ্যান্ড্রয়েড স্টুডিওতে জেমিনি আপনার কোডিং সহযোগী হিসেবে কাজ করে, কোড তৈরি করে, জটিল বিষয়গুলির সারসংক্ষেপ তৈরি করে, নির্দিষ্ট সংস্থান খুঁজে বের করে এবং আরও অনেক কিছুর মাধ্যমে আপনার ডেভেলপমেন্ট ওয়ার্কফ্লোকে ত্বরান্বিত করে। জেমিনির পূর্ণ সম্ভাবনা উন্মোচনের মূল চাবিকাঠি হল কার্যকর যোগাযোগ।

এই নির্দেশিকাটি আপনার ডেভেলপমেন্ট পরিবেশ এবং লেখার প্রম্পটগুলি সেট আপ করার কৌশলগুলি রূপরেখা দেয় যা কার্যকর এবং নির্ভরযোগ্য প্রতিক্রিয়া দেয়। একাধিক কৌশলের জন্য, আমরা বিভিন্ন ব্যবহারের ক্ষেত্রে উদাহরণ প্রম্পট সরবরাহ করেছি। আরও উদাহরণ প্রম্পটের জন্য, প্রম্পট গ্যালারি দেখুন।

এজেন্ট মোড ব্যবহার করুন

অ্যান্ড্রয়েড স্টুডিওর এজেন্ট মোডে জেমিনি কেবল জেমিনির সাথে চ্যাট করে আপনি যা অভিজ্ঞতা অর্জন করতে পারেন তার চেয়েও বেশি কিছু করে। আপনি এজেন্টকে একটি উচ্চ-স্তরের লক্ষ্য দিতে পারেন এবং এজেন্ট সমস্যাটি ভেঙে সমাধানের জন্য একটি পরিকল্পনা তৈরি করে। এজেন্ট সরঞ্জামগুলি ব্যবহার করে, একাধিক ফাইল সম্পাদনা করে এবং ত্রুটিগুলি ঠিক করে। এজেন্ট মোড আপনাকে জটিল কাজগুলি আরও দক্ষতার সাথে পরিচালনা করতে সাহায্য করে, আপনার সম্পূর্ণ বিকাশ প্রক্রিয়াটি দ্রুততর করে।

সুনির্দিষ্ট হোন

অ্যান্ড্রয়েড স্টুডিওতে জেমিনি স্পষ্ট, নির্দিষ্ট নির্দেশাবলীর সাথে সবচেয়ে ভালো কাজ করে। যদি কিছু নির্দিষ্ট লাইব্রেরি, API, বা পদ্ধতি থাকে যা আপনি ব্যবহার করতে চান, তাহলে সেগুলিকে আপনার প্রশ্নে অন্তর্ভুক্ত করুন—অথবা আপনার প্রকল্পের রুট AGENTS.md ফাইলে অন্তর্ভুক্ত করুন যাতে সেগুলিকে ইন্টারঅ্যাকশনের মাধ্যমে ধরে রাখা যায়। এটিকে একটি বাগ রিপোর্ট ফাইল করার মতো ভাবুন: আপনি যত বেশি তথ্য প্রদান করবেন, তত দ্রুত এবং কার্যকরভাবে সমস্যাটি সমাধান করা যাবে।

নতুন কার্যকারিতা বাস্তবায়ন:

CameraX ব্যবহার করে আমি কীভাবে আমার অ্যাপে ক্যামেরা সাপোর্ট যোগ করব? লাইব্রেরি ব্যবহারের জন্য আমার যে কোনও নির্ভরতা এবং অনুমতি অন্তর্ভুক্ত করতে ভুলবেন না।
আমি কিভাবে আমার অ্যাপে ক্যামেরা সাপোর্ট যোগ করব?

কোড তৈরি করা হচ্ছে:

একটি Kotlin সাসপেন্ড ফাংশন লিখুন যা একটি প্রদত্ত URL স্ট্রিং থেকে একটি ছবি ডাউনলোড করতে Coil লাইব্রেরি ব্যবহার করে।

ফাংশনটির নাম fetchImageAsBitmap রাখা উচিত। এটি একটি Context এবং একটি String URL আর্গুমেন্ট হিসেবে নেবে এবং একটি nullable Bitmap প্রদান করবে। যদি কোনও নেটওয়ার্ক বা ডিকোডিং ত্রুটি থাকে, তাহলে এটি ব্যতিক্রমটি ধরবে, লগ করবে এবং null প্রদান করবে।

একটি ছবি ডাউনলোড করার জন্য একটি ফাংশন লিখুন।

একটি ধারণা ব্যাখ্যা করা:

আমি একটি মিউজিক প্লেয়ার অ্যাপ তৈরি করছি এবং অ্যাপটি ব্যাকগ্রাউন্ডে থাকাকালীন প্লেব্যাক চালিয়ে যেতে হবে।

ব্যবহারকারী যখন ডিভাইসে অন্যান্য কাজ করছেন, তখন আমার অ্যাপটি চালু রাখার জন্য আমার কাছে কী কী বিকল্প আছে? প্রতিটি পদ্ধতির জন্য API স্তরের প্রয়োজনীয়তা এবং ব্যাটারি লাইফের প্রভাব কী কী?

অ্যান্ড্রয়েড পরিষেবা ব্যাখ্যা কর।

উত্তরের গঠন বর্ণনা করো।

ডিফল্টরূপে, জেমিনি একটি কথোপকথনমূলক, অনুচ্ছেদ-ভিত্তিক বিন্যাসে উত্তর প্রদান করে। যদিও এটি প্রায়শই ব্যাখ্যার জন্য কার্যকর, আপনি প্রতিক্রিয়া কীভাবে গঠন করবেন তা বলে আরও কার্যকর এবং তাৎক্ষণিকভাবে ব্যবহারযোগ্য ফলাফল পেতে পারেন। আউটপুট ফর্ম্যাট নির্দিষ্ট করা মডেলটিকে তথ্যকে একটি স্পষ্ট, অনুমানযোগ্য উপায়ে সংগঠিত করার নির্দেশ দেয়, যা আপনার নিজের পুনর্বিন্যাসের সময় বাঁচায়।

যদি আপনি আপনার অ্যাপে জেমিনি দ্বারা তৈরি কোডটি সন্নিবেশ করতে চান এবং তাৎক্ষণিকভাবে ব্যবহার করার জন্য একটি নির্দিষ্ট ফর্ম্যাটে কোডটির প্রয়োজন হয়, তাহলে জেমিনিকে কোডটি তৈরি এবং ফর্ম্যাট করার বিষয়ে স্পষ্ট নির্দেশনা দিন।

প্রতিক্রিয়া গঠন:

ব্যবহারকারীর প্রোফাইলের জন্য একটি Room সত্তা তৈরি করুন। এতে id , userName , email , এবং memberSince ক্ষেত্রগুলি থাকা উচিত। id ক্ষেত্রটি স্বয়ংক্রিয়ভাবে তৈরি হওয়া উচিত। memberSince ক্ষেত্রটি একটি টাইমস্ট্যাম্প প্রতিনিধিত্ব করা উচিত।

ব্যবহারকারীর প্রোফাইলের জন্য একটি রুম সত্তা তৈরি করুন।

যদি আপনি আরও খোলামেলা প্রশ্ন জিজ্ঞাসা করেন, তাহলে x নম্বর বিকল্পের জন্য জিজ্ঞাসা করুন।

প্রতিক্রিয়া সীমিত করা:

অ্যাপ পারফর্মেন্স অপ্টিমাইজেশনের জন্য কোন কোন টুল পাওয়া যায়? আমাকে সেরা তিনটির একটি তালিকা দিন।
অ্যাপের কর্মক্ষমতা অপ্টিমাইজেশনের জন্য কোন সরঞ্জামগুলি উপলব্ধ?

জটিল অনুরোধগুলিকে ছোট ছোট কাজে ভাগ করুন

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

ক্রমিক প্রম্পট প্রয়োগ করা হচ্ছে:

প্রম্পট ১: ডেটা মডেল
প্রথমে, User নামে একটি Kotlin ডেটা ক্লাস তৈরি করুন। এর তিনটি বৈশিষ্ট্য থাকা উচিত: id (একটি Int), name (একটি String), এবং email (একটি String)।

প্রম্পট ২: নেটওয়ার্ক স্তর
এখন, ApiService নামে একটি Retrofit API ইন্টারফেস তৈরি করুন। এর জন্য getUsers() নামক একটি একক suspend fun প্রয়োজন যা একটি List<User> প্রদান করে।

প্রম্পট ৩: রাষ্ট্রীয় ব্যবস্থাপনা
এরপর, একটি UsersViewModel লিখুন যা ApiService একটি নির্ভরতা হিসেবে গ্রহণ করে। UsersViewModel এর একটি সিল করা UiState ক্লাসের StateFlow প্রকাশ করা উচিত যা Loading, Success(users: List ) উপস্থাপন করতে পারে। Loading, Success(users: List ) , এবং Error(message: String) স্টেট। ব্যবহারকারীদের আনতে এবং স্ট্যাটাস আপডেট করার জন্য ViewModel এ একটি ফাংশন তৈরি করুন। নতুন কার্যকারিতার জন্য ইউনিট পরীক্ষা লিখুন।

প্রম্পট ৪: UI স্তর
অবশেষে, UserListScreen নামে একটি Jetpack Compose ফাংশন লিখুন যা UiState কে প্যারামিটার হিসেবে গ্রহণ করে। লোডিং অবস্থার জন্য একটি CircularProgressIndicator , সাফল্যের অবস্থার জন্য ব্যবহারকারীর নামের একটি LazyColumn এবং ত্রুটির অবস্থার জন্য ত্রুটি বার্তা সহ একটি Text উপাদান প্রদর্শনের জন্য when স্টেটমেন্ট ব্যবহার করুন। নতুন কার্যকারিতা যাচাই করার জন্য পরীক্ষা যোগ করুন।

একটি Jetpack Compose স্ক্রিন তৈরি করুন যা JSON API থেকে ব্যবহারকারীদের একটি তালিকা আনবে এবং তাদের একটি তালিকায় প্রদর্শন করবে। এতে একটি ViewModel থাকা উচিত যা Retrofit এবং coroutines ব্যবহার করে, ডেটা লজিক পরিচালনা করার জন্য একটি সংগ্রহস্থল, একটি User ডেটা ক্লাস থাকা উচিত এবং এটি লোডিং এবং ত্রুটির অবস্থা দেখাতে হবে।

প্রসঙ্গ পরিচালনা করুন

অ্যান্ড্রয়েড স্টুডিওতে জেমিনির সাথে কাজ করার একটি প্রধান অংশ হল সঠিক প্রেক্ষাপট প্রদান করা। সবচেয়ে সহায়ক প্রতিক্রিয়া পেতে প্রাসঙ্গিক কোড স্নিপেট, ফাইলের বিষয়বস্তু এবং প্রকল্প কাঠামোর তথ্য প্রদান করুন। সঠিক ভারসাম্য বজায় রাখার জন্য আপনাকে পুনরাবৃত্তি করতে হতে পারে: খুব বেশি তথ্য জেমিনিকে বিপথগামী করতে পারে, যেখানে খুব কম তথ্য সাহায্য করার জন্য পর্যাপ্ত প্রেক্ষাপট প্রদান করবে না। জেমিনিকে প্রয়োজনীয় প্রেক্ষাপটে অ্যাক্সেস দেওয়ার জন্য উপলব্ধ বৈশিষ্ট্যগুলি ব্যবহার করুন:

  • আপনি যে UI কল্পনা করছেন বা যে অ্যাপ আর্কিটেকচারটি বুঝতে চাইছেন তার একটি ভিজ্যুয়াল প্রদান করতে ছবি সংযুক্ত করুন
  • কোডবেসের প্রাসঙ্গিক অংশগুলি হাইলাইট করার জন্য ফাইলগুলি সংযুক্ত করুন
  • কোডবেসের কিছু অংশ উপেক্ষা করার জন্য জেমিনিকে .aiexclude ফাইল ব্যবহার করুন।
  • প্রকল্প-নির্দিষ্ট নির্দেশাবলী দিতে AGENTS.md ফাইল ব্যবহার করুন এবং আপনার টিমের সাথে শেয়ার করুন। AGENTS.md ফাইল ব্যবহার করার সময়, আপনার নির্দেশাবলী স্পষ্ট করার জন্য মার্কডাউন হেডার এবং ফর্ম্যাটিং ব্যবহার করুন।
  • এজেন্ট মোড ব্যবহার করার সময়, বাহ্যিক পরিবেশের সাথে জেমিনির জ্ঞান এবং ক্ষমতা প্রসারিত করার জন্য MCP সার্ভারগুলি কনফিগার করুন।

ব্যাখ্যা জিজ্ঞাসা করুন

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

আপনার নির্দেশাবলী পুনরাবৃত্তি করুন

যখন আপনি একজন সহকর্মীর সাথে কাজ করেন, ঠিক তেমনি Android Studio-তে Gemini-এর সাথে কাজ করার সময়, কাজ এবং প্রত্যাশিত ফলাফল সম্পর্কে স্পষ্টতা পেতে মাঝে মাঝে কিছু যোগাযোগ করতে হয়। যদি Gemini-এর প্রাথমিক প্রতিক্রিয়া অপর্যাপ্ত হয়, তাহলে কীভাবে উন্নতি করা যায় তার জন্য প্রতিক্রিয়া এবং পরামর্শ দিয়ে সাড়া দিন। যদি আপনার পরামর্শের উপর ভিত্তি করে এর প্রতিক্রিয়া উন্নত হয়, তাহলে Prompt Library- এর এন্ট্রি আপডেট করে অথবা আপনার AGENTS.md ফাইল আপডেট করে মূল প্রম্পটে সেই পরামর্শটি অন্তর্ভুক্ত করুন।