في AppCode 2019.3 ، ركزنا على دعم السرعة واللغة. في هذا المنشور نقول ما حدث (المفسد: لقد تسارعت كثيرًا).

سرعة
قد يكون من الصعب تحديد مقدار تأثير الإصلاح المحدد على السرعة - وهذا مستقل عن عدد مشاريع الاختبار وتعقيدها. منذ عام 2019.3 ، أصبح كل شيء أسهل ، لأنه أثناء إعداد الإصدار ، تلقينا الكثير من الملاحظات التي تفيد بأن الأداء قد تحسن بالفعل. إليك ما حدث لتسريع:
- تسليط الضوء على ، الملاحة والإكمال التلقائي في المشاريع على سويفت النقي والمشاريع برمز مختلط. دعنا نقول فقط - لقد بدأ العمل بشكل أسرع مقارنة بعام 2019.2.
- هناك مثل هذه المرحلة التخزين المؤقت ، "معالجة وحدات سويفت". كانت واجهات وحدات Swift اللازمة ليعمل IDE ، حتى Xcode 11 ، في الثنائية في سلسلة الأدوات ، وكان لا بد من الحصول على تمثيلها النصي من خلال SourceKit. يعمل SourceKit ببطء ، وإذا كانت أطر النظام قد وضعنا بالفعل ذاكرة التخزين المؤقت الجاهزة في برنامج التثبيت (والتي ، على الرغم من ذلك ، يجب تحديثها لكل إصدار من برنامج Xcode) ، فلن يعمل هذا مع أطر عمل المشروع نفسه. نتيجة لذلك ، وجدوا بعض القطع غير الأكثر تصحيحية وتم تصحيحها ، وبدأ العمل بشكل أسرع.
جزء آخر من التحسينات لا يزال قيد التشغيل ، وهناك عدد قليل منها. هذه هي ذاكرة التخزين المؤقت إضافية حيث لم تكن موجودة بعد ، وتحسين الخوارزمية لبناء رموز التصميم ، وأكثر من ذلك بكثير. هذه هي بالفعل خطط لعام 2020.1.
دعم اللغة
للمهام اللغوية نفس أولوية عمل الأداء ، لذلك يراقب جزء من الفريق التغييرات في التطور السريع ، وبمجرد قبولها ، يبدأ بدمجها في AppCode. هذا الإصدار يدعم:
إجراءات لتعديل الرمز
فهي كثيفة. ينمو فريق AppCode ، ولتقديم مطور جديد للدورة التدريبية ، فإننا عادة ما نقدم ميزات جديدة صغيرة ولكنها مثيرة للاهتمام. هذه المرة ، كان هناك أكثر من عشرة إجراءات لـ Swift ، والتي يمكنك من خلالها:
- ضم (والعكس بالعكس) إعلان متغير مع قيمة مخصصة له:

- قسِّم التصريحات عن عدة متغيرات إلى متغيرات منفصلة:

- تقسيم / دمج متداخلة إذا / آخر:

- تبديل أجزاء المقارنات أو التعبيرات الثنائية:

- قم بالانعكاس إذا:

- تقسيم / دمج الشروط داخل نفسه إذا كان الإنشاء:

- تطبيق قوانين دي مورغان:

كود الشفرة
وأضاف اثنين من إعدادات توليد رمز جديد في Editor | Code Style | Swift | Code Generation | General
Editor | Code Style | Swift | Code Generation | General
Editor | Code Style | Swift | Code Generation | General
:
Prefer Void over ()
وPrefer explicit return
.
تنسيق
بناءً على طلب المستخدمين ، أضافوا خيارات التنسيق من أجل:
- ترك كتل الممتلكات الصغيرة مع
willSet
/ didSet (Preferences | Editor | Code Style | Swift | Wrapping and Braces | Keep when reformatting | Methods and functions in one line)
واحدًا didSet (Preferences | Editor | Code Style | Swift | Wrapping and Braces | Keep when reformatting | Methods and functions in one line)
- وينطبق نفس الشيء على إعلانات النوع الفارغ (
Preferences | Editor | Code Style | Swift | Wrapping and Braces | Keep when reformatting | Empty type declarations in one line
)
سويفت أدوات مخصصة
قاموا بتدريس AppCode للعمل مع التعليمات البرمجية بشكل صحيح عند استخدام أدوات Swift غير القياسية (على سبيل المثال ، Swift لـ Tensorflow ).
بناء الرسائل
في أحد الإصدارات السابقة ، واجهنا مشكلة في رسائل التجميع التي لم يتم حلها في إطار التطبيق الحالي. ومع ذلك ، لم نتمكن من إصلاحه. بالإضافة إلى ذلك ، لا تزال هناك مشاكل في سرعة معالجة الرسائل ، وعرضها ، والتغييرات المتكررة في تنسيق هذه الرسائل من إصدار واحد من Xcode إلى آخر ، والعديد من الأشياء الصغيرة الأخرى. نتيجة لذلك ، قمنا بتدريس AppCode لالتقاط شجرة رسالة التجميع مباشرة من نظام بناء Xcode "كما هي" وعرضها ببساطة في رسائلنا:

جنبا إلى جنب مع هذه المعلومات ، اتضح لإيجاد طريقة لعرض تقدم البناء العادي:

في النهاية ، قمنا أيضًا بتبسيط تصفية الرسائل وفعلنا الشيء نفسه كما في Xcode:

دعم محفز ماك
كل شيء بسيط هنا: لقد تعلمنا كيفية العمل مع أهداف Mac Catalyst بحيث يمكن إطلاقها وتصحيحها وعرضها في Run Configurations.
هذا كل شيء. في عام 2020.1 ، نخطط ، كما هو الحال في هذا الإصدار ، لقضاء الحد الأقصى للوقت على زيادة تحسين IDE ، مع الحد الأدنى من الميزات الجديدة.
اكتب جميع الأسئلة والاقتراحات هنا في التعليقات - سنكون سعداء بالإجابة!
فريق AppCode