AppCode 2019.3: Arbeitet schneller, versteht Swift besser, kennt sich mit Mac Catalyst aus und zeigt Versammlungsnachrichten an

In AppCode 2019.3 haben wir uns auf Geschwindigkeit und Sprachunterstützung konzentriert. In diesem Beitrag erzählen wir, was passiert ist (Spoiler: Sie haben viel beschleunigt).


Splash



Leistung


Es kann schwierig sein, zu bestimmen, inwieweit sich ein bestimmter Fix auf die Geschwindigkeit auswirkt - und dies unabhängig von der Anzahl der Testprojekte und ihrer Komplexität. Seit 2019.3 ist alles einfacher, weil wir während der Vorbereitung der Veröffentlichung viele Rückmeldungen erhalten haben, dass sich die Leistung wirklich verbessert hat. Folgendes ist passiert, um zu beschleunigen:


  • Hervorheben, Navigieren und automatische Vervollständigung in Projekten mit reinem Swift und Projekten mit gemischtem Code. Sagen wir einfach so - es begann viel schneller zu arbeiten als 2019.2.
  • Es gibt eine solche Caching-Phase, "Processing Swift Modules". Die Schnittstellen der Swift-Module, die für das Funktionieren der IDE bis zu Xcode 11 benötigt werden, befanden sich in der Binärdatei in der Toolchain, und ihre Textdarstellung musste über SourceKit bezogen werden. SourceKit funktioniert nur langsam. Wenn wir für die System-Frameworks bereits vorgefertigte Caches im Installer gespeichert haben (die jedoch für jede Xcode-Version aktualisiert werden müssen), funktioniert dies nicht für die Frameworks des Projekts. Infolgedessen fanden sie einige Teile, die nicht besonders optimiert waren, und korrigierten sie. Sie begannen, viel schneller zu arbeiten.

Ein anderer Teil der Verbesserungen ist noch in Betrieb und es gibt einige davon. Dies sind zusätzliche Caches, in denen sie noch nicht existieren, und die Verbesserung des Algorithmus zum Erstellen von Entwurfssymbolen und vieles mehr. Dies sind bereits Pläne für 2020.1.


Sprachunterstützung


Sprachaufgaben haben die gleiche Priorität wie Aufführungsarbeit, daher überwacht ein Teil des Teams Änderungen in der schnellen Entwicklung und beginnt, sobald sie akzeptiert werden, sie in AppCode zu integrieren. Diese Version unterstützt:



Aktionen zum Ändern des Codes


Sie werden intensiviert. Das AppCode-Team wächst und um einen neuen Entwickler in den Kurs einzuführen, bieten wir normalerweise kleine, aber interessante neue Funktionen an. Diesmal waren es ein Dutzend Aktionen für Swift, mit denen Sie:


  • Kombinieren Sie eine Variablendeklaration mit einem zugewiesenen Wert (und umgekehrt):
    Split / Join-Variablendeklaration und -zuweisung
  • Deklarationen mehrerer Variablen in separate aufteilen:
    Variablendeklarationen mit mehreren Elementen teilen
  • Teilen / Zusammenführen verschachtelt wenn / else:
    Geschachtelte if / else-Anweisungen teilen / verbinden
  • Teile von Vergleichen oder binären Ausdrücken tauschen:
    Flip Vergleiche und binäre Ausdrücke
  • Inversion machen, wenn:
    Invertiere wenn Bedingung
  • Bedingungen innerhalb desselben aufteilen / zusammenführen, wenn konstruieren:
    Bedingungen zusammenführen / teilen
  • Apply de Morgan Laws:
    De Morgans Gesetze

Codegenerierung


Zwei neue Einstellungen für die Codegenerierung in Editor | Code Style | Swift | Code Generation | General hinzugefügt Editor | Code Style | Swift | Code Generation | General Editor | Code Style | Swift | Code Generation | General :


  • Prefer Void over () und
  • Prefer explicit return .

Formatierung


Auf Wunsch der Benutzer fügten sie Formatierungsoptionen hinzu, um:


  • Lassen Sie kleine Eigenschaftsblöcke mit willSet / didSet (Preferences | Editor | Code Style | Swift | Wrapping and Braces | Keep when reformatting | Methods and functions in one line) einzeilig didSet (Preferences | Editor | Code Style | Swift | Wrapping and Braces | Keep when reformatting | Methods and functions in one line) willSet und didSet (Preferences | Editor | Code Style | Swift | Wrapping and Braces | Keep when reformatting | Methods and functions in one line)
  • Gleiches gilt für leere Typdeklarationen ( Preferences | Editor | Code Style | Swift | Wrapping and Braces | Keep when reformatting | Empty type declarations in one line ).

Kundenspezifische schnelle Werkzeugketten


Sie brachten AppCode bei, mit Code korrekt zu arbeiten, wenn nicht standardmäßige Swift-Toolchains verwendet wurden (z. B. Swift für Tensorflow ).


Erstellen Sie Nachrichten


In einer der vorherigen Versionen hatten wir ein Problem mit Assemblymeldungen, das in der aktuellen Implementierung nicht behoben wurde. Wir konnten es jedoch nicht beheben. Darüber hinaus gab es nach wie vor Probleme mit der Verarbeitungsgeschwindigkeit von Nachrichten, ihrer Anzeige, häufigen Änderungen im Format dieser Nachrichten von einer Version von Xcode zu einer anderen und vielen anderen Kleinigkeiten. Als Ergebnis haben wir AppCode beigebracht, den Assembly-Nachrichtenbaum direkt vom Xcode-Build-System "so wie er ist" abzurufen und ihn einfach in unseren Nachrichten anzuzeigen:


Erstellen Sie Nachrichten


Zusammen mit diesen Informationen stellte sich heraus, dass eine Möglichkeit gefunden wurde, den normalen Erstellungsfortschritt anzuzeigen:


Fortschritt beim Erstellen von Nachrichten


Am Ende haben wir auch die Nachrichtenfilterung vereinfacht und das Gleiche wie in Xcode getan:


Buld Messages-Filter


Mac Catalyst-Unterstützung


Hier ist alles ganz einfach: Wir haben gelernt, wie Sie mit Mac Catalyst-Zielen arbeiten, damit sie in den Ausführungskonfigurationen gestartet, debuggt und angezeigt werden können.


Das ist alles. In 2020.1 planen wir, wie in dieser Version, die maximale Zeit für die weitere Optimierung der IDE mit einem Minimum an neuen Funktionen zu verwenden.


Schreiben Sie alle Fragen und Anregungen gleich hier in die Kommentare - wir beantworten sie gerne!


AppCode-Team

Source: https://habr.com/ru/post/de479450/


All Articles