Di AppCode 2019.3, kami fokus pada dukungan kecepatan dan bahasa. Dalam posting ini kami menceritakan apa yang terjadi (spoiler: mereka banyak dipercepat).

Performa
Mungkin sulit untuk menentukan seberapa banyak perbaikan tertentu memberikan efek pada kecepatan - dan ini tidak tergantung pada jumlah proyek pengujian dan kompleksitasnya. Sejak 2019.3, semuanya lebih mudah, karena selama persiapan rilis, kami menerima banyak umpan balik bahwa kinerja telah benar-benar membaik. Inilah yang terjadi untuk mempercepat:
- Menyoroti, navigasi, dan penyelesaian otomatis dalam proyek di Swift murni dan proyek dengan kode campuran. Anggap saja - mulai bekerja lebih cepat dibandingkan 2019.2.
- Ada fase caching seperti itu, "Memproses Modul Swift". Antarmuka modul Swift yang diperlukan agar IDE dapat berfungsi, hingga Xcode 11, berada di toolchain dalam bentuk biner, dan representasi tekstualnya harus diperoleh melalui SourceKit. SourceKit lambat, dan jika untuk kerangka kerja sistem kami telah meletakkan cache yang sudah jadi di installer (yang, bagaimanapun, harus diperbarui untuk setiap rilis Xcode), ini tidak akan bekerja untuk kerangka kerja proyek itu sendiri. Akibatnya, mereka menemukan beberapa bukan bagian yang paling optimal dan diperbaiki, itu mulai bekerja lebih cepat.
Bagian lain dari perbaikan masih beroperasi, dan ada beberapa di antaranya. Ini adalah cache tambahan di mana mereka belum ada, dan peningkatan algoritma untuk membangun simbol desain, dan banyak lagi. Ini sudah rencana untuk 2020.1.
Dukungan bahasa
Tugas bahasa memiliki prioritas yang sama dengan pekerjaan kinerja, sehingga bagian dari tim memantau perubahan dalam evolusi cepat dan, segera setelah diterima, mulai mengintegrasikannya ke dalam AppCode. Rilis ini didukung:
Tindakan untuk memodifikasi kode
Mereka diintensifkan. Tim AppCode berkembang, dan untuk memperkenalkan pengembang baru ke kursus, kami biasanya memberikan fitur baru yang kecil namun menarik. Kali ini adalah selusin tindakan untuk Swift, yang dengannya Anda dapat:
- Gabungkan (dan sebaliknya) deklarasi variabel dengan nilai yang diberikan padanya:

- Pisahkan deklarasi beberapa variabel menjadi yang terpisah:

- Pisahkan / gabungkan jika ada:

- Tukar bagian perbandingan atau ekspresi biner:

- Lakukan inversi jika:

- Membagi / menggabungkan kondisi di dalam yang sama jika membangun:

- Terapkan Hukum Morgan:

Pembuatan Kode
Menambahkan dua pengaturan pembuatan kode baru di Editor | Code Style | Swift | Code Generation | General
Editor | Code Style | Swift | Code Generation | General
Editor | Code Style | Swift | Code Generation | General
:
Prefer Void over ()
danPrefer explicit return
.
Memformat
Atas permintaan pengguna, mereka menambahkan opsi pemformatan untuk:
- Tinggalkan blok properti kecil dengan
willSet
/ didSet (Preferences | Editor | Code Style | Swift | Wrapping and Braces | Keep when reformatting | Methods and functions in one line)
single-line didSet (Preferences | Editor | Code Style | Swift | Wrapping and Braces | Keep when reformatting | Methods and functions in one line)
- Hal yang sama berlaku untuk deklarasi tipe kosong (
Preferences | Editor | Code Style | Swift | Wrapping and Braces | Keep when reformatting | Empty type declarations in one line
)
Custom Swift Toolchains
Mereka mengajarkan AppCode untuk bekerja dengan kode dengan benar ketika menggunakan rantai alat Swift yang tidak standar (misalnya, Swift untuk Tensorflow ).
Bangun pesan
Dalam salah satu rilis sebelumnya, kami memiliki masalah dengan pesan perakitan yang tidak diselesaikan dalam kerangka implementasi saat ini. Namun, kami tidak dapat memperbaikinya. Selain itu, masih ada masalah dengan kecepatan pemrosesan pesan, tampilan mereka, perubahan sering dalam format pesan-pesan ini dari satu versi Xcode ke yang lain, dan banyak hal kecil lainnya. Sebagai hasilnya, kami mengajarkan AppCode untuk mengambil susunan pesan rakitan langsung dari sistem build Xcode "sebagaimana adanya" dan cukup menampilkannya di Pesan kami:

Bersama dengan informasi ini, ternyata menemukan cara untuk menampilkan progres pembangunan normal:

Pada akhirnya, kami juga menyederhanakan penyaringan pesan dan melakukan hal yang sama seperti pada Xcode:

Dukungan Mac Catalyst
Semuanya sederhana di sini: kami belajar cara bekerja dengan target Mac Catalyst sehingga dapat diluncurkan, di-debug, ditampilkan di Run Configurations.
Itu saja. Pada 2020.1, kami berencana, seperti dalam rilis ini, untuk menghabiskan waktu maksimum untuk optimalisasi IDE lebih lanjut, dengan minimum fitur baru.
Tuliskan semua pertanyaan dan saran di sini di komentar - dengan senang hati kami akan menjawab!
Tim AppCode