چالش توسعه فلاتر با اینترنت محدود: چرا مهم است؟
حتماً برای شما هم پیش آمده که در اوج یک پروژه هیجانانگیز، ناگهان دسترسیتان به اینترنت بینالملل محدود شده و ابزارهای توسعه مثل فلاتر، که وابستگی زیادی به دانلود پکیجها و همگامسازی با سرورها دارند، از کار افتادهاند. این وضعیت، که ما به آن «برنامهنویسی با نت ملی» میگوییم، به یکی از بزرگترین دغدغههای توسعهدهندگان در ایران تبدیل شده است. خطاهای عجیب و غریب در ترمینال، توقف بیلد پروژه، و کلاً حس درماندگی، از عواقب این مشکل است.
C:\src\flutter
ما در Knowxis، به عنوان همراه شما در مسیر یادگیری، میخواهیم یک روش کاملاً کاربردی و جادویی را به شما معرفی کنیم تا بتوانید کل محیط توسعه فلاتر را روی هر سیستمی، حتی بدون اتصال به اینترنت، راهاندازی کنید. تصور کنید میتوانید تمام فایلها و پیشنیازهای لازم را یکبار دانلود کرده و آنها را روی لپتاپی که اصلاً به وایفای وصل نیست، پیادهسازی و پروژههای خود را با خیال راحت اجرا کنید. این یعنی خداحافظی با نگرانیهای مربوط به قطع شدن اینترنت!
ریشه مشکلات: چرا فلاتر به اینترنت نیاز دارد؟
وقتی وارد دنیای برنامهنویسی میشوید، نصب ابزارهای مختلف اجتنابناپذیر است. فلاتر، به عنوان یکی از محبوبترین فریمورکها برای توسعه موبایل (که میتوانید دلایل محبوبیتش را در مقاله «5 دلیل برای یادگیری فلاتر» بخوانید)، برای بیلد کردن پروژهها به فایلهای گریدل، پکیجهای دارت، و ابزارهای اندروید استودیو نیاز دارد. این ابزارها مرتباً وضعیت خود را با سرورهای خارجی چک میکنند و در صورت عدم دسترسی به اینترنت، فرآیند بیلد متوقف میشود. خطاهای اتصال پیدرپی، برنامهنویسی را به کابوس تبدیل میکند.
C:\Program Files\Android\Android Studio
اما ما توسعهدهندگان، عادت داریم مشکلات را حل کنیم! در این آموزش، ما به شما نشان میدهیم چطور این اکوسیستم را فریب دهید و به آن بفهمانید که تمام نیازمندیهایش روی هارد دیسک شما حاضر و آماده است و نیازی به دنیای بیرون ندارد.
فایلهای حیاتی برای اجرای فلاتر بدون اینترنت:
برای غلبه بر چالش «فلاتر با نت ملی»، ما تمام فایلها، پوشهها و پیشنیازهایی را که روی یک سیستم با دسترسی آزاد به اینترنت دانلود و تنظیم شدهاند، برای شما آماده کردهایم. در واقع، ما نقش آن توسعهدهندهای را بازی کردهایم که ساعتها وقت صرف نصب پکیجها و آمادهسازی یک محیط توسعه کامل کرده است. دیگر نیازی نیست نگران تحریمها یا قطعی اینترنت باشید.
ما این فایلهای حیاتی را فشرده کرده و در انتهای همین مقاله برای دانلود قرار دادهایم. کافیست آنها را دانلود کرده و طبق دستورالعملهای ما، روی سیستم خام خودتان، که حتی به اینترنت متصل نیست، قرار دهید:
C:\Users\Knowxis\AppData\Local\Android\Sdk
چه چیزهایی را دانلود میکنید؟
مهمترین فایل، پوشه Flutter SDK است که قلب تپنده اجرای فلاتر آفلاین محسوب میشود. در کنار آن، پوشه حجیم و حیاتی Android SDK را نیز به صورت فشرده برای شما آماده کردهایم تا دیگر نیازی به دانلود با ابزارهای تغییر IP نداشته باشید.
علاوه بر این، فایلهای نصب Android Studio و از همه مهمتر، فایلهای کش (Cache) شامل پکیجهای دانلود شده، در این بسته دانلودی موجود است. با جایگذاری این فایلها در سیستم خود، در واقع یک میانبر بزرگ میزنید و نصب آفلاین فلاتر را به بهترین شکل ممکن انجام خواهید داد.
اهمیت فایلهای کش در نصب آفلاین فلاتر:
شاید این سوال برایتان پیش بیاید که راز اصلی این فایلهای دانلودی چیست و چطور مشکل قطعی اینترنت را حل میکنند؟ ببینید، وقتی شما یک پروژه فلاتر را شروع میکنید، ابزارهایی مثل فلاتر و گریدل به شدت به فایلهایی وابسته هستند که قبلاً از سرورها واکشی شدهاند. ما پوشههای بسیار مهمی مانند .gradle و .android را برای شما آماده کردهایم که دقیقاً همین دادههای ارزشمند را در خود جای دادهاند.
همچنین، پکیجهای زبان دارت که در مسیر Pub\Cache سیستم ما ذخیره شده بودند، کامل برایتان استخراج شدهاند. در شرایط «فلاتر با نت ملی»، همین پوشه کش است که جلوی خطاهای عجیب و غریب ترمینال را میگیرد و به سیستم شما این امکان را میدهد که بدون نیاز به اینترنت، به تمام وابستگیها دسترسی داشته باشد.
یک نکته کلیدی برای استفاده از کشها:
وقتی میخواهید پروژه خود را در این محیط جدید و کاملاً آفلاین راهاندازی کنید، حتماً قبل از هر کاری، وارد پوشه پروژه شوید و فایل pubspec.lock و کل پوشه .dart_tool را حذف (Shift+Delete) کنید. اگر مقاله «تفاوت Sound Null Safety با Null Safety» ما را خوانده باشید، میدانید که وابستگی ورژنها چقدر حساس است.
این فایلهای lock شده، آدرسهای سیستم قبلی را در خود نگه داشتهاند و اگر آنها را پاک نکنید، فلاتر گیج میشود و به جای استفاده از کش محلی، دوباره تلاش میکند به اینترنت متصل شود که طبیعتاً با خطا مواجه خواهد شد. البته ما این فایلها را برای شما پاک کردهایم، اما دانستن این نکته برای رفع مشکلات احتمالی ضروری است.
درک مسیرها و یک پیشنهاد امنیتی هیجانانگیز:
در این مرحله، فایلهایی که دانلود کردهاید را باید دقیقاً در مسیرهای صحیح ویندوز قرار دهید. درک اینکه هر فایل کجا باید جای بگیرد و چگونه مسیرهای سیستمی را دستکاری کنیم، یکی از مفاهیم پایهای در دنیای کامپیوتر است.
جالب است بدانید که هکرها دقیقاً از همین پوشههای مخفی مانند AppData برای پنهان کردن کدهای مخرب خود استفاده میکنند! اگر به مباحث نفوذ و امنیت علاقه دارید، به شدت توصیه میکنم حتماً سری به دوره آموزش هک و امنیت در سایت Knowxis بزنید. با گذراندن این دوره، متوجه میشوید که دستکاری متغیرهای محیطی سیستم چقدر میتواند در بحث امنیت خطرناک یا حتی مفید باشد و دیدگاه شما نسبت به سیستمعامل کاملاً متحول خواهد شد.
علاوه بر این، برای حرفهای شدن در برنامهنویسی، دورههای آموزش لینوکس اسنشیالز، آموزش پایتون و البته آموزش دارت و فلاتر میتوانند مسیر شغلی شما را متحول کنند.
جایگذاری فایلها و تنظیم مسیرها روی سیستم جدید:
حالا بیایید سراغ جایگذاری فایلهایی که دانلود کردهاید برویم. فرض کنید نام کاربری ویندوز شما YourUsername است:
1. جایگذاری Flutter SDK:
پوشه فلاتر را که دانلود کردهاید، از حالت فشرده خارج کرده و دقیقاً در درایو C: قرار دهید تا مسیر آن به شکل زیر شود:
C:\src\flutter
این همان مسیری است که برای نصب آفلاین فلاتر به آن نیاز داریم.
2. نصب Android Studio و جایگذاری Android SDK:
برنامه اندروید استودیو را نصب کنید. سپس پوشه Sdk را که در فایلهای دانلودی موجود است، در مسیر زیر قرار دهید. توجه داشته باشید که به جای YourUsername، نام کاربری ویندوز خودتان را بنویسید:
C:\Users\YourUsername\AppData\Local\Android\Sdk
3. جایگذاری پوشههای کش Gradle و Android:
پوشههای .android و .gradle را مستقیماً در پوشه کاربری خود، یعنی C:\Users\YourUsername کپی کنید.
4. جایگذاری کش پکیجهای دارت (Pub Cache):
در نهایت، پوشه کش پکیجها (Pub\Cache) را باید در مسیر زیر جایگذاری کنید:
C:\Users\YourUsername\AppData\Local\Pub\Cache
5. تنظیم متغیرهای محیطی ویندوز:
حالا نوبت آن است که ویندوز را از این تغییرات مطلع کنیم. در قسمت جستجوی استارت ویندوز، عبارت Environment Variables را جستجو کرده و سپس Edit the system environment variables را انتخاب کنید. در پنجره باز شده، روی دکمه Environment Variables... کلیک کنید.
در بخش System variables، متغیر Path را پیدا کرده و آن را ویرایش کنید. شما باید آدرس پوشه bin از Flutter SDK را به این لیست اضافه کنید تا هر جای ترمینال که واژه flutter را تایپ کنید، سیستم آن را شناسایی کند. مسیر دقیق به این صورت خواهد بود:
C:\src\flutter\bin
سوالات متداول (FAQ):
آیا این روش برای همه نسخههای فلاتر کار میکند؟
بله، این روش برای اکثر نسخههای فلاتر قابل پیادهسازی است، اما توصیه میکنیم از فایلهای دانلودی ما که با آخرین نسخه پایدار تست شدهاند، استفاده کنید تا از سازگاری کامل اطمینان حاصل کنید.
اگر در آینده نیاز به پکیج جدیدی داشته باشم، چه کار کنم؟
در صورتی که پکیج جدیدی نیاز داشته باشید، باید یک بار با اینترنت آزاد آن را دانلود کنید. پس از دانلود، پکیج به صورت خودکار به کش شما اضافه میشود و میتوانید دوباره به صورت آفلاین از آن استفاده کنید. این روش یک راهحل دائمی برای محیط پایه توسعه آفلاین شماست.
C:\Users\Knowxis\AppData\Local\Pub\Cache

C:\src\flutter\bin
org.gradle.offline=true
del C:\src\flutter\bin\cache\lockfile
cd C:\src\flutter\packages\flutter_tools
C:\src\flutter\bin\cache\dart-sdk\bin\dart.exe pub get --offline
cd C:\Users\Knowxis\AppData\Local\Android\Sdk\emulator
emulator.exe -list-avds.\
emulator.exe -avd Pixel_9 -skin 1080x2400 -gpu host.\
cd C:\Users\Knowxis\Desktop\code\flutter\my_project
flutter pub get --offline
flutter run --no-pub
هنوز نظری ثبت نشده. اولین نفر باشید.