طارق جهاد

الأعضاء
  • المساهمات

    130
  • تاريخ الانضمام

  • تاريخ آخر زيارة

  • Days Won

    14

السُّمعة بالموقع

69 Excellent

المعلومات الشخصية

4 متابعين

  1. اخي الكريم لا يمكنك استخدام الكثير من ميزات Ionic او Cordova، مثل push notification، لاننا صحيح نكتبها بواسطة جافا سكربت، لكن هي تعتمد بالدرجة الاولى على امكانيات جهاز الموبايل. لذلك لا يمكنك استخدامها جميعا بتطوير موقع يعمل عن طريق المتصفح فقط. لكن يمكنك استخدام Angular JS لتطوير الموقع بامكانيات رائعة، وهي نفس التقنية التي تستخدمها ionic بالتوفيق،،،
  2. وعليكم السلام ورحمة الله. لا مشكلة من إنشاء تطبيقات الموبايل باستخدام تقنيات الويب، وهناك الكثير من المكتبات والأدوات لعمل ذلك، و Ionic خيار جيد لعمل هكذا تطبيقات، وبالـتأكيد اذا كان لديك خبرة في تقنيات الويب، فقد اختصرت الكثير من الوقت لإنشاء هكذا تطبيقات. بالنسبة للإشعارات، انت بحاجة استخدام Push Notification وهي مدعومة ايضا كمكتبات جافا سكربت https://medium.com/@felipepucinelli/how-to-add-push-notifications-in-your-cordova-application-using-firebase-69fac067e821 راجع هذا المقال، يشرح عن الية اضافة التنبيهات Push Notification لإجهزة الاندرويد. بالتالي كملاحظة: انت بحاجة لمجموعة من الاعدادات على منصة الاندرويد، هنا تستخدم Firebase وخدمة GCM او Google Cloud Messaging، وايضا بحاجة لخدمة مشابه من آبل لاجهزة الايفون وهي APNS او Apple Push Notification Service بالتوفيق،،،
  3. وعليكم السلام ورحمة الله. اذا كان لديك خبرة جيدة في تقنيات الويب (HTML, CSS, JavaScript) وكان المشروع متوسط او صغير الحجم، فبالتأكيد خيار التطبيقات الهجينة خيار مناسب. كونها ستعطينا تطبيق واحد يعمل على مختلف الأجهزة. أما اذا كان المشروع تجاري او مشروع كبير نسبياً وبحاجة لتطويرات مستقبلية واضافة ميزات عديدة، فلا انصحك عندها بالتطبيقات الهجينة! بل انصحك إما بالتطبيقات الـ Native او بالتطبيقات Cross-Platform مثل Xamarin، مع الاخذ بعين الاعتبار حجم فريق العمل في المشروع. بالتوفيق،،،
  4. وعليكم السلام. الخطأ في استدعاء الدالة بهذا الشكل! يجب ان تقوم باستدعاء الدالة بهذا الشكل: sum(5, 4); أو int a = 5; int b = 4; sum(a, b); عند استدعاء الدالة لا يجب وضع نوع البيانات int, double, String بل يجب تمرير القيمة مباشرة (والتي يجب ان تتوافق مع نوع البيانات المعرف في الدالة) في هذه الحالة يجب ان تكون الأعداد المررة إلى الدالة من النوع int ملاحظة: بما أننا نقوم بتمرير القيم إلى الدالة عند استدعائها لذلك تسمى Parameters لكن في الدالة نفسها تسمى Arguments، بمعنى public void sum(int a, int b){ ... } هنا نسمي المتغيرات a,b ب Arguments بينما هنا sum(5, 4); or sum(a, b); هنا تسمى هذه القيم ب Parameters. بالتوفيق،،،
  5. في المثالين الهدف هو التنسيق النصي: 1. نقوم بوضع الرمز @ للتخلص مما يسمى ب Escape Character، مثل backslash \ قومي بتجريب هذا المثال في بيئة سي شارب عندك: Console.WriteLine("C:\Program Files\Microsoft"); ستلاحظين ان بيئة سي شارب تعطي خطأ هنا، لأن backslash تعتبر escape character، بمعنى انها في هذا المثال لا يقصد بها الرمز \ وإنما تؤخذ كرمز واحد مع الحرف الذي يليها: \P لاتعني شيء بالنسبة لسي شارب، لذلك يظهر عليها الخطأ \M أيضا لا تعني شيء بالنسبة لسي شارب، لذلك يظهر عليها الخطأ ايضا ولكي تتضح الصورة اكثر، نلاحظ المثال التالي: Console.WriteLine("C:\Program Files\Microsoft\n"); سنلاحظ هنا ان سي شارب لم تعترض على n\ لانها تعني سطر جديد! أي ان سي شارب قامت بالنظر إلى backslash وشاهدت الحرف الذي يليها، واذا لم يكن من ضمن الرموز المعرفة في سي شارب، فسيظهر الخطأ. طبعا لحل هذه المشكلة، نقوم بإضافة backslash اضافي، كما يلي: Console.WriteLine("C:\\Program Files\\Microsoft\n"); الآن سي شارب لن تعترض على استخدم backslash بهذه الطريقة. لكن يمكننا التخلص من هذا الـ backslash الاضافي، فقط باخبار سي شارب ذلك، عن طريق وضع الرمز @ بداية النص: Console.WriteLine(@"C:\Program Files\Microsoft"); الآن ايضا سي شارب لن تعترض. 2. نقوم بوضع الرمز $ لسهولة التنسيق النصي ضمن سي شارب. مثلا Console.WriteLine("The sum of " + 4 + " and " + 5 + " = " + 9 +""); هذه طريقة التنسيق التقليدية في سي شارب. ونلاحظ انها صعبة الفهم والتتبع خاصة في حال وجود اخطاء، لذلك افترضت سي شارب، ان نقوم بعمل تنسيق نصي مناسب اكثر، وهو بدل ان نضع الرقم 4 مباشرة بهذا الشكل، نضع رمز او مؤشر مكانه، ثم نقوم باستبدال هذا الرمز او المؤشر بالرقم 4 لاحقاً كما يلي: Console.WriteLine("The sum of {0} and {1} = {2}", 4, 5, 9); الآن نلاحظ ان التنسيق اصبح اكثر وضوحاً! وسيتم استبدال الرمز {0} بالرقم 4 لاحقاً. يمكن استخدام هذا النمط من التنسيق خارج جملة Console.WriteLine من خلال استخدام الدالة string.Format var result = string.Format("The sum of {0} and {1} = {2}", 4, 5, 9); لكن مؤخراً قامت سي شارب باختصار هذه الصيغة ايضا كونها لا زالت تحمل بعض التعقيد او الغموض، فمثلا لو أردت ان اعرف ما هي القيمة التي سيتم استبدالها عند الرمز {2} سأقوم بعد المتغيرات 4 و 5 حتى اعثر على 9! لكن ماذا لو كان لدي 20 متغير او اكثر، هنا سيصعب تتبع البيانات! الحل كان باستخدام الرمز $ والذي يسبق التنسيق النصي، مع هذا الرمز سأتخلص من الدالة string.Format اولاً، ثم بدل ان أضع {2} وأقوم لاحقا باستبدالها بالرقم 9، سأقوم بوضع 9 مباشرة ضمن القوسين كما يلي: var result = $"The sum of {4} and {5} = {9}"; طبعاً في جميع الحالات النتيجة ستكون واحدة، لكن الهدف هو تسهيل العمل على المطور. لذلك تسمى جميع هذه الاختصارات والتكتيكات ب Syntactic Sugar او التجميل اللغوي، لانها فعليا لا تؤثر على المعنى ولكن على الشكل فقط! بالتوفيق،،،
  6. وعليكم السلام. البرمجة تعتمد على التفكير المنطقي، ومرتبطة ارتباطا وثيقا بالرياضيات، ولكن الرياضيات ليست متطلباً لتعلم البرمجة او تطوير التطبيقات. برمجة الالعاب تحتاج لمزيد من الرياضيات، وبعض التطبيقات الاخرى ستطلب تعمقاً اكثر في الرياضيات، ولكن باختصار، ليست الرياضيات الاكاديمية الجافة! لذلك اتركي امر الرياضيات إلى حين تقومين بالعمل على تطبيق معين يحتاج الرياضيات. وحتى وقتها حاولي تعمل البرمجة والأساليب البرمجية بالتوفيق،،،
  7. نعم اخي الكريم، يمكن تغيير الرابط عن طريق الجافا سكربت ايضاً. في جميع الاحوال انت بحاجة طلب بيانات جديدة من السيرفر، وعرضها في مكانها المحدد في الصفحة. ويتم تحديث جزء من الصفحة وليس كلها، ويمكنك التحكم بالرابط الجديد للمحتوى الجديد اذا كنت مهتما في تطوير تطبيقات الويب بهذا الشكل،انصح بالبدء بتعلم AngularJS، فهي اطار عمل متكامل، باستخدام جافا سكربت (او فعليا TypeScript). وتعطيك جميع الامكانيات اللازمة لتطوير تطبيقات الويب بشكل SPA او Single Page Application. بالتوفيق،،،
  8. استخدم Ajax وهي باختصار طلب محتوى معين (سواء كان Html أو اي نوع بيانات اخر) ثم باستخدام JavaScript نقوم بإضافة html داخل احد عناصر الصفحة مثل div، وعندها ستحقق المطلوب. في جميع الحالات هناك طلب Request سيذهب إلى السيرفر ويعود بالإجابة Response، لكن في كثير من الحالات يفضل طلب القسم المتغير من الصفحة فقط وتحديثه بدل طلب الصفحة مرة اخرى. استخدام Ajax مع PHP بالتوفيق،،،
  9. وعليكم السلام ورحمة الله. يرجى متابعة الشرح، المشكلة في احد Services على الجهاز https://www.youtube.com/watch?v=6DE07qZNE2U بالتوفيق،،
  10. وعليكم السلام ورحمة الله. اخي الكريم حتى شهادتك في الهندسة المعلوماتية، لن تفيدك كثيراً اذا لم تكن لديك الرغبة والاهتمام وحب العمل. لذلك اذا كنت ترى ان مجال البرمجة مناسب لك وترغب به، لا تنظر إلى شهادتك العملية مهما كانت. من جهتي لدي شهادة في الهندسة المعلوماتية/هندسة البرمجيات. ولا اعتمد عليها في عملي اطلاقاً، بقدر اعتمادي على المهارات والخبرات التي اكتسبها يومياً. بالتوفيق،،،
  11. وعليكم السلام ورحمة الله. كلاهما يستخدمان ك Server Side، بمعنى كتابة الكود الذي سيعمل على السيرفر، وهما يعتبران بديلان لبعضهما، بمعنى يكفي واحد منهما فقط. اما الفرق الأساسي، فهو أن PHP تعتبر Server Side Scripting Language، بمعنى لا يمكن استخدامها الا لتطوير مواقع الانترنت، عكس الجافا التي يمكن استخدمها أيضاً في تطوير تطبيقات سطح المكتب او الموبايل، والعديد من التقنيات مثل انظمة الزمن الحقيقي real-time system، والانظمة المضمنة embedded system وغيرها (بمعنى يمكن استخدام نفس خوارزمية أو مكتبة الجافا في مجموعة متنوعة من التطبيقات) - ايضا لغة الجافا بطبيعتها لغة كائنة التوجه OOP، اما PHP ليست كذلك بطبيعتها، لكن ما زمال بالإمكان استخدامها ك OOP. بالتوفيق،،،
  12. http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html Download for Windows x86
  13. برمجة الـ iOS تحتاج جهاز Mac حصراً، لان اداة التطوير الوحيدة لتطبيقات الـ iOS هي Xcode، وهو لا يعمل إلى على اجهزة الماك حصراً! ومواصفات اي جهاز ماك عادية قد تفي بالغرض. طبعا لا زال بالإمكان استخدام جهاز الويندوز، وذلك بتثبيت نظام الماك افتراضياً على الويندوز كَ (Virtual Machine). لذلك سنحتاج إلى: 1. تنزيل مشغل هذا النظام الافتراضي Vmware من هنا 2. تنزيل نسخة نظام تشغيل الماك macOS Sierra 10.12 ISO من هنا طبعا هذه الطريقة غير قانونية! لكن لدواعي التعليم والتجربة في مجالات ضيقة، قد لا يكون هناك ضرر. وبالتأكيد لن يكون الأداء افضل من استخدام جهاز ماك. خصوصاً اذا دخلنا في مرحلة برمجة المشاريع للعملاء. بالتوفيق،،،
  14. وعليكم السلام ورحمة الله. اخي الكريم ليس لديك أي خطأ، الملفات تظهر بهذا الشكل، لانه يتم تتبعها بواسطة Version Control System او git اختصاراً. سواء كان لديك معرفة ب Version Control System أو لا، فإن ما يحدث معك باختصار، هو تتبع للتعديلات او الاضافات لملفات مشروعك، وتسجيل سجل مفصل بهذه التعديلات. ويتخلف لون الملف بحسب حالته ضمن نظام التتبع هذا. ويفترض هذا الـ Version Control System، ان تقوم بحفظ هذه التعديلات بعد فترة معينة، ليبدأ معك جلسة تسجيل جديدة، تبدأ من حيث انتهت الجلسة السابقة. اقرأ المزيد لمعرفة اهمية Version Control System في كتابة المشاريع. ولحل المشكلة الحالية بشكل ابسط، ابحث عن مجلد مخفي اسمه (git.) واحذفه، لتوقف عملية التتبع هذه. ثم قم باعادة تشغيل Visual Studio Code، غالبا ستجد هذا المجلد في ضمن المجلد الرئيسي الذي يحوي مشروعك.
  15. نعم اخي سأعطيك مثال من الواقع، تخيل انا لدينا عمل فني، لكن لا يوجد لدينا إلى ممثل واحد، سيضطر لتمثيل جميع الأدوار لوحده، مما سيؤدي إلى ضعف في الأداء بالإضافة وضعف في نتيجة النتيجة، مقارنة بعمل فني اخر له كوادره الخاصة. نفس المثال ينطبق على Cordova فهي ليست تطبيقات جوال فعلية، وإنما صفحات ويب html يتم عرضها وتنفيذها ضمن التطبيق، وهذا التطبيق عبارة عن صفحة واحدة تمت كتابتها لغة برمجتها الاصلية (جافا او سويفت او غيرها) وتكون هذه الصفحة مسؤولة عن عرض وتنفيذ صفحات html هذه، بالتالي بدل ان يكون اداء التطبيق موزعا على نظام التشغيل بشكل كامل سيكون محصورا بهذه الصفحة فقط. قس على ذلك جميع التفاعلات الاخرى مع التطبيق، مثل اللمس ودوران الشاشة وغيرها، ستكون جميع هذه العمليات مسؤولية هذه الصفحة الوحيدة والمسكينة، وليس مسؤولية نظام التشغيل، وفعليا ستقوم هذه الصفحة نفسها بتحليل كود الجافا سكربت وتنفيذه، وليس نظام التشغيل. بعكس التقنيات الـ Native وزامرن من ضمنها. في الخلاصة، انا اتحدث عن الموضوع من ناحية تقنية، ومن ناحية تطوير التطبيق لاحقاً لكن في حال كان لديك تطبيق بمواصفات متوسطة، ولديك الخبرة في تقنيات الويب، فبالتأكيد كوردوفا او ايونيك سيكون خيارا مفضلا. بالتوفيق،،،