Android 12 থেকে শুরু করে, অ্যাপ সিস্টেম স্প্ল্যাশ স্ক্রিনের সাথে লঞ্চ হয়, যার মধ্যে
লঞ্চের সময় ইন-অ্যাপ মোশন, আপনার অ্যাপ আইকন দেখানো স্প্ল্যাশ স্ক্রিন এবং
আপনার অ্যাপে ট্রানজিশন অন্তর্ভুক্ত থাকে। স্প্ল্যাশ স্ক্রিন হল একটি Window এবং
তাই এটি একটি Activity কভার করে।
স্প্ল্যাশ স্ক্রিন অভিজ্ঞতা প্রতিটি অ্যাপ লঞ্চে স্ট্যান্ডার্ড ডিজাইন এলিমেন্ট নিয়ে আসে, তবে এটি কাস্টমাইজও করা যায় যাতে আপনার অ্যাপ তার অনন্য ব্র্যান্ডিং বজায় রাখতে পারে।
আপনার অ্যাপ থেকে স্প্ল্যাশ স্ক্রিন কাস্টমাইজ করতে, Jetpack
SplashScreen কম্প্যাট লাইব্রেরি ব্যবহার করুন। এটি প্ল্যাটফর্ম SplashScreen
API-কে র্যাপ করে এবং যেকোনও ComponentActivity-এর সাথে কাজ করে, এর মধ্যে এমন অ্যাক্টিভিটি অন্তর্ভুক্ত যা
setContent ব্যবহার করে Compose-এর মাধ্যমে তাদের UI সেট করে।
স্প্ল্যাশ স্ক্রিন কীভাবে কাজ করে
অ্যাপের প্রসেস না চলাকালীন (কোল্ড
স্টার্ট) অথবা Activity তৈরি না
হলে (ওয়ার্ম স্টার্ট), কোনও ব্যবহারকারী অ্যাপ লঞ্চ করলে
নিম্নলিখিত ইভেন্টগুলি ঘটে:
সিস্টেমটি থিম এবং আপনার সংজ্ঞায়িত যেকোন অ্যানিমেশন ব্যবহার করে স্প্ল্যাশ স্ক্রিন দেখায়।
অ্যাপ রেডি হয়ে গেলে, স্প্ল্যাশ স্ক্রিন বন্ধ হয়ে যায় এবং অ্যাপ দেখা যায়।
হট স্টার্ট চলাকালীন স্প্ল্যাশ স্ক্রিন কখনও দেখানো হয় না।
স্প্ল্যাশ স্ক্রিনের এলিমেন্ট ও মেকানিক্স
স্প্ল্যাশ স্ক্রিনের এলিমেন্টগুলি Android ম্যানিফেস্ট ফাইলের XML রিসোর্স ফাইলে সংজ্ঞায়িত করা হয়। প্রতিটি এলিমেন্টের জন্য লাইট ও ডার্ক থিম ভার্সন আছে।
স্প্ল্যাশ স্ক্রিনের কাস্টমাইজ করা যায় এমন এলিমেন্টের মধ্যে অ্যাপ আইকন, আইকন ব্যাকগ্রাউন্ড ও উইন্ডো ব্যাকগ্রাউন্ড অন্তর্ভুক্ত:
ছবি ২-এ দেখানো নিম্নলিখিত এলিমেন্টগুলি বিবেচনা করুন:
১ অ্যাপ আইকন অবশ্যই ভেক্টর ড্রয়েবেল হতে হবে। এটি স্ট্যাটিক বা অ্যানিমেটেড হতে পারে। অ্যানিমেশনের সময়সীমা আনলিমিটেড হতে পারে, তবে আমরা ১,০০০ মিলিসেকেন্ডের বেশি না করার সাজেশন দিই। লঞ্চার আইকন ডিফল্ট হিসেবে সেট করা থাকে।
২ আইকন ব্যাকগ্রাউন্ড ঐচ্ছিক এবং আইকন ও উইন্ডো ব্যাকগ্রাউন্ডের মধ্যে আরও কন্ট্রাস্টের প্রয়োজন হলে এটি উপযোগী। আপনি যদি অ্যাডাপ্টিভ আইকন ব্যবহার করেন, তাহলে উইন্ডোর ব্যাকগ্রাউন্ডের সাথে যথেষ্ট কনট্রাস্ট থাকলে, এর ব্যাকগ্রাউন্ড দেখানো হয়।
৩ অ্যাডাপ্টিভ আইকনের মতো, ফোরগ্রাউন্ডের এক-তৃতীয়াংশ মাস্ক করা থাকে।
৪ উইন্ডো ব্যাকগ্রাউন্ডে একটি মাত্র অস্বচ্ছ রঙ থাকে। উইন্ডোর ব্যাকগ্রাউন্ড সেট করা থাকলে এবং সেটি কোনও সাধারণ রঙ হলে, অ্যাট্রিবিউট সেট করা না থাকলে ডিফল্ট হিসেবে সেটি ব্যবহার করা হয়।
স্প্ল্যাশ স্ক্রিনের ডাইমেনশন
স্প্ল্যাশ স্ক্রিন আইকন অ্যাডাপ্টিভ আইকন-এর মতো একই স্পেসিফিকেশন ব্যবহার করে, যেমন:
- ব্র্যান্ডেড ছবি: এটি ২০০×৮০ dp হতে হবে।
- আইকন ব্যাকগ্রাউন্ড সহ অ্যাপ আইকন: এটি অবশ্যই ২৪০×২৪০ ডিপি হতে হবে এবং ১৬০ ডিপি ব্যাসের বৃত্তের মধ্যে ফিট হতে হবে।
- আইকন ব্যাকগ্রাউন্ড ছাড়া অ্যাপ আইকন: এটি অবশ্যই ২৮৮×২৮৮ ডিপি হতে হবে এবং ১৯২ ডিপি ব্যাসের বৃত্তের মধ্যে ফিট হতে হবে।
যেমন, কোনও ছবির সম্পূর্ণ সাইজ ৩০০×৩০০ ডিপি হলে, আইকনটি ২০০ ডিপি ব্যাসের বৃত্তের মধ্যে ফিট হতে হবে। বৃত্তের বাইরের সবকিছু অদৃশ্য (মাস্ক করা) হয়ে যায়।
স্প্ল্যাশ স্ক্রিন অ্যানিমেশন ও লঞ্চ সিকোয়েন্স
কোল্ড স্টার্টে অ্যাপ লঞ্চ করার সাথে প্রায়ই অতিরিক্ত লেটেন্সি যুক্ত থাকে। আপনার স্প্ল্যাশ স্ক্রিনে একটি অ্যানিমেটেড আইকন যোগ করলে তা দেখতে সুন্দর লাগে এবং আরও প্রিমিয়াম অভিজ্ঞতা প্রদান করে। ব্যবহারকারী সম্পর্কে রিসার্চ থেকে জানা যায় যে অ্যানিমেশন দেখার সময় স্টার্টআপের সময় কম বলে মনে হয়।
লঞ্চ সিকোয়েন্স কম্পোনেন্টের মধ্যে স্প্ল্যাশ স্ক্রিন অ্যানিমেশন এম্বেড করা থাকে, যেমন ছবি ৪-এ দেখানো হয়েছে।
অ্যানিমেশন লিখুন: এটি স্প্ল্যাশ স্ক্রিনে সিস্টেম ভিউ নিয়ে গঠিত। এটি সিস্টেম দ্বারা নিয়ন্ত্রিত হয় এবং কাস্টমাইজ করা যায় না।
স্প্ল্যাশ স্ক্রিন (সিকোয়েন্সের "অপেক্ষা" অংশের সময় দেখানো হয়): স্প্ল্যাশ স্ক্রিন কাস্টমাইজ করা যায়, যার ফলে আপনি নিজের লোগো অ্যানিমেশন ও ব্র্যান্ডিং প্রদান করতে পারেন। সঠিকভাবে কাজ করার জন্য এটি এই পৃষ্ঠায় বর্ণিত প্রয়োজনীয়তা পূরণ করতে হবে।
এক্সিট অ্যানিমেশন: এতে স্প্ল্যাশ স্ক্রিন লুকানোর অ্যানিমেশন থাকে। আপনি এটি কাস্টমাইজ করতে চাইলে,
SplashScreenViewProviderভিউ এবং এর আইকন ব্যবহার করুন। আপনি সেগুলিতে যেকোনও অ্যানিমেশন চালাতে পারবেন, যার মধ্যে ট্রান্সফর্ম, অস্বচ্ছতা এবং রঙের সেটিংস অন্তর্ভুক্ত। এই ক্ষেত্রে, অ্যানিমেশন শেষ হয়ে গেলে ম্যানুয়ালি স্প্ল্যাশ স্ক্রিন সরিয়ে দিন।
আইকন অ্যানিমেশন চালানোর সময়, অ্যাপ লঞ্চ আপনাকে সেইসব ক্ষেত্রে সিকোয়েন্স এড়িয়ে যাওয়ার বিকল্প দেয়
যেখানে অ্যাপ আগে থেকেই প্রস্তুত থাকে। অ্যাপটি onResume() ট্রিগার করে
অথবা স্প্ল্যাশ স্ক্রিনের সময়সীমা অটোমেটিক শেষ হয়ে যায়, তাই মোশনটি যাতে
সহজে এড়িয়ে যাওয়া যায় তা নিশ্চিত করুন। অ্যাপটি ভিজ্যুয়াল দৃষ্টিকোণ থেকে স্থিতিশীল হলে স্প্ল্যাশ স্ক্রিনটি শুধুমাত্র onResume()
দিয়ে খারিজ করতে হবে, তাই কোনও অতিরিক্ত স্পিনার
প্রয়োজন নেই। অসম্পূর্ণ ইন্টারফেস ব্যবহারকারীদের কাছে বিরক্তিকর হতে পারে এবং
এটি অপ্রত্যাশিত বা অসম্পূর্ণ বলে মনে হতে পারে।
স্প্ল্যাশ স্ক্রিন অ্যানিমেশন সংক্রান্ত প্রয়োজনীয়তা
আপনার স্প্ল্যাশ স্ক্রিনকে নিম্নলিখিত স্পেসিফিকেশন মেনে চলতে হবে:
কোনও স্বচ্ছতা ছাড়াই একটি উইন্ডোর ব্যাকগ্রাউন্ডের রঙ সেট করুন।
SplashScreenকম্প্যাট লাইব্রেরি-এর মাধ্যমে দিন ও রাতের মোড কাজ করে।অ্যানিমেটেড আইকন নিম্নলিখিত স্পেসিফিকেশন পূরণ করছে কিনা তা ভালভাবে দেখে নিন:
- ফর্ম্যাট: আইকনটি অবশ্যই একটি AnimatedVectorDrawable (AVD) XML হতে হবে।
- ডাইমেনশন: একটি AVD আইকনকে অবশ্যই একটি অ্যাডাপ্টিভ আইকনের আকারের চার গুণ হতে হবে, যেমন:
- আইকন এরিয়া ৪৩২ ডিপি হতে হবে—অন্যভাবে বলতে গেলে, আনমাস্কড অ্যাডাপ্টিভ আইকনের ১০৮ ডিপি এরিয়ার চার গুণ।
- লঞ্চার আইকনে ছবির ভিতরের দুই-তৃতীয়াংশ দেখা যায়, এবং এটি অবশ্যই ২৮৮ ডিপি হতে হবে—অন্যভাবে বলতে গেলে, ৭২ ডিপির চার গুণ যা অ্যাডাপ্টিভ আইকনের ভিতরের মাস্ক করা অংশ তৈরি করে।
- সময়সীমা: আমরা সাজেস্ট করি যে ফোনে ১,০০০ মিলিসেকেন্ডের বেশি সময়সীমা সেট করবেন না। আপনি দেরিতে শুরু করার বিকল্প ব্যবহার করতে পারেন, তবে এটি ১৬৬ মিলিসেকেন্ডের বেশি হতে পারে না। অ্যাপ চালু হতে ১,০০০ মিলিসেকেন্ডের বেশি সময় লাগলে, লুপিং অ্যানিমেশন ব্যবহার করার কথা বিবেচনা করুন।
স্প্ল্যাশ স্ক্রিন বন্ধ করার জন্য একটি উপযুক্ত সময় নির্ধারণ করুন, যা আপনার অ্যাপের প্রথম ফ্রেম ড্র করার সময় ঘটে। আপনি এটি আরও কাস্টমাইজ করতে পারবেন, যেমনটি স্প্ল্যাশ স্ক্রিন আরও বেশি সময় ধরে অন-স্ক্রিন রাখা সম্পর্কিত বিভাগে বর্ণনা করা হয়েছে।
স্প্ল্যাশ স্ক্রিন রিসোর্স
উদাহরণ স্টার্টার কিট ডাউনলোড করুন, যা দেখায় কীভাবে একটি অ্যানিমেশন তৈরি, ফর্ম্যাট এবং AVD-তে এক্সপোর্ট করতে হয়। এর মধ্যে নিম্নলিখিত বিষয়গুলি অন্তর্ভুক্ত:
- অ্যানিমেশনের Adobe After Effects প্রোজেক্ট ফাইল।
- চূড়ান্ত এক্সপোর্ট করা AVD XML ফাইল।
- অ্যানিমেশনের উদাহরণ GIF।
এইসব ফাইল ডাউনলোড করার মাধ্যমে, আপনি Google পরিষেবার শর্তাবলীতে সম্মতি জানাচ্ছেন।
এই পরিষেবায় ডেটা কীভাবে ম্যানেজ করা হয় সেটি Google-এর গোপনীয়তা নীতিতে উল্লেখ করা আছে।
আপনার অ্যাপে স্প্ল্যাশ স্ক্রিন কাস্টমাইজ করা
ডিফল্ট হিসেবে, SplashScreen আপনার থিমের windowBackground ব্যবহার করে যদি
windowBackground একটি রঙ হয়। স্প্ল্যাশ স্ক্রিন কাস্টমাইজ করতে, অ্যাপ থিমে
অ্যাট্রিবিউট যোগ করুন।
নিম্নলিখিত যেকোনও একটি কাজ করে আপনার অ্যাপের স্প্ল্যাশ স্ক্রিন কাস্টমাইজ করতে পারবেন:
থিমের অ্যাট্রিবিউট সেট করে এর চেহারা পরিবর্তন করুন।
এটি আরও বেশি সময় ধরে স্ক্রিনে রাখুন।
স্প্ল্যাশ স্ক্রিন বাতিল করার জন্য অ্যানিমেশন কাস্টমাইজ করুন।
শুরু করুন
কোর SplashScreen লাইব্রেরি API 23 থেকে সব ডিভাইসে Android 12 স্প্ল্যাশ স্ক্রিন
নিয়ে আসে। আপনার প্রোজেক্টে এটি যোগ করতে, নিম্নলিখিত স্নিপেটটি
আপনার build.gradle ফাইলে যোগ করুন:
গ্ৰুভি
dependencies { implementation "androidx.core:core-splashscreen:1.2.0" }
Kotlin
dependencies { implementation("androidx.core:core-splashscreen:1.2.0") }
তারপর Theme.SplashScreen থেকে ইনহেরিট করে একটি স্প্ল্যাশ স্ক্রিন থিম তৈরি করুন,
অ্যাক্টিভিটি পরে যে থিম ব্যবহার করে তাতে postSplashScreenTheme সেট করুন, আপনার ম্যানিফেস্টে
স্প্ল্যাশ স্ক্রিন থিম প্রয়োগ করুন (আপনার আগে থেকে থাকা স্প্ল্যাশ স্ক্রিন
ইমপ্লিমেন্টেশন Android 12-এ মাইগ্রেট করুন দেখুন) এবং super.onCreate() কল করার আগে
আপনার শুরুর অ্যাক্টিভিটিতে installSplashScreen() কল করুন, যেমনটি নিম্নলিখিত বিভাগের
উদাহরণে দেখানো হয়েছে।
স্প্ল্যাশ স্ক্রিনের চেহারা পরিবর্তন করতে সেটির জন্য থিম সেট করুন
আপনার অ্যাপের জন্য স্প্ল্যাশ স্ক্রিন কাস্টমাইজ করতে, আপনার Activity থিমে নিম্নলিখিত অ্যাট্রিবিউট নির্দিষ্ট করতে পারেন।
আপনার কাছে আগে থেকেই android:windowBackground-এর মতো অ্যাট্রিবিউট ব্যবহার করে এমন লিগ্যাসি স্প্ল্যাশ স্ক্রিন
ইমপ্লিমেন্টেশন থাকলে, Android 12 এবং তার পরবর্তী ভার্সনের জন্য একটি বিকল্প রিসোর্স ফাইল
প্রদান করার কথা বিবেচনা করুন।
ব্যাকগ্রাউন্ডে নির্দিষ্ট একটি রঙ ব্যবহার করতে
windowSplashScreenBackgroundব্যবহার করুন:<item name="android:windowSplashScreenBackground">@color/...</item>শুরুর উইন্ডোর কেন্দ্রে থাকা আইকনটি পরিবর্তন করতে
windowSplashScreenAnimatedIconব্যবহার করুন।শুধুমাত্র Android 12 (API লেভেল 32) টার্গেট করা অ্যাপের জন্য, নিম্নলিখিত ধাপগুলি অনুসরণ করুন:
অবজেক্টটি যদি
AnimationDrawableএবংAnimatedVectorDrawable-এর মাধ্যমে অ্যানিমেট ও ড্র করা যায়, তাহলে শুরুর উইন্ডো দেখানোর সময় অ্যানিমেশন চালানোর জন্যwindowSplashScreenAnimationDurationসেট করুন। Android 13-এর জন্য এটি প্রয়োজন নেই, কারণ সময়সীমা সরাসরিAnimatedVectorDrawableথেকে অনুমান করা হয়।<item name="android:windowSplashScreenAnimatedIcon">@drawable/...</item>স্প্ল্যাশ স্ক্রিন আইকন অ্যানিমেশনের সময়সীমা উল্লেখ করতে
windowSplashScreenAnimationDurationব্যবহার করুন। এটি সেট করলে স্প্ল্যাশ স্ক্রিন দেখানোর প্রকৃত সময়ের উপর কোনও প্রভাব পড়ে না, তবেSplashScreenViewProvider.iconAnimationDurationMillisব্যবহার করে স্প্ল্যাশ স্ক্রিন থেকে বেরিয়ে আসার অ্যানিমেশন কাস্টমাইজ করার সময় আপনি এটি পেতে পারেন। আরও বিবরণের জন্য স্প্ল্যাশ স্ক্রিন আরও বেশি সময় ধরে অন-স্ক্রিন রাখা সম্পর্কে নিম্নলিখিত বিভাগটি দেখুন।<item name="android:windowSplashScreenAnimationDuration">1000</item>স্প্ল্যাশ স্ক্রিন আইকনের পিছনে ব্যাকগ্রাউন্ড সেট করতে
windowSplashScreenIconBackgroundColorব্যবহার করুন। উইন্ডোর ব্যাকগ্রাউন্ড ও আইকনের মধ্যে যথেষ্ট কন্ট্রাস্ট না থাকলে এটি কাজে লাগে।<item name="android:windowSplashScreenIconBackgroundColor">@color/...</item>আপনি
windowSplashScreenBrandingImageব্যবহার করে স্প্ল্যাশ স্ক্রিনের নিচে দেখানোর জন্য কোনও ছবি সেট করতে পারবেন। তবে, ডিজাইন সংক্রান্ত নির্দেশিকা অনুযায়ী ব্র্যান্ডিং ছবি ব্যবহার না করার সাজেশন দেওয়া হয়।<item name="android:windowSplashScreenBrandingImage">@drawable/...</item>Android 13 ও তার পরবর্তী যেকোনও ভার্সনে আপনার অ্যাপ সবসময় স্প্ল্যাশ স্ক্রিনে আইকন দেখাবে কিনা তা নির্দিষ্ট করতে
windowSplashScreenBehaviorব্যবহার করতে পারবেন। ডিফল্ট ভ্যালু হল ০, যা স্প্ল্যাশ স্ক্রিনে আইকন দেখায় যদি লঞ্চিং অ্যাক্টিভিটিsplashScreenStyle-কেSPLASH_SCREEN_STYLE_ICON-এ সেট করে, অথবা লঞ্চিং অ্যাক্টিভিটি কোনও স্টাইল নির্দিষ্ট না করলে সিস্টেমের আচরণ অনুসরণ করে। আপনি যদি কখনও খালি স্প্ল্যাশ স্ক্রিন দেখাতে না চান এবং সবসময় অ্যানিমেটেড আইকন দেখাতে চান, তাহলে এর ভ্যালুicon_preferredহিসেবে সেট করুন।<item name="android:windowSplashScreenBehavior">icon_preferred</item>
স্প্ল্যাশ স্ক্রিন আরও বেশি সময় ধরে স্ক্রিনে রাখুন
আপনার অ্যাপ প্রথম ফ্রেম ড্র করার সাথে সাথেই স্প্ল্যাশ স্ক্রিন খারিজ হয়ে যায়। আপনাকে যদি
অল্প পরিমাণ ডেটা লোড করতে হয়, যেমন লোকাল ডিস্ক থেকে অ্যাসিঙ্ক্রোনাসভাবে ইন-অ্যাপ সেটিংস লোড করা, তাহলে ডেটা রেডি না হওয়া পর্যন্ত স্প্ল্যাশ স্ক্রিন অন-স্ক্রিন রাখতে
setKeepOnScreenCondition ব্যবহার করুন। প্রতিটি ফ্রেম আঁকার আগে শর্তটি মূল্যায়ন করা হয়, তাই UI ব্লক করা এড়াতে এটি দ্রুত রাখুন।
আপনার শুরু করা অ্যাক্টিভিটি ড্র করার আগেই শেষ হয়ে গেলে—যেমন, কন্টেন্ট ভিউ সেট না করে
এবং onResume-এর আগে শেষ হয়ে গেলে—আপনাকে কোনও শর্ত
সেট করতে হবে না।
override fun onCreate(savedInstanceState: Bundle?) { // Install the splash screen before calling super.onCreate(). val splashScreen = installSplashScreen() super.onCreate(savedInstanceState) // Keep the splash screen on-screen until the initial data is ready. // The condition is checked each time the app is about to draw a frame. splashScreen.setKeepOnScreenCondition { !viewModel.isReady.value } setContent { MyApp() } }
স্প্ল্যাশ স্ক্রিন বাতিল করার জন্য অ্যানিমেশন কাস্টমাইজ করুন
আপনি setOnExitAnimationListener-এর মাধ্যমে স্প্ল্যাশ স্ক্রিনের অ্যানিমেশন আরও কাস্টমাইজ করতে পারবেন। লিসেনার একটি
SplashScreenViewProvider পায় যা আপনাকে অ্যানিমেট করার জন্য
স্প্ল্যাশ স্ক্রিন ভিউ দেয়। আপনার অ্যানিমেশন শেষ হলে এতে remove() কল করুন।
override fun onCreate(savedInstanceState: Bundle?) { val splashScreen = installSplashScreen() super.onCreate(savedInstanceState) // Add a callback that's called when the splash screen is animating to the // app content. splashScreen.setOnExitAnimationListener { splashScreenViewProvider -> val splashScreenView = splashScreenViewProvider.view // Create your custom animation. val slideUp = ObjectAnimator.ofFloat( splashScreenView, View.TRANSLATION_Y, 0f, -splashScreenView.height.toFloat() ) slideUp.interpolator = AnticipateInterpolator() slideUp.duration = 200L // Call SplashScreenViewProvider.remove at the end of your custom // animation. slideUp.doOnEnd { splashScreenViewProvider.remove() } // Run your animation. slideUp.start() } setContent { MyApp() } }
এই কলব্যাক শুরু হওয়ার সাথে সাথে স্প্ল্যাশ স্ক্রিনে
অ্যানিমেটেড ভেক্টর ড্রয়েবেল
শুরু হয়। অ্যাপ লঞ্চের সময়সীমার উপর নির্ভর করে, ড্রয়েবলটি তার অ্যানিমেশনের মাঝখানে থাকতে পারে। অ্যানিমেশন কখন শুরু হয়েছে তা জানতে
SplashScreenViewProvider.iconAnimationStartMillis
ব্যবহার করুন। আপনি আইকন অ্যানিমেশনের বাকি সময়
নিম্নলিখিত উপায়ে গণনা করতে পারবেন:
// Get the duration of the animated vector drawable. val animationDuration = splashScreenViewProvider.iconAnimationDurationMillis // Get the start time of the animation, in milliseconds since the epoch. val animationStart = splashScreenViewProvider.iconAnimationStartMillis // Calculate the remaining duration of the animation. val remainingDuration = (animationDuration - (System.currentTimeMillis() - animationStart)) .coerceAtLeast(0L)
অতিরিক্ত রিসোর্স
- আপনার আগে থেকে থাকা স্প্ল্যাশ স্ক্রিন ইমপ্লিমেন্টেশন Android 12 ও তার পরবর্তী ভার্সনে মাইগ্রেট করুন
- Now in Android অ্যাপ, যা স্প্ল্যাশ স্ক্রিনের বাস্তব-জগতের প্রয়োগ দেখায়