أدرك أن مجال برمجة تطبيقات الجوال من المجالات المهمة جدًا للشركات وحتى بالنسبة للأفراد، فهي وسيلة اتصال سريعة للفئة المستهدفة، وتعزيز العلامة التجارية للشركة، فإن كان هناك احتمال لوجود لابتوب في كل منزل، فهناك هاتف في يد كل فرد من أفراد هذا المنزل، لذا متأكد من فعالية هذا المجال، ما أريده منكم فضلًا أن تشرحوا أي اللغات نستخدم في هذا المجال ويجب أن أتقنها، والفرق بين التطبيقات الأصلية والهجينة وأيهما الأفضل، و، ولو لأحد منكم تجربة عملية يشاركها معنا كخطوات لتطوير تطبيق جوال سأكون شاكر جدًا.
برمجة تطبيقات الجوال، ما هي اللغات المستخدمة، وما هي خطوات تطوير تطبيق جوال؟
أهم منصتين لتطبيقات الأجهزة المحمولة هم أندرويد و iOS وهناك أنواع لتطبيقات الجوال منها
تطوير التطبيقات الأصلية، وهو تطبيق طور خصيصا لنوع واحد من أنظمة التشغيل السابقة، وهنا تتم كتابة كل تطبيق باللغة الأصلية لنظام التشغيل مقل لغة Objective-c، ولغة سويفت لنظام iOS ولغات جافا وكوتلن لتطبيقات الأندروي.
وتتميز بأن التطبيق يمكنه الاستفادة الكاملة من ميزات الجهاز المحمول مثل الكاميرا وتوفر تجربة مستخدم أفضل وما يعيبها أن تطويرها أكثر تكلفة من الأنواع الأخرى وقد يستغرق وقت أطول لأن كل نظام تشغيل له مجموعة من القواعد والإرشادات الخاصة به.
التطبيقات الهجينة، وهو تطبيق مختلط يطور باستخدام مجموعة من تقنيات الويب مثل HTML, CSS, Javascript، وعادة ما يتم تطوي التطبيقات الهجينة باستخدام إطار عمل Reactive native أو Ionic
وتتميز بسهولة وسرعة تطويرها، ويمكن تصميمها للعمل على أناوع متعددة من الاجهزة المحمولة بما في ذلك الهواتف الذكية والأحهزة اللوحية، وأجهزة الكمبيوتر المحمولة، ما يعيبها أنها تكون أقل موثوقية من التطبيقات الأصلية، وأقل استجابة من التطبيقات الأصلية.
هناك عدد من المنصات والأدوات المختلفة المتاحة لتطوير تطبيقات الأججهزة المحمولة التي يمكن استخدامها لإنشاء تطبيقات عالية الجودة، ومنها بيئة التطوير الرسمية المتكاملة Android studio، visual studio، Xcode
يمكنك الاطلاع على مقالات أكاديمية حسوب في هذا المجال
بجانب أنهم يوفرون دورة تطوير التطبيقات باستخدام جافاسكريبت وأخرى باستخدام بايثون ويمكنك الاختيار بينهم والاطلاع على التفاصيل من هنا
التطبيق الأصلي ( Native) هو تطبيق أو برنامج تم تطويره لأداء بعض المهام المحددة على بيئة أو نظام أساسي معين، وتم إنشاؤه باستخدام أدوات تطوير البرامج (SDK) لإطار معين من البرامج أو النظام الأساسي للأجهزة أو نظام التشغيل. يتم إنشاؤها باستخدام تكنولوجيا ولغة محددة لمنصة معينة مثل جافا للأندرويد و Swift for iOS.
من الأمثلة على التطبيقات الأصلية Twitter وWaze.
لا تحتاج التطبيقات الأصلية الى مكتبات أو منصات لتشغيلها , على عكس التطبيقات الهجينة التي تحتاج الى Cordova أو Ionic أو غيرها. وتسمح حزم SDK الأصلية بالوصول إلى ميزات الجهاز دون التعامل مع تعقيد المكونات الإضافية المحلية ، وستتوفر ميزات الجهاز الجديدة خارج المربع مع مجموعات SDK. مع ذلك تحتاج التطبيقات الأصلية لجهد تطوير منفصل لكل منصة مما يزيد من وقت التطوير. ولكل نظام تشغيل دورة حياة , مما يعني مزيد من الاصدارات وبالتالي مزيد من الوقت و التكلفة.
من صفات التطبيق الأصلي ما يلي:
- درجة عالية من الموثوقية
- أداء بسيط ولكن سريع وتجربة أفضل للمستخدم
- يدعم كلًا من الإنترنت (الأونلاين) وغير متصل (الأوفلاين)
التطبيق الهجين أو المختلطة (Hybrid) هي تطبيقات أصلية فقط لأنه يمكن تنزيلها من متجر تطبيقات النظام الأساسي مثل التطبيق الأصلي. يمكن الوصول إلى جميع ميزات النظام الأساسي المحلي. يمكن أن يكون لديك أداء قريب من التطبيق المحلي. بكلمة أخرى هي تطبيقات يمكن برمجتها مرة واحدة وانشاء ملفات تشغيلية لجميع أنظمة التشغيل. يتم تصميمها باستخدام تقنيات الويب مثل HTML و CSS وجافا سكريبت.يتم تشغيل التطبيق المختلط في webView (عرض يعرض صفحات الويب ، ويستخدم نفس محرك المتصفح ولكن لا يوجد متصفح حقيقي).
يتشابه الأداء مع التطبيق الأصلي ولكن مع التطبيقات ثلاثية الأبعاد والألعاب عالية الدقة والتطبيقات عالية الرسومية والتطبيقات الأخرى ذات الأداء المركزي ، قد لا يكون التطبيق الهجين جاهزاً لتحمل هذا الضغط. إضافة إلى ان تجهيز التطبيق الهجين ليتم تشغيلها بشكل مناسب على كل منصة يتطلب عمومًا عملاً كبيرًا.
وبعض مواصفات التطبيق الهجين:
- تطوير أسرع للتطبيق
- متاح عبر منصة UI
- دمج مع نظام ملفات الجهاز
- تطوير التطبيق أقل تكلفة وصيانة فعالة من حيث التكلفة
- إدارة الكود الواحد لمنصات متنقلة متعددة
لكل نظام ونوع ميزات وسلبيات من المهم أن نتخذها بعين الاعتبار، والاعتماد أهداف واولوياتك لبناء التطبيق وتحديد الأفضل يعتمد عليك كما أشرت.
تعد تطبيقات الهواتف واحدة من أهم الأدوات التسويقية والربحية بالنسبة للكثير من المؤسسات والشركات، وتلعب بعض التطبيقات دورًا هامًا وحيويًا في حياتنا اليومية. إذ يمكنننا استخدام تطبيقات الأجهزة المحمولة للمحادثات عبر الإنترنت أو الاجتماعات الافتراضية أو إنشاء الشبكة أو جمع المعلومات أو استخدامها أيضًا لممارسة الألعاب والاستمتاع. ويستخدم المبرمجون والمطورون بعض اللغات لهذا الغرض مثل:
- جافا Java ، وهي لغة البرمجة الرسمية والأكثر تفضيلاً لتطوير تطبيقات Android. نظرًا لأن اللغة مدعومة بشكل كبير من قِبل Google، فإن معظم شركات تطوير تطبيقات Android تختار Java لتطوير التطبيقات على نظام Android الأساسي. ويعد توفر المستندات، والأكواد، والأدوات وغيرهم من فوائد اختيار لغة Java لتطوير وإنشاء تطبيقات Android.
- بايثون Python، وهي إحدى لغات البرمجة الأكثر استخدامًا وشعبية لتطوير تطبيقات Android.
- كوتلن Kotlin، وهو بديل جيد لـ Java لتطوير تطبيقات Android. وأفضل ميزة كبيرة لاستخدام Kotlin لتطوير تطبيقات Android هي أنه يزيل عبء الاحتفاظ بالفواصل المنقوطة في نهاية كل سطر كود.
بالإضافة إلى لغات أخرى مثل: سويفت، سكالا وغيرهما.
في هذا السياق يا شيماء، أجد العديد من العقبات بالنسبة إليّ كغير مختص، لأنني في الكثير من الأحيان أمتلك العديد من الأفكار تجاه التطبيقات الجديدة. لكن من جهة أخرى، وعلى الرغم من أنني أستطيع العمل على العديد من الجوانب التنفيذية لمثل هذه المشاريع فيما يخص التسويق والمحتوى الداخلي والإخراج، فأنا لا أمتلك الحرفية اللازمة على صعيد البرمجة وتطوير التطبيقات، وبالتالي تتوقّف الأفكار دائمًا عند حائط مسدود.
وعليه، فأنا أرغب خلال الفترة القادمة في التعاون مع بشكل أو بآخر من شخص آخر على الأقل لإتمام فكرة بعينها حول إنشاء تطبيق معيّن. لستُ ملمًا بلغات البرمجة بالشكل الكافي. لكن من جهة أخرى، أسعى إمّا إلى التعاون مع مبرمج تطبيقات، أو شراء تطبيق جاهز من على منصة منتجات رقمية. ما رأيكم؟ وأيهما تفضّلون؟
إنشاء التطبيقات فكرة جيدة يا علي، ولكن الأهم هو اختيار الفكرة الخاصة بالتطبيق. فلابد برأيي أن تكون مميزة أو تقدم طرحًا جديدًا لم تقدمه التطبيقات المشابهة لها، وذلك كي تحقق الأرباح.
أسعى إمّا إلى التعاون مع مبرمج تطبيقات، أو شراء تطبيق جاهز من على منصة منتجات رقمية. ما رأيكم؟ وأيهما تفضّلون؟
كلا الاقتراحين مناسب، ولكني أميل إلى شراء قالب جاهز للتطبيق كي أراه بعيني قبل الشراء، بالإضافة إلى عدم امتلاكك للخبرة الكافية لمناقشة المبرمج في متطلبات تطبيقك. ويمكنك الاستفادة من منصة بيكاليكا في هذا الشأن والاطلاع على عدد كبير من التطبيقات وخبرات مبرمجيها.
، ما أريده منكم فضلًا أن تشرحوا أي اللغات نستخدم في هذا المجال ويجب أن أتقنها،
لا يمكنك الاعتماد على لغة واحدة، ربما تستخدم أكثر من لغة واختيار اللغة سيعتمد على النظام الأساسي الذي تخطط لاستخدامه.
فمثلا إذا اردت إنشاء تطبيق Android، فقد يكون اختيار لغة Java هو الأفضل وإذا كنت تتطلع إلى تطوير تطبيق iOS ، فستكون لغة سي-الكائنية، هي الأفضل. أيضًا اطرح على نفسك؛ ما هي أفضل لغة تناسب احتياجاتك وأهدافك؟ ربما إجابة هذا السؤال ستحدد لك اللغة المناسبة.
بشكل عام اللغات التي تستخدم في تطبيق الهواتف هي جافا سكريبت، كوتلن، روبي، بايثون، -الكائنية، بي أتش بي، HTML CSS ، لكن أغلب المطورين يلجؤون إلى JavaScript وهي الأكثر شيوعا بينهم. ثم لغتي HTML / CSS
الفرق بين التطبيقات الأصلية والهجينة وأيهما الأفضل
لا يمكن تفضيل احداهما على الاخر، الامر يعتمد على كيفية تخطيطك لاستخدام المنتج النهائي.
التطبيقات الاصلية هي تطبيقات تم ترميزها بلغة برمجة محددة للأجهزة التي لها نظام تشغيل محدد، كما تتطلب منك تصميم وتعلم وبرمجة كل تطبيق على حدا وهذا على العكس من التطبيقات الهجينة.
علاوة على ذلك تعمل التطبيقات الاصلية على أنظمة آبل، آندرويد، ويندوز، و IOS كون تطبيقات هذه الانظمة تختلف عن بعضها من حيث البرمجة المستخدمة لعملها، فمثلًا آبل يتم انشائها بلغة Swift في حين أن ويندوز بلغة سي+
أما التطبيقات الهجينة فتم تصميمها بتقنيات الويب مثل؛ هيتمل و JavaScript و CSS
ما يميز التطبيقات الاصلية أنها لا تحتاج إلى منصات في تشغيلها في حين أن التطبيقات الهجينة تحتاج إلى Ionic أو Cordova ، أيضًا تتميز التطبيقات بدرجة عالية من الثقة، أداءها سريع و توفر تجربة مستخدم أفضل ، تدعم المعاملات عبر الإنترنت.
بالنسبة للتطبيقات الهجينة، قد تستغرق وقتًا أقصر وأموالًا أقل لتطويرها مقارنة بالتطبيقات الأصلية.
بجانب الدورة التي تقدمها حسوب، يمكنك الاطلاع على هذا الرابط لعلك تجد ضالتك به
بالإضافة إلى ما ذكره الأصدقاء حول الفرق بين التطبيقات الأصلية والهجينة، لنشير إلى تجربة عملية بها خطوات تطوير تطبيق الجوال !
الخطوة الأولى هي بكل تأكيد جلب فكرة للتطبيق ، قبل البرمجة أو التصميم أو أي شيء فإن الفكرة الرئيسية للتطبيق تلعب دورًا أساسيًا في نجاحه ، لأن الفكرة هي الأصل ، والتنفيذ يعتمد على الفكرة نفسها ، يوجد العديد من الأشياء التي يمكن أن نستنبط منها الفكرة، ولا نحتاج أن تكون الفكرة جديدة تمامًا ... بل يمكن العمل على فكرة تقليدية لكن بطريقة مبتكرة وبتنفيذ أفضل من السابقين !
الخطوة الثانية هي تصميم واجهة المستخدم Ui وتجربة المستخدم UX ، سيتضمن التصميم كيف سيبدو شكل التطبيق نهائيًا ... هذا من ناحية ال Ui ، أما من ناحية الUx فسيتضمن كيف سيكون التطبيق ملائمًا للمستخدمين ومدى قابليته ونجاحه وتناسق الألوان والصور والنصوص وغيره .
الخطوة الثالثة هي خطوة البرمجة من خلال أولًا إنشاء قواعد البيانات ، وهذه النقطة تختلف فيها التطبيقات عن بعضها البعض ، الكثير من التطبيقات تحتاج إلى إمكانية إنشاء الحسابات واستخدامها وغيره ، وثانيًا تحويل ذلك التصميم إلى أكواد واقعية تكون جاهزة للاستخدام .
الخطوة الرابعة هي اختبار التطبيق ، ناهيك عن أن هذه الخطوة تحدث أثناء الكود ، لكن تجربة التطبيق بالكامل والكشف عن النقاط التي يمكن تحسينها ، وتجريبه من منظور أكثر من مستخدم والاستفادة من ملحوظاته هو أمر مهم جدًا سيساعد على تطويره .
الخطوة الخامسة هي نشر التطبيق على المتجر المناسب وتسويقه ، وهنا نحتاج إلى بعض الاحترافية والاستفادة من كُتاب المحتوى المبدعين تسويقيًا في كتابة نصوص تجذب الأخرين مع تصميمات قوية تبين مميزات التطبيق .
الجدير بالذكر أن داخل كل خطوة هنالك عدد آخر من الخطوات ، كما أن هنالك أنظمة مختلفة يتم الاعتباد عليها لبرمجة التطبيق ( إدارة المشروع ) كنظام آجايل ، لهذا أنصحك بالاطلاع على مساهمة سابقة تدور فيها النقاشات حول نظام Agile ، وبالتأكيد هنالك معلومات ثمينة :
إنشاء التطبيقات من النوع Native علي منصة زامرن التابعة لميكروسوفت نقطة قوية جداً ومميزة، وأختلف معك عن ترشيح ماوي فهي تعمل من خلال دوت نت فريم ورك ناهيك عن العديد من المشكلات في الإستخدام والعمل على بيئات التشغيل المختلفة، الأمر الذي تم التغلب عليه مع دوت نت مور ودعم زامرن بشكل واسع ليكون تطوير التطبيقات من خلال تقنيات مايكروسوفت وتأهيلها للعمل علي مختلف بيئات التشغيل بشكل سليم.
توجد أعداد لا حصر لها من الهواتف الذكية والأجهزة اللوحية والتي يتم إستخدمها من قبل الملايين الأشخاص كل يوم.
كما يتفقَّد العديد من الأشخاص هواتفهم كل دقيقة. ولا يهم إذا كانوا في العمل أو المنزل أو علي الطريق. وتنقضي نسبة 90% من أوقاتنا علي شاشة هواتفنا وتصفح تطبيقاته. لذا من الجيد أن تكون تطبيقاتنا واحدة من هذه هذه المشاهدات ويسعدني توضيح خطوات تطوير تطبيقات الجوال مضيفاً في ذلك لما ذكرة الاصدقاء.
- الخطوة الأولي، الوصول إلى الفكرة العامة للتطبيق والتي عليها نحدد طريقة إنشاء التطبيق والمنصة المناسبة لذلك.
- الخطوة الثانية، تحليل ودراسة فكرة التطبيق بحيث يتم إيضاح جميع الجوانب الهامة بشكل سليم ودراستها جيداً.
- الخطوة الثالثة، إختبار الفكرة وبناء النموذج التفاعلي، وهذه الخطوة مهمة جدا رغم إغفالها من قبل مطوري التطبيقات فهي تحدد أهمية فكرة التطبيق وفاعليتها وعليه يتم بناء النموذج التفاعلي للتطبيق.
- الخطوة الرابعة، تصميم التطبيق، حيث يتم تصميم الشكل العام للتطبيق وبناء تجربة مستخدم فعاله وقوية.
- الخطوة الخامسة، تطوير التطبيق حيث يتم ربط التطبيق مع قواعد البيانات وبرمجة العناصر المختلفة له وتطويرها.
- الخطوة السادسة، تجربة التطبيق حيث يتم إختبار التطبيق والتحقق من جميع النواحي وعملها بشكل سليم من خلال عمليات الإختبار المعروفة كالإختبارات الأحادية وإختبارات التكامل وخلافة.
- الخطوة السابعة، إطلاق التطبيق وتشغيله علي بيئة العمل المناسبة والتي تم تحديدها في البدايه، والتسويق له.
- الخطوة الثامنه، متابعة التطبيق وتوفير الدعم اللازم له، لا شكل من حدوث مشكلات متعددة بسبب الإستخدام للتطبيق فلابد من توافر الدعم الفني والتقني للتطبيق للتغلب علي كافة المشكلات المتوقع حدوثها.
أي اللغات نستخدم في هذا المجال ويجب أن أتقنها
لغات البرمجة هي مجرد أدوات ويجب إدماج هذه الأدوات سويًا للحصول على منتج في النهاية، فلا يمكن استخدام لغة واحده في تطوير تطبيقات الهاتف لأن الطريق الذي ستسلكه يتغير بتغير المعطيات مثل أي نوع من التطبيقات تخطط لاطلاقه؟
أندرويد أن IOS؟
فيجب في البداية اتقان استخدام الأدوات ثم بعد تحديد الطريق الذي ستسلكه تحدد الأنسب.
فمثلًا ان كنت تخطط اطلاق تطبيق ليعمل على نظام التشغيل أندرويد.
فهناك لغات أساسية لمثل هذا العمل كـ:
- جافا java.
- كوتلن Kotlin.
- سي شارب #C.
- بايثون Python.
- سي بلس بلس C ++
أما ان كان الهدف هو اطلاق تطبيق لمتجر IOS فهناك لغات مثل Swift التي ابتكرتها شركة apple خصيصًا لهذا العمل.
وهناك ما يستخدم للعمل كمنصة مشتركه لاطلاق البرامج التي تعمل على كل أنظمة التشغيل ك Flutter مثلًا و React.
الفرق بين التطبيقات الأصلية والهجينة
التطبيقات الهجينة هي التطبيقات التي يتم تطويرها لتعمل على أكثر من منصة، ويحدث ذلك غالبًا باستخدام HTML و شريكتها CSS وبالطبع JavaScript وتتميز بسهولة التأقلم قابلية العمل المتعدد.
أما التطبيقات الأصلية هي التي تُخلص خصيصًا لأحد المنصات دون الأخر كاستخدام Swift مثلًا في اطلاق تطبيقات الـ IOS.
لغة جافا: هي اللغة الاولى من لغات البرمجة التي يفضلها كافة مطورين تطبيقات الاندرويد حول العالم فهي تتميز بالمرونة ولكن يمكنك إستخدامها فقط في تطوير تطبيقات الأندرويد ولن تسعفك جيداً في تطبيقات الـ IOS، لذلك أنصحك أن تبدأ هنا بعد طبعاً أن تقوم بالتغطية اللازمة من الأساسيات اللازمة، أدعو هذا الموضوع بمثل محو أميّة برمجية، حيث تقوم بأخذ العديد من الكورسات التي من أجل فقط أن تقوم بمقدمات مطوّلة عن الموضوع والأهم تحدد حاجاتك عن طريقها بشكل جيد جداً ومختص، ربما قد تلفتك أمور غيرها تثيرك فعلاً فتغير مسارك أو تعدله بما إنك بالبدايات.
هذه الكورسات ستجدها طبعاً على منصتين، الـ udacity والـ coursera
التعليقات