WWDC 2018 يوميات مطور iOS

نشرت: 2022-03-10
ملخص سريع ↬ منذ عام 1987 ، يعقد مؤتمر Apple Worldwide Developers Conference (WWDC) سنويًا ويبقي مطوري iOS على أهبة الاستعداد. شاهد لو فرانكو حدث هذا العام وشارك ملاحظاته ومراجعه في حال فاتتك.

الحدود التقليدية للصيف في الولايات المتحدة هي الذكرى ويوم العمال ، لكن مطوري iOS يحيون الصيف من قبل WWDC وإصدار iPhone. على الرغم من أن الطقس بارد وممطر هذا الأسبوع في مدينة نيويورك ، إلا أنني في مزاج صيفي وأتطلع إلى التجديد في ذلك الصيف ووعد WWDC.

صورة أمام مركز مؤتمرات سان خوسيه ماكنري
WWDC (مصدر الصورة) (معاينة كبيرة)

إنه صباح الرابع من يونيو ، وأنا أراجع ملاحظاتي من WWDC 2017. في العام الماضي ، كتبت أن ARKit و Core ML كانا من أهم الأحداث. كان من المنعش رؤية Apple تركز على Machine Learning (ML) ، ولكن لم يكن هناك الكثير من المتابعة في بقية عام 2017. لقد ولدت ARKit بعض الاهتمام ، ولكن لم يكن هناك تطبيق قاتل (ربما Pokemon Go ، ولكن هذا كان شائعًا قبل ARKit) . لم تضف Apple إلى مكتبتها الأولية لنماذج Core ML القابلة للتنزيل بعد إعلان Core ML.

أصدرت شركة Apple شركة Turi Create وأصدرت Lobe صانعًا جديدًا مثيرًا لنماذج Core ML الشهر الماضي. في مساحة Apple / ML ، يتخذ منشئ Swift ، Chris Lattner ، نهجًا مختلفًا مع Swift لـ TensorFlow. ولكن من الخارج ، يبدو أن Core ML لها استخدام واحد واضح: تصنيف الصور. لا يبدو أن هناك الكثير من الطاقة حول استكشاف تطبيقات مختلفة تمامًا (على الرغم من أننا نعلم جميعًا أن ML هو جوهر السيارات ذاتية القيادة والعروض التوضيحية مثل Google Duplex).

المزيد بعد القفز! أكمل القراءة أدناه ↓

هناك طريقة أخرى تستخدم بها Apple ML وهي في Siri ، وفي وقت سابق من هذا العام ، كتبت عن SiriKit وذكرت أوجه القصور المتصورة والحقيقية عند مقارنتها بـ Alexa و Google. كانت إحدى المشكلات التي استكشفتها هي كيف أن تركيز Siri على النوايا المحددة مسبقًا يحد من نطاقه ولكنه لم ينتج الدقة الموعودة التي قد تحصل عليها من التركيز المحدود.

أدى طرح HomePod في العام الماضي إلى إبراز مشاكل Siri فقط ، وأظهر استطلاع رضا العملاء الذي تم الإبلاغ عنه على نطاق واسع رضا العملاء بنسبة 98٪ عن iPhone X ولكن بنسبة 20٪ فقط عن رضا Siri.

مع كل هذا في الجزء الخلفي من ذهني ، كنت أتمنى شخصيًا أن أسمع أن Apple ستُجري بعض التحسينات الرئيسية في AR و ML و Siri. على وجه التحديد ، بصفتي مطور iOS ، كنت أرغب في رؤية العديد من نماذج Core ML ، والتي تغطي أكثر من مجرد تصنيف للصور والمزيد من المساعدة في صنع النماذج. بالنسبة إلى Siri ، كنت أرغب في رؤية المزيد من النوايا وربما بعض المؤشرات على أن النوايا ستكون شيئًا يمكن إضافته على مدار العام. لقد كانت لقطة طويلة ، ولكن بالنسبة للواقع المعزز ، فإن الخطوة التالية هي جهاز. لكن في غضون ذلك ، كنت آمل في زيادة الدقة المكانية.

أخيرًا ، أنا أحب Xcode Playgrounds و iPad Playground books ، لكن يجب أن تكون أسرع وأكثر استقرارًا ، لذلك كنت أتمنى الحصول على شيء هناك أيضًا.

في صباح يوم WWDC ، قمت بتغريد هذا:

صورة تغريدة مع رغبات WWDC الخاصة بي
تغريدتي التي تصف ما كنت أتمناه من WWDC 2018 (معاينة كبيرة)

لم يكن هذا تنبؤًا. إنها مجرد قائمة بالأشياء التي كنت أرغب في استخدامها في عام 2017 ، لكنني وجدت أنها ضعيفة للغاية أو صعبة للغاية بالنسبة لي للبدء بها ، وكنت آمل أن تجري Apple بعض التحسينات.

خطتي لهذا اليوم هي مشاهدة الكلمة الرئيسية مباشرة ، ثم مشاهدة حالة المنصات في الاتحاد. يقدم هؤلاء نظرة عامة جيدة على ما يجب التركيز عليه لبقية الأسبوع.

نهاية اليوم الأول: حالة الاتحاد والمنصات

اليوم الأول من WWDC هو الكلمة الرئيسية ، المخصصة للاستهلاك العام ، و Platforms State of the Union ، وهي نظرة عامة على الحدث بأكمله ، مع بعض التفاصيل للمطورين حتى يتمكنوا من اختيار الجلسات التي سيحضرونها.

ملخص لإعلانات المطورين البارزين غير التابعين لنظام iOS

لا يتعلق WWDC تمامًا بتطوير iOS ، لذا إليك قائمة سريعة بالأشياء الأخرى التي حدثت للمنصات الأخرى أو التي لا تركز على المطور بشكل كبير.

  • لإخراجها من الطريق ، لم تكن هناك إعلانات عن الأجهزة على الإطلاق . لا توجد معاينات ولا تحديثات على Mac Pro. سيتعين علينا انتظار iPhone وأحداث المتابعة في الخريف.
  • يحتوي iOS 12 على تطبيق Shortcuts الجديد الذي يبدو أنه نتيجة اكتسابهم لـ Workflow. إنها طريقة "لكتابة" سلسلة من الخطوات عن طريق السحب والإفلات . يمكنك أيضًا تعيين الاختصار لكلمة رئيسية Siri ، والتي سأغطيها أدناه.
  • سيقوم iOS تلقائيًا بتجميع الإشعارات الواردة من نفس التطبيق ويتيح لك العمل عليها كمجموعة.
  • يمكن لـ Animojis الآن تقليدك لإخراج لسانك ، كما أن Memojis الجديدة هي وجوه بشرية قابلة للتكوين بدرجة عالية يمكنك تخصيصها لتبدو مثلك.
  • يدعم FaceTime دردشة الفيديو الجماعية لما يصل إلى 32 شخصًا.
  • يوجد تطبيق Screen Time الجديد الذي يمنحك تقارير عن استخدام هاتفك والتطبيق (لمساعدتك على التحكم في نفسك وتكون أقل تشتتًا). وهو أيضًا أساس الضوابط الأبوية الجديدة.
  • حصلت Apple TV على تحديث صغير: دعم Dolby Atmos وشاشات التوقف الجديدة المأخوذة من محطة الفضاء الدولية .
صورة لشاشة توقف Apple TV Space الجديدة
شاشة توقف Apple TV Space (معاينة كبيرة)
  • حصلت الساعة على وضع منافسة لتحدي الآخرين في التحديات المتعلقة بالتمرين. سيحاول أيضًا اكتشاف بداية التدريبات ونهايتها تلقائيًا في حالة نسيان بدءها أو إيقافها ، ولديها الآن تمارين المشي لمسافات طويلة واليوجا.
  • تحتوي الساعة أيضًا على وضع Walkie-Talkie الجديد الذي يمكنك تمكينه لجهات الاتصال الموثوقة.
  • هناك المزيد من حزم SDK الصوتية الأصلية على Watch ، ويتوفر الآن تطبيق Podcasts من Apple. أتوقع أن تستفيد تطبيقات البودكاست التابعة لجهات خارجية من حزم SDK الجديدة هذه أيضًا.
  • حصل جهاز Mac على نقطة الارتكاز للحدث (والذي نأمل أن يكون مؤشرًا على الاهتمام المتجدد). سيطلق عليه macOS Mojave ويتميز بالوضع المظلم .
  • هناك تحديثات كبيرة لمتجر Mac App Store ، ولكن بشكل ملحوظ ، يحصل الآن على نفس المعالجة المرئية والمحتوى التي حصل عليها متجر تطبيقات iOS في العام الماضي. هناك تغييرات كافية على آلية تحديد الوصول التي قررت بانيك إعادة Transit إلى هناك .
  • تحتوي ميزة Quick Look في Finder الآن على بعض الإجراءات البسيطة التي يمكنك القيام بها على الملف (مثل تدوير صورة) ويمكن تخصيصها عبر Automator.
  • سيكون Mojave هو الإصدار الأخير من macOS لدعم تطبيقات وأطر عمل 32 بت ، مما يعني اختفاء Quick Time Framework. يبدو أنه تم استبداله ببعض ميزات التقاط الفيديو في نظام التشغيل نفسه.
  • أعلنت شركة Apple أنها تستخدم داخليًا منفذ UIKit لإنشاء تطبيقات Mac وعرض منافذ الأسهم والأخبار والمنزل والمذكرات الصوتية. سيصدر إطار العمل الجديد في عام 2019.

إعلانات مطوري iOS التي أنا متحمس للغاية بشأنها

حصل مطورو iOS على بعض الأخبار الجيدة أيضًا. لقد ضربوا المجالات الأربعة الرئيسية التي أردت أن أرى تحسنًا فيها:

  • لدى SiriKit الآن نوايا مخصصة ، مما يفتح الاحتمالات قليلاً.
  • يعد Create ML طريقة جديدة لاستخدام Xcode Playgrounds لتدريب النماذج عبر نقل التعلم ، مما يتيح لك زيادة النماذج الحالية ببيانات التدريب الخاصة بك .
  • تتيح لك ملاعب Xcode الآن إضافة رمز إلى أسفل الصفحة وتشغيله دون إعادة التشغيل . من الصعب معرفة ما إذا كانت Playgrounds ستكون أكثر استقرارًا إلى أن نحصل على إصدار حقيقي في سبتمبر ، ولكن هذا سيجعل تجربة الكود أسرع بكثير.
  • تم الإعلان عن ARKit 2 جنبًا إلى جنب مع تنسيق ملف الواقع المعزز الجديد المسمى USDZ ، وهو مفتوح وتم تطويره باستخدام Adobe و Pixar. أعلنت Adobe عن بعض دعم الأدوات بالفعل. سيسمح للمستخدمين والمطورين بتخزين ومشاركة أصول وخبرات الواقع المعزز. بالإضافة إلى ذلك ، تتيح ARKit 2 لأجهزة متعددة أن تكون في نفس بيئة AR وتدعم اكتشاف الكائنات ثلاثية الأبعاد.

لم نحصل على جهاز AR ، ولكن من المؤكد أننا سنحصل عليه قريبًا. ويجب أن تأتي من Apple (وليس جهات خارجية) لأن تشغيل ARKit يتطلب جهاز iOS.

إعداد جهازك

كل ما تحتاجه متاح الآن في بوابة المطور. لاستخدام الكود في المقالة ، أنت بحاجة إلى Xcode 10 Beta. لا أوصي باستخدام iOS 12 Betas حتى الآن ، ولكن إذا كنت تريد ذلك حقًا ، فانتقل إلى البوابة الإلكترونية على جهازك وقم بتنزيل ملف تعريف تكوين iOS 12 Beta.

الشيء الرئيسي الوحيد الذي تحتاجه لجهاز به الإصدار التجريبي هو ARKit 2. كل شيء آخر يجب أن يعمل بشكل جيد بما فيه الكفاية في محاكي Xcode 10. اعتبارًا من الإصدار التجريبي الأول ، فإن دعم Siri Shortcut في المحاكي محدود ، ولكن هناك ما يكفي للاعتقاد بأنه سيتم إصلاح ذلك في الإصدارات المستقبلية.

نهاية اليوم الثاني: اللعب بنوايا Siri المخصصة

في العام الماضي ، كتبت كيف تحتاج إلى التوافق مع أحد أهداف Apple المحددة مسبقًا من أجل استخدام SiriKit في تطبيقك. تم تقديم هذه الآلية في عام 2016 وإضافتها في عام 2017 وحتى بين أحداث WWDC. لكن كان من الواضح أن نهج أمازون للنوايا المخصصة كان متفوقًا في الحصول على التحكم الصوتي في تطبيقات أكثر تنوعًا ، وقد أضافت Apple ذلك إلى SiriKit الأسبوع الماضي.

لكي نكون واضحين ، هذا هو أول تطبيق ، لذا فهو ليس واسع النطاق مثل مهارات Alexa حتى الآن ، لكنه يفتح إمكانيات Siri قليلاً. كما ناقشت في المقالة السابقة ، فإن القيد الرئيسي للنوايا المخصصة هو أن المطور يحتاج إلى القيام بكل ترجمة اللغة. يتغلب SiriKit على هذا الأمر قليلاً عن طريق مطالبة المستخدم بتقديم العبارة التي يرغب في استخدامها ، ولكن لا يزال هناك المزيد من الترجمة المطلوبة للنوايا المخصصة أكثر من النوايا المحددة مسبقًا.

وقد بنيوا على نفس الأساس مثل النوايا المحددة مسبقًا ، لذلك لا يزال كل ما غطيته ساريًا. في الواقع ، سأوضح لك كيفية إضافة نية مخصصة جديدة إلى List-o-Mat ، التطبيق الذي كتبته لمقال SiriKit الأصلي.

(مجاني) دعم Siri Shortcut إذا كنت تدعم بالفعل Spotlight

إذا كنت تستخدم NSUserActivity للإشارة إلى أشياء في تطبيقك يمكن لمستخدمك البدء بها من خلال التسليم أو البحث ، فمن السهل إتاحتها لـ Siri أيضًا.

كل ما عليك فعله هو إضافة السطر التالي إلى كائن نشاطك:

 activity.isEligibleForPrediction = true

سيعمل هذا فقط مع الأنشطة الممكّنة لـ Spotlight (حيث تكون isEligibleForSearch true ).

الآن ، عندما يقوم المستخدمون بهذا النشاط ، يتم اعتباره تم التبرع به للاستخدام في Siri. سيوصي Siri بالأنشطة التي يتم إجراؤها بشكل شائع جدًا أو يمكن للمستخدمين العثور عليها في تطبيق Shortcuts. في كلتا الحالتين ، سيتمكن المستخدم من تعيين العبارة المنطوقة الخاصة به لبدء تشغيلها. دعمك لبدء النشاط عبر Spotlight كافٍ لدعم بدئه عبر اختصار.

في List-o-Mat ، يمكننا إتاحة القوائم الفردية لـ Spotlight و Siri من خلال إنشاء كائنات نشاط وتعيينها إلى ListViewController . يمكن للمستخدمين فتحها عبر Siri بعباراتهم الخاصة.

إنها زائدة عن الحاجة في حالتنا لأن لدينا نية محددة مسبقًا لفتح قائمة ، لكن معظم التطبيقات ليست محظوظة جدًا ولدينا الآن هذه الآلية البسيطة. لذلك ، إذا كان التطبيق الخاص بك يحتوي على أنشطة لا تدعمها نوايا Siri المحددة مسبقًا (مثل تشغيل بودكاست) ، فيمكنك فقط جعلها مؤهلة للتنبؤ ولا تقلق بشأن النوايا المخصصة.

تكوين SiriKit لاستخدام المقاصد المخصصة

إذا كنت بحاجة إلى استخدام هدف مخصص ، فيجب إضافة SiriKit إلى تطبيقك ، الأمر الذي يتطلب القليل من التكوين.

جميع خطوات تكوين SiriKit للنوايا المخصصة هي نفسها بالنسبة للنوايا المحددة مسبقًا ، والتي تمت تغطيتها بالتفصيل في مقال SiriKit الخاص بي هنا حول Smashing. كي تختصر:

  1. أنت تضيف امتدادًا ، لذا فأنت بحاجة إلى معرف تطبيق جديد ، وقد تمت إضافة Siri لملف تعريف التوفير واحتياجات استحقاقات التطبيق.
  2. ربما تحتاج إلى مجموعة تطبيقات (هذه هي الطريقة التي يتواصل بها التطبيق والإضافة).
  3. ستحتاج إلى ملحق Intents في مشروعك
  4. هناك مفاتيح plist ومفاتيح مشروع خاصة بـ Siri تحتاج إلى تحديثها.

يمكن العثور على جميع التفاصيل في مقال SiriKit الخاص بي ، لذلك سأغطي فقط ما تحتاجه لدعم هدف مخصص في List-o-Mat.

إضافة أمر قائمة نسخ إلى List-o-Mat

من المفترض أن تُستخدم النوايا المخصصة فقط في حالة عدم وجود نية محددة مسبقًا ، ويقدم Siri بالفعل الكثير من دعم القوائم والمهام في قوائمه وملاحظاته على مجال Siri.

لكن إحدى طرق استخدام القائمة هي أن تكون نموذجًا لروتين أو عملية متكررة. للقيام بذلك ، سنرغب في نسخ قائمة موجودة وإلغاء تحديد جميع عناصرها. لا تدعم أهداف القائمة المضمنة هذا الإجراء.

أولاً ، نحتاج إلى إضافة طريقة للقيام بذلك يدويًا. إليك عرض توضيحي لهذا السلوك الجديد في List-o-Mat:

صورة GIF متحركة مع عرض توضيحي لقوائم النسخ
نسخ قائمة في List-o-Mat

لجعل هذا السلوك قابلاً للطعن من قبل Siri ، سنقوم "بالتبرع بقصد" ، مما يعني أننا سنخبر iOS في كل مرة تقوم فيها بذلك. بعد ذلك ، سيتعلم في النهاية أنه في الصباح ، ترغب في نسخ هذه القائمة وتقديمها كاختصار. يمكن للمستخدمين أيضًا البحث عن النوايا المتبرع بها وتعيين العبارات يدويًا.

خلق النية المخصصة

الخطوة التالية هي إنشاء الهدف المخصص في Xcode. يوجد قالب ملف جديد ، لذلك:

  1. اختر ملف ← ملف جديد واختر "SiriKit Intent Definition File".
    لقطة شاشة لمربع حوار ملف جديد
    اختر لإضافة ملف تعريف الهدف (معاينة كبيرة)
  2. قم بتسمية الملف ListOMatCustomIntents.intentdefinition ، واختر وضع الملف في أهداف كل من App و Intent Extension. سيؤدي هذا تلقائيًا إلى إنشاء فئات في كلا الهدفين اللذين ينفذان بروتوكولات النية ولكن يتم تنفيذ السلوك المخصص الخاص بك.
  3. افتح ملف التعريف .
  4. استخدم زر + في أسفل اليسار لإضافة نية وتسميتها "CopyList".
  5. اضبط الفئة على "إنشاء" واملأ العنوان والعنوان الفرعي لوصف القصد:
    لقطة شاشة لوصف الهدف المخصص
    أضف فئة وعنوان وعنوانًا فرعيًا إلى الهدف (معاينة كبيرة)
  6. أضف معلمة سلسلة تسمى "قائمة".
    لقطة شاشة لقسم المعلمة
    إضافة معلمة سلسلة باسم "قائمة" (معاينة كبيرة)
  7. أضف نوع اختصار مع معلمة القائمة ومنحه عنوانًا يسمى "Copy list".
    لقطة شاشة لقسم نوع الاختصار
    إضافة نوع اختصار بعنوان "قائمة النسخ" (معاينة كبيرة)

إذا نظرت في قائمة Intent ، فسترى أن هذه النية قد تمت تهيئتها بالفعل من أجلك:

التبرع بالنية

عندما نقوم بتفاعل مستخدم في تطبيقنا الذي نريد أن يعرفه Siri ، فإننا نتبرع به لـ Siri. يتتبع Siri المعلومات السياقية ، مثل الوقت واليوم من الأسبوع وحتى الموقع ، وإذا لاحظ نمطًا ، فسيقدم الاختصار للمستخدم.

عندما نضغط على قائمة النسخ ، أضف هذا الرمز:

 @available(iOS 12, *) func donateCopyListInteraction(listName: String) { let copyListInteraction = CopyListIntent() copyListInteraction.list = listName copyListInteraction.suggestedInvocationPhrase = "Copy \(listName)" let interaction = INInteraction(intent: copyListInteraction, response: nil) interaction.donate { [weak self] (error) in self?.show(error: error) } }

يؤدي هذا ببساطة إلى إنشاء كائن من فئة CopyListIntent التي تم إنشاؤها تلقائيًا ويتبرع بها لـ Siri. عادةً ما يجمع iOS هذه المعلومات وينتظر الوقت المناسب لإظهارها ، ولكن للتطوير ، يمكنك فتح تطبيق الإعدادات ، والانتقال إلى قسم المطور ، وتشغيل إعدادات تصحيح أخطاء Siri Shortcut.

ملاحظة : حتى كتابة هذه السطور ، مع الإصدارات التجريبية الأولى ، يعمل إعداد تصحيح الأخطاء هذا فقط على الأجهزة ، وليس على جهاز المحاكاة. نظرًا لوجود الإعداد ، أتوقع أن يبدأ العمل في المزيد من الإصدارات التجريبية.

لقطة شاشة لإعدادات تصحيح أخطاء Siri
قم بتشغيل تصحيح أخطاء Siri Shortcut

عند القيام بذلك ، يظهر الاختصار المتبرع به في اقتراحات Siri في Spotlight.

لقطة شاشة للاختصار المتبرع به في Siri
يمكنك تصحيح الاختصار المتبرع به في البحث

سيؤدي النقر فوق ذلك إلى استدعاء ملحق Intent لأننا نسمح بالتنفيذ في الخلفية. سنضيف دعمًا لذلك بعد ذلك.

التعامل مع النية المخصصة

لدينا بالفعل امتداد Intents ، وبما أن ملف تعريفات الهدف المخصص قد تمت إضافته بالفعل إلى الملف ، فإنه يحتوي أيضًا على فئات الهدف التي تم إنشاؤها. كل ما علينا القيام به هو إضافة معالج.

تتمثل الخطوة الأولى في إضافة فئة جديدة تسمى CopyListIntentHandler إلى الامتداد. ها هو كودها:

 import Intents @available(iOS 12, *) class CopyListIntentHandler: ListOMatIntentsHandler, CopyListIntentHandling { func handle(intent: CopyListIntent, completion: @escaping (CopyListIntentResponse) -> Void) { // Find the list var lists = loadLists() guard let listName = intent.list?.lowercased(), let listIndex = lists.index(where: { $0.name.lowercased() == listName}) else { completion(CopyListIntentResponse(code: .failure, userActivity: nil)) return } // Copy the list to the top, and respond with success copyList(from: &lists, atIndex: listIndex, toIndex: 0) save(lists: lists) let response = CopyListIntentResponse(code: .success, userActivity: nil) completion(response) } }

الأهداف المخصصة لها مرحلة تأكيد ومعالجة فقط (الدقة المخصصة للمعلمات غير مدعومة). نظرًا لأن confirm() يعود بالنجاح ، فسنقوم فقط بتنفيذ handle() ، والذي يتعين عليه البحث في القائمة ونسخها وإعلام Siri بما إذا كانت ناجحة أم لا.

تحتاج أيضًا إلى الإرسال إلى هذه الفئة من معالج الهدف المسجل عن طريق إضافة هذا الرمز:

 if #available(iOS 12, *) { if intent is CopyListIntent { return CopyListIntentHandler() } }

يمكنك الآن النقر بالفعل على اقتراح Siri هذا وسيظهر هذا:

لقطة من الاختصار النشط
تنشيط الاختصار (معاينة كبيرة)

والضغط على زر إنشاء سينسخ القائمة. الزر يقول "إنشاء" بسبب الفئة التي اخترناها في ملف تعريف الهدف.

كان هذا كثيرًا. تعد اختصارات Siri الجديدة هذه الميزة الرئيسية في نظام التشغيل iOS 12 الذي يحتوي على مساحة سطح مطور جديدة كبيرة لاستكشافها. أيضًا ، نظرًا لأنني حصلت على مثال جيد (وموثق) من Siri للعمل معه ، كان من المعقول محاولة إضافة الميزات الجديدة إليه هذا الأسبوع.

يمكنك رؤية تحديث List-o-Mat في GitHub. حتى يتم إصدار Xcode 10 و iOS 12 ، يكون في فرعه الخاص.

في الأيام القليلة المقبلة ، سأبحث في الغالب في رمز عينة من Apple أو أقوم بمشاريع أصغر بكثير.

نهاية اليوم الثالث: ملاعب Xcode

تم قضاء اليوم السابق بأكمله في الإصدار التجريبي من Xcode 10 ، والذي لم يتعطل مرة واحدة ويبدو أنه جاهز للتطوير. لذا أردت الآن استكشاف ميزات Playgrounds الجديدة.

الشيء الرئيسي الذي أردته من الملاعب هو جعلها أكثر استقرارًا وأسرع بكثير. لجعلها أسرع ، أضافت Apple ميزة كبيرة - وضع REPL.

قبل Xcode 10 ، عندما كنت في Playground تم تشغيله تلقائيًا (وهو الإعداد الافتراضي) ، كان كل سطر من التعليمات البرمجية يعيد بالفعل بناء الملف بالكامل وتشغيله من البداية. إذا كنت قد بنيت أي دولة ، فقد ضاعت. لكن المشكلة الحقيقية كانت أن هذا كان بطيئًا للغاية بالنسبة للتطور التكراري. عندما أستخدم Playgrounds ، أقوم بضبطها للتشغيل يدويًا ، لكن حتى ذلك بطيء.

في Xcode 10 ، يعد التشغيل اليدوي أكثر شيوعًا ، ولكن بعد تشغيله ، يمكنك إضافة المزيد من الأسطر في أسفل الصفحة ومتابعة التنفيذ. هذا يعني أنه يمكنك استكشاف البيانات ورسم العروض بشكل متكرر دون إعادة البناء والبدء من نقطة الصفر باستمرار.

للبدء ، قمت بإنشاء ملعب iOS (ملف ← جديد ← ملعب) باستخدام قالب العرض الفردي.

قم بتشغيل التشغيل اليدوي عن طريق إنزال القائمة الموجودة أسفل زر التشغيل (المثلث الموجود في الزاوية اليسرى السفلية). هذا يضع شريطًا رأسيًا على اليسار يوضح الموضع الحالي لرأس التشغيل (نوع من نقاط التوقف).

يمكنك النقر فوق أي خط ثم النقر فوق زر التشغيل الموجود على يساره. سيؤدي هذا إلى تشغيل Playground إلى هذه النقطة. ثم يمكنك المضي قدمًا من خلال النقر على الخطوط السفلية في "مساحة اللعب". بشكل حاسم ، يمكنك إضافة المزيد من الأسطر إلى الأسفل واكتب Shift + Enter بعد كل سطر لتحريك رأس Play إلى تلك النقطة.

إليكم صورة GIF لي أغير تسمية طريقة عرض دون الحاجة إلى إعادة تشغيل Playground. بعد كل سطر أكتبه ، أضغط على Shift + Enter .

GIF الخاص بالملعب مع وضع REPL
أضف المزيد من التعليمات البرمجية وقم بتشغيلها دون إعادة التشغيل

تدعم Playgrounds أيضًا العرض المخصص لأنواعك الآن ، وتقوم Apple بدفع كبير لكل إطار عمل Swift لتضمين Playground لتوثيقه.

تظهر صورة WWDC شريحة لتشجيع المزيد من الملاعب
يطلب TJ Usiyan من الحاضرين في WWDC إضافة ساحات اللعب إلى مشاريعهم. (معاينة كبيرة)

نهاية اليوم الرابع: إنشاء ML

في العام الماضي ، حققت شركة Apple قفزة كبيرة في برمجة التعلم الآلي لأجهزتها. كان هناك تنسيق ملف نموذج ML جديد ودعم مباشر له في Xcode.

كان الاحتمال هو أنه ستكون هناك مكتبة كبيرة من ملفات النماذج هذه ، وأنه ستكون هناك أدوات من شأنها أن تنشئها ، وأن العديد من مطوري التطبيقات سيكونون قادرين على دمج ML في مشاريعهم دون الحاجة إلى معرفة كيفية إنشاء النماذج.

هذا لم يتحقق بالكامل. لم تضيف Apple إلى مستودع النماذج بعد WWDC ، وعلى الرغم من وجود مستودعات تابعة لجهات خارجية ، إلا أنها تحتوي في الغالب على نماذج متنوعة في العروض التوضيحية لتصنيف الصور. يستخدم ML في أكثر بكثير من تصنيف الصور ، ولكن لم تظهر مجموعة واسعة من الأمثلة.

لذلك ، أصبح من الواضح أن أي تطبيق حقيقي يحتاج إلى مطوريه لتدريب نماذج جديدة. أصدرت Apple شركة Turi Create لهذا الغرض ، لكنها بعيدة كل البعد عن البساطة.

في WWDC 2018 ، فعلت Apple بعض الأشياء لـ Core ML:

  1. قاموا بتوسيع جزء معالجة اللغة الطبيعية (NLP) من Core ML والذي يمنحنا مجالًا رئيسيًا جديدًا من الأمثلة.
  2. أضافوا مفهوم نقل التعلم إلى Core ML ، والذي يسمح لك بإضافة بيانات التدريب إلى نموذج موجود . هذا يعني أنه يمكنك أخذ نماذج من المكتبة ، وتخصيصها لبياناتك الخاصة (على سبيل المثال ، اجعلها تتعرف على الكائنات الجديدة في الصور التي تقدمها).
  3. لقد أصدروا Create ML الذي يتم تنفيذه داخل Xcode Playgrounds ويتيح لك سحب البيانات وإفلاتها للتدريب وإنشاء امتدادات نموذجية (باستخدام Transfer Learning).

هذه خطوة أخرى لطيفة في إضفاء الطابع الديمقراطي على ML. ليس هناك الكثير من التعليمات البرمجية للكتابة هنا. لتوسيع مصنف الصور ، تحتاج فقط إلى جمع الصور وتسميتها. بمجرد الحصول عليها ، ما عليك سوى سحبها إلى Create ML. يمكنك مشاهدة العرض التوضيحي في فيديو Create ML WWDC هذا.

نهاية الأسبوع: العب مع العروض التوضيحية الجديدة للواقع المعزز

كانت ARKit إضافة كبيرة أخرى العام الماضي ويبدو أكثر وضوحًا أن جهاز AR قادم.

لا يزال كود ARKit الخاص بي من مقال العام الماضي طريقة جيدة للبدء. تدور معظم الميزات الجديدة حول جعل الواقع المعزز أكثر دقة وأسرع.

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

بالطبع ، لتشغيل هذا ، فأنت بحاجة إلى جهازين أو أكثر ترغب في تشغيله على الإصدار التجريبي من نظام التشغيل iOS 12. أنا في انتظار الإصدار التجريبي العام للقيام بذلك لأنني أمتلك جهازًا واحدًا فقط من الإصدار التجريبي الآمن.

أسهل تطبيق AR للعب به هو تطبيق القياس الجديد ، والذي يسمح لك بقياس طول الأشياء الحقيقية التي تراها في عرض كاميرا الواقع المعزز. كانت هناك تطبيقات تابعة لجهات خارجية تقوم بذلك ، لكن تطبيقات Apple مصقولة ومثبتة مسبقًا بنظام iOS 12.

روابط لمقاطع فيديو WWDC وعينة التعليمات البرمجية

لذلك ، أتطلع إلى فعل المزيد مع Xcode 10 و iOS 12 هذا الصيف بينما ننتظر الهواتف الجديدة وأي أجهزة قد تصدرها Apple في نهاية الصيف. في غضون ذلك ، يمكن لمطوري iOS الاستمتاع بالشمس وتتبع ارتفاعاتنا مع الإصدار التجريبي الجديد من نظام التشغيل Watch OS ومشاهدة مقاطع فيديو WWDC عندما تسنح لنا الفرصة.

يمكنك بث مقاطع فيديو WWDC 2018 من بوابة مطوري Apple. يوجد أيضًا تطبيق Mac غير الرسمي هذا لعرض مقاطع فيديو WWDC.

فيما يلي مقاطع الفيديو المشار إليها في هذه المقالة:

  • WWDC 2018 الكلمة الرئيسية
  • منصات WWDC 2018 حالة الاتحاد
  • مقدمة حول اختصارات Siri
  • الحصول على أقصى استفادة من الملاعب في Xcode
  • تقديم Create ML ، وإذا كنت تريد شيئًا أكثر تقدمًا ، دليل لإنشاء Turi

لبدء اللعب باستخدام Xcode 10 و iOS 12:

  • قم بتنزيل الإصدار التجريبي (قم بزيارة الجهاز للحصول على ملف تعريف الإصدار التجريبي)
  • List-o-Mat مع تحديثات Siri Shortcut
  • Swift Shot (لعبة ARKit 2 متعددة اللاعبين)