x32x01
أدارة أكتب كود
- بواسطة x32x01 ||
تخيل معايا الموقف ده...
إنت قاعد في مكتبك مستريح، مع كوباية الشاي الساخنة، وكل حاجة ماشية تمام. فجأة يرن الموبايل، ويطلع العميل: "بص يا هندسة، فاكر التطبيق اللي عملناه من سنة؟ محتاج تعديل بسيط جدًا. بس تضيف زرار صغير كده، مش هتاخد أكتر من ساعة. تمام؟"
وإنت بكل ثقة تهز راسك:
"بسيطة جدًا، سيبها عليا!"
تفتح اللابتوب بكل حماس، وتبدأ رحلة التعديل. flutter run
فجأة! الكوارث تبدأ:
كل الـ packages في المشروع مش شغالة، وكل شوية تطلع رسالة:
"package does not support this SDK."
تكتشف إن النسخة اللي عندك من Flutter مش متوافقة مع المشروع، لأن المشروع مبني على نسخة قديمة.
النتيجة؟ الساعة اللي كنت متوقع تنجز فيها المهمة، بقيت كابوس في محاولة تشغيل التطبيق بس.
الحل الاول: "عادي، أنا أقوم بتحديث التطبيق!"
طيب، لو فكرت بالطريقة دي، لازم تكون محضر نفسك لبعض المشاكل اللي ممكن تظهر فجأة. صحيح التحديث قد يكون الحل السريع، لكنه أحيانًا بيجيب معاه صداع جديد.
طيب إيه المشاكل اللي ممكن تواجهك؟
1-التعارض مع الـ Packages القديمة:
ممكن تلاقي إن بعض الـ packages اللي كنت شغال بيها مش متوافقة مع الإصدار الجديد من Flutter. ساعتها هتلاقي نفسك مضطر تدور على بدائل وتعدل عليها في الكود.
(حصلت معايا قبل كده وضيعت ساعات أدوّر على حل ).
2-تعارض بين الـ Packages وبعضها:
ساعات لما تعمل تحديث، بيظهر تعارض بين مكتبتين كنت شغال بيهم عادي على الإصدار القديم.
دلوقتي لازم تدور على إصدار معين لكل مكتبة عشان الدنيا تمشي.
3-الكود نفسه ممكن يتأثر:
بعض التغييرات في الـ SDK الجديد ممكن تخليك تضبط أجزاء معينة في الكود علشان تتماشى مع التغييرات الجديدة. تخيل مثلاً إنك كنت بتستخدم دالة معينة واتشالت أو تغيرت في الإصدار الجديد.
الحل ثاني: الطريقة التقليدية
في الوقت ده تقول:
"ما فيش حل، هرجع أستخدم النسخة القديمة."
تبدأ رحلة تقليدية مملة:
1-تدخل على ملف pubspec.yaml وتشوف النسخة اللي المشروع كان شغال عليها.
2-تدخل على الموقع الرسمي لـ Flutter وتدور على النسخة القديمة.
3-تنزل النسخة يدوي وتضبط الـ PATH في جهازك.
4-تجرب التطبيق وتشوف إذا كان هيشتغل.
كل ده علشان تعديل صغير؟! العميل نفسه لو عرف يقولك:
"مش كان أحسن تقولي لا من الأول!"
الحل الثالث: FVM - السحر في أداة واحدة
تخيل بدل اللف والدوران ده كله، يكون عندك أداة زي FVM (Flutter Version Management).
أداة بسيطة لكن فعّالة، بتخليك تدير نسخ Flutter بسهولة ومن غير وجع دماغ.
الموقف مع FVM:
1-تفتح المشروع بكل هدوء.
تكتب أمر واحد:
2-تكتب أمر:fvm use 2.2.3 (لو النسخة القديمة للمشروع كانت Flutter 2.2.3).
3-تشغل التطبيق بكل سهولة: fvm flutter run
وبكده كل حاجة تشتغل كأن المشروع لسه معمول من أسبوع، من غير ما تغير أي إعدادات في جهازك
طيب، هل التحديث فكرة سيئة؟
بالعكس! التحديث بيكون حل منطقي لو:
عايز تستفيد من مميزات جديدة في Flutter زي تحسين الأداء أو الـ Widgets الجديدة.
بتعمل Refactor للتطبيق بشكل كامل (يعني التعديل أكبر من مجرد زرار أو تغيير بسيط).
نصيحة مهمة:
لو قررت تعمل تحديث، خليك منظم:
1-ابدأ بتحديث الـ packages واحدة واحدة عن طريق
2-اعمل اختبارات للتطبيق بعد كل تعديل عشان تعرف مكان المشكلة بسرعة
3-لو حصل تعارض أو مشكلة، حاول تقرأ الـ changelogs الخاصة بالـ packages دي عشان تعرف السبب والحل.
"التحديث فكرة كويسة، بس محتاجة تخطيط مظبوط عشان تتجنب وجع الدماغ!"
إنت قاعد في مكتبك مستريح، مع كوباية الشاي الساخنة، وكل حاجة ماشية تمام. فجأة يرن الموبايل، ويطلع العميل: "بص يا هندسة، فاكر التطبيق اللي عملناه من سنة؟ محتاج تعديل بسيط جدًا. بس تضيف زرار صغير كده، مش هتاخد أكتر من ساعة. تمام؟"
وإنت بكل ثقة تهز راسك:
"بسيطة جدًا، سيبها عليا!"
تفتح اللابتوب بكل حماس، وتبدأ رحلة التعديل. flutter run
فجأة! الكوارث تبدأ:
كل الـ packages في المشروع مش شغالة، وكل شوية تطلع رسالة:
"package does not support this SDK."
تكتشف إن النسخة اللي عندك من Flutter مش متوافقة مع المشروع، لأن المشروع مبني على نسخة قديمة.
النتيجة؟ الساعة اللي كنت متوقع تنجز فيها المهمة، بقيت كابوس في محاولة تشغيل التطبيق بس.
الحل الاول: "عادي، أنا أقوم بتحديث التطبيق!"
طيب، لو فكرت بالطريقة دي، لازم تكون محضر نفسك لبعض المشاكل اللي ممكن تظهر فجأة. صحيح التحديث قد يكون الحل السريع، لكنه أحيانًا بيجيب معاه صداع جديد.
طيب إيه المشاكل اللي ممكن تواجهك؟
1-التعارض مع الـ Packages القديمة:
ممكن تلاقي إن بعض الـ packages اللي كنت شغال بيها مش متوافقة مع الإصدار الجديد من Flutter. ساعتها هتلاقي نفسك مضطر تدور على بدائل وتعدل عليها في الكود.
(حصلت معايا قبل كده وضيعت ساعات أدوّر على حل ).
2-تعارض بين الـ Packages وبعضها:
ساعات لما تعمل تحديث، بيظهر تعارض بين مكتبتين كنت شغال بيهم عادي على الإصدار القديم.
دلوقتي لازم تدور على إصدار معين لكل مكتبة عشان الدنيا تمشي.
3-الكود نفسه ممكن يتأثر:
بعض التغييرات في الـ SDK الجديد ممكن تخليك تضبط أجزاء معينة في الكود علشان تتماشى مع التغييرات الجديدة. تخيل مثلاً إنك كنت بتستخدم دالة معينة واتشالت أو تغيرت في الإصدار الجديد.
الحل ثاني: الطريقة التقليدية
في الوقت ده تقول:
"ما فيش حل، هرجع أستخدم النسخة القديمة."
تبدأ رحلة تقليدية مملة:
1-تدخل على ملف pubspec.yaml وتشوف النسخة اللي المشروع كان شغال عليها.
2-تدخل على الموقع الرسمي لـ Flutter وتدور على النسخة القديمة.
3-تنزل النسخة يدوي وتضبط الـ PATH في جهازك.
4-تجرب التطبيق وتشوف إذا كان هيشتغل.
كل ده علشان تعديل صغير؟! العميل نفسه لو عرف يقولك:
"مش كان أحسن تقولي لا من الأول!"
الحل الثالث: FVM - السحر في أداة واحدة
تخيل بدل اللف والدوران ده كله، يكون عندك أداة زي FVM (Flutter Version Management).
أداة بسيطة لكن فعّالة، بتخليك تدير نسخ Flutter بسهولة ومن غير وجع دماغ.
الموقف مع FVM:
1-تفتح المشروع بكل هدوء.
تكتب أمر واحد:
dart pub global activate fvm
2-تكتب أمر:fvm use 2.2.3 (لو النسخة القديمة للمشروع كانت Flutter 2.2.3).
3-تشغل التطبيق بكل سهولة: fvm flutter run
وبكده كل حاجة تشتغل كأن المشروع لسه معمول من أسبوع، من غير ما تغير أي إعدادات في جهازك
طيب، هل التحديث فكرة سيئة؟
بالعكس! التحديث بيكون حل منطقي لو:
عايز تستفيد من مميزات جديدة في Flutter زي تحسين الأداء أو الـ Widgets الجديدة.
بتعمل Refactor للتطبيق بشكل كامل (يعني التعديل أكبر من مجرد زرار أو تغيير بسيط).
نصيحة مهمة:
لو قررت تعمل تحديث، خليك منظم:
1-ابدأ بتحديث الـ packages واحدة واحدة عن طريق
Code:
flutter pub upgrade --major-versions
3-لو حصل تعارض أو مشكلة، حاول تقرأ الـ changelogs الخاصة بالـ packages دي عشان تعرف السبب والحل.
"التحديث فكرة كويسة، بس محتاجة تخطيط مظبوط عشان تتجنب وجع الدماغ!"