فلاتر با نت ملی
فلاتر با نت ملی؛ چطور بدون اینترنت برنامهنویسی کنیم؟
خیلی وقتها پیش میاد که وسط یک پروژه جذاب و هیجانانگیز، دقیقا همون جایی که غرق در کدنویسی شدیم، یهو متوجه میشیم که ارتباطمون با دنیای بیرون قطع شده است. برنامه نویسی با نت ملی یا همون شرایطی که دسترسی به اینترنت بینالملل محدود میشه، یکی از اون چالشهای بزرگیه که هر توسعهدهندهای حداقل چند بار باهاش دستوپنج نرم کرده. وقتی این اتفاق میفته، ابزارهایی مثل فلاتر که وابستگی شدیدی به دانلود پکیجها و سینک شدن با سرورهای گوگل دارن، یهو قفل میکنن و خطاهای عجیب و غریبی روی صفحه ترمینال ما ظاهر میشه. اما اصلا جای نگرانی نیست.
امروز میخوام تو این مقاله یه روش کاملا جادویی رو بهتون یاد بدم که بتونید با دور زدن نت ملی برای برنامه نویسی، کل محیط توسعه فلاتر خودتون رو به صورت 100% آفلاین روی هر سیستم خامی بالا بیارید. یعنی شما میتونید کل پوشهها و فایلهای ضروری رو از پایین همین مقاله دانلود کنید و ببرید روی یک لپتاپ کاملا خالی که حتی به وایفای هم وصل نیست، و با خیال راحت پروژهتون رو اجرا کنید.
چرا برنامه نویسی با نت ملی برای ما چالش شده؟
وقتی شما تصمیم میگیرید وارد دنیای برنامهنویسی بشید، ابزارهای مختلفی رو باید نصب کنید. اگر به مقاله آموزش برنامه نویسی موبایل در سایت ما سر زده باشید، حتما میدونید که فلاتر الان یکی از غولهای بازار کار به حساب میاد. شما با خوندن 5 دلیل برای یادگیری فِلاتِر متوجه میشید که چرا این فریمورک اینقدر محبوبه. اما همین فریمورک محبوب، برای بیلد گرفتن پروژه، نیاز داره که فایلهای گریدل، پکیجهای دارت و ابزارهای اندروید استودیو رو مدام چک کنه.
وقتی در شرایط فلاتر با نت ملی قرار میگیریم، این درخواستهای پنهان اینترنتی بیپاسخ میمونن و بیلد پروژه متوقف میشه. اجرای فلاتر بدون اینترنت در نگاه اول غیرممکن به نظر میرسه، چون سیستم مدام خطای کانکشن میده. اما ما دولوپر هستیم و کارمون حل کردن همین مشکلاته. ما قراره یاد بگیریم چطور کل این اکوسیستم رو گول بزنیم و بهش بفهمونیم که نیازی به دنیای بیرون نداره و همه چیز روی هارد دیسک خودمون حاضره.
انتقال فایلهای حیاتی برای اجرای فلاتر بدون اینترنت
برای اینکه بتونیم چالش فلاتر با نت ملی رو برای همیشه حل کنیم، من تمام فایلها، پوشهها و پیشنیازهایی که روی سیستم خودم با اینترنت آزاد دانلود کرده بودم رو براتون آماده کردم. در واقع من نقش همون دولوپری رو بازی کردم که ساعتها وقت گذاشته، پکیجها رو نصب کرده و الان یک محیط کاملاً آماده داره. شما نیازی نیست نگران تحریمها یا قطعی اینترنت باشید. من تمام این فایلهای حیاتی رو زیپ کردم و در انتهای همین مقاله برای دانلود قرار دادم. شما فقط باید این فایلها رو دانلود کنید و طبق این آموزش، روی سیستم خام خودتون که اصلاً به اینترنت وصل نیست قرار بدید.
اولین فایل مهمی که براتون گذاشتم، همون Flutter SDK هست. این پوشه دقیقاً قلب تپنده اجرای فلاتر بدون اینترنت محسوب میشه. در کنار اون، پوشه فوقالعاده حجیم و مهم Android SDK رو هم کامل براتون فشرده کردم تا دیگه نیازی به دانلود با برنامههای تغییر آیپی نداشته باشید. همچنین فایلهای نصب Android Studio و مهمتر از همه، فایلهای کش که شامل پکیجهای دانلود شده هستن رو تو پکیج دانلودی قرار دادم. وقتی شما این فایلها رو در سیستم خودتون جایگذاری میکنید، در واقع دارید یک میانبر بزرگ میزنید و نصب آفلاین فلاتر رو به بهترین شکل ممکن انجام میدید.
اهمیت کشها در نصب آفلاین فلاتر
شاید براتون سوال بشه که راز اصلی این فایلهایی که برای دانلود گذاشتم چیه و چطور مشکل قطعی اینترنت رو حل میکنن؟ ببینید بچهها، وقتی شما یک پروژه فلاتر رو استارت میزنید، ابزارهایی مثل فلاتر و گریدل به شدت وابستهاند به فایلهایی که قبلاً از سرورها واکشی کردن. من پوشههای بسیار مهمی مثل gradle. و android. رو براتون آماده کردم که دقیقاً همین دیتای باارزش رو تو خودشون دارن. از طرفی، پکیجهای زبان دارت که تو مسیر Pub\Cache سیستم من ذخیره شده بودن رو هم کامل براتون استخراج کردم. وقتی داریم در مورد فلاتر با نت ملی صحبت میکنیم، همین پوشه کش هست که جلوی خطاهای عجیب و غریب ترمینال رو میگیره.
یک نکته به شدت مهم رو اینجا باید بهتون بگم. وقتی پروژه خودتون رو میخواید تو این محیط جدید و کاملاً آفلاین بالا بیارید، حتماً قبلش وارد پوشه پروژهتون بشید و فایل pubspec.lock و کل پوشه .dart_tool رو شیفتدلیت کنید. اگر مقاله فرقِ sound null safe با null safe ما رو خونده باشید، میدونید که وابستگی ورژنها چقدر حساسه. این فایلهای لاک شده، آدرسهای سیستم قبلی رو تو خودشون نگه داشتن و اگر پاکشون نکنید، فلاتر با نت ملی گیج میشه و به جای استفاده از کش، دوباره میخواد بره سراغ اینترنت که خب طبیعتاً گیر میکنه و ارور میده. البته من اینا رو واسه شما پاک کردم ولی گفتم در جریان باشید بد نیست.
درک مسیرها و یک پیشنهاد هیجانانگیز امنیتی
تو این مرحله ما باید فایلهایی که دانلود کردید رو دقیقاً تو مسیرهای درست ویندوز قرار بدیم. درک اینکه هر فایلی کجا باید بشینه و چطور مسیرهای سیستمی رو دستکاری کنیم، یکی از پایهایترین مفاهیم توی دنیای کامپیوتره. اتفاقاً اگر به مباحث نفوذ و امنیت علاقه دارید، باید بدونید که هکرها دقیقاً از همین پوشههای مخفی مثل AppData برای مخفی کردن بدافزارهاشون استفاده میکنن. من به شدت بهتون پیشنهاد میکنم حتماً یه سر به دوره آموزش هک و امنیت توی سایت ما بزنید و این دوره رو تهیه کنید. وقتی این دوره رو ببینید، متوجه میشید که دستکاری متغیرهای محیطی سیستم چقدر میتونه تو بحث امنیت خطرناک یا مفید باشه و نگاهتون به سیستمعامل کلاً عوض میشه.
متخصص تست نفوذ
از کنجکاوی هک تا کسب درآمد به عنوان یک متخصص دوره تست نفوذ نابغهها، نقطه شروع قطعی شما برای ورود به...
همچنین اگر قصد دارید تو برنامهنویسی حرفهایتر بشید، دورههای آموزش لینوکس اسنشیالز، آموزش پایتون و البته آموزش دارت و فلاتر میتونن مسیر شغلی شما رو متحول کنن. حالا بیاید بریم سراغ جایگذاری فایلهایی که دانلود کردید. فرض کنید اسم یوزر ویندوز شما nabegheha هست.
جایگذاری فایلها و تنظیم مسیرها روی سیستم جدید
در قدم اول، پوشه فلاتری که دانلود کردید رو اکسترکت کنید و دقیقاً توی درایو سی خودتون قرار بدید تا مسیرش بشه :
C:\src\flutter
این همون مسیریه که ما برای نصب آفلاین فلاتر بهش نیاز داریم. بعد از اون، برنامه اندروید استودیو رو نصب کنید یا پوشهاش رو توی مسیر زیر قرار بدید.
C:\Program Files\Android\Android Studio
حالا باید بریم سراغ اون فایلهای مخفی و حیاتی. پوشه Sdk که براتون گذاشتم رو باید ببرید تو مسیر زیر پیست کنید. نکته مهم !! بجای nabegheha باید یوزرنیم کامپیوتر خودتون رو بنویسید.
C:\Users\nabegheha\AppData\Local\Android\Sdk
بعد از اون، پوشههای android. و gradle. رو مستقیماً توی پوشه یوزر خودتون یعنی C:\Users\nabegheha کپی کنید. در نهایت پوشه کش پکیجها یعنی Pub\Cache رو باید تو مسیر زیر جایگذاری کنید.
C:\Users\nabegheha\AppData\Local\Pub\Cache
حالا ویندوز رو باید متوجه این تغییرات بکنیم. توی استارت ویندوز عبارت Environment Variables رو سرچ کنید و متغیر Path رو ویرایش کنید.

شما باید آدرس فلاتر رو به این لیست اضافه کنید تا هر جای ترمینال که کلمه فلاتر رو تایپ کردید، ویندوز اون رو بشناسه. این کارها باعث میشه برنامه نویسی با نت ملی دیگه یک کابوس نباشه.
C:\src\flutter\bin
تنظیمات آفلاین گریدل و دور زدن نت ملی
یکی از رویاعصابترین بخشهای اجرای فلاتر بدون اینترنت، گیر کردن روی بیلد گریدل هست. گریدل عاشق اینترنته و به محض اجرای پروژه میخواد بره آپدیتها رو چک کنه. ما باید خفهاش کنیم! وارد پوشه android توی پروژه فلاترتون بشید. اونجا فایلی هست به اسم gradle.properties. این فایل رو با نوتپد باز کنید و یک خط کد جادویی به انتهای اون اضافه کنید و بعد سیوش کنید.
org.gradle.offline=true
با همین یک خط ساده، گریدل میفهمه که شما دارید روی سیستم کاملاً آفلاین کار میکنید و فقط باید از همون پوشه gradle. که براتون گذاشتم استفاده کنه. اگر به مقاله برنامههای ساخته شده با فِلاتِر نگاه کنید، میبینید که شرکتهای بزرگ هم برای بیلدهای امنیتی خودشون تو محیطهای ایزوله از همین تکنیکها استفاده میکنن. این یکی از کلیدیترین مراحل تو بحث فلاتر با نت ملی هست.
تعمیر هسته فلاتر با یک ترفند ریاضیوار
اینجا میرسیم به یک بخش به شدت خفن. وقتی شما فایلها رو از فایل زیپ من اکسترکت میکنید، ویندوز تاریخ تغییر فایلها رو عوض میکنه. فلاتر وقتی اجرا میشه، این تاریخها رو میبینه و فکر میکنه سورس کدش دستکاری شده. برای همین سعی میکنه ابزارهای خودش یعنی flutter_tools رو دوباره از اینترنت دانلود و کامپایل کنه و چون اینترنت نداریم، تو ترمینال گیر میکنه و هیچ اتفاقی نمیفته. ما باید هسته فلاتر رو تعمیر کنیم. برای حل این مشکل، اول یک CMD باز کنید و این فایل قفل رو پاک کنید تا فلاتر آزاد بشه :
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
وقتی این کار رو میکنید، فلاتر 100% آفلاین خودش رو آپدیت میکنه و شما عملاً غول مرحله آخر برنامه نویسی با نت ملی رو شکست دادید.
اجرای شبیهساز در شرایط نت ملی
حالا که همه فایلها سر جاشون هستن، وقتشه خروجی کار رو ببینیم. خیلیها دوست دارن از شبیهساز یا همون ایمولیتور استفاده کنن. اما وقتی محیط خام هست یا گرافیک سیستم کانفیگ نیست، ایمولیتور ممکنه کرش کنه یا خطای پیدا نکردن Skin بده. برای حل این مشکل، ما از خط فرمان استفاده میکنیم تا تنظیمات گرافیکی رو بهش دیکته کنیم. یک ترمینال جدید باز کنید و برید به مسیر ایمولیتورهایی که براتون قرار دادم :
cd C:\Users\nabegheha\AppData\Local\Android\Sdk\emulator
اول لیست ایمولیتورها رو با این دستور چک کنید :
emulator.exe -list-avds.\
فرض میکنیم خروجی به شما Pixel_9 رو نشون میده. حالا برای اینکه ایمولیتور رو با دور زدن مشکلات گرافیکی و کاملاً روان اجرا کنیم، این دستور رو بزنید و ترمینال رو باز بذارید:
emulator.exe -avd Pixel_9 -skin 1080x2400 -gpu host.\
این دستور باعث میشه شبیهساز بدون نیاز به دانلود دیتای اضافی و با قدرت سختافزار سیستم خودتون بالا بیاد که برای نصب آفلاین فلاتر یک ترفند عالیه.
اجرای پروژه روی گوشی واقعی بدون نیاز به اینترنت
با وجود اینکه ایمولیتورها خوبن، اما همیشه به بچهها تو دوره آموزش برنامه نویسی موبایل میگم که بهترین، سریعترین و بهینهترین راه، وصل کردن یک گوشی واقعی با کابل به سیستمه. این کار بار پردازشی رو از روی ویندوز برمیداره و اجرای فلاتر بدون اینترنت رو به شدت لذتبخش میکنه. اگر مقاله 5 دلیل برای یادگیری فِلاتِر رو خونده باشید، میدونید که سرعت دیباگ روی دیوایس واقعی چقدر بالاست. روی گوشیتون برید تو تنظیمات، بخش Developer Options رو فعال کنید و تیک USB Debugging رو بزنید. گوشی رو با کابل وصل کنید و پیام روی صفحه گوشی رو تایید کنید.
توی ترمینال ویندوز بنویسید flutter devices تا مطمئن بشید گوشیتون شناخته شده. حالا با ترمینال برید داخل پوشه پروژهتون :
cd C:\Users\nabegheha\Desktop\code\flutter\my_project
حالا وقت زدن تیر خلاصه. اول به پروژه میگیم بدون اینترنت پکیجهاش رو تنظیم کنه :
flutter pub get --offline
و در نهایت، دستور اجرای کامل پروژه روی گوشی بدون حتی یک بایت اینترنت :
flutter run --no-pub
این دستور به فلاتر میفهمونه که فقط از دیتای لوکال استفاده کن و اپلیکیشن رو مستقیماً روی گوشی نصب کن. تبریک میگم! شما موفق شدید کل چالش فلاتر با نت ملی رو دور بزنید و یک محیط کاملاً پرتابل و ایزوله بسازید. یادتون نره که تمام این پوشههایی که راجع بهشون حرف زدیم رو در قالب فایلهای زیپ در انتهای همین صفحه برای دانلود گذاشتم. حتماً دانلودشون کنید و این مراحل رو روی سیستم خودتون تست کنید.
جمعبندی یک ماجراجویی سخت اما شیرین
با طی کردن این مراحل، ما موفق شدیم کل تحریمها، قطعیها و محدودیتهای نت ملی رو دور بزنیم. ما یاد گرفتیم که برنامهنویسی فقط حفظ کردن سینتکس کدها نیست، بلکه درک عمیق از کارکرد سیستمعامل، فایلها و وابستگیهاست. به همین دلیله که همیشه روی یادگیری مباحث پایهای مثل دورههای امنیت و لینوکس تاکید میکنم، چون قدرت واقعی یک برنامهنویس زمانی مشخص میشه که تو یک محیط کاملا ایزوله و بدون هیچ کمکی از دنیای بیرون، بتونه سیستم رو مجبور کنه که دقیقاً همون کاری رو انجام بده که اون میخواد.
یک ویدیو آموزشی کامل از تمام این مراحلی که با هم مرور کردیم در انتهای مقاله قرار داده شده تا بتونید قدم به قدم با من پیش بیاید و به صورت تصویری روی سیستم خودتون این کارها رو انجام بدید. امیدوارم این آموزش براتون کاربردی بوده باشه و دیگه هیچوقت قطعی اینترنت نتونه جلوی پیشرفت و کدزدن شما رو بگیره. همیشه در حال یادگیری باشید و از چالشها نترسید.
دانلود باکس
-
دانلود فلاتر SDK 1 گیگ و 31 مگابایت
-
دانلود Android SDK 5 گیگ و 34 مگابایت
-
دانلود Android Studio 1 گیگ و 7 مگابایت
-
دانلود android. 3 گیگ و 33 مگابایت
-
دانلود gradle. 1 گیگ و 59 مگابایت
-
دانلود کش فلاتر 223 مگابایت
-
دانلود پروژه فلاتر 443 کیلوبایت
-
دانلود نرم افزار Winrar 3 مگابایت
-
دانلود نرم افزار وی اس کد 130 مگابایت
-
دانلود اکستنشن های وی اس کد 11 مگابایت
-
دانلود نرم افزار adb 16 مگابایت
- برای ثبت نظر، حتما اسم و فامیل خود را به فارسی وارد کنید.
- حتما ایمیل صحیح را وارد کنید تا در صورت بررسی کارشناسان، پاسخ برای شما ایمیل شود.
- داخل متن کامنت کدهای برنامه نویسی قرار ندهید.