নির্বিঘ্নতার জন্য ডিজাইন

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

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

এই সমস্যাগুলি এড়াতে, আপনার অ্যাপ্লিকেশনটি ব্যবহারকারীকে বিজ্ঞপ্তি দেওয়ার জন্য যথাযথ সিস্টেম সুবিধা ব্যবহার করা উচিত — Notification ক্লাস। বিজ্ঞপ্তিগুলি ব্যবহার করে, আপনার অ্যাপ্লিকেশনটি ব্যবহারকারীকে সংকেত দিতে পারে যে একটি ঘটনা ঘটেছে, ফোকাস নেওয়া এবং ব্যবহারকারীকে বাধা দেওয়ার পরিবর্তে স্ট্যাটাস বারে একটি আইকন প্রদর্শন করে৷

একটি বিরামহীন সমস্যার আরেকটি উদাহরণ হল যখন একটি কার্যকলাপ অসাবধানতাবশত রাজ্য বা ব্যবহারকারীর ডেটা হারায় কারণ এটি onPause() এবং অন্যান্য জীবনচক্র পদ্ধতিগুলি সঠিকভাবে প্রয়োগ করে না। অথবা, যদি আপনার অ্যাপ্লিকেশানটি অন্য অ্যাপ্লিকেশনগুলির দ্বারা ব্যবহার করার উদ্দেশ্যে ডেটা প্রকাশ করে, তাহলে আপনাকে এটি একটি বিশ্ব-পঠনযোগ্য কাঁচা ফাইল বা ডাটাবেসের মাধ্যমে করার পরিবর্তে (উদাহরণস্বরূপ) একটি বিষয়বস্তু প্রদানকারীর মাধ্যমে প্রকাশ করা উচিত৷

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

এই দস্তাবেজটি সাধারণ নির্বিঘ্নতা সমস্যা এবং কীভাবে সেগুলি এড়াতে হয় তা নিয়ে আলোচনা করে৷

ডেটা ফেলে দেবেন না

সর্বদা মনে রাখবেন যে অ্যান্ড্রয়েড একটি মোবাইল প্ল্যাটফর্ম। এটা বলা স্পষ্ট মনে হতে পারে, কিন্তু এটা মনে রাখা গুরুত্বপূর্ণ যে অন্য একটি ক্রিয়াকলাপ (যেমন "ইনকামিং ফোন কল" অ্যাপ) যে কোনো মুহূর্তে আপনার নিজের কার্যকলাপে পপ আপ করতে পারে৷ এটি onSaveInstanceState() এবং onPause() পদ্ধতিগুলিকে ফায়ার করবে এবং সম্ভবত আপনার অ্যাপ্লিকেশনটিকে হত্যা করা হবে।

অন্য অ্যাক্টিভিটি উপস্থিত হওয়ার সময় ব্যবহারকারী যদি আপনার অ্যাপ্লিকেশানে ডেটা সম্পাদনা করে থাকেন, তাহলে আপনার অ্যাপ্লিকেশানটি মারা গেলে আপনার অ্যাপ্লিকেশন সম্ভবত সেই ডেটা হারাবে৷ যদি না, অবশ্যই, আপনি অগ্রগতিতে কাজটি প্রথমে সংরক্ষণ করেন। "অ্যান্ড্রয়েড ওয়ে" শুধুমাত্র এটি করতে হবে: যে অ্যান্ড্রয়েড অ্যাপ্লিকেশনগুলি ইনপুট গ্রহণ বা সম্পাদনা করে তাদের onSaveInstanceState() পদ্ধতিকে ওভাররাইড করা উচিত এবং কিছু উপযুক্ত ফ্যাশনে তাদের অবস্থা সংরক্ষণ করা উচিত। যখন ব্যবহারকারী অ্যাপ্লিকেশনটি পুনরায় দেখেন, তখন তার ডেটা পুনরুদ্ধার করতে সক্ষম হওয়া উচিত।

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

কাঁচা তথ্য প্রকাশ করবেন না

আপনি যদি আপনার অন্তর্বাস পরে রাস্তায় হাঁটতে না চান তবে আপনার ডেটাও উচিত নয়। যদিও পড়ার জন্য বিশ্বের কাছে নির্দিষ্ট ধরণের অ্যাপ্লিকেশন প্রকাশ করা সম্ভব, এটি সাধারণত সেরা ধারণা নয়। আপনার ডেটা বিন্যাস বোঝার জন্য কাঁচা ডেটা প্রকাশ করার জন্য অন্যান্য অ্যাপ্লিকেশনের প্রয়োজন হয়; আপনি যদি সেই বিন্যাসটি পরিবর্তন করেন, তাহলে আপনি একইভাবে আপডেট করা হয়নি এমন অন্য কোনো অ্যাপ্লিকেশন ভেঙে দেবেন।

"অ্যান্ড্রয়েড ওয়ে" হল একটি পরিষ্কার, সুচিন্তিত এবং রক্ষণাবেক্ষণযোগ্য API এর মাধ্যমে আপনার ডেটা অন্যান্য অ্যাপ্লিকেশনের কাছে প্রকাশ করার জন্য একটি সামগ্রী সরবরাহকারী তৈরি করা৷ একটি বিষয়বস্তু সরবরাহকারী ব্যবহার করা অনেকটা জাভা ভাষা ইন্টারফেস ঢোকানোর মতো দুটি কোডের টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো টুকরো করে বিভক্ত করতে এবং কম্পোনেন্টাইজ করার মতো। এর মানে হল আপনি কনটেন্টপ্রোভাইডার দ্বারা প্রকাশিত ইন্টারফেস পরিবর্তন না করে আপনার ডেটার অভ্যন্তরীণ বিন্যাস পরিবর্তন করতে সক্ষম হবেন, এবং এটি অন্যান্য অ্যাপ্লিকেশনগুলিকে প্রভাবিত না করেই৷

ব্যবহারকারীকে বাধা দেবেন না

যদি ব্যবহারকারী একটি অ্যাপ্লিকেশন চালায় (যেমন একটি কল চলাকালীন ফোন অ্যাপ্লিকেশন) তবে এটি একটি সুন্দর নিরাপদ বাজি যা তিনি উদ্দেশ্যমূলকভাবে করেছেন৷ এই কারণেই বর্তমান কার্যকলাপ থেকে ব্যবহারকারীর ইনপুটের সরাসরি প্রতিক্রিয়া ছাড়া আপনার স্পনিং কার্যকলাপগুলি এড়ানো উচিত।

অর্থাৎ, পটভূমিতে চলমান BroadcastReceivers বা পরিষেবাগুলি থেকে startActivity() কল করবেন না৷ এটি করার ফলে বর্তমানে যে অ্যাপ্লিকেশনটি চলছে তা বাধাগ্রস্ত করবে এবং এর ফলে ব্যবহারকারী বিরক্ত হবেন। সম্ভবত আরও খারাপ, আপনার ক্রিয়াকলাপ একটি "কিস্ট্রোক দস্যু" হয়ে উঠতে পারে এবং ব্যবহারকারীর পূর্ববর্তী ক্রিয়াকলাপের মাঝখানে যে ইনপুট ছিল তার কিছু গ্রহণ করতে পারে৷ আপনার অ্যাপ্লিকেশন কি করে তার উপর নির্ভর করে, এটি খারাপ খবর হতে পারে।

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

(মনে রাখবেন যে এই সমস্ত ক্ষেত্রে প্রযোজ্য নয় যেখানে আপনার নিজের কার্যকলাপ ইতিমধ্যেই অগ্রভাগে রয়েছে: সেক্ষেত্রে, ব্যবহারকারী ইনপুটের প্রতিক্রিয়া হিসাবে আপনার পরবর্তী কার্যকলাপ দেখতে পাবে বলে আশা করে।)

অনেক কিছু করার আছে? একটি থ্রেড এটি করুন

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

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

আপনার যদি দীর্ঘ-চলমান কোড থাকে, তাহলে আপনার কার্যকলাপে এটিকে ইনলাইনে চালানো হলে তা ইভেন্ট হ্যান্ডলার থ্রেডে চালাবে, কার্যকরভাবে ইভেন্ট হ্যান্ডলারকে ব্লক করবে। এটি ইনপুট প্রক্রিয়াকরণে দেরি করবে এবং এর ফলে ANR ডায়ালগ হবে। এটি এড়াতে, আপনার গণনাগুলিকে একটি থ্রেডে নিয়ে যান। প্রতিক্রিয়াশীলতার জন্য এই নকশাটি কীভাবে তা করতে হবে তা আলোচনা করে।

একটি একক কার্যকলাপ পর্দা ওভারলোড করবেন না

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

আপনার বিকাশের পটভূমির উপর নির্ভর করে, আপনি একটি ক্রিয়াকলাপকে জাভা অ্যাপলেটের মতো কিছু হিসাবে ব্যাখ্যা করতে পারেন, এটি আপনার অ্যাপ্লিকেশনের প্রবেশ বিন্দু। যাইহোক, এটি পুরোপুরি সঠিক নয়: যেখানে একটি অ্যাপলেট সাবক্লাস একটি জাভা অ্যাপলেটের জন্য একক এন্ট্রি পয়েন্ট, একটি কার্যকলাপকে আপনার অ্যাপ্লিকেশনের সম্ভাব্য কয়েকটি এন্ট্রি পয়েন্টগুলির মধ্যে একটি হিসাবে বিবেচনা করা উচিত। আপনার "প্রধান" অ্যাক্টিভিটি এবং আপনার হতে পারে এমন অন্য যে কোনো একটির মধ্যে পার্থক্য হল যে "প্রধান" ক্রিয়াকলাপটি কেবলমাত্র আপনার AndroidManifest-এ "android.intent.action.MAIN" অ্যাকশনে আগ্রহ প্রকাশ করেছে। xml ফাইল।

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

সিস্টেম থিম প্রসারিত করুন

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

একাধিক স্ক্রীন রেজোলিউশনের সাথে কাজ করার জন্য আপনার UI ডিজাইন করুন

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

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

ধরুন নেটওয়ার্ক ধীর

অ্যান্ড্রয়েড ডিভাইসগুলি বিভিন্ন নেটওয়ার্ক-সংযোগ বিকল্পগুলির সাথে আসবে৷ সকলেরই কিছু ডেটা-অ্যাক্সেস বিধান থাকবে, যদিও কিছু হবে অন্যদের তুলনায় দ্রুত। সর্বনিম্ন সাধারণ ডিনোমিনেটর, তবে, জিপিআরএস, জিএসএম নেটওয়ার্কের জন্য নন-3জি ডেটা পরিষেবা। এমনকি 3G-সক্ষম ডিভাইসগুলি নন-3G নেটওয়ার্কগুলিতে প্রচুর সময় ব্যয় করবে, তাই ধীর গতির নেটওয়ার্কগুলি সামনের দীর্ঘ সময়ের জন্য একটি বাস্তবতা থাকবে।

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

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

টাচস্ক্রিন বা কীবোর্ড ধরে নিবেন না

অ্যান্ড্রয়েড বিভিন্ন হ্যান্ডসেট ফর্ম-ফ্যাক্টর সমর্থন করবে। এটি বলার একটি অভিনব উপায় যে কিছু অ্যান্ড্রয়েড ডিভাইসে সম্পূর্ণ "QWERTY" কীবোর্ড থাকবে, অন্যদের 40-কী, 12-কি, বা এমনকি অন্যান্য কী কনফিগারেশন থাকবে। একইভাবে, কিছু ডিভাইসে টাচ-স্ক্রিন থাকবে, কিন্তু অনেকেরই থাকবে না।

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

ডিভাইসের ব্যাটারি সংরক্ষণ করুন

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

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

ব্যবহারকারীরা বেশ স্মার্ট: যদি আপনার প্রোগ্রাম শক্তি-ক্ষুধার্ত হয়, আপনি তাদের লক্ষ্য করার উপর নির্ভর করতে পারেন। সেই সময়ে আপনি নিশ্চিত হতে পারেন যে একমাত্র জিনিসটি হল আপনার প্রোগ্রামটি খুব বেশি দিন ইনস্টল থাকবে না।