কেস স্টাডিজ

টিকটক জেটপ্যাক কম্পোজের মাধ্যমে নতুন ফিচারগুলোর জন্য কোডের আকার ৫৮% কমিয়েছে এবং অ্যাপের পারফরম্যান্স উন্নত করেছে।

২ মিনিটের পাঠ
Ben Trengrove এবং Ajesh Pai

TikTok হলো একটি বিশ্বব্যাপী শর্ট-ভিডিও প্ল্যাটফর্ম, যা এর বিশাল ব্যবহারকারী গোষ্ঠী এবং উদ্ভাবনী বৈশিষ্ট্যের জন্য পরিচিত। এর টিম ব্যবহারকারীদের জন্য প্রতিনিয়ত আপডেট, পরীক্ষা-নিরীক্ষা এবং নতুন ফিচার প্রকাশ করে চলেছে। টেকনিক্যাল ডেট সামলানোর পাশাপাশি কাজের গতি বজায় রাখার চ্যালেঞ্জের সম্মুখীন হয়ে, TikTok অ্যান্ড্রয়েড টিম Jetpack Compose-এর সাহায্য নেয়।

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

ডেভেলপারদের উৎপাদনশীলতা বাড়াতে জটিল UI-কে সরলীকরণ করা

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

কম্পোজ এই কাঠামোগত সমস্যার একটি সরাসরি সমাধান প্রদান করেছিল।

তাছাড়া, Compose-এর পরিমাপ কৌশল দ্বৈত কর আরোপ কমাতে সাহায্য করে, যার ফলে পরিমাপের কর্মক্ষমতা অপ্টিমাইজ করা আরও সহজ হয়।

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

junShenTikTok.png

কৌশলগত স্থানান্তরের মাধ্যমে অগ্রগতির পথ তৈরি করা

কৌশলগতভাবে জেটপ্যাক কম্পোজ গ্রহণ করার মাধ্যমে, টিকটক টেকনিক্যাল ডেট নিয়ন্ত্রণে রাখতে সক্ষম হয়েছিল এবং একই সাথে তাদের ব্যবহারকারীদের জন্য চমৎকার অভিজ্ঞতা তৈরিতে মনোযোগ দেওয়াও অব্যাহত রেখেছিল। কন্ডিশনাল লজিককে পরিচ্ছন্নভাবে পরিচালনা করার এবং কম্পোজিশনকে সুবিন্যস্ত করার কম্পোজের ক্ষমতা দলটিকে নতুন বা সম্পূর্ণরূপে পুনর্লিখিত পেজগুলিতে পেজ লোডিং টাইম ৭৮% পর্যন্ত কমাতে সাহায্য করেছিল। ছোটখাটো ক্ষেত্রে এই উন্নতি ছিল ২০-৩০%, এবং সম্পূর্ণ পুনর্লিখন ও নতুন ফিচারের জন্য ছিল ৭০-৮০%। তারা তাদের কোডের আকারও ৫৮% কমাতে সক্ষম হয়েছিল।   ভিউস-এ অন্তর্নির্মিত একই ফিচারের সাথে তুলনা করলে, দলটি আরও কয়েকটি শিক্ষণীয় বিষয় শেয়ার করেছে:

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

দলটি আরও কিছু শিক্ষা ভাগ করে নিয়েছে:

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

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

জুন শেন কম্পোজের এই দিকটি খুব পছন্দ করেন যে এটি "ফিচার ডেভেলপমেন্টের জন্য প্রয়োজনীয় কোডের পরিমাণ কমায়, টেস্ট করার সুবিধা বাড়ায় এবং ডেলিভারি দ্রুততর করে"। দলটি ধীরে ধীরে কম্পোজের ব্যবহার বাড়ানোর পরিকল্পনা করছে, যাতে দীর্ঘমেয়াদে এটি তাদের পছন্দের ফ্রেমওয়ার্ক হয়ে ওঠে। জেটপ্যাক কম্পোজ তাদের ডেভেলপার অভিজ্ঞতা এবং প্রোডাকশন মেট্রিক্স উভয়ই বৃহৎ পরিসরে উন্নত করার জন্য একটি শক্তিশালী সমাধান হিসেবে প্রমাণিত হয়েছে।

Jetpack Compose দিয়ে শুরু করুন

Jetpack Compose কীভাবে আপনার দলকে সাহায্য করতে পারে সে সম্পর্কে আরও জানুন।

    লিখেছেন:

    পড়তে থাকুন