برمجة التطبيقات بلغة 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

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

كل لغات البرمجة من نوع OOP تعمل على نفس الاساس تعلم واحدة يكفي والباقي الاستمرار في ممارستها وعمل تطبيقات عليها

والانتقال من واحدة الى اخرى حسب الحاجة ليست معضلة ولن تاخذ اي جهد يذكر

OOP اللي هي dart , php , js وهكذا،

ف يكفي أن اتعلم واحدة فقط

نعم، كل لغة فيها function / class فهي من هذا النوع

الاختلاف الوحيد بينهم هو اختلاف كتابة بعض المتغيرات لا اكثر او بعض الكلمات فقط! ومابقي كله متشابه

تعلم واحدة منهم ثم توسع في البحث وتعلم احد انواع الframework وذلك لانها ستسهل عليك انشاء مشاريع بوقت قصير وبجودة عالية

مثلا في php عندك ووردبريس او larval هذه اطر عمل جهزت لك الكثير مثل الصفحات وتسجيل الدخول بأمان قوي ولوحة التحكم ولن تضطر لاعادة كتابة كل صغيرة وكبيرة.

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

بالاضافة الى ان تبحث وتتعلم استخدام واحدة من الUser Interface material مثل bootstrap او غيرها لتسهل على نفسك انشاء اي نوع من واجهة المستخدم بسهولة اكبر وبجودة عالية

يعني PHP و larval تمكنني من انشاء موقع كامل

وهيكون بطريقة سهلة عن الدمج مع غيرها؟

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

بالنسبة للايفون والاندرويد ومن خلال تجربتي الشخصية لسنوات افضل ان استعمل اللغة الاصل

في الاندرويد ساستعمل اندرويد ستوديو، وفي اي او اس راح استعمل السوفت!

هذه مفيدة اذا كنت تريد تطبيق معقد وعميق جداً يعمل بخصائص كثيرة ومن الصعب توفيرها في لغات طرف ثالث.

كوني اخترت dart و flutter بسبب

إنها كود واحد للنظامين وكذلك جديدة

وبسبب ترشيح صناع محتوى كتير

وقولت إنها هتوفر الوقت بدل من تعمل لغتين آخرتين وهكذا

ولم يتوفر لي لأسأل أهل الخبرة أقصد المجربيين

وكمان لأني مبتدئ

اذا تريدها فقط من باب: عرض المحتوى الخاص بموقعك او خدمتك

فلا مشكلة في ذلك ستوفر على نفسك، واذا كان موقعك ووردبريس قد تجد اضافة تصنع لك التطبيق بشكل مباشر والله اعلم! كما ان هناك فريم ورك اخر اسمه ionic وهو جميل وسهل يعمل بصيغة js,html,css لصنع تطبيقات الايفون والاندرويد.

لكن. لو. اردت. استعمال ميزات ضخمة وكثيرة سيكون من الاسهل بكثير استعمال اندرويد ستوديو وسويفت، نظرا لان اي خدمة او كلاود سيرفس تدعمهم بشكل مباشر وبدون لف ودوران ومشاكل غير مُتوقعة.

من الامثلة التي اقصدها على الاستخدام العميق والكبير (والذي ربما لا تحتاج اليه في مشروع بسيط) هو الخدمات الموفرة من طرف google firebase. ابحث عنها وستجد الكثير من الخدمات التي يسهل الاستفادة منها في اندرويد ستوديو وسويفت ويصعب جدا بالنسبة للطرف الثالث حتى مع وجود الحلول! (ولاقول لك بصراحة هناك نافذة خاصة في اندرويد ستوديو تسمح لك مباشرة باستعمال خدمات google firebase)