
أصبحت مهنة مطور iOS في الطلب الآن ، مدفوعة الأجر ، وربما حتى عصرية ، وبالتالي تجذب الكثير من الناس.
يأتي العديد من المرشحين لشغل الوظائف الشاغرة إلى زملائي لإجراء مقابلات معهم ، وأرى بوضوح بين العديد من القادمين الجدد الافتقار إلى المعرفة الأساسية أو مجرد معرفة غير مؤكدة بها. على الرغم من وجود الكثير من المقالات والكتب والدورات التدريبية (المدفوعة والمجانية) على الإنترنت والتي يمكنك من خلالها الحصول على المعرفة اللازمة ، فإنه ليس من السهل دائمًا فهم الموضوعات التي ينبغي التركيز عليها.
في هذه المقالة سوف أشارك المعلومات حول المهارات والمعرفة التي أعتبرها مهمة لمطور iOS للمبتدئين ، حاول أن تشرح سبب الحاجة إليها وأن تقدم روابط لمواد لدراستها.
يتم توجيه المواد في المقام الأول إلى أولئك الذين يرغبون في بدء التدريب ، أو ملء الثغرات أو فهم استعدادهم للعمل كمطور لنظام iOS. سأحاول شرح كل شيء بكلمات بسيطة.
يجب أن أقول على الفور أن معظم المواد التي سأقدم إليها روابط باللغة الإنجليزية. أدرك أن تعلم اللغة الإنجليزية يمكن أن يكون أصعب وأبطأ في البداية ، لكنه سيؤتي ثماره لاحقًا - لا يمكنك دائمًا العثور على مواد جيدة ذات صلة باللغة الروسية.
الخطوات الأولى
قبل الخوض في المواضيع التالية ، أوصي بإعداد الأساس ، أي أخذ (الاستماع إلى جميع المهام وإعادة إنتاجها) دورة
CS 193P المجانية من جامعة ستانفورد وقراءة
وثائق Swift على موقع Apple الإلكتروني.
يعد هذا أمرًا طبيعيًا تمامًا إذا كنت لا تفهم أو تتذكر كل الموضوعات ، ولكن سيكون لديك أساس - فهم أساسي منظم لتطبيقات iOS الخاصة بالجهاز وبنية لغة سويفت. إنفاق الوقت على هذه الأشياء في البداية ، سيكون من الأسهل بالنسبة لك إضافة المعرفة حول كل موضوع.
1. السيارات تخطيط ، القصة المصورة ، تخطيط من التعليمات البرمجية
يعد إنشاء واجهة تطبيق قائمة على التخطيط مهارة أساسية لمبرمج iOS. يجب ألا تعرف فقط المكونات الرئيسية التي يتم تجميع الواجهة منها (UIView ، UILabel ، UIButton ، UIImageView ، وما إلى ذلك) ، ولكن أيضًا كيفية ترتيبها على الشاشة من أجل تحقيق الموضع والحجم المرغوبين على شاشات مختلفة الحجم ، بما في ذلك عند تحويل الجهاز. للبساطة ، أود تسليط الضوء على 3 طرق لإنشاء واجهة:
- الطريقة البصرية من خلال واجهة البناء
- وصف كامل واجهة من التعليمات البرمجية
- خيار مدمج ، عندما يتم إدخال جزء من محتويات الشاشات من خلال Interface Builder ، ويتم نقل إعداداتها إلى الكود.

مهارات تخطيط الواجهة فقط من خلال Interface Builder على لوحة القصة قد لا تكون كافية لك. بالإضافة إلى حقيقة أنه لا يمكنك القيام بكل شيء من خلال StoryBoard ، يجب أن تفهم أن العديد من المطورين يعملون على تطبيقات كبيرة ، وأن نظام التحكم في الإصدار (غالبًا ما يكون Git) يستخدم لدمج نتائج عملهم. عندما يعمل العديد من الأشخاص على جزء واحد من الشفرة ، لا يمكن دائمًا الجمع بين نتائج عملهم تلقائيًا. إذا تم تصميم الواجهة من قبل مبرمج من التعليمات البرمجية ، يكون الدمج أسهل وأسرع من إنشاء الرمز بواسطة Interface Builder.
لإتقان الموضوع ، أوصي:
كيف تفهم أنك أتقنت الموضوع بشكل كاف؟ خذ أيًا من التطبيقات التي تستخدمها على iPhone الخاص بك. يمكنك البدء بأخرى قياسية ، على سبيل المثال ، Apple Music. حاول إعادة إنتاج واحد أو اثنين من الشاشات التي تراها ، وكذلك سلوكهم عند الدوران.

2. دورة حياة ViewController
للبساطة ، افترض أن كل شاشة في تطبيق الهاتف المحمول هي ViewContoller ، أو بالأحرى ، هي سليل فئة UIViewContoller. من المهم لمطور iOS أن يعرف كيف تعمل دورة حياة الشاشة ، أو بالأحرى ، ما هي الطرق التي سيتم تنفيذها أثناء التحضير والمظهر والدوران والتدمير وظروف الشاشة الأخرى.

المواد ذات الصلة:
3. العمل مع UITableView و UICollectionView
تعتمد معظم واجهات تطبيقات الأجهزة المحمولة على الجدول. يجب أن تكون قادرًا على إضافة جدول إلى الشاشة وإعداد الخلايا وتنفيذ البروتوكولات اللازمة وتعيين مفوض ومصدر البيانات.
بالإضافة إلى ذلك ، من المهم أن نفهم سبب الحاجة إلى المعرفات ، وما المقصود بإعادة استخدام الخلية.
المواد ذات الصلة:
4. غراند سنترال ديسباتش
يجب أن تكون التطبيقات قادرة على حل العديد من المشكلات في وقت واحد. على سبيل المثال ، بينما ينقلب المستخدم عبر موجز أخبار ، يتم تنزيل البيانات من الشبكة ، ولا يتم حظر الواجهة.
يعد Grand Central Dispatch أحد الموضوعات المهمة والصعبة للغاية التي يجب أن تعرفها بالتأكيد إذا كنت ستقوم ببرمجة نظام iOS.
المواد ذات الصلة:
5. الشبكات ، تلقي البيانات من JSON
أي من تطبيقاتك المفضلة تستمر في العمل دون اتصال بالإنترنت؟ أعتقد أنه إذا قمت بإعادة الألعاب ، فسترى أن معظم التطبيقات تعمل مع بيانات من الشبكة. ما ، في هذه الحالة ، يجب أن يكون قادرًا على بدء تشغيل مطور iOS للمبتدئين؟ أعتقد أنه لإنشاء طلب شبكة ، قم باستلام البيانات ومعالجتها. يجب أن تكون معرفة
URLSession كافية للبدء. هذا هو النهج الأساسي ، وأوصي أولاً وقبل كل شيء بإتقان تطبيقه. قد لا يكون من غير المعروف معرفة وجود مكتبة شائعة مثل
Alamofire ، ولكن هذا لا ينبغي أن يكون على حساب URLSession.
في معظم الأحيان ، يتم نقل البيانات التي تأتي إلى التطبيقات عبر الشبكة بتنسيق JSON. يجب أن تكون قادرًا على تلقي هذه البيانات ومعالجتها ، على سبيل المثال ، لاشتقاق قائمة بناءً عليها. في الوقت نفسه ، من المستحسن أن تعرف كيفية القيام بذلك ليس فقط بمساعدة إحدى المكتبات الشائعة ، على سبيل المثال ،
SwiftyJSON ، ولكن أيضًا امتلاك أدوات اللغة القياسية ، كن على دراية بـ Codable.
تم شرح بعض الشيء حول العمل مع URLSession
في مقال من Audrey Tam . هناك الكثير من المواد حول العمل مع JSON ؛ يمكنك الاطلاع على
مقالة Anand Nimje .
لمعرفة الموضوع في الممارسة العملية ، أوصي بإجراء تطبيق مع توقعات الطقس ، حيث يوجد حقل لإدخال اسم المدينة ، يتم إنشاء طلب API (
OpenWeatherMap مناسب) ، ويتم عرض معلومات الطقس بناءً على JSON المستلمة.
6. المعرفة السريعة
قراءة
الوثائق سوف تساعد كثيرا هنا. قد يستغرق تعلم سويفت بعض الوقت ، ولكن في الطريق إلى الخارج ، يجب أن تأخذها بحرية وأن تتصفح الموضوعات التالية:
- الطبقات
- الهيكل
- التحويلات
- البروتوكولات
- مجموعات
- طرق التعامل مع المجموعات (التعداد والفرز والتصفية والخريطة والحد منها وما إلى ذلك)
- العمل مع الخيارات والاستثناءات
يجب تعريف هذه المواضيع وإتقانها في المجلد الذي تم تقديمها له في الوثائق - كل هذا سيكون مفيدًا في العمل. من الجيد للغاية بالنسبة لكل موضوع أن تقدم مثالاً للمشكلة التي يمكن حلها بمساعدتهم.
قم بتحليل
الاختلافات بين الهياكل والفصول بعناية - ليس فقط لأنك ستُطرح هذا السؤال في المقابلة مع احتمال كبير ، بل سيكون ضروريًا في عملك.
جنبا إلى جنب مع قراءة الوثائق على سويفت ، يمكنك مشاهدة
ماراثون الفيديو على سويفت بواسطة أليكسي سكوتارينكو.
لن يحل هذا
الماراثون محل قراءة الوثائق بسبب حقيقة أنه لم يتم الكشف عن جميع المواضيع فيه ، كما تم نشره منذ 4 سنوات ، وخلال هذا الوقت كانت هناك تغييرات طفيفة في سويفت. قام أليكسي بعمل رائع ، فهناك الكثير من المواد والأفكار المفيدة.
7. روابط قوية وضعيفة ، ARC ، تسرب الذاكرة
كيفية التأكد من أن التطبيق ليس لديه مشاكل مع نقص الذاكرة؟
ما هي الروابط ، ما هي أنواع الروابط؟ ما الذي يفعله ARC بالضبط ، وكيفية تجنب دورة الاستبقاء ، وما هو كل شيء؟ الموضوع ليس معقدًا ، لكنه مهم للغاية. يمكنك التعرف على نفسك ، على سبيل المثال ،
في SwiftBook .
8. البروتوكولات والمندوبين
عند تطوير نظام iOS ، ستواجه غالبًا تفويضًا ، أو بالأحرى نقل المسؤولية من كائن إلى آخر. على سبيل المثال ، المهمة الكلاسيكية هي جدول يحتوي على خلايا ، ولكل منها زر "إضافة عنصر إلى المفضلة". يجب أن تكون قادرًا على إنشاء بروتوكول لهذا الموقف ، وتعيين مفوض ، وتنفيذ دعم البروتوكول له.
المواد ذات الصلة:
9. المناهج المعمارية: MVC ، MVVM ، MVP ، VIPER
لسهولة إنشاء ودعم منتجات البرمجيات أثناء التطوير ، يتم تقسيمها إلى كتل منفصلة. على سبيل المثال ، كتلة واحدة مسؤولة فقط عن العمل مع البيانات ، والآخر للظهور. يحتوي هذا الأسلوب على عدد من المزايا ، على سبيل المثال ، يمكنك تغيير المظهر دون لمس المنطق ، أو يمكنك تغيير مصدر البيانات ، إذا لزم الأمر ، مرة أخرى دون تغيير بقية التطبيق. من الواضح أن هذه الأساليب تستخدم ليس فقط في نظام التشغيل iOS ، وسأقول أكثر - لقد أتوا إلى هنا من منصات أخرى. هناك العديد من الأساليب الراسخة لتقاسم المسؤولية بين الكتل المختلفة ؛ للعمل مع iOS ، أوصي بفهم جيد لـ MVC و MVVM.
بدلاً من شرح طبيعي لتقسيم المسؤوليات في الهندسة المعمارية ، كثيراً ما أسمع في المقابلات ، شيء مثل "MVC سيء لأنه وحدة تحكم Massive View و MVVM أفضل بكثير."
المواد ذات الصلة:
10. تخزين البيانات ، البيانات الأساسية
كما قلنا أعلاه ، تعمل العديد من التطبيقات مع البيانات من الشبكة. يجب أن تكون قادرًا على حفظ هذه البيانات على الجهاز ، وكذلك حفظ ما أدخله المستخدم. تتضمن مجموعة الطرق الأساسية لتخزين البيانات لمبرمج iOS للمبتدئين ، في رأيي ، مجموعة من الطرق
لا يوجد SQLite ، عالم ، Firebase في هذه القائمة. يمكن إتقانها إذا رغبت في ذلك ، ولكن بالتأكيد ليس على حساب الطرق المذكورة أعلاه. إذا كانت لديك بالفعل خبرة في العمل مع SQL ، فإنني أوصي باستخدام SQLite على نظام التشغيل iOS مقدمًا ، فمن المحتمل جدًا أن تجد هذه الطريقة للتخزين أكثر ملاءمة.
المواد ذات الصلة:
ملخص
أعتقد أن توزيع المواضيع المذكورة أعلاه بالتساوي وتكريسها للدراسة من 20 ساعة في الأسبوع ، من الممكن حقًا إتقانها جميعًا من نقطة الصفر في فترة من 4 إلى 5 أشهر.
مع هذه المعرفة الوفيرة ، يمكنك البدء في تلقي الطلبات للتطبيقات الصغيرة أو الذهاب للمقابلات. على سبيل المثال ، إذا كان هناك شاغر ، فسنأخذ شخصًا لديه مجموعة المعرفة هذه إلى فريقنا المتنقل.
اكتب طلبك النهائي
أنا متأكد من أن مطور iOS يجب أن يكون له تطبيقه الخاص. نحن نتحدث عن تطبيق كامل يعمل على حل بعض المشكلات أو المشكلات الضرورية (لا بأس إذا تم حلها فقط لمؤلف التطبيق). في عملية كتابة طلبك ، ستواجه مهام إبداعية لإيجاد حلول مناسبة ، وهذا لن يسمح لك فقط بتوحيد المعرفة النظرية بشكل أفضل ، ولكن أيضًا يمنحك السعادة.
لا تخجل من التطبيقات الخاصة بك ، وتبين لهم في المقابلات. حتى لو كان التطبيق بسيطًا ، حتى إذا كان التصميم قد أجري من قبلنا ، ولم يتحول إلى التطبيق الأكثر جمالا (إذا كان هناك حاجة للتطبيق ، يمكن بعد ذلك توسيع الوظيفة ، ويمكن جعل التصميم جديدًا).
PS
يرجى إخبار التعليقات بالموضوعات التي تعتبرها مهمة لتطوير مطوري iOS الجدد