আসুন অ্যান্ড্রয়েড অ্যাপস ডিজাইন এবং ডেভেলপ করার কিছু সেরা অনুশীলন দেখি।
প্রারম্ভিকদের জন্য, যখন আপনি একটি অ্যান্ড্রয়েড অ্যাপ্লিকেশন তৈরি করেন, তখন আপনার এটি বিভিন্ন ধরণের ডিভাইস এবং পরিস্থিতিতে চালানোর জন্য প্রস্তুত করা উচিত।
প্রতিটি অ্যান্ড্রয়েড ডিভাইস নিজেই একটি পরিবার। যখন পরিবারের একজন সদস্য খড়গড়ে যায়, তার মানে পরিবারের বাকিরাও আক্রান্ত হওয়ার সম্ভাবনা থাকে।
আপনি কি জানেন যে যখন কোন একক অ্যাপ্লিকেশন মেমরির জন্য জিজ্ঞাসা করে, যদি কোন ফ্রি মেমরি না থাকে তবে অ্যান্ড্রয়েড অন্যান্য অ্যাপ বন্ধ করে সাড়া দেবে যাতে এটি সেই মেমরি প্রদান করতে পারে? তারপর যদি ব্যবহারকারী সেই অ্যাপ্লিকেশনে স্যুইচ করে তবে এটি পুনরায় চালু করতে হবে।
যখন কোন একক অ্যাপ্লিকেশন অধিক মেমরি গ্রহণ করে, আরো CPU এবং GPU ব্যবহার করে, অথবা আরো ব্যাটারি ব্যবহার করে, তখন অন্য প্রতিটি অ্যাপ্লিকেশন ফলস্বরূপ ক্ষতিগ্রস্ত হয়। এবং এটি পুরো ডিভাইসের জন্য ব্যবহারকারীর অভিজ্ঞতা নষ্ট করার সম্ভাবনা রয়েছে। অতএব, কর্মক্ষমতা গুরুত্বপূর্ণ। আপনি যদি অ্যান্ড্রয়েড পারফরম্যান্স সম্পর্কে আরও জানতে চান তবে এখানে শুরু করুন।
সামান্য খরচ থেকে সাবধান। একটি ছোট ফুটো একটি মহান জাহাজ ডুবিয়ে দেবে। - বেঞ্জামিন ফ্রাঙ্কলিন ।
অ্যান্ড্রয়েড অ্যাপস তৈরির সময় আপনার অনুসরণ করা উচিত এমন কিছু সেরা অনুশীলন এখানে দেওয়া হল:
প্রস্তাবিত অ্যান্ড্রয়েড আর্কিটেকচার ব্যবহার করুন
যখন আপনি অ্যান্ড্রয়েড ডেভেলপমেন্ট শুরু করেন, আপনি কোডিং মান বজায় রাখেন না এবং কোন স্থাপত্য অনুসরণ করেন না। আরো এবং আরো বৈশিষ্ট্য যোগ করার পর, আপনি নিম্নলিখিত সমস্যার সম্মুখীন শুরু:
নতুন বৈশিষ্ট্য যোগে অসুবিধা।
আরো বাগের ভূমিকা।
সামগ্রিকভাবে ধীর বিকাশ।
কোডিং মান অনুসরণ করে এবং আপনার অ্যান্ড্রয়েড প্রকল্পে কিছু স্থাপত্য অনুসরণ করে এই সমস্যাগুলি এড়ানো যায়। নিম্নলিখিত সংস্থানগুলি থেকে অ্যান্ড্রয়েড অ্যাপ্লিকেশন আর্কিটেকচার সম্পর্কে জানুন:
এমভিপি আর্কিটেকচার
>এমভিভিএম আর্কিটেকচার
কোটলিন দিয়ে অ্যান্ড্রয়েডে ডিজাইন প্যাটার্ন মাস্টারিং
সবসময় কোডের মান বজায় রাখুন
মান অনেক গুরুত্বপূর্ণ। এটি শুধুমাত্র MVP/MVVM/MVC/ইত্যাদি সম্পর্কে নয়, আপনার অ্যাপের প্রতিটি অংশে প্রতিটি কোডের অংশ সম্পর্কেও। এন্ড্রয়েড কোড স্টাইল এবং গাইডলাইন সম্পর্কে জানুন এখান থেকে।
অ্যান্ড্রয়েড অ্যাপে মেমরি লিক শনাক্ত ও ঠিক করুন
মেমরি লিক শনাক্ত ও ঠিক করতে আমাদের সম্পদ পরীক্ষা করুন:
অ্যান্ড্রয়েড অ্যাপ্লিকেশনে OutOfMemoryError সমাধান করার জন্য ব্যবহারিক নির্দেশিকা
অ্যান্ড্রয়েডে মেমরি লিক শনাক্তকরণ এবং ঠিক করা
আপনার রিলিজ ভার্সনে Proguard ব্যবহার করুন
এটি আপনার সমস্ত অব্যবহৃত কোড সরিয়ে দেবে, যা APK এর আকার হ্রাস করবে। এন্ড্রয়েডে মাস্টার প্রগার্ড এখান থেকে।
ডিবাগিং টুল ব্যবহার করুন
আমি অত্যন্ত অ্যান্ড্রয়েড ডিবাগ ডাটাবেস ব্যবহার করার সুপারিশ করছি। এই লাইব্রেরি হবে আপনার সেরা বন্ধু। এটি অ্যান্ড্রয়েড অ্যাপ্লিকেশনগুলিতে ডেটাবেস এবং ভাগ করা পছন্দগুলি ডিবাগ করার জন্য একটি শক্তিশালী লাইব্রেরি। এটি আপনার ব্রাউজারে সরাসরি ডাটাবেস এবং ভাগ করা পছন্দগুলি দেখার জন্য একটি খুব সহজ হাতিয়ার। এছাড়াও, অ্যান্ড্রয়েড স্টুডিওতে নতুন বিল্ড অ্যানালাইজার টুল দেখুন।
Strings.xml ব্যবহার করুন
স্ট্রিং রিসোর্স হিসেবে টেক্সট যোগ করা সবসময়ই দীর্ঘমেয়াদে কাজে লাগে, বিশেষ করে যখন নতুন ভাষার জন্য সমর্থন যোগ করার প্রয়োজন হয়।
UI উপাদানগুলির জন্য আলাদা লেআউট তৈরি করুন যা পুনরায় ব্যবহার করা হবে
তারপর xml এ অন্তর্ভুক্ত ট্যাগ ব্যবহার করুন। আরেকটি সহজ ট্যাগ হল <merge/> ট্যাগ। এটি ছদ্ম অভিভাবক হিসেবে কাজ করে এবং অপ্রয়োজনীয় রুট ভিউগ্রুপ থেকে পরিত্রাণ পেতে সাহায্য করে। এটি সম্পর্কে এখানে পড়ুন।
মিপম্যাপ-ফোল্ডারে লঞ্চার আইকন রাখুন
যখন আমরা বিভিন্ন ঘনত্বের জন্য পৃথক APK তৈরি করি, বিশেষ ঘনত্বের APK- এর জন্য, অন্যান্য ঘনত্বের জন্য অঙ্কনযোগ্য ফোল্ডারগুলি ছিনতাই হয়ে যায়। এটি উচ্চতর ঘনত্বের লঞ্চার আইকন ব্যবহার করে এমন ডিভাইসগুলিতে আইকনগুলিকে অস্পষ্ট দেখাবে। যেহেতু মিপম্যাপ ফোল্ডারগুলি ছিনতাই হয় না, তাই লঞ্চার আইকনগুলি অন্তর্ভুক্ত করার জন্য এগুলি ব্যবহার করা সর্বদা ভাল।
যতটা সম্ভব ছবির পরিবর্তে আকার এবং নির্বাচক ব্যবহার করুন
আকার এবং নির্বাচক ব্যবহার করলে APK এর আকার আরও কমে যাবে।
বিন্যাসে গভীর স্তর এড়িয়ে চলুন
ভিউগুলির একটি গভীর অনুক্রম আপনার UI ধীর করে তোলে, আপনার লেআউটগুলি পরিচালনা করা কঠিন করে তোলার কথা উল্লেখ না করে। সঠিক ভিউগ্রুপ ব্যবহার করে গভীর শ্রেণিবিন্যাস এড়ানো যায়। সীমাবদ্ধ লেআউট ব্যবহার করুন। নিম্নলিখিত সম্পদ থেকে শিখুন:
অংশ 1
অংশ ২
HTTP লাইব্রেরি ব্যবহার করুন
আপনার ব্যবহারের ক্ষেত্রে নির্ভর করে তৃতীয় পক্ষের HTTP যেমন Retrofit বা Fast Android Networking ব্যবহার করুন।
ইন্টেন্ট বা বান্ডেলে ডেটা পাস করার সময় Serializable এর পরিবর্তে Parcelable ক্লাস ব্যবহার করুন
একটি বস্তুর সিরিয়ালাইজেশন যা পার্সেলেবল ইন্টারফেস প্রয়োগ করে জাভার ডিফল্ট সিরিয়ালাইজেশন ব্যবহারের চেয়ে অনেক দ্রুত। একটি শ্রেণী যা সিরিয়ালাইজযোগ্য ইন্টারফেস প্রয়োগ করে তাকে সিরিয়ালাইজযোগ্য হিসাবে চিহ্নিত করা হয় এবং জাভা প্রতিফলন ব্যবহার করে সিরিয়ালাইজ করে (যা এটিকে ধীর করে)। পার্সেলেবল ইন্টারফেস ব্যবহার করার সময়, পুরো বস্তুটি স্বয়ংক্রিয়ভাবে সিরিয়ালাইজড হয় না। পরিবর্তে, আপনি বস্তু থেকে একটি পার্সেলে ডাটা যুক্ত করতে পারেন যা ব্যবহার করে বস্তুটি পরে deserialized হয়। একইভাবে, আপনি কোটলিনে পার্সেলেবল বিবেচনা করতে পারেন।
UI থ্রেড থেকে ফাইল অপারেশন সম্পাদন করুন
ফাইল অপারেশন সবসময় ব্যাকগ্রাউন্ড থ্রেডে করা উচিত, সাধারণত RxJava, Kotlin-Coroutines ব্যবহার করে। তারা সময় নেয়, এবং যদি UI থ্রেডে সম্পন্ন করা হয় তবে ইন্টারফেসটি অলস বোধ করতে পারে। এমন পরিস্থিতিতে যেখানে তারা 5 সেকেন্ডের জন্য UI থ্রেড ব্লক করে, একটি অ্যাপ্লিকেশন সাড়া না দেওয়া সতর্কতা ট্রিগার করা হবে এবং ব্যবহারকারীকে দেখানো হবে।
বিটম্যাপ বুঝুন
যেহেতু এটি একটি বিশাল পরিমাণ মেমরি নেয়, এটি সহজেই OOM এর দিকে নিয়ে যেতে পারে। ব্যবহারকারীরা বিষয়বস্তু পছন্দ করেন! বিশেষ করে যখন বিষয়বস্তু ভাল ফরম্যাট করা হয় এবং সুন্দর দেখায়। উদাহরণস্বরূপ, ছবিগুলি অত্যন্ত চমৎকার বিষয়বস্তু, প্রধানত প্রতি ইমেজ প্রতি হাজার শব্দের কথা বলার সম্পত্তির কারণে। তারা অনেক স্মৃতিও গ্রাস করে। অনেক স্মৃতি! এখান থেকে শিখুন।
অ্যান্ড্রয়েড ইমেজ লোডিং লাইব্রেরি গ্লাইড এবং ফ্রেস্কো কীভাবে কাজ করে তা জানুন?
অ্যান্ড্রয়েডে কনটেক্সট বুঝুন
অ্যান্ড্রয়েডে কনটেক্সট কী তা শেখা এবং এটি সঠিকভাবে ব্যবহার করা অ্যান্ড্রয়েডে মেমরি লিক এড়াতে গুরুত্বপূর্ণ। এখান থেকে শিখুন।
লেআউট এক্সএমএল -এ ডুপ্লিকেট অ্যাট্রিবিউট এড়াতে স্টাইল ব্যবহার করুন
আপনি যদি ডুপ্লিকেট বৈশিষ্ট্য এড়াতে চান, শৈলী ব্যবহার করুন।
Activity LifeCycle সঠিকভাবে ব্যবহার করুন
যখন আপনি কার্যকলাপ জীবনচক্র সঠিকভাবে ব্যবহার করেন, আপনি অ্যান্ড্রয়েড অ্যাপ ডেভেলপমেন্টের বেশিরভাগ সমস্যার সমাধান করতে পারেন। এখান থেকে শিখুন।
সর্বদা ইউনিট পরীক্ষা অন্তর্ভুক্ত করুন
এটি অ্যাপ্লিকেশন বিকাশের সবচেয়ে গুরুত্বপূর্ণ অংশ। আমি JVM- এ ইউনিট পরীক্ষা চালানোর পরামর্শ দিচ্ছি কারণ এটি অ্যান্ড্রয়েড ডিভাইসে বা এমুলেটরে চালানোর চেয়ে অনেক দ্রুত। পরীক্ষার সময় যদি আপনার কিছু বস্তু উপহাস করার প্রয়োজন হয়, তাহলে মকিটো ব্যবহার করুন আপনার অ্যান্ড্রয়েড প্রজেক্টে ডিপেন্ডেন্সি ইনজেকশন ফ্রেমওয়ার্ক (ড্যাগার) ব্যবহার করে পরীক্ষাটি সহজতর করুন। একটি নির্ভরতা ইনজেকশন ফ্রেমওয়ার্ক ব্যবহার করতে শিখুন এখান থেকে।
সর্বদা কার্যকরী UI পরীক্ষা অন্তর্ভুক্ত করুন
কার্যকরী পরীক্ষা ব্যবহারকারীর দৃষ্টিকোণ থেকে আপনার অ্যাপের কার্যকারিতা পরীক্ষা করে। তারা আপনার অ্যাপ চালু করে এবং এর কার্যকারিতা পরীক্ষা করে। এখানে যদি আপনি আপনার অ্যাপ্লিকেশন অন্য অ্যাপ্লিকেশনের সাথে ইন্টারঅ্যাক্ট করতে না যান তাহলে আপনি অ্যান্ড্রয়েড ইন্সট্রুমেন্টেশন ব্যবহার করতে পারেন, কারণ এটি শুধুমাত্র আপনার অ্যাপ্লিকেশনের সাথে চলে। যদি অন্যান্য অ্যাপ্লিকেশনের সাথে মিথস্ক্রিয়া হয় তবে এই কার্যকারিতা পরীক্ষা করার জন্য UIAutomator ব্যবহার করুন।
আপনার নির্মাণের গতি অপ্টিমাইজ করুন
দীর্ঘ নির্মাণ সময় আপনার উন্নয়ন প্রক্রিয়াকে ধীর করে দেয়। বিল্ড গতির জন্য অপ্টিমাইজ করা শুরু করুন। এখান থেকে আপনার বিল্ড স্পিড অপটিমাইজ করতে শিখুন।
আপনার অ্যান্ড্রয়েড অ্যাপ্লিকেশন সুরক্ষিত করুন
আপনারা সবাই জানেন যে, যেকোনো অ্যান্ড্রয়েড অ্যাপকে সহজেই ডিকম্পাইল, রিভার্স-ইঞ্জিনিয়ার করা যায়। আপনার অ্যান্ড্রয়েড অ্যাপকে যতটা সম্ভব সুরক্ষিত করা আপনার দায়িত্ব। আপনার অ্যাপকে আরো সুরক্ষিত করে, আপনি ব্যবহারকারীর বিশ্বাস এবং ডিভাইসের অখণ্ডতা রক্ষা করতে সাহায্য করেন। অ্যাপ নিরাপত্তা সেরা অনুশীলনগুলি পরীক্ষা করুন।
আপনার অ্যান্ড্রয়েড অ্যাপ্লিকেশনটিকে বাগ-মুক্ত করুন
আপনার অ্যাপ্লিকেশনে Firebase Crashlytics এর মত ক্র্যাশ রিপোর্টিং লাইব্রেরি সর্বদা সংহত করুন। ব্যবহারকারীদের জন্য একটি ভাল এবং বাগ-মুক্ত অ্যাপ্লিকেশন বিকাশের জন্য ক্র্যাশ রিপোর্টগুলি পড়ার ক্ষমতা বিকাশ করুন।
আপনার নিজের সমাধানের পরিবর্তে প্রমাণিত লাইব্রেরি ব্যবহার করুন
সাধারণভাবে, আপনার নিজের সমাধানের পরিবর্তে প্রমাণিত লাইব্রেরি ব্যবহার করুন।
আপনার অ্যান্ড্রয়েড অ্যাপ্লিকেশনে অ্যানালিটিক্স যুক্ত করুন
আপনি যে সমস্ত জায়গায় বোঝাতে চেয়েছিলেন সেখানে সঠিক বিশ্লেষণ যোগ করেছেন কিনা তা পরীক্ষা করুন। যাচাই করার সর্বোত্তম উপায় হল যে আপনার কোন ডেটা প্রয়োজন এবং আপনি যে পরিমাপগুলি পরিমাপ করতে চান তা ভেবে দেখুন, আপনি যে ডেটা এবং মেট্রিক্সটি যোগ করেছেন বা না করেছেন তা থেকে আপনি তা পেতে পারেন কিনা তা দেখুন। আপনি যদি এই সব পেতে সক্ষম হন তাহলে আপনি যেতে ভাল।
সমস্ত ডিভাইসের জন্য বিকাশ করুন
শুধুমাত্র একটি ডিভাইসের জন্য বিকাশ করবেন না। সমস্ত ডিভাইসের জন্য বিকাশ করুন।
বিভিন্ন OS সংস্করণে পরীক্ষা করুন
এবং আবার, অবশেষে, বিভিন্ন OS সংস্করণে পরীক্ষা চালিয়ে যান।
Happy Learning
Post a Comment