12

اريد تعلم تصميم وبرمجة تطبيقات iOS

  • omrteko

السلام عليكم.. اريد معرفة كيف ابدأ في تصميم وبرمجة تطبيقات الـ iOS ،

مع العلم انني لا افقه شيئا في البرمجة .. فقط تطوير وتصميم الويب..

أشكركم مقدماً .


26

حسناً ،

تعلّمت برمجة الـ iOS قبل سنتين ، ولم أجد من يُرشدني إلى الطريق الصحيح لذلك واجهت بعض العقبات التي استنزفت من وقتي الكثير ، وكان يُمكن تفاديها لو عرفت خارطة الطريق من قبل.

خبرتي السابقة كانت في برمجة واجهات الويب ، يعني برمجياً لم أكن أعرف سوى Javascript.


بدايةً سأفترض أنك تملك جهاز Mac ، وإلّا لا داعي لإكمال القراءة ، وأيضاً ، أن لغتك الإنجليزية جيدة ، وإلّا ستواجه صعوبة في طريقك.


برمجة الـ iOS تعتمد بشكلٍ أساسي على لغة Objective-C ، وهذه اللغة تكمن صعوبتها في طريقةِ كتابتها ، أي الـ Syntax ، وما إنْ تتمكّن من كتابتها حتى تُصبح برمجة الـ iOS كشرب الماء! نعم ، فشركة Apple أبدعت لدرجة قاربت الكمال في توفير كل ما تحتاجه بسهولة تامّة لكتابة الكود ، وبيئة العمل Xcode فيه من الميّزات التي لا تتوفر في أي بيئة عملٍ أخرى ، وبناء تطبيق iOS غالباً لا يزيد عن أسبوعين من العمل!


فرّق بين لغة Objective-C و برمجة تطبيقات الـ iOS.

الفرق يكمن في أن اللغة عامّة ، تستطيع بها برمجة تطبيقات الـ Mac أو الـ iOS ، وأنت هنا تُريد برمجة الـ iOS.


قبل يومين ، أصدرت Apple لغة جديدة تُدعى Swift ، وهي أسهل من ناحية الـ Syntax من سابقتها Objective-C وقريبة من لغة Javascript، وهذا يعني أنك أنت الآن تقع على مفترق طرق ، إما أن تتعلم Objective-C أو Swift ، ولكن اعلم أنه:

  • لن يتم استخدام Swift في الشهور القادمة ، لأنها غير مدعومة إلا بالنظام الجديد و Xcode 6 ، ولم يتم إصدارهما بعد ، وأيضا، المصادر التعليمية للغة الجديدة غير متوفر إلا في الـ Documentation التابع للشركة[1].

  • يُمكنك دمْج اللغتان في نفس المشروع ، وهذا يعني أن خبرتك في الـ Objective-C لن تضيع سُدى.


بدايةً ، اتّبع نمط التعليم بالعمل ، Learn by doing ، حتى تربط بين العلم الأكاديمي الممل بالعمل البرمجي المُمتع ، وذلك يكون :

  • إمّا بعمل تطبيقٍ خاص بك وأنت ما تزال في طور التعلّم ، وكلما واجهت صعوبة تتوجه إلى جوجل وتبحث عن حلول.

  • أو أن تبدأ بقراءة سلسلة من الكُتب تُدعى iOS Apprentice ، والتي تقوم على أساس التعليم من خلال بناء المشاريع، حيث يبدأ معك من الصفْر ويَفترض أنك لم تقم ببرمجة أي شيءٍ مسبق، لتصل إلى مرحلةٍ تسطيع بناءَ تطبيق كامل بنفسك [2].


الإنترنت مليء بالكُتب والكورسات ، وأكاد أقول لك أنّي لم أترك كتاباً إلا وتصفّحته ، ولا كورساً إلا وشاهدته ، وضاعَ تعبي ووقتي هباءً منثوراً :) .. لذلك سأضع لك أفضل الكتب والكورسات:

الكتب:

  • لتعلم اللّغة نفسها أنصحك بكتاب Programming in Objective-C ، وهذا الكتاب لا يُقرأ من الجلدة إلى الجلدة ففيه التفاصيل التي لا قد لا تُفيدك ، لذلك اعتبره مرجعاً لك. [3]

  • وأيضاً الكتاب الرسمي من Apple ، اسمه Programming with Objective-C ، وهو كتاب صغير عبارة عن 130 صفحة ، فيه ملّخص سريع للغة. [4]

الكورسات:

  • ابدأ بكورس Objective-C Essential Training ، وهو عبارة عن 6 ساعات لتعلم اللغة نفسها. [5]

  • ومن ثم كورس iOS App Development Essential Training ، فهو أيضاً 6 ساعات ولكن لتعلّم برمجة الـ iOS خصيصاً وليس للّغة البرمجية. [6]

  • ستجد في موقع Team Treehouse بعض الكورسات العملية ، والتي تقوم على مبدأ Learn by doing ، وفي كل كورس ستصنع تطبيقاً كاملاً ، يُنصح به. [7]

  • موقع Ray Wenderlich يُعتبر الموقع الأول لتعلم برمجة الآيفون ، سيكون بداية جيدة لك إن بدأت بقسم Beginning Objective-C ومن ثم Beginning iPhone Programming. ـ [8]


ملاحظات:

  • إيَاك أن تشتت نفسك وتقرأ أكثر من كتاب أو تشاهد أكثر من كورس في ذات الوقت ، وخاصة في البداية ، أما لاحقاً ستعرف ماهية الأمور وتُقرر بذاتك الخبيث من الطيب ، ابدأ بشيئ مما أخبرتك عنه ، وطالما بدأت فانتهي منه.

  • إنْ واجهتك بعض الدروس في الكتب أو الكورسات أو المواقع التي تخصّ الـ Memory Management ، فلا تقلق بشأنها وعدّي عنها ، لأن Apple تكفلت بهذه القضية باستخدامها نظام ARC. لا تضيع وقتك فيها!

  • تعلّم كيفية استخدام الـ Documentation في الـ Xcode ، سيُساعدك لدرجة لا تتصورها.

  • اشترك في موقع Apple للمطورين مجاناً ولا تدفع إلا عندما تريد أن ترفع تطبيقاً للمتجر.

  • ما كتبته هنا عبارة عن موجز صغير وسريع ، لذلك إن أردت شيئاً آخر ، او مساعدة ، أو تريد معرفة المكان الأنسب لتعلم فكرة معينة واجهتك ، فراسلني.


[1]

[2] http://www.raywenderlich.co...

[3] http://www.amazon.com/Progr...

[4] https://developer.apple.com...

[5]

[6]

[7]

[8] http://www.raywenderlich.co...

اشكرك جزيل الشكر اخي الكريم، إجابة اكثر من رائعة!