ট্যাবলেট, ফোল্ডেবল, ChromeOS ডিভাইস, কার ডিসপ্লে, এবং টিভি সহ 300 মিলিয়নেরও বেশি Android বড় স্ক্রীন ডিভাইসগুলি আজ ব্যবহার করা হচ্ছে, আরও কিছু ক্রমাগত আসছে৷ বড় স্ক্রীন ডিভাইসের ক্রমবর্ধমান সংখ্যা এবং বৈচিত্র্যের উপর একটি সর্বোত্তম ব্যবহারকারীর অভিজ্ঞতা প্রদান করতে - সেইসাথে স্ট্যান্ডার্ড ফোনে - অভিযোজিত অ্যাপ তৈরি করুন ।
অভিযোজিত অ্যাপ্লিকেশন কি?
অভিযোজিত অ্যাপগুলি অ্যাপ প্রদর্শনের পরিবর্তনের উপর ভিত্তি করে লেআউট পরিবর্তন করে, প্রাথমিকভাবে অ্যাপ উইন্ডোর আকার। কিন্তু অভিযোজিত অ্যাপগুলি ভাঁজ করা যায় এমন ডিভাইসের ভঙ্গি, যেমন ট্যাবলেটপ বা বইয়ের ভঙ্গি এবং স্ক্রীনের ঘনত্ব এবং ফন্টের আকারের পরিবর্তনগুলিকে মিটমাট করে।
বিভিন্ন উইন্ডো আকারের প্রতিক্রিয়ায় শুধুমাত্র UI উপাদানগুলিকে প্রসারিত বা সঙ্কুচিত করার পরিবর্তে, অভিযোজিত অ্যাপগুলি লেআউট উপাদানগুলি প্রতিস্থাপন করে এবং সামগ্রী দেখায় বা লুকিয়ে রাখে। উদাহরণস্বরূপ, স্ট্যান্ডার্ড ফোনে, একটি অভিযোজিত অ্যাপ একটি নীচের নেভিগেশন বার প্রদর্শন করতে পারে, কিন্তু বড় স্ক্রিনে, একটি নেভিগেশন রেল। বড় স্ক্রিনে, অভিযোজিত অ্যাপগুলি আরও কন্টেন্ট প্রদর্শন করে, যেমন একটি টু-পেন, তালিকা-বিশদ লেআউট; ছোট পর্দায়, কম সামগ্রী, হয় তালিকা বা বিশদ।
দ্রুত-বিবর্ণ, ফোন-কেন্দ্রিক অতীতে, অ্যাপ্লিকেশনগুলি পূর্ণ স্ক্রীনে চলেছিল৷ আজ, অ্যাপগুলি ডিভাইসের পর্দার আকার থেকে স্বাধীনভাবে ইচ্ছামত আকারের উইন্ডোতে মাল্টি-উইন্ডো মোডে চলে৷ ব্যবহারকারীরা যেকোনো সময় উইন্ডোর আকার পরিবর্তন করতে পারেন। তাই এমনকি একটি একক ডিভাইসের প্রকারেও, অ্যাপগুলিকে অবশ্যই অভিযোজিত হতে হবে।
অভিযোজিত অ্যাপ্লিকেশনগুলি দেখতে দুর্দান্ত দেখায় এবং যে কোনও কনফিগারেশনে যে কোনও ডিভাইসে ভাল কাজ করে।
কেন অভিযোজিত UIs নির্মাণ?
ব্যবহারকারীরা আশা করে যে আপনার অ্যাপটি তাদের সমস্ত ডিভাইসে ত্রুটিহীনভাবে কাজ করবে এবং বড় স্ক্রিনে উন্নত ক্ষমতা প্রদান করবে। একটি বর্ধিত অ্যাপ অভিজ্ঞতা এবং বর্ধিত উত্পাদনশীলতার জন্য ব্যবহারকারীরা মাল্টি-উইন্ডো মোডে মাল্টিটাস্ক করে।
স্ট্যান্ডার্ড ফোনে সিঙ্গেল-টাস্কিং-এর মধ্যে সীমাবদ্ধ অ্যাপগুলি বিভিন্ন সম্ভাবনার একটি বর্ধিত ব্যবহারকারী বেস মিস করে।
গুগল প্লে
Google Play ট্যাবলেট- এবং ভাঁজযোগ্য-নির্দিষ্ট অ্যাপ সংগ্রহ এবং সুপারিশ প্রদান করে, যা ব্যবহারকারীদের উচ্চ-মানের অ্যাপ আবিষ্কার করতে সক্ষম করে।
প্লে র্যাঙ্ক অ্যাপ এবং গেমগুলি অপ্টিমাইজ করা অ্যাপগুলির চেয়ে বড় স্ক্রিনের জন্য অপ্টিমাইজ করা হয়েছে৷ র্যাঙ্কিং বড় স্ক্রিনের অ্যাপের গুণমানের নির্দেশিকাগুলির উপর ভিত্তি করে। উচ্চতর র্যাঙ্কিং মাল্টি-ডিভাইস ব্যবহারকারীদের তাদের ফোনে বড় স্ক্রীন-নির্দিষ্ট রেটিং এবং পর্যালোচনা দেখতে সক্ষম করে আবিষ্কারযোগ্যতা বাড়ায়।
যে অ্যাপগুলি প্লে স্টোরের বড় স্ক্রিনের মানের মান পূরণ করে না সেগুলি অ্যাপের বিবরণ পৃষ্ঠায় একটি সতর্কতা প্রদর্শন করে। সতর্কতা ব্যবহারকারীদের পরামর্শ দেয় যে অ্যাপটি তাদের বড় স্ক্রিনের ডিভাইসে ভাল পারফর্ম নাও করতে পারে।
Google Play-এ আবিষ্কারযোগ্যতা বাড়াতে অভিযোজিত অ্যাপ তৈরি করুন এবং আপনার অ্যাপ ডাউনলোড করতে পারে এমন ডিভাইসের সংখ্যা সর্বাধিক করুন।
কিভাবে শুরু করবেন
পরিকল্পনা থেকে মোতায়েন পর্যন্ত অ্যাপ বিকাশের সমস্ত পর্যায়ে অভিযোজিত নকশা সম্পর্কে চিন্তা করুন। অভিযোজিত ডিজাইন সম্পর্কে গ্রাফিক ডিজাইনারদের অবহিত করুন। আপনার অ্যাপটিকে অভিযোজিত করার জন্য ডিজাইন করুন এবং আপনি এমন একটি অ্যাপ তৈরি করবেন যা পরিচালনাযোগ্য, এক্সটেনসিবল এবং ভবিষ্যতের ফর্ম ফ্যাক্টর এবং উইন্ডো মোডের জন্য প্রস্তুত।
একটি অভিযোজিত অ্যাপ্লিকেশন তৈরি করতে যা সমস্ত প্রদর্শন আকার এবং কনফিগারেশন সমর্থন করে, নিম্নলিখিতগুলি করুন:
- লেআউট সিদ্ধান্ত নিতে উইন্ডো আকার ক্লাস ব্যবহার করুন
- কম্পোজ ম্যাটেরিয়াল 3 অ্যাডাপটিভ লাইব্রেরি দিয়ে তৈরি করুন
- স্পর্শের বাইরে ইনপুট সমর্থন
- সমস্ত ধরণের ডিভাইসে পরীক্ষা করুন
উইন্ডো সাইজ ক্লাস
অ্যাপ উইন্ডোর মাত্রা বিভিন্ন ডিভাইসে ভিন্ন হতে পারে—অথবা ফোল্ডেবলের ক্ষেত্রে একই ডিভাইসে—এমনকি অ্যাপটি পূর্ণ স্ক্রীনে থাকলেও। বিভিন্ন ডিভাইস ওরিয়েন্টেশন বিভিন্ন দিক অনুপাত তৈরি করে। মাল্টি-উইন্ডো মোডে, অ্যাপ উইন্ডোর আকার, আকৃতির অনুপাত, এবং অভিযোজন ডিভাইস স্ক্রীনের থেকে আলাদা হতে পারে।
অভিযোজিত অ্যাপগুলি লেআউট রেন্ডার করার সময় শুধুমাত্র অ্যাপ উইন্ডোটি বিবেচনা করে উইন্ডোর আকার, আকৃতির অনুপাত এবং ওরিয়েন্টেশন নির্ধারণ এবং পরিচালনার সমস্যাকে সহজ করে এবং সাধারণীকরণ করে, যেটি অ্যাপ উইন্ডোটি পূর্ণ স্ক্রিন হলে কাজ করে।
উইন্ডো আকারের ক্লাসগুলি উইন্ডোর প্রস্থ বা উচ্চতার উপর ভিত্তি করে অ্যাপ উইন্ডোগুলিকে কম্প্যাক্ট , মাঝারি বা প্রসারিত হিসাবে শ্রেণীবদ্ধ করে।
Compose Material 3 Adaptive লাইব্রেরির currentWindowAdaptiveInfo()
শীর্ষ-স্তরের ফাংশন ব্যবহার করে আপনার অ্যাপের WindowSizeClass
গণনা করুন। ফাংশনটি WindowAdaptiveInfo
এর একটি উদাহরণ প্রদান করে, যাতে windowSizeClass
রয়েছে। যখনই উইন্ডোর আকার শ্রেণী পরিবর্তিত হয় তখন আপনার অ্যাপ আপডেট পায়:
val windowSizeClass = currentWindowAdaptiveInfo().windowSizeClass
বিষয়বস্তুর ফলক
একটি কার্যকলাপের বিন্যাস কখনও কখনও একটি পর্দা হিসাবে উল্লেখ করা হয়. উদাহরণস্বরূপ, আপনার অ্যাপে একটি হোম স্ক্রীন, একটি তালিকা স্ক্রীন এবং একটি আইটেমের বিশদ স্ক্রীন থাকতে পারে৷ পরিভাষাটি বোঝায় যে প্রতিটি কার্যকলাপ ডিভাইসের স্ক্রীনকে পূর্ণ করে।
যাইহোক, প্রসারিত প্রস্থ উইন্ডো সাইজ ক্লাস সমর্থন করার জন্য যথেষ্ট বড় ডিভাইস স্ক্রীনে, একাধিক অ্যাক্টিভিটি স্ক্রীন একই সময়ে অনস্ক্রিন হতে পারে। প্যান হল স্বতন্ত্র ক্রিয়াকলাপের বিষয়বস্তু প্রদর্শনের জন্য আরও সুনির্দিষ্ট শব্দ।
উইন্ডোর আকারের ক্লাসগুলি আপনাকে ম্যাটেরিয়াল ডিজাইনে নির্দিষ্ট করা মাল্টি-পেন লেআউটে কতগুলি সামগ্রী প্যান দেখাতে হবে তা নির্ধারণ করতে সক্ষম করে৷
প্যানগুলি নৌযানযোগ্য। কমপ্যাক্ট এবং মাঝারি উইন্ডো আকারের ক্লাসগুলিতে, অ্যাপগুলি একটি একক ফলক প্রদর্শন করে; এবং তাই, যেকোনো গন্তব্যে নেভিগেশন একটি ফলক প্রদর্শন করে।
প্রসারিত উইন্ডো আকারের ক্লাসে, অ্যাপগুলি একাধিক প্যানে সম্পর্কিত বিষয়বস্তু প্রদর্শন করতে পারে, যেমন একটি তালিকা-বিশদ বিন্যাস। উভয় প্যানে নেভিগেশন দুই-প্যান লেআউট প্রদর্শন করে। যদি উইন্ডোর আকার কমপ্যাক্ট বা মাঝারিতে পরিবর্তিত হয়, অভিযোজিত অ্যাপগুলি শুধুমাত্র একটি ফলক দেখায়, নেভিগেশন গন্তব্য, হয় তালিকা বা বিশদ।
রচনা উপাদান 3 অভিযোজিত
জেটপ্যাক কম্পোজ হল একাধিক লেআউট ফাইলের নকল এবং রক্ষণাবেক্ষণের বোঝা ছাড়াই অভিযোজিত অ্যাপ তৈরির জন্য আধুনিক, ঘোষণামূলক পদ্ধতি।
কম্পোজ ম্যাটেরিয়াল 3 অ্যাডাপটিভ লাইব্রেরিতে কম্পোজেবল রয়েছে যা উইন্ডো সাইজ ক্লাস, নেভিগেশন কম্পোনেন্ট, মাল্টি-পেন লেআউট এবং ফোল্ডেবল ভঙ্গি এবং কব্জা অবস্থান পরিচালনা করে, উদাহরণস্বরূপ:
NavigationSuiteScaffold
: অ্যাপ উইন্ডোর আকার ক্লাস এবং ডিভাইসের ভঙ্গির উপর নির্ভর করে স্বয়ংক্রিয়ভাবে নেভিগেশন বার এবং নেভিগেশন রেলের মধ্যে স্যুইচ করে।ListDetailPaneScaffold
: তালিকা-বিশদ ক্যানোনিকাল লেআউট প্রয়োগ করে।অ্যাপ্লিকেশান উইন্ডো আকারে লেআউট মানিয়ে নেয়৷ প্রসারিত উইন্ডো সাইজ ক্লাসে পাশাপাশি প্যানেলে একটি তালিকা এবং একটি তালিকা আইটেমের বিশদ বিবরণ উপস্থাপন করে, তবে শুধুমাত্র তালিকা বা কম্প্যাক্ট এবং মাঝারি উইন্ডো আকারের ক্লাসের বিবরণ।
SupportingPaneScaffold
: সমর্থনকারী প্যান ক্যানোনিকাল লেআউট প্রয়োগ করে।প্রসারিত উইন্ডো সাইজ ক্লাসে প্রধান বিষয়বস্তু ফলক এবং একটি সমর্থনকারী ফলক উপস্থাপন করে, তবে কমপ্যাক্ট এবং মাঝারি উইন্ডো আকারের ক্লাসে শুধুমাত্র প্রধান সামগ্রী ফলক।
কম্পোজ ম্যাটেরিয়াল 3 অ্যাডাপ্টিভ লাইব্রেরি হল অভিযোজিত অ্যাপ তৈরির জন্য নির্ভরতা থাকা আবশ্যক৷
কনফিগারেশন এবং ধারাবাহিকতা
অভিযোজিত অ্যাপগুলি কনফিগারেশন পরিবর্তনের সময় ধারাবাহিকতা বজায় রাখে।
একটি কনফিগারেশন পরিবর্তন ঘটে যখন অ্যাপ উইন্ডোর আকার পরিবর্তন করা হয়, একটি ভাঁজযোগ্য ভঙ্গি পরিবর্তন হয়, বা পর্দার ঘনত্ব বা ফন্ট পরিবর্তন হয়।
ডিফল্টরূপে, কনফিগারেশন পরিবর্তনগুলি অ্যাপের কার্যকলাপকে পুনরায় তৈরি করে এবং সমস্ত কার্যকলাপের অবস্থা হারিয়ে যায়। ধারাবাহিকতা বজায় রাখতে, অভিযোজিত অ্যাপগুলি কার্যকলাপের onSaveInstanceState()
পদ্ধতিতে বা একটি ViewModel
এ অবস্থা সংরক্ষণ করে।
ভঙ্গি
অভিযোজিত অ্যাপ্লিকেশনগুলি ভাঁজযোগ্য ডিভাইসগুলির ভঙ্গিতে পরিবর্তনের প্রতিক্রিয়া জানায়। ভঙ্গিতে টেবিলটপ এবং বইয়ের ভঙ্গি অন্তর্ভুক্ত।
Jetpack WindowManager-এ WindowInfoTracker
ইন্টারফেস আপনাকে ডিভাইসের জন্য DisplayFeature
অবজেক্টের একটি তালিকা পেতে সক্ষম করে। ডিসপ্লে বৈশিষ্ট্যগুলির মধ্যে রয়েছে FoldingFeature.State
, যা নির্দেশ করে যে ডিভাইসটি সম্পূর্ণ বা অর্ধেক খোলা।
কম্পোজ ম্যাটেরিয়াল 3 অ্যাডাপ্টিভ লাইব্রেরি currentWindowAdaptiveInfo()
শীর্ষ-স্তরের ফাংশন প্রদান করে, যা windowPosture
ধারণকারী WindowAdaptiveInfo
এর একটি উদাহরণ প্রদান করে।
স্পর্শের বাইরে ইনপুট
ব্যবহারকারীরা প্রায়ই বাহ্যিক কীবোর্ড, ট্র্যাকপ্যাড, মাউস এবং স্টাইলাসগুলিকে বড় স্ক্রীনের ডিভাইসগুলিতে সংযুক্ত করে। পেরিফেরিয়ালগুলি ব্যবহারকারীর উত্পাদনশীলতা, ইনপুট নির্ভুলতা, ব্যক্তিগত অভিব্যক্তি এবং অ্যাক্সেসযোগ্যতা বাড়ায়। বেশিরভাগ ChromeOS ডিভাইসে কীবোর্ড এবং ট্র্যাকপ্যাড অন্তর্নির্মিত থাকে।
অভিযোজিত অ্যাপ্লিকেশানগুলি বাহ্যিক ইনপুট ডিভাইসগুলিকে সমর্থন করে, তবে বেশিরভাগ কাজ আপনার জন্য Android ফ্রেমওয়ার্ক দ্বারা করা হয়:
জেটপ্যাক রচনা 1.7 এবং উচ্চতর: কীবোর্ড ট্যাব নেভিগেশন এবং মাউস বা ট্র্যাকপ্যাড ক্লিক, নির্বাচন এবং স্ক্রোল ডিফল্টরূপে সমর্থিত।
Jetpack
androidx.compose.material3
লাইব্রেরি: ব্যবহারকারীদের একটি স্টাইলাস ব্যবহার করে যেকোনোTextField
উপাদানে লিখতে সক্ষম করে।কীবোর্ড শর্টকাট হেল্পার : অ্যান্ড্রয়েড প্ল্যাটফর্ম এবং অ্যাপ কীবোর্ড শর্টকাট ব্যবহারকারীদের দ্বারা আবিষ্কারযোগ্য করে তোলে।
onProvideKeyboardShortcuts()
উইন্ডো কলব্যাককে ওভাররাইড করে কীবোর্ড শর্টকাট হেল্পারে আপনার অ্যাপের কীবোর্ড শর্টকাটগুলি প্রকাশ করুন৷
সমস্ত আকারের ফর্ম ফ্যাক্টরগুলিকে সম্পূর্ণরূপে সমর্থন করতে, অভিযোজিত অ্যাপগুলি সমস্ত ধরণের ইনপুট সমর্থন করে৷
অভিযোজিত অ্যাপগুলি কীভাবে পরীক্ষা করবেন
বিভিন্ন স্ক্রীন এবং উইন্ডোর আকার এবং বিভিন্ন ডিভাইস কনফিগারেশন পরীক্ষা করুন । আপনার অ্যাপের লেআউটগুলি পরীক্ষা করতে হোস্ট-সাইড স্ক্রিনশট এবং কম্পোজ প্রিভিউ ব্যবহার করুন। Google ডেটা সেন্টারে হোস্ট করা Android স্টুডিও এমুলেটর এবং দূরবর্তী Android ডিভাইসগুলিতে আপনার অ্যাপ চালান।
বড় স্ক্রিনের অ্যাপের গুণমানের নির্দেশিকা
বড় স্ক্রিনের অ্যাপের গুণমানের নির্দেশিকাগুলি নিশ্চিত করে যে আপনার অভিযোজিত অ্যাপ ট্যাবলেট, ফোল্ডেবল এবং ChromeOS ডিভাইসে ভালভাবে কাজ করে। নির্দেশিকাগুলির মধ্যে পরীক্ষাগুলি অন্তর্ভুক্ত রয়েছে যা আপনাকে ব্যবহারকারীর সমালোচনামূলক ভ্রমণের জন্য অ্যাপ কার্যকারিতা যাচাই করতে সক্ষম করে। যদিও নির্দেশিকাগুলি বড় স্ক্রিনের উপর ফোকাস করে, তবে সেগুলি সমস্ত স্ক্রীনের আকারের সাথে সামঞ্জস্যপূর্ণ।
একাধিক কনফিগারেশন
কম্পোজ 1.7 এবং উচ্চতর DeviceConfigurationOverride
ওভাররাইড ইন্টারফেস আপনাকে ডিভাইস কনফিগারেশনের বিভিন্ন দিক ওভাররাইড করতে সক্ষম করে। আপনি পরীক্ষা করতে চান এমন কম্পোজযোগ্য বিষয়বস্তুর জন্য API স্থানীয়ভাবে বিভিন্ন ডিভাইস কনফিগারেশনকে অনুকরণ করে। উদাহরণস্বরূপ, আপনি একটি একক ডিভাইস বা এমুলেটরে আপনার টেস্ট স্যুটের একক রানে একাধিক, নির্বিচারে UI আকার পরীক্ষা করতে পারেন।
DeviceConfigurationOverride.then()
এক্সটেনশন ফাংশন দিয়ে, আপনি একই সময়ে একাধিক কনফিগারেশন প্যারামিটার পরীক্ষা করতে পারেন, যেমন ফন্ট সাইজ, লোকেল, থিম এবং লেআউট সাইজ।
হোস্ট-সাইড স্ক্রিনশট
হোস্ট-সাইড স্ক্রিনশট পরীক্ষা হল আপনার অ্যাপ লেআউটের ভিজ্যুয়াল চেহারা যাচাই করার একটি দ্রুত এবং মাপযোগ্য উপায়। বিভিন্ন ডিসপ্লে মাপের জন্য আপনার UI পরীক্ষা করতে হোস্ট-সাইড স্ক্রিনশট ব্যবহার করুন।
আরও তথ্যের জন্য, কম্পোজ প্রিভিউ স্ক্রিনশট টেস্টিং দেখুন।
পূর্বরূপ রচনা করুন
কম্পোজ প্রিভিউ আপনাকে অ্যান্ড্রয়েড স্টুডিওর ডিজাইন ভিউতে আপনার অ্যাপের UI চেক করতে সক্ষম করে। প্রিভিউগুলি আপনাকে বিভিন্ন কনফিগারেশনে সংমিশ্রণযোগ্য সামগ্রী দেখতে দেওয়ার জন্য @PreviewScreenSizes
, @PreviewFontScale
এবং @PreviewLightDark
এর মতো টীকা ব্যবহার করে। এমনকি আপনি পূর্বরূপের সাথে ইন্টারঅ্যাক্ট করতে পারেন।
অ্যান্ড্রয়েড স্টুডিও প্রিভিউতে সাধারণ ব্যবহারযোগ্যতার সমস্যাগুলিও হাইলাইট করে, যেমন বোতাম বা টেক্সট ফিল্ড যা খুব প্রশস্ত।
আরও তথ্যের জন্য, কম্পোজেবল প্রিভিউ সহ আপনার UI এর পূর্বরূপ দেখুন।
এমুলেটর
অ্যান্ড্রয়েড স্টুডিও বিভিন্ন লেআউট মাপের পরীক্ষা করার জন্য বিভিন্ন ধরনের এমুলেটর অফার করে:
- আকার পরিবর্তনযোগ্য এমুলেটর: একটি ফোন, ট্যাবলেট বা ভাঁজযোগ্য ডিভাইস অনুকরণ করে এবং আপনাকে উড়ে যাওয়ার সময় তাদের মধ্যে স্যুইচ করতে দেয়
- পিক্সেল ফোল্ড এমুলেটর: পিক্সেল ফোল্ড বড় স্ক্রিনের ফোল্ডেবল ফোনকে অনুকরণ করে
- পিক্সেল ট্যাবলেট এমুলেটর: পিক্সেল ট্যাবলেট বড় স্ক্রীন ডিভাইস অনুকরণ করে
- ডেস্কটপ এমুলেটর: ফ্রি-ফর্ম উইন্ডোিং, মাউস হভার এবং কীবোর্ড শর্টকাটগুলির পরীক্ষা সক্ষম করে
দূরবর্তী ডিভাইস স্ট্রিমিং
Google ডেটা সেন্টারে হোস্ট করা রিমোট অ্যান্ড্রয়েড ডিভাইসের সাথে নিরাপদে সংযোগ করুন এবং সাম্প্রতিক Pixel এবং Samsung ডিভাইসে আপনার অ্যাপ চালান। অ্যাপগুলি ইনস্টল এবং ডিবাগ করুন, ADB কমান্ডগুলি চালান এবং আপনার অ্যাপটি বিভিন্ন বাস্তব ডিভাইসে ভালভাবে কাজ করে তা নিশ্চিত করতে ডিভাইসগুলি ঘোরান এবং ভাঁজ করুন৷
রিমোট ডিভাইস স্ট্রিমিং অ্যান্ড্রয়েড স্টুডিওতে একত্রিত করা হয়েছে। আরও তথ্যের জন্য, Firebase দ্বারা চালিত Android ডিভাইস স্ট্রিমিং দেখুন।
অতিরিক্ত সম্পদ
- I/O উপস্থাপনা: অভিযোজিত অ্যান্ড্রয়েড অ্যাপ তৈরি করা