প্রতি বছর, অ্যাপল একটি নতুন আইফোন প্রকাশ করে, ধীরে ধীরে RAM এবং প্রধান মেমরির আকার বৃদ্ধি করে, চিপে শক্তি যোগ করে। আজ, আইফোন 15-এ, আপনি ইতিমধ্যেই "রেসিডেন্ট ইভিল 4" এর মতো কনসোল গেমগুলি চালাতে পারেন৷ এবং একটি যৌক্তিক প্রশ্ন উঠতে পারে - আমি কি আমার অ্যাপ্লিকেশনটির আকার অপ্টিমাইজ করতে পারি নাকি আমি এটিতে আরও সময় ব্যয় করতে পারি না?
সংক্ষেপে, এটি এখনও আকার অপ্টিমাইজ করার মূল্য। এই নিবন্ধে, আমি কারণগুলি সংগ্রহ করেছি কেন এটি করা অপরিহার্য এবং কিছু দরকারী অপ্টিমাইজেশান পদ্ধতি প্রদান করেছি৷
সুতরাং, আসুন "কেন আকার গুরুত্বপূর্ণ?" প্রশ্নের সবচেয়ে সাধারণ উত্তর দিয়ে শুরু করা যাক? - অ্যাপ স্টোরের সীমাবদ্ধতা। অ্যাপ স্টোর কানেক্ট আপনাকে নির্দিষ্ট আকারের সীমা অতিক্রম করে এমন একটি ফাইল ডাউনলোড করার অনুমতি দেবে না।
iOS এবং tvOS অ্যাপ্লিকেশানগুলির জন্য, আপনার অ্যাপ সমর্থিত অপারেটিং সিস্টেমে সর্বোচ্চ ফাইলের আকার অতিক্রম করে না তা যাচাই করুন৷ আপনার অ্যাপের মোট আনকম্প্রেস সাইজ অবশ্যই 4GB-এর কম হতে হবে।
Apple Watch অ্যাপ 75MB এর কম হতে হবে। উপরন্তু, প্রতিটি Mach-O এক্সিকিউটেবল ফাইল — যেমন, app_name.app/app_name — এই সর্বোচ্চ ফাইলের আকারের বেশি হওয়া উচিত নয়।
লিঙ্ক
তারা যে নির্দিষ্ট ফাইলগুলি উল্লেখ করছে তা কিছুটা বিভ্রান্তিকর হতে পারে। এটি আরও ভালভাবে বুঝতে, অ্যাপ স্টোর কানেক্টে আপনার আবেদন জমা দেওয়ার প্রক্রিয়াটি চলুন।
প্রথম ধাপ হল একটি আর্কাইভ তৈরি করা। এই সংরক্ষণাগারটি একটি iOS, macOS, watchOS, বা tvOS অ্যাপের জন্য বিল্ড আর্টিফ্যাক্ট এবং সম্পর্কিত তথ্যের একটি সংগ্রহ সঞ্চয় করে।
আমাদের আর্কাইভে ঠিক কী এবং কী আকারে অন্তর্ভুক্ত করা হয়েছে তা দেখার সুযোগ আছে।
প্রধান ফাইলগুলির মধ্যে, আপনি পাবেন:
আপনার অ্যাপের সাথে পণ্য ফোল্ডার;
dSYMs, ("ডিবাগিং চিহ্ন" এর জন্য সংক্ষিপ্ত), ডিবাগিংয়ের জন্য প্রয়োজনীয় তথ্য সহ এক্সকোড দ্বারা তৈরি বিশেষ ফাইল, সংক্ষেপে, ক্র্যাশ লগ;
Info.plist;
যাইহোক, অ্যাপ্লিকেশন ফাইলটি "প্যাকেজের বিষয়বস্তু দেখান" দ্বারাও খোলা যেতে পারে, এবং ফাইলগুলির মধ্যে, আপনি কোড স্বাক্ষরের ফলে এক্সিকিউটেবল এবং কোড রিসোর্স পাবেন; এটি বিভিন্ন অ্যাপ্লিকেশন সংস্থানগুলির (ছবি, ইত্যাদি) ডিজিটাল স্বাক্ষরের ট্র্যাক রাখে।
এক্সকোডে ফিরে আসা, আর্কাইভ তৈরি করার পরে, Distribute App
বোতামটি আপনার জন্য উপলব্ধ। এই পর্যায়ে, .xcarchive .ipa এ পরিণত হয়।
একটি .ipa ফাইলকে একটি সংকুচিত প্যাকেজ হিসাবে বিবেচনা করা যেতে পারে যাতে একটি "পেলোড" ফোল্ডার অন্তর্ভুক্ত থাকে। এই "Payload" ফোল্ডারের ভিতরে, অপরিহার্য "YourApp.app" বান্ডেল রয়েছে৷ ".অ্যাপ" বান্ডেলের মধ্যে, আপনি আপনার অ্যাপ্লিকেশনের সমস্ত গুরুত্বপূর্ণ উপাদান খুঁজে পাবেন, যেমন সম্পদগুলি সহ
উপরন্তু, অ্যাপটির অখণ্ডতা এবং নিরাপত্তা নিশ্চিত করতে এতে কোড-সাইনিং সংস্থান রয়েছে।
আপনার .ipa- এর অভ্যন্তরীণ অংশগুলি দেখতে, বিতরণের পরে Export
ক্লিক করুন, টাইপটিকে .ipa থেকে .zip- এ রূপান্তর করুন এবং শুধু নিষ্কাশন করুন৷
সংক্ষেপে, .ipa ফাইল হল প্যাকেজ করা অ্যাপ্লিকেশন যা শেষ-ব্যবহারকারীরা তাদের iOS ডিভাইসে ইনস্টল করে, যখন .xcarchive হল একটি ডেভেলপার-কেন্দ্রিক সংরক্ষণাগার যাতে অ্যাপ্লিকেশনের জন্য বিভিন্ন সম্পদ এবং বিল্ড তথ্য রয়েছে।
.ipa বিতরণের জন্য ব্যবহৃত হয়, যখন .xcarchive ডিবাগিং, সংরক্ষণাগার এবং আরও উন্নয়নের উদ্দেশ্যে ব্যবহৃত হয়। অন্যদিকে এক্সিকিউটেবল হল কেন্দ্রীয় কোড যা অ্যাপের কার্য সম্পাদন করে এবং .ipa প্যাকেজের মধ্যে থাকে।
সুতরাং, অ্যাপস্টোরের সীমাবদ্ধতাগুলি নিম্নরূপ চিত্রিত করা যেতে পারে।
ওএস সংস্করণ | .ipa আকার | .ipa -> Payload -> App -> exe সাইজ |
---|---|---|
iOS 9.0 এবং latertvOS 9.0 এবং পরবর্তী | 4 জিবি | 500 MB |
iOS 8.X এর মাধ্যমে iOS 7.X | 2 জিবি | 60 এমবি |
যাইহোক, আপনার চূড়ান্ত অ্যাপ্লিকেশনের আকার অনুমান করার জন্য, অর্থাৎ, একটি নির্দিষ্ট ব্যবহারকারীকে তাদের ডিভাইসে কতগুলি বাইট ইনস্টল করতে হবে, আপনাকে অতিরিক্ত পদক্ষেপের প্রয়োজন হবে, যথা, একটি অ্যাপ আকারের প্রতিবেদন তৈরি করা। ডকুমেন্টেশন এটি তৈরি করার পদ্ধতিটি ভালভাবে বর্ণনা করে, তাই আমি একটি ছেড়ে দেব
আপনার অ্যাপ্লিকেশনের আকার সম্পর্কে চিন্তা করার পরবর্তী কারণ হল … আবার অ্যাপস্টোর, কিন্তু এখন, আমরা সিস্টেমের সীমাবদ্ধতার কথা বলছি না কিন্তু ডাউনলোডের গতির কথা বলছি। এখানে সবকিছুই স্পষ্ট - আকার যত ছোট, হার তত বেশি।
অধিকন্তু, 200 MB এর একটি সীমা রয়েছে, যা পৌঁছানোর জন্য ব্যবহারকারীদের অ্যাপটি ইনস্টল করার জন্য একটি Wi-Fi নেটওয়ার্কের সাথে সংযোগ করতে হবে৷ বিলম্ব ব্যবহারকারীদের নিরুৎসাহিত করতে পারে এবং উচ্চ পরিত্যাগের হারের দিকে নিয়ে যেতে পারে।
অ্যাপলের অ্যাপ স্টোর অনুসন্ধান এবং আবিষ্কারের অ্যালগরিদমগুলি প্রায়শই ছোট অ্যাপগুলির পক্ষে, কারণ সেগুলি ব্যবহারকারীদের ডাউনলোড করা এবং চেষ্টা করা সহজ। ছোট অ্যাপের আকারগুলি সম্ভাব্যভাবে অনুসন্ধান ফলাফল এবং সুপারিশগুলিতে আপনার অ্যাপের দৃশ্যমানতা উন্নত করতে পারে।
একবার অ্যাপটি ডিভাইসে থাকলে, এর আকার এখনও গুরুত্বপূর্ণ। আরও ভাল ব্যবহারকারীর অভিজ্ঞতা প্রদান করে ছোট অ্যাপগুলি দ্রুত লঞ্চ করে। যখন একটি অ্যাপ স্টোরেজ অপ্টিমাইজ করে, তখন এটি বর্ধিত ব্যাটারি লাইফ, অ্যাপ ফুটপ্রিন্ট হ্রাস এবং ভাল ডিভাইসের স্বাস্থ্যে অবদান রাখে। ফলস্বরূপ, আইফোনের সাথে যত বেশি মানুষ খুশি হবেন, আপনার সম্ভাব্য ব্যবহারকারী তত বেশি হবে।
বিকাশের সময় আপনার অ্যাপ্লিকেশনের আকার অপ্রয়োজনীয়ভাবে বাড়ানো এড়াতে কিছু সহজ টিপস রয়েছে। তাদের মধ্যে প্রথমটি ইমেজ নিয়ে সচেতন কাজ।
প্রথমে, JPEG এর পরিবর্তে HEIC নির্বাচন করুন। HEIC ফাইলগুলি প্রদান করে যেগুলি JPEG-এর তুলনায় 50 শতাংশ ছোট, সমস্ত একই রকম ছবির গুণমান বজায় রেখে৷ এর ফলে আপনার ডিভাইসে স্টোরেজ স্পেস কমে যায়। ছোট ফাইলগুলি নেটওয়ার্ক জুড়ে ফাইল স্থানান্তর করা সহজ, সেইসাথে দ্রুত লোডিং এবং ডিস্কে সংরক্ষণ করা।
HEICs চিত্রের স্বচ্ছতা এবং গভীরতা এবং বৈষম্যের তথ্য সম্বলিত সম্পূরক চিত্র সংরক্ষণ করার ক্ষমতা সমর্থন করে। এটি ক্ষতিহীন কম্প্রেশন সমর্থন করে এবং আপনাকে একটি একক পাত্রে একাধিক ছবি সংরক্ষণ করতে সক্ষম করে।
দ্বিতীয়ত, PDF এবং PNG এর পরিবর্তে SVG (একটি XML-ভিত্তিক ভেক্টর ইমেজ ফর্ম্যাট যা দ্বি-মাত্রিক ভেক্টর গ্রাফিক্স প্রদর্শন করতে ব্যবহৃত হয়) গ্রহণ করার চেষ্টা করুন। রাস্টার চিত্রের বিপরীতে, ভেক্টর গ্রাফিক্স সাধারণত ছোট ফাইলের আকার প্রদর্শন করে, কারণ এটি গাণিতিক সমীকরণ দ্বারা চিহ্নিত করা হয় যা আকার এবং বক্ররেখাকে সংজ্ঞায়িত করে, পৃথক পিক্সেল সংরক্ষণের বিপরীতে।
প্রাথমিকভাবে, উপসর্গ সহ (প্রতিটি পিক্সেল ঘনত্বের জন্য) 3টি চিত্র যুক্ত করা প্রয়োজন ছিল। তারপরে পিএনজি সমর্থন যোগ করা হয়েছিল (= একটি প্রদত্ত আকারের ভেক্টর চিত্র), তবে এটি এখনও "পিডিএফ থেকে 3টি পিএনজি কাটানোর পর্যায়ে কাজ করে যখন আমরা প্রকল্পটি একত্রিত করি।"
এবং শুধুমাত্র তখনই SVG + ব্যবহার করা সম্ভব হয়েছে অ্যাসেট ক্যাটালগে "ভেক্টর তারিখ ব্যবহার করুন" চেকবক্সটি অন্তর্ভুক্ত করে, যার ফলে ব্যবহৃত চিত্রগুলির আকার সত্যিই হ্রাস করা + গুণমানের ক্ষতি ছাড়াই অসীম স্কেলিং করার সম্ভাবনা যুক্ত করা হয়েছে।
তৃতীয়ত, অ্যাসেট ক্যাটালগগুলির ক্ষমতার সর্বাধিক ব্যবহার করুন৷ সম্পদ ক্যাটালগ একই ছবির একাধিক রেজোলিউশনের জন্য সহজে ব্যবহারযোগ্য স্টোরেজ প্রদান করে। অধিকন্তু, ক্যাটালগগুলি পৃথক ফাইলের পরিবর্তে মেটাডেটা সহ একটি একক অপ্টিমাইজ করা বিন্যাসে সমস্ত চিত্র সম্পদ সংরক্ষণ করে।
এটি অ্যাপ স্টোরকে তাদের নির্দিষ্ট ডিভাইসের জন্য শুধুমাত্র প্রয়োজনীয় সম্পদ সরবরাহ করতে দেয়। এটি ডাউনলোডের গতি বাড়ায়, এবং আমরা ইতিমধ্যে জানি যে ব্যবহারকারীরা অপেক্ষা করতে পছন্দ করেন না।
রিসোর্সে "অন-ডিমান্ড" সেট করা সম্ভব, অর্থাৎ, রিসোর্সটি শুধুমাত্র প্রয়োজন হলেই ডিভাইসে ডাউনলোড করা হবে এবং কিছু সময়ের অব্যবহারের পরে, এটি সরিয়ে ফেলা হবে।
ভুলে যাবেন না যে আপনার কাছে "বিনামূল্যে" চিত্রগুলির একটি বিশাল ক্যাটালগ রয়েছে - SF প্রতীকগুলি । অ্যাপল ক্রমাগত অক্ষর বাড়ানোর জন্য কাজ করছে, রং এবং এমনকি অ্যানিমেশন কাস্টমাইজ করার ক্ষমতা যোগ করছে।
সুতরাং, ছবি এবং অন্যান্য গ্রাফিক সংস্থানগুলির সাথে, সবকিছু পরিষ্কার বলে মনে হচ্ছে - আমরা সঠিক বিন্যাসগুলি ব্যবহার করি এবং সম্পদের মাধ্যমে একটি ক্যাটালগ যুক্ত করি। চূড়ান্ত সমাবেশে বৃহৎ সংস্থানগুলি অন্তর্ভুক্ত না করার একটি সুযোগ সর্বদা থাকে, তবে প্রয়োজনে ইন্টারনেট থেকে আপলোড করুন। এখন, কোড এবং লাইব্রেরির ব্যবহার সম্পর্কে কথা বলা যাক।
আমাকে দ্রুত লিঙ্কিং সম্পর্কে মনে করিয়ে দিন. এর দুটি প্রকার রয়েছে: স্ট্যাটিক এবং ডাইনামিক।
| স্থির | গতিশীল |
---|---|---|
যখন লিঙ্কিং ঘটে | সময় বিল্ড | রানটাইম |
যেখানে নির্ভরতা সংরক্ষণ করা হয় | চূড়ান্ত এক্সিকিউটেবল ফাইলে | পৃথক গতিশীল লাইব্রেরিতে |
কিভাবে নির্ভরতা ভাগ করা হয় | একই অনুলিপি অ্যাপের সমস্ত দৃষ্টান্ত দ্বারা ব্যবহৃত হয় | অ্যাপের প্রতিটি উদাহরণের নিজস্ব অনুলিপি রয়েছে |
নির্ভরতাগুলির আপডেটগুলি কীভাবে পরিচালনা করা হয় | অ্যাপটি পুনরায় তৈরি করুন | ডায়নামিক লাইব্রেরি আপডেট করুন |
এই নিবন্ধের থিম অনুসারে, নির্ভরতা সঞ্চয়স্থান আমাদের জন্য বিশেষভাবে গুরুত্বপূর্ণ, এবং গতিশীল লিঙ্কিং আমাদের প্রিয় বলে মনে হচ্ছে।
ডায়নামিক লাইব্রেরিগুলি স্ট্যাটিকভাবে ক্লায়েন্ট অ্যাপের সাথে যুক্ত নয়; তারা এক্সিকিউটেবল ফাইলের অংশ হয়ে ওঠে না। পরিবর্তে, ডায়নামিক লাইব্রেরিগুলি একটি অ্যাপে লোড (এবং লিঙ্ক করা) হতে পারে যখন অ্যাপটি চালু হয় বা এটি চালানো হয়।
লিঙ্ক
দীর্ঘ গল্প সংক্ষিপ্ত, স্ট্যাটিক লাইব্রেরির চেয়ে গতিশীল লাইব্রেরি বেছে নেওয়ার ফলে অ্যাপ ফাইলের আকার ছোট হয় এবং প্রাথমিক মেমরির ব্যবহার কম হয়। যাইহোক, ভারসাম্য বজায় রাখা এবং ডায়নামিক লাইব্রেরির অত্যধিক ব্যবহার এড়ানো এখনও গুরুত্বপূর্ণ, কারণ এটি অ্যাপের শুরুর সময় কার্যক্ষমতা বিলম্ব তৈরি করতে পারে।
Apple আপনার অ্যাপে একটি মডুলার কোড বেস ( SPM ) তৈরি করারও সুপারিশ করে, যা অন্যান্য লক্ষ্যগুলির সাথে কোড ভাগ করার সময় কার্যকর হতে পারে, উদাহরণস্বরূপ, অ্যাপ ক্লিপস৷
সুইফ্ট প্যাকেজ ম্যানেজার আপনার সুইফ্ট প্রকল্পগুলিতে নির্ভরতা পরিচালনা করার জন্য একটি সুবিন্যস্ত এবং স্থানীয় উপায় অফার করে।
আপনার অ্যাপের আকার কমানোর সবচেয়ে কার্যকর উপায়গুলির মধ্যে একটি হল সমস্ত অপ্রয়োজনীয় ফাইল মুছে ফেলা। এই অতিরিক্ত ফাইলগুলি হতে পারে, উদাহরণস্বরূপ, Read.me বা অবশিষ্ট ছবি। প্রকৃতপক্ষে, নিবন্ধের একেবারে শুরুতে, যেখানে আমরা .ipa কী তা খুঁজে বের করেছি, আমরা ইতিমধ্যেই শিখেছি কীভাবে অ্যাপস্টোরে প্রবেশ করা সমস্ত ফাইল খুঁজে বের করতে হয়: .ipa -> .zip -> অ্যাপ -> প্যাকেজ দেখান বিষয়বস্তু
আপনার প্রয়োজন নেই এমন সমস্ত সংস্থান খুঁজে বের করুন এবং আপনার অ্যাপ থেকে সেগুলি মুছে ফেলতে দ্বিধা বোধ করুন ৷
শুধু নীচে লাইন এই. এখনও কিছু গুরুত্বপূর্ণ কারণ রয়েছে কেন আমাদের অ্যাপের আকারের উপর নজর রাখা উচিত:
এবং অ্যাপের আকার কমানোর কিছু পদ্ধতি রয়েছে:
তাই শুধু আপনার রুটিন উন্নয়নের সময় এটি সম্পর্কে ভুলবেন না; প্রতিদিন স্মার্ট হয়ে উঠুন 🙃