چگونه حجم اپلیکیشن های react native را کاهش دهیم


من 25 دلار از دوستم برای خرید اکانت دولوپری Play Store برای قرار دادن اپلیکیشنم در این مارکت قرض گرفتم.من اپلیکیشن رو ساختم و در حال حاضر در مارکت وجود دارد.هیچکس نمی خواهد یک برنامه todo list را که 25 مگابایت از پهنا باند برایش هزینه دارد و هچنین 25 مگابایت از فضای برنامه اش را اشغال می کند، دانلود کند.
بنابراین من امروز قصد دارم که نحوه کاهش حجم اپلیکیشن از 25 مگابایت به 3.4 مگابایت رو توضیح بدم.
مانند هر فرد مبتدی، من اپلیکیشنم رو با Expo نوشتم، پلتفرمی برای react native که شما میتونید با اون اپلیکشن هایی که حس native بودن رو به آدم دست میده،بسازید.در اینجا هیج تنظیمات native وجود ندارد و شما جاوا اسکریپت می نویسید و Expo باینری را برای شما می سازد.
من هر چیزی از Expo را دوست دارم به جزء حجم باینری.حجم هر باینری بدون توجه به اپلیکیشن شما حدودا 25 مگابایت است.بنابراین اولین کاری که انجام دادم خارج کردن برنامه از Expo برای مهاجرت به React Native بود.
مهاجرت به React Native
- ایجاد یک پروژه با نام یکسان با
react-native init
- کپی کردن سورس برنامه از Expo
- نصب همه dependencie های Expo به جزء کتابخانه های مخصوص Expo
- انجام تنظیمات لازم برای فایل
app.json
- کپی کردن پوشه
.git
در پروژه جدید - دانلود signing key از Expo با استفاده از
exp fetch:android:keystore
و تنظیم آن - ساختن و تست برنامه
این کار باعث شد تا حجم برنامه به 7.5 مگابایت کاهش یابد و هنوز هم میتوانیم این حجم را کمتر کنیم.
کاهش حجم خروجی اپلیکیشن های React Native(اندروید)
این چیزی است که شما منتظرش بودید، می دونم
- فایل
android/app/build.gradle
را باز کنید def enableProguardInReleaseBuilds = true
را تنظیم کنید.این باعث فعال شدن Progaurd برای فشرده سازی Bytecode جاوا می شود.این باعث می شود که حجم برنامه یک مقدار کم شود.همچنین میتونید تله فیلم آموزشی استفاده از Proguard در React Native رو برای انجام این کار مشاهده کنید.def
enableSeparateBuildPerCPUArchitecture
= true
را تنظیم کنید.گوشی های اندرویدی از دو معماریarmebi
وx86
استفاده می کنند.به صورت پیشفرض React Native هر دو معماری در یک apk یکسان قرار می دهد.
آخرین تنظیم این است که شما دو تا APK موجود در پوشه build را در Play Store آپلود کنید و گوگل با توجه به هر معماری آن را برای گوشی ها نصب می کند.برای یادگیری نجوه خروجی گرفتن می تونید تله فیلم آموزشی خروجی گرفتن از برنامه های React Native با فرمت apk را ببینید.
این تقسیم باعث می شود تا حجم برنامه از 7.5 مگابایت تا 3.5 مگابایت برای arm
و 5 مگابایت x86
کاهش یابد.این کاهش حجم برنامه می تواند مزایای زیادی داشته باشد و اولین آن تمایل بیشتر کاربران برای دانلود اپلیکیشن شما است.
مطالب زیر را حتما مطالعه کنید
چگونه از ماژول های نیتیو Android و IOS در React Native استفاده کنیم؟
تفاوت توسعه برنامه های android و ios
استفاده از Flipper در پروژه های ری اکت نیتیو (React Native)
نمایش PDF در react native
استفاده از Mapbox در react native (ری اکت نیتیو)
نمایش عکس های گوشی در react native (ری اکت نیتیو)
11 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
سلام وقت بخیر
من یه پروژه خام درست کردم و پروگاردشم فعال کردم و خروجی گرفتم حجمش شده 22 مگ
چکار کنم که خروجی این پروژه خام بدون فعال کردن enableSeparateBuildPerCPUArchitecture حجمش نزدیک به 10 مگ بشه
ممنون
روز خوش
سلام وقت بخیر
تا جایی که من میدونم راهی برای این مورد نیست مگر اینکه از نسخه های قدیمی react native استفاده کنید که خروجی با حجم کمتری در اختیار ما قرار میداد
سلام
برنامه من از ماژول های زیادی استفاده نمیکنه و کدش تقریبا بهینه ست ولی حجمش شده 38 مگ
اگه با پروگارد کردن هم به 30 هم برسه بازم کمه
ما قرار نیست اپ رو روی استور ها قرار بدیم و مشتریان باید بیان و از روی سایت خودمون دانلود کنن پس اون روش دوم بدردمون نمیخوره
راه دیگه ایی ندارین
ممنون
سلام.
راه دیگه ای رو نمیشناسم و فکر هم نکنم باشه.
هردورو true کردم ولی تغییری تو حجم فایل خروجی ایجاد نشد
یعنی دو تا خروجی نداد بهتون؟
سلام و خدا قوت
یه سئوال داشتم و اون اینکه در شرایط فعلی و وجود تحریم ها برای انتشار اپلیکیشن ios چه راهکاری وجود داره؟
سلام.علی عزیز.
با توجه به شرایطی که اپل رقم زده راه خاصی وجود نداره مگر اینکه در خارج از کشور یک شرکت داشته باشید و با استفاده از اطلاعات اون شرکت اپلیکیشن رو register کنید.اپ استور های ایرانی هر روز به یک مشکل میخورند و blockمیشن.
من شنیدم که اپ ها چک میشن و اگه زبان اصلیشون فارسی باشه و یا درگاه پرداخت داشته باشن بلاک میشن ایا صحت داره؟ و اینکه ایا کسی که در خارج از ایران ساکن هست و حساب بانکی داره میتونه app رو بارگزاری کنه یا حتما باید یه شرکت ثبت شده باشه؟
ممنون اما کافه بازار یا موارد مشابه ایرانی همچین امکانی ندارند درسته؟
با سلام.درجریان دقیق این موضوع نیستم.بهتره با پشتیبانی کافه بازار در ارتباط باشید تا کامل و دقیق توضیح بدن این مورد رو