22 April

AppCode 2020.1: улучшения быстродействия, автодополнение до конца индексации, генерация документации и многое другое

JetBrains corporate blogDevelopment for iOSDevelopment of mobile applicationsXcodeSwift

Всем привет, в этом посте рассказываем про новый AppCode 2020.1, который мы выпустили буквально вчера.


КПДВ


Быстродействие


AppCode 2020.1 стал значительно быстрее работать с проектами на чистом Swift и смешанными проектами на Swift/Objective-C. Часть работы, делавшейся непосредственно при открытии файла и при этом каждый раз после открытия проекта, мы перенесли на момент индексации и стали кешировать результаты. Что это дало: первоначальное индексирование стало чуть дольше, зато все последующие — быстрее, как и скорость появления подсветки, работа автодополнения и вообще любых действий, связанных с кодом:


Скорость работы


Кроме всего этого, оптимизировали автодополнение для параметров функций и методов, локальных переменных и глобальных переменных, объявленных в текущем файле. Этот сценарий использования встречается часто, поэтому автодополнение стало еще быстрее.


Убрали причину подвисания “Loading…” при открытии файла (под капотом там оказалась достаточно нетривиальная оптимизация парсинга бинарных выражений).


Все это вместе позволяет работать намного более комфортно, чем раньше.


Автодополнение во время индексации


Мы стараемся сделать как можно большее количество действий IDE доступным еще до конца индексации. Так, в AppCode 2019.2 мы реализовали возможность собирать, запускать, отлаживать и тестировать проект, даже если индексация еще в процессе. В этом релизе к таким возможностям добавилось автодополнение:


Автодополнение во время индексации


Для того чтобы это сделать, мы творчески переиспользовали SourceKit. Пока в этом режиме не работают плэйсхолдеры для параметров (вставляется просто текст), нет возможности быстро переключаться между параметрами методов и функций, но даже с этими ограничениями нам кажется удобным иметь автодополнение как можно раньше.


Документация для кода


Закрываем старые запросы, добиваем консистентность: теперь для Swift можно сгенерировать комментарий для любой кодовой конструкции просто напечатав /// и нажав :


Документация для кода


Иерархия типов


Доделали окно иерархии типов для Swift — теперь оно есть, и работает так же, как в Objective-C:


Иерархия типов


Структурное представление кода


Оно же Structure view. Добавили три режима сортировки элементов: по алфавиту, по типу и по области видимости:


Структурное представление кода


Проверки кода и быстрые исправления


В прошлом релизе добавили достаточно много быстрых исправлений для Swift, в этом — еще одно новое и пара проверок:


  • Замена if на guard:Замена if на guard
  • Проверка на наличие ненужных круглых скобок: Проверка на наличие ненужных круглых скобок
  • И отдельная проверка такого же типа для замыканий: Ненужные скобки в замыканиях

Просмотр определения типа


Раньше можно было посмотреть определение любого символа в коде через Quick Definition (⌥Space), а теперь можно сделать то же самое для типа этого символа через Quick Type Definition:


Quick Type Definition


Touch Bar


В предыдущих версиях интеграцию Touch Bar в AppCode пришлось выключить из-за вызванных ей проблем с быстродействием. Отличная новость — проблемы мы ликвидировали, Touch Bar снова работает.


Режим LightEdit


Теперь для обычного редактирования текста весь проект открывать не нужно, достаточно просто открыть файл с Welcome Screen, или через командную строку с помощью скрипта запуска, сгенерированного для IDE. Будет открыт только этот файл — быстро, легко, просто.


Дзен-режим


Многие знают про дополнительные режимы для UI в AppCode, например режим Presentation, название которого говорит само за себя (кстати, очень удобно показывать демки с ним), а также Distraction Free, в котором окно IDE выглядит как минималистичный текстовый редактор без окон, тулбаров и прочего. С дзен-режимом все просто — это полноэкранный Distraction Free, чтобы совсем ни на что не отвлекаться.


JetBrains Mono


Шрифты мы любим, а крутые моноширинные шрифты, сделанные специально для разработчиков — особенно. Теперь шрифтом по умолчанию у нас и в других IDE от JetBrains будет JetBrains Mono (и, конечно же, он поддерживает лигатуры).


На этом все. Коротко про планы на будущее — над поддержкой SPM пока работаем, целимся в следующий релиз, работать над быстродействием также продолжим.


Все вопросы и пожелания пишите прямо тут в комментариях — будем рады ответить!


Команда AppCode

Tags:iosswiftobjective-cмобильная разработкаappcode
Hubs: JetBrains corporate blog Development for iOS Development of mobile applications Xcode Swift
+8
2.1k 5
Comments 8