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).

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):

- Deklarationen mehrerer Variablen in separate aufteilen:

- Teilen / Zusammenführen verschachtelt wenn / else:

- Teile von Vergleichen oder binären Ausdrücken tauschen:

- Inversion machen, wenn:

- Bedingungen innerhalb desselben aufteilen / zusammenführen, wenn konstruieren:

- Apply de Morgan Laws:

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 ()
undPrefer 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:

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

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

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