appcode что это такое
AppCode 2020.3: локализация для Swift, переход к определению до индексации, улучшенные рефакторинги и многое другое
Вышел AppCode 2020.3. Те, кто читал статьи на английском в нашем блоге, уже и так все знают, а тем, кто еще не в курсе и хочет быстро ознакомиться со всеми изменениями, — добро пожаловать под кат.
Поддержка Swift
Поддержали пачку новых возможностей языка:
Локализация
В AppCode давно есть локализация для строк в Objective-C, в этом релизе реализовали то же самое для Swift:
Действия для изменения кода
Добавили несколько небольших, но полезных действий по модификации кода:
Change Signature
Rename, который работает для смешанного Objective-C/Swift кода, у нас уже есть. А в этом релизе доработали Change Signature, чтобы он тоже работал сразу же со смешанным кодом. Кроме этого:
Rename
Сделали новое отображение для настроек рефакторинга Rename — открыть их можно по ⇥ :
Переход к определению типа
Работает даже до конца индексации — реализовали по тому же принципу, что и автодополнение с использованием SourceKit.
Отладчик
В отладчике появилось несколько полезных платформенных возможностей:
Code With Me
Многие, наверное, слышали про новый сервис от JetBrains для совместного редактирования кода — Code With Me. Теперь он работает в AppCode через соответствующий плагин. Подробнее про него можно прочитать вот тут.
Контроль версий
Теперь вместо changelist’ов можно включить git stage :
А Search Everywhere получил новый таб для поиска по коммитам:
Поддержка XCFrameworks
Просмотр определения
Возможен прямо из Project view с помощью ⌥Space :
На этом всё! Все вопросы и пожелания пишите прямо тут в комментариях — будем рады ответить!
AppCode 2021.2: улучшения поддержки Swift, автодополнение выражений, окно иерархии вызовов для Swift и не только
В этом посте, как и всегда, расскажем о новом релизе AppCode. Всем, кому интересно, — добро пожаловать под кат.
Swift
Поддержка языка
Как и всегда, поддержка Swift в приоритете, поэтому поддержали разное новое:
SE-0295: Codable synthesis for enums with associated values
Документация
Сделали автодополнение для ключевых слов в документационных комментариях:
Автодополнение выражений
Иерархия вызовов
Продолжаем добивать паритет по возможностям между языками — в этом релизе доделали Call Hierarchy:
Выглядит как фича, а на самом деле — здоровенный тест на быстродействие: пока тестировали это окно, исправили кучу проблем.
Swift Package Manager
Сборка и отладка во время индексации
Теперь SPM-проекты можно собрать и отладить во время индексации (тестировать пока нельзя).
Поддержка настроек сборки для целей SPM
Плагин Kotlin Multiplatform Mobile для AppCode
Мы тут продолжаем расширять экосистему для разработки на мультиплатформенном Котлине, и вот недавно выпустили новый плагин:
Плюсы — возможность в одном проекте работать с Objective-C/Swift/Kotlin, имея полный функционал IDE для них, описание Xcode-проекта в Gradle. Тут, впрочем, стоит сделать оговорку: этот сценарий рассчитан скорее на новые проекты на KMM, и у нас в планах добавить возможность загрузки уже существующих Xcode-проектов в Gradle DSL без переописания структуры проекта.
Preview Tab для отладчика
Раньше при отладке не было возможности не открывать кучу файлов в редакторе, а теперь есть: надо просто включить в настройках Preview tab:
Текстовый поиск в Local History
А на этом все. Как и всегда — будем рады поговорить на любые темы в комментариях!
Встречайте AppCode 3.0: встроенный дизайнер UI, плагин для Reveal и многое другое
Привет, Хабр! Мы спешим вас порадовать новой, только что выпущенной версией нашей IDE для разработчиков под iOS/OS X — AppCode 3.0. Внутри много интересного: от долгожданного встроенного дизайнера UI до большого сюрприза в виде интеграции с Reveal. Но — обо всем по порядку.
Дизайнер UI
Интеграция с Reveal app
Задумавшись о возможных инструментах для разработки UI, мы решили не останавливаться только на дизайнере. И совместно с нашими друзьями из Itty Bitty Apps создали плагин, который позволяет использовать в AppCode 3.0 все преимущества их приложения под названием Reveal. С его помощью вы можете вживую исследовать всю иерархию объектов UI в вашем приложении, выделять и изучать отдельные слои, изменять свойства визуальных компонент и тут же в реальном времени видеть эти изменения на симуляторе или живом устройстве.
Если вы захотите попробовать, обязательно обновите уже имеющийся Reveal до версии 1.0.4 или скачайте бесплатную пробную версию с сайта приложения, если Reveal у вас еще не установлен. Дальше все предельно просто. В настройках конфигурации в AppCode появилась специальная вкладка Reveal, в которой всего два параметра — подключать ли библиотеку при старте вашего приложения и загружать ли ее при необходимости на устройство:
В панельке Debug после запуска приложения становится доступна кнопка
Нажимаете, и Reveal запускается с текущего момента исполнения вашего приложения — можно играться с 2D- и 3D-визуализацией, выбирать слои, менять настройки:
Кодогенерация в юнит-тестах
Для фреймворков OCUnit, XCTest и Google Test Cmd+N поможет создать новый тестовый метод, а так же методы setUp/tearDown. А в случае Kiwi вы можете выбрать из блоков it, context, beforeEach, afterEach и specify. Кстати, для Kiwi еще и добавился новый шаблон (live template) kiwi, который создает Spec.
Для Google Test изначально будет создан базовый тестовый метод TEST(), но после того, как вы зададите имя, AppCode автоматически подменит этот макрос на более подходящий: TEST(), TEST_F(), TEST_P(), TYPED_TEST() или TYPED_TEST_P().
Небольшое демо новых возможностей AppCode для юнит-тестов:
Настройки проекта
Более нативный
Мы в JetBrains всегда прислушиваемся к нашим пользователям настолько, насколько это возможно. Зная о существующих несоответствиях в поведении и раскладке по отношению к нативным, мы постарались часть из них в новой версии AppCode исправить. Например, столь желаемое и привычное маковским пользователям сочетание клавиш Cmd+del теперь работает и в AppCode. Можно удалять текст в редакторе, файлы в дереве проекта, ресурсы и фреймворки в проектных настройках и т.д. Раскладка Xcode в AppCode была довольна существенно переработана, чтобы соответствовать Xcode IDE.
Что касается внешнего вида AppCode, скролбары теперь появляются и исчезают в соответствии с системными настройками (можно всегда держать включенными, можно настроить их появление в определенных ситуациях). А для тех, кто перешел с Xcode и скучает по любимой цветовой схеме оттуда, есть возможность добавить ее в AppCode:
Множественные курсоры, множественное выделение
Наверное, одна из самых востребованных возможностей во всех IDE в этом году — теперь и в AppCode 3.0! Расставить курсоры в нескольких местах можно с помощью Alt+Shift+Click или добавить следующее совпадение в выделение с помощью Ctrl+G (чтобы удалить — Ctrl+Shift+G ). А теперь начинайте печатать и увидите, что вы редактируете код одновременно в нескольких местах — тех, в которые поставили курсоры. Автодополнение и шаблоны кода (live templates) тоже будут работать!
Терминал
В AppCode встроено довольно много разнообразных инструментов, позволяющих вам не переключать окно и вместе с ним и контекст для того, чтобы добавить изменения в репозиторий, закрыть задачу в issue-трекере и т.д. А теперь еще и терминал можно запустить прямо из IDE. Нажмите Alt+F12 и AppCode 3.0 запустит его прямо внутри своего окна:
И это еще не все
Загрузить 30-дневную бесплатную версию AppCode 3.0 можно с нашего сайта. Обновление до версии 3.0 бесплатно для всех, кто приобрел лицензию после 20 мая 2013 года.
Мы будем рады ответить на ваши вопросы в комментариях. Замечания и предложения по новой версии мы ждем и в нашем баг-трекере.
Программируйте с удовольствием!
Ваша команда JetBrains AppCode
AppCode 2019.1: Swift 5, улучшенная работа подсветки, навигации и автодополнения, перемещение выражений и многое другое
Неделю назад мы выпустили AppCode 2019.1 — поговорим об изменениях в нем. Под катом куча нового, полезного, исправленного и дополненного.
Swift
Swift 5
Все новые возможности Swift 5 корректно работают в AppCode 2019.1:
Переименование
Была проблема с переименованием перегруженных методов и методов класса-родителя — а теперь ее нет.
Навигация к определению
Казалось бы, что может быть проще и элементарнее перехода к определению метода или класса? Стандартное, привычное действие.
И все действительно так в Objective-C: название типа при инициализации объекта стоит отдельно, сам метод-инициализатор — отдельно. Соответственно, если курсор стоит на названии типа, мы переходим к определению типа, если на инициализаторе — к определению инициализатора. А вот в Swift все становится сложнее. Инициализатор слился с названием типа воедино, и, если воспроизводить поведение Xcode, теряем возможность перехода именно к инициализатору. Если же оставлять поведение AppCode 2018.3.x, ломаем привычку пользователя (“как в Xcode”, то есть переход не к определению инициализатора, а к определению типа). Это по понятным причинам не нравится пользователям.
В итоге выработали серединное решение: все-таки выражение, инициализирующее объект в Swift, по-прежнему состоит из двух частей. Все, что до круглых скобок, — название типа, а все внутри — сигнатура инициализатора. Поэтому, если курсор стоит на названии типа, переходим к определению типа, если внутри круглых скобок — к определению инициализатора:
Оба сценария использования сохранены, все счастливы.
Перемещение выражений
Пока пользователи Xcode выделяют мышкой и копипастят, пользователи AppCode ставят курсор на выражение и двигают его целиком легким нажатием ⇧⌘↑ / ↓ :
Работает для циклов, функций, методов, классов, условий, в общем, почти для всего.
Многострочные литералы
Как превратить однострочный литерал в многострочный? В AppCode теперь достаточно нажать ⏎ :
Подсветка, автодополнение, анализ кода и все-все-все
Чем корректнее мы строим дерево символов, которое используется для подсветки, анализа кода, навигации и прочих функций IDE (даже для отображения переменных в отладчике), тем лучше и правильнее будет работать AppCode. В этом релизе мы решили несколько фундаментальных проблем, которые портили жизнь пользователям:
Objective-C/C/C++
Коллеги из CLion добавили стили именования кодовых конструкций для C/C++, а мы их получили еще и для Objective-C ( Preferences | Editor | Code Style | C/C++/Objective-C | Naming Convention) :
Запуск и отладка
AppCode теперь умеет присоединяться к процессам, запущенным не только на симуляторе, но и на устройстве ( ⇧⌘A → Attach to process ):
В настройки конфигураций запуска добавлена возможность выбора языка и региона приложения:
Пересчет переменных при отладке теперь можно запретить с помощью действия Mute Variables в контекстном меню:
Темы для IDE
Внимательный читатель уже заметил, что все скриншоты в посте сделаны с использованием новой темы оформления Dark Purple:
Темы IDE теперь можно делать самостоятельно, поэтому в репозитории плагинов кроме нескольких тем, сделанных нами, уже можно найти несколько пользовательских вариантов оформления. А до 3-го мая можно не только сделать свою тему, но и поучаствовать в конкурсе, недавно анонсированном нами.
Список недавно просмотренных / измененных участков кода
Есть несколько полезных действий для навигации к недавно открытым или измененным местам в коде:
Перемещение к последнему отредактированному участку кода вообще сложно переоценить, особенно когда редактируешь файл большого размера.
Теперь появился еще и список недавно просмотренных / измененных мест Recent Locations ( ⇧⌘E ):
Вот такой получился релиз. Все вопросы, пожелания и даже баг-репорты пишите прямо тут в комментариях — будем рады ответить!
Пришла СМС от AppCode: что это такое?
01.07.2020 2,984 Просмотры
В последнее время у многих владельцев смартфонов возникли вопросы из-за получения смс с кодами к различным приложениям. Люди стали часто спрашивать о том, что за сообщения приходят от Appcode, куда вводить полученные цифры и надо ли это вообще делать.
AppCode представляет собой программу, которая разработана компанией JetBrains. Она необходима для реализации ряда функций, например, «Отладчик», «Быстрый» и «Xcode». Приложение является платным, имеет закрытый исходный код и работает на различных платформах, в числе которых «Mac».
Однако что же делать с теми цифрами, что прислали в смс?
Во-первых, надо разобраться, почему их прислали. Если запрос был сделан самим пользователем, то здесь все логично и понятно. Цифровое подтверждение нужно скопировать в соответствующее окно программы. Это подтвердит, что использование осуществляется именно тем человеком, который совершал регистрацию учетной записи.
Однако если никаких запросов не делалось, то данное действие является или следствием технической ошибки или действиями злоумышленников, которые хотят получить доступ к данным того или иного пользователя. В этом случае смс надо просто удалить и заблокировать (по возможности) номер, с которого пришло смс.
В случае, когда первые два действия не принесут успеха, остается только одно: заблокировать сим-карту и зарегистрировать новый номер. Иногда спамеры специально устраивают подобные атаки, чтобы у них появилась возможность получить необходимый номер. Причин может быть множество: благозвучность цифр, номер легко запоминается и нужен какой-то компании и пр. Во всяком случае, следует понимать, что данная мера является крайней и сначала следует попробовать решить вопрос более мирным путем.