В AppCode 2019.3 мы сделали основной упор на быстродействие и поддержку языка. В этом посте рассказываем, что получилось (спойлер: многое ускорили).
Бывает трудно определить, насколько конкретное исправление дает эффект по быстродействию — и это вне зависимости от количества тестовых проектов и их сложности. С 2019.3 все проще, потому что за время подготовки релиза мы получили массу отзывов о том, что быстродействие действительно улучшилось. Вот что получилось ускорить:
Еще часть улучшений пока в работе, и их довольно много. Это и дополнительные кэши там, где их пока нет, и улучшение работы алгоритма построения проектных символов, и многое другое. Это уже планы на 2020.1.
Задачи по языку имеют тот же приоритет, что и работа по быстродействию, поэтому часть команды отслеживает изменения в swift-evolution и, как только они приняты, начинает интегрировать их в AppCode. В этом релизе поддержали:
Они же интеншены. Команда AppCode растет, и, чтобы ввести нового разработчика в курс, мы обычно даем небольшие, но интересные новые фичи. В этот раз это был десяток действий для Swift, с помощью которых можно:
Добавили две новые настройки генерации кода в 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)
Preferences | Editor | Code Style | Swift | Wrapping and Braces | Keep when reformatting | Empty type declarations in one line
)Научили AppCode правильно работать с кодом при использовании нестандартных тулчейнов Swift (например, Swift for Tensorflow).
В одном из прошлых релизов нам зарепортили проблему с сообщениями сборки, которая не решалась в рамках текущей реализации. При этом не исправить ее мы не могли. Кроме этого, все еще оставались проблемы со скоростью обработки сообщений, их отображением, частыми изменениями формата этих сообщений от одной версии Xcode к другой, и много других мелочей. В итоге мы научили AppCode забирать дерево сообщений сборки прямо из системы сборки Xcode «как есть» и просто отображать его у нас в Messages:
Вместе с этой информацией, получилось найти способ отобразить нормальный прогресс сборки:
А в итоге мы еще и фильтрацию сообщений упростили и сделали такой же, как в Xcode:
Здесь все просто: научились работать с таргетами Mac Catalyst, чтобы можно было их запустить, отладить, отобразить в Run Configurations.
На этом все. В 2020.1 мы планируем, как и в этом релизе, максимум времени потратить на дальнейшую оптимизацию работы IDE, с минимумом новых фич.
Все вопросы и пожелания пишите прямо тут в комментариях — будем рады ответить!
Команда AppCode
К сожалению, не доступен сервер mySQL