فلاتر

کاهش حجم اپلیکیشن‌های فلاتری

کاهش حجم اپلیکیشن‌های فلاتری

با گسترش روزافزون اپلیکیشن‌های موبایل، کاربران به دنبال اپلیکیشن‌هایی با عملکرد سریع و حجم کم هستند. حجم بالای اپلیکیشن می‌تواند باعث کاهش تعداد نصب، افزایش نرخ حذف و حتی افت عملکرد شود. در این مقاله، روش‌های کاهش حجم اپلیکیشن‌های فلاتری را بررسی می‌کنیم. همچنین تفاوت حجم اپلیکیشن‌های فلاتری و نیتیو و روش‌های خروجی گرفتن برای اندروید و iOS را مرور خواهیم کرد.

فلاتر چیست؟

فلاتر (Flutter) یک فریمورک متن‌باز برای توسعه اپلیکیشن‌های چندسکویی (cross-platform) است که توسط گوگل توسعه یافته است. این فریمورک امکان ساخت اپلیکیشن‌های اندروید، iOS، وب و دسکتاپ را با یک کد واحد فراهم می‌کند.

ویژگی‌های کلیدی فلاتر:

  • استفاده از زبان Dart: فلاتر از زبان برنامه‌نویسی Dart برای توسعه استفاده می‌کند.
  • رندرینگ سفارشی: از موتور گرافیکی Skia برای رندر سریع و دقیق استفاده می‌کند.
  • Hot Reload: قابلیت مشاهده تغییرات کد بدون نیاز به ری‌استارت اپلیکیشن.
  • ویجت‌های قابل شخصی‌سازی: برای ایجاد رابط کاربری مدرن و زیبا.

انواع خروجی اپلیکیشن‌های فلاتر

انواع خروجی اپلیکیشن‌های فلاتر

فلاتر به دلیل قابلیت چندسکویی، خروجی‌های مختلفی را تولید می‌کند:

  • اندروید: خروجی به‌صورت APK، AAB یا App Bundle.
  • iOS: خروجی به‌صورت IPA.
  • وب: خروجی به‌صورت فایل‌های HTML، CSS و JS.
  • دسکتاپ: خروجی برای سیستم‌عامل‌های macOS، Windows و Linux.
پلتفرم های فلاتر

حجم اپلیکیشن‌های فلاتری در مقایسه با نیتیو

یکی از نقاط ضعف اپلیکیشن‌های فلاتری، حجم بالای آن‌ها نسبت به اپلیکیشن‌های نیتیو است. علت این موضوع:

  • وجود موتور رندر داخلی: اپلیکیشن‌های فلاتری شامل موتور رندر Skia هستند که باعث افزایش حجم می‌شود.
  • فایل‌های کتابخانه‌ی Dart: کتابخانه‌های پیش‌فرض Dart در داخل خروجی اپلیکیشن قرار می‌گیرند.
  • عدم استفاده از APIهای سیستمی: برخلاف اپلیکیشن‌های نیتیو، اپ‌های فلاتری مجبورند برخی از قابلیت‌های سیستمی را شبیه‌سازی کنند که این امر حجم اپ را افزایش می‌دهد.

مقایسه حجم خروجی:

  • اپلیکیشن نیتیو اندروید: 5 الی 10 مگابایت.
  • اپلیکیشن فلاتری اندروید: 15 الی 25 مگابایت.
  • اپلیکیشن نیتیو iOS: 10 الی 15 مگابایت.
  • اپلیکیشن فلاتری iOS: 40 الی 60 مگابایت.

روش خروجی گرفتن اپلیکیشن اندروید

برای خروجی گرفتن اپ اندروید در فلاتر، می‌توانید از دستورات زیر استفاده کنید:

  1. ساخت APK:
1
flutter build apk --release
  1. ساخت App Bundle:
1
flutter build appbundle --release
  1. بهینه‌سازی خروجی:
  • برای کاهش حجم، از --split-per-abi برای ایجاد نسخه‌های اختصاصی برای معماری‌های مختلف استفاده کنید:
1
flutter build apk --release --split-per-abi

این دستور خروجی را برای هر معماری CPU (مانند armeabi-v7aarm64-v8a و x86_64) جدا می‌کند و باعث کاهش حجم فایل APK نهایی می‌شود.

روش خروجی گرفتن اپلیکیشن iOS

برای خروجی گرفتن اپلیکیشن iOS در فلاتر:

  1. ساخت خروجی iOS:
1
flutter build ios --release
  1. آرشیو و انتشار در Xcode:
  • پروژه را در Xcode باز کنید:
1
open ios/Runner.xcworkspace

از منوی Product > Archive خروجی گرفته و برای انتشار آماده کنید.

 روش‌های کاهش حجم اپلیکیشن فلاتری

1. استفاده از Split APKs یا App Bundles در اندروید می‌توانید خروجی App Bundle بگیرید که گوگل‌پلی به صورت خودکار نسخه بهینه را برای دستگاه کاربر ارائه می‌دهد. این کار حجم دانلود را کاهش می‌دهد:

1
flutter build appbundle --release

همچنین با دستور زیر می‌توانید برای هر معماری خروجی مجزا بگیرید:

1
flutter build apk --release --split-per-abi

2. فشرده‌سازی فایل‌های تصویر

  • از تصاویر WebP یا SVG به جای PNG و JPG استفاده کنید.
  • فشرده‌سازی تصاویر با ابزارهایی مثل:

3. استفاده از ProGuard و R8 در اندروید ProGuard و R8 به شما کمک می‌کنند تا کلاس‌ها و متدهای بلااستفاده را حذف کنید:

  • فایل android/app/proguard-rules.pro را ویرایش کرده و موارد زیر را اضافه کنید:
1
2
-keep class io.flutter.app.FlutterApplication
-keep class io.flutter.plugin.** { *; }
  • فایل android/app/build.gradle را بهینه کنید:
1
2
3
4
5
6
7
buildTypes {
    release {
        shrinkResources true
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }
}

4. حذف فونت‌های بلااستفاده اگر از فونت‌های خارجی زیادی استفاده می‌کنید، موارد بلااستفاده را حذف کنید.

5. غیرفعال کردن فلگ‌های غیرضروری در فایل pubspec.yaml، فلگ‌های debug و profile را غیرفعال کرده و فقط نسخه release را خروجی بگیرید.

6. Lazy Loading و Deferred Components در صورت نیاز به کتابخانه‌های بزرگ، می‌توانید از Deferred Components استفاده کنید تا آن‌ها را هنگام اجرا و نه در هنگام نصب، دانلود کنید.

7. حذف Assets اضافی فایل‌های بلااستفاده و اضافی در مسیر assets را حذف کنید.

8. حذف کتابخانه‌های غیرضروری کتابخانه‌های بلااستفاده در pubspec.yaml را حذف کنید.

9. فعال کردن “Tree Shaking” در اپ‌های وب، با فعال‌کردن Tree Shaking، کدهای بلااستفاده Dart حذف می‌شوند:

1
flutter build web --release

10. استفاده از پکیج‌های بهینه برخی پکیج‌ها مانند flutter_svg و cached_network_image بهینه‌تر از معادل‌های رایج هستند.

 سوالات متداول

1. آیا اپلیکیشن‌های فلاتری همیشه حجم بالایی دارند؟
خیر، با بهینه‌سازی‌های مناسب مانند Split APK، فشرده‌سازی تصاویر و حذف کتابخانه‌های غیرضروری، می‌توانید حجم اپلیکیشن را کاهش دهید.

2. بهترین روش برای کاهش حجم اپ در iOS چیست؟
استفاده از ابزارهای فشرده‌سازی اپل مانند Bitcode و حذف منابع اضافی.

3. آیا استفاده از فلاتر برای اپ‌های سنگین مناسب است؟
بله، اما برای اپ‌های بسیار سنگین یا گرافیکی، استفاده از کد نیتیو (مانند Swift یا Kotlin) ممکن است بهینه‌تر باشد.

 نتیجه‌گیری

کاهش حجم اپلیکیشن‌های فلاتری به بهبود تجربه کاربری و افزایش نصب‌ها منجر می‌شود. با بهینه‌سازی تصاویر، استفاده از Split APK یا App Bundle، حذف کتابخانه‌های غیرضروری و فعال‌سازی ProGuard یا R8 می‌توانید حجم اپلیکیشن را به میزان قابل توجهی کاهش دهید. رعایت این اصول، علاوه بر بهبود عملکرد، مصرف حافظه و سرعت بارگذاری اپ را نیز افزایش می‌دهد.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *