অ্যাপ অপ্টিমাইজেশানের জন্য সর্বোত্তম অনুশীলন

নিম্নলিখিত সেরা অনুশীলনগুলি গুণমানের সাথে আপোস না করে আপনার অ্যাপকে অপ্টিমাইজ করতে সাহায্য করে।

বেসলাইন প্রোফাইল ব্যবহার করুন

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

একটি স্টার্টআপ প্রোফাইল ব্যবহার করুন

স্টার্টআপ প্রোফাইল বেসলাইন প্রোফাইলের মতোই, তবে দ্রুত অ্যাপ চালু করার জন্য DEX লেআউট অপ্টিমাইজ করতে এটি কম্পাইল করার সময় চালানো হয়।

অ্যাপ স্টার্টআপ লাইব্রেরি ব্যবহার করুন

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

লাইব্রেরিগুলি অলসভাবে লোড করুন অথবা স্বয়ংক্রিয় প্রারম্ভিকীকরণ নিষ্ক্রিয় করুন

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

কম্পোজেবলগুলিতে স্টেট ব্যবহার করুন

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

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

var shouldLoad by remember {mutableStateOf(false)}

if (shouldLoad) {
   MyComposable()
}

shouldLoad পরিবর্তন করে কন্ডিশনাল ব্লকের ভিতরে কম্পোজেবলগুলো লোড করুন:

LaunchedEffect(Unit) {
   shouldLoad = true
}

এটি একটি পুনর্গঠন প্রক্রিয়া শুরু করে, যার ফলে প্রথম স্নিপেটের কন্ডিশনাল ব্লকের ভেতরের কোডটি অন্তর্ভুক্ত হয়। আরও তথ্যের জন্য, ‘State in composables’ দেখুন।

আপনার স্প্ল্যাশ স্ক্রিন অপ্টিমাইজ করুন

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

স্কেলেবল ছবির ধরন ব্যবহার করুন

আমরা ছবির জন্য ভেক্টর গ্রাফিক্স ব্যবহার করার পরামর্শ দিই। যেখানে এটি সম্ভব নয়, সেখানে WebP ছবি ব্যবহার করুন। WebP হলো একটি ইমেজ ফরম্যাট যা ওয়েবের ছবিগুলোর জন্য উন্নতমানের লসলেস এবং লসি কম্প্রেশন প্রদান করে। আপনি অ্যান্ড্রয়েড স্টুডিও ব্যবহার করে বিদ্যমান BMP, JPG, PNG বা স্ট্যাটিক GIF ছবিগুলোকে WebP ফরম্যাটে রূপান্তর করতে পারেন। আরও তথ্যের জন্য, “WebP ছবি তৈরি করুন” দেখুন।

এছাড়াও, স্টার্টআপের সময় লোড হওয়া ইমেজের সংখ্যা ও আকার ন্যূনতম রাখুন।

পারফরম্যান্স এপিআই ব্যবহার করুন

মিডিয়া প্লেব্যাকের জন্য পারফরম্যান্স এপিআই অ্যান্ড্রয়েড ১২ (এপিআই লেভেল ৩১) এবং এর পরবর্তী সংস্করণগুলোতে উপলব্ধ। আপনি এই এপিআই ব্যবহার করে ডিভাইসের সক্ষমতা বুঝতে এবং সেই অনুযায়ী বিভিন্ন অপারেশন সম্পাদন করতে পারেন।

কোল্ড স্টার্টআপ ট্রেসগুলিকে অগ্রাধিকার দিন

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

{% হুবহু %} {% endverbatim %} {% হুবহু %} {% endverbatim %}