برمجة التطبيقات بلغة Dart وإطار Flutter

السلام عليكم ورحمة الله وبركاته،

أنا لسه مبتدئ في مجال البرمجة عموما ومجال

برمجة التطبيقات خصوصا

أنا اتعلمت لغة html , css , js , php , dart , flutter

بس عندي أسئلة كتير عن المجال اولا

إيه اللي محتاج أتعلمه تاني مع اللغات دي علشان أكون مأهل للبدء في تنفيذ تطبيق ووظيفة كل حاجه من الحاجات اللي هتعلمها

يعني مثلا قاعدة البيانات ويعني إيه قاعدة البيانات

انظمة الدفع وكذلك الحماية ولوحات التحكم

والاشعارات .... إلخ ؟!


أولاً: تعلّم إحدى أطُر العمل (frameworks)، فذلك سيسهّل عليك بناء تطبيقات الويب.

إن كنتَ ستستخدم إحدى لغات الـ back-end فقط دون استخدام framework فستضطر لكتابة وتنفيذ العديد من الأمور بغرض الحماية وتقسيم المشروع والتعامل مع قاعدة البيانات وربط البيانات ببعضها البعض، وغيرها من الأمور الأخرى التي توفّرها أطُر العمل فتختصر من خلالها الوقت والجهد.

إن كنتَ قد تعلّمتَ PHP فأنصحك بتعلّم إطار عمل مبني على هذه اللغة، وأشهرها Laravel (ويمكنك أيضاً تعلّم Yii2 ولكن Laravel مشهورة ومطلوبة في السّوق أكثر).


ثانياً: تعلّم لغة الاستعلامات لقواعد البيانات مثل MySQL، فعن طريقها (وضمن تطبيق الويب) ستتمكّن من إدخال البيانات وحفظها واسترجاعها وتعديلها وحذفها وبناء العلاقات بين الكيانات، وغير ذلك.

استخدام framework سيُغنيكَ -إلى حدٍّ ما- عن التعامل المباشر مع لغة استعلامات لقواعد البيانات، ولكن لا بدّ لكلّ مبرمجٍ أن يتعلّمها ويُكوّن فكرةً عامّةً عنها، فحتماً ستحتاج لها ذات مرّة.

حتى وإن لم تحتَج لها، فينبغي تعلّمها حتى تفهم كيفية تعامل الـ framework مع قواعد البيانات بشكلٍ ضمني.


ثالثاً: تطبيقات الهاتف الجوّال ما هي إلا واجهة يتعامل معها مستخدم التطبيق ويتفاعل مع مكوّناتها، أما الـ logic الحقيقي أو الـ data الحقيقية تتم كلّها في الـ back-end.

بعبارة أخرى: التطبيق سيعرض البيانات التي سيجلبها عن طريق ما يُسمّى API، وهي عبارة عن توابع -إن صحَّ التعبير- تتم كتابتها بلغة البرمجة الخاصة بالـ back-end (وفي حالتنا هنا PHP أو باستخدام إطار عمل مبني على لغة PHP).


خلاصة:

  • تعلّم MySQL واستخدمها مع لغة PHP، وأنجز بعض التطبيقات البسيطة حتى تفهم MySQL وتستوعبها جيداً.

  • تعلّم إطار عمل معيّن، وأنجِز به تطبيقاتٍ مماثلة للتطبيقات التي أنجزتَها بلغة PHP و MySQL، وستستطيع حينها ملاحظة الفرق في توفير الوقت والجهد.

  • تعلّم كتابة الـ APIs، ثمّ جرّبها باستخدام برامج مساعِدة مثل Insomnia أو Postman (الهدف من تجريبها هو أن تتمكّن من التأكد من صحّتها بعيداً عن العقبات التي يمكن أن تواجهها عندما تدمج الـ APIs مع تطبيق الجوّال).

  • استخدم الـ APIs التي قمتَ بتجربتها في تطبيق هاتف جوّال مبني باستخدام Flutter.

هل لغة Dart تمثل back end واتعلم معها Mysql

ويمكن الاستغناء بها عن لغة PHP، أم شرط وجود لغة PHP في بينة التطبيق ( اقصد لو أنا أتقنت لغة Dart و Mysql و Flutter كفيلة بإنهاء التطبيق )

و Flutter تمثل إطار عمل ل Dart أو front end

يمكن استخدام Dart كـ back-end، ولكن لم يسبق لي أن جرّبتها، ولا أنصح حالياً بذلك، فبناء تطبيق ويب متكامل يحتاج لاستخدام الكثير من المفاهيم وربطها مع بعضها.

إن كانت Dart تستطيع فعل ذلك فالمشكلة أنّ استخدامها ما زال قليلاً جداً مقارنةً بلغة PHP، وبالتالي إن واجهتك مشكلة بسيطة فربما لا تجد لها حلّاً أو مخرجاً، لأنّ الـ community للغة Dart ما زال صغيراً، والمستخدمون لها قلّة.

ضع في الحسبان أيضاً السيرفرات التي ستستضيف فيها تطبيق الويب، فلا أعلم كيفية استضافة تطبيق ويب مبني بلغة Dart.

لذلك، إن كنتَ تعلم الـ PHP فأنصحك باستخدامها لبناء تطبيقاتك حتى تتمكّن منها بكفاءة، ثمّ بعدها لكلّ حادثٍ حديث :D

أما Flutter فهي إطار عمل، ولا يوجد في في تطبيقات الجوال مفاهيم الـ front-end و الـ back-end، هي بالنهاية واجهات عرض وتفاعل مع المستخدمين.

إذا أردت مقارنتها بتطبيقات الويب فيمكن تجاوزاً تشبيهها بالـ front-end، ولكنّه ليس تشبيهاً دقيقاً، ولا صحيحاً حتى.

هل لفظ تطبيق ويب يختلف عن التطبيق الطبيعي وما هو أو ما معناه.

لو محتاج أنشئ تطيبق للاندرويد و الايفون

محتاج PHP و Flutter و Mysql و larval

أنا كنت في البداية عايز اتخصص في مجال التطبيقات للاندرويد والايفون وعرفت ان dart و flutter اسهل مع الاتنين ف انا كنت عايز اعرف ايه اللي محتاجه معاهم

نقول تطبيق ويب لأنّ كلمة تطبيق لوحدها يُفهم منها أنّها تطبيق هاتف جوّال، فحتى لا يلتبس الأمر على البعض نقول تطبيق ويب.

ومن أجل إنشاء تطبيقات أندرويد وآيفون تستطيع استخدام Flutter، ومن ثمّ تربط التطبيق (تطبيق الهاتف الجوّال) مع تطبيق ويب (باستخدام PHP أو Laravel مع MySQL) من أجل الحصول على البيانات أو تخزينها أو تعديلها .. الخ.

ففعلياً لا تحتاج لأكثر من هذه التقنيات.

الخلاصة علشان أنشئ تطبيق جوال محتاج

Flutter علشان واجهة التطبيق

و php أو larval مع Mysql علشان البيانات وباقي الأمور.

هل هذا الأكثر استخداما في سوق العمل من قبل المبرمجين وطلب من قبل أصحاب المشاريع

بالنسبة لـ Laravel فأظن -ولا أستطيع أن أجزم بسبب اختلاف توجّهات الشركات- أنّها الأكثر انتشاراً واستخداماً.

أمّا Flutter فليس من الضروري أن تكون كذلك، لأنّ Flutter إطار عمل لإنشاء تطبيقات من نوع cross-platform، أي أنّها تعمل على Android و IOS.

ولكن بعض الشركات أو بعض العملاء يعتمدون على اللغة الـ native لإنشاء التطبيقات (ربما لقلّة ثقتهم بـ Flutter ومثيلاتها، أو ربما من أجل الأداء كما يقولون)، ولذلك البعض منهم ربما يفضّل استخدام Java أو Kotlin لإنشاء تطبيقات Android حصراً، أو استخدام Swift لإنشاء تطبيقات IOS حصراً.

فالأمر يتبع لِمَن تتعامل معهم، أو الشركة التي ستعمل فيها.

أمّا إن كنتَ ستعمل في مجال العمل الحر، فالأمر غالباً سيعود إليك لتستخدم ما تشاء، إلا في حالات قليلة حيث يطلب العميل تقنية محددة.

بإذن الله سأعمل عمل حر

ف لذلك كل ما احتاجه كما قلت

Flutter,php(larval),mysql

حتى أستطيع تنفيذ تطبيق كامل