এমভিভিএম এবং জেটপ্যাক লাইব্রেরি সহ অ্যান্ড্রয়েডে ডুওলিঙ্গো রিফ্যাক্টর

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

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

কিভাবে তারা এটা করেছে

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

দলটি ক্রমবর্ধমান জনপ্রিয় সমাধানে স্থির হয়েছে। তারা Model-View-ViewModel ব্যবহার করে তাদের অ্যাপটি পুনরায় লেখার সিদ্ধান্ত নিয়েছে, Google দ্বারা সমর্থিত একটি সফ্টওয়্যার প্যাটার্ন যা বিকাশকারীদের উদ্বেগের স্পষ্ট বিচ্ছেদ তৈরি করে একটি অ্যাপের আর্কিটেকচারকে স্ট্রীমলাইন করতে দেয়৷ MVVM-এর সাহায্যে, তারা গ্রাফিক্যাল ইউজার ইন্টারফেসের (ভিউ) বিকাশকে ব্যবসায়িক যুক্তির (মডেল) বিকাশ থেকে আলাদা করতে পারে। তারা পরিষ্কার এবং প্যাটার্নের উপর সম্মত হতে পারে, নতুন বৈশিষ্ট্য এবং অনবোর্ড ইনকামিং ডেভেলপারদের জন্য তাদের দৃষ্টিভঙ্গি সারিবদ্ধ করা সহজ করে তোলে।

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

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

ফলাফল

এই পারফরম্যান্সগুলি অ্যান্ড্রয়েড এবং বিশেষ করে এন্ট্রি-লেভেল ডিভাইসে শিক্ষার্থীদের অভিজ্ঞতা উল্লেখযোগ্যভাবে উন্নত করে। তারা ফ্ল্যাগশিপ ডিভাইসগুলিতে মসৃণ অ্যানিমেশন সহ আরও প্রতিক্রিয়াশীল অ্যাপের দিকে পরিচালিত করেছে। দৈনিক "অ্যাপ নট রেসপন্সিং" বা ANR হার 41% কমে গেছে। অ্যাপ্লিকেশানটি তার লক্ষ্যমাত্রার ফ্রেমের হারের নিচে নেমে যাওয়ার শতাংশ 28% কমেছে৷ সবচেয়ে গুরুত্বপূর্ণ, কী স্ক্রিনগুলির মাধ্যমে স্ক্রোল করার সময় তাদের ব্যবহারকারীরা গতিতে 40% বৃদ্ধি পেয়েছে।

হাতে ধরা নোট 41% কম ANR, 28% উন্নত ফ্রেম রেট এবং 40% দ্রুত অভিজ্ঞতা।


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

তাদের মিশনের প্রতি Duolingo-এর নিবেদন তাদের ভাষা শেখার ক্ষেত্রে বিশ্বের শীর্ষ অ্যাপে পরিণত করেছে। অ্যাপের শ্রেষ্ঠত্বের প্রতি তাদের প্রতিশ্রুতি — অ্যাক্সেসযোগ্যতার সঙ্গে আপস না করেই আধুনিক শিক্ষাগত অভিজ্ঞতা তৈরি করা — যা তাদের সেখানে রেখেছে।

এবার শুরু করা যাক

Duolingo কিভাবে Jetpack-এর লাইব্রেরিগুলোকে একীভূত করেছে এবং কীভাবে Model-View-ViewModel তাদের অ্যাপকে উন্নত করেছে সে সম্পর্কে আপনি যদি নিদারুণভাবে ডুব দিতে চান, তাহলে বিকাশকারীদের জন্য আমাদের প্রযুক্তিগত কেস স্টাডি পড়ুন।