Как стать автором
Обновить

Комментарии 19

Спасибо, большая часть статьи была известна, но кое-что полезное для себя я узнал.
Как относитесь к AppCode? Я вот перешел на него и с каждым днем радуюсь все больше. Не считая, конечно, IB. Он в AppCode пока что не очень. Но уже определенно быстрее аналога из xCode, такие чудеса :)
Мне время от времени о нем напоминают, но пока что не накопилось критической массы хотелок того, чего мне не хватает в XCode) по сути, медлительность IB — это самая большая из претензий, а остальные я даже толком и не вспомню.
Однако было бы интересно узнать, чем лично Вы пользуетесь более менее регулярно в AppCode из того что проблематично в XCode.
Переодически переключаюсь в AppCode для:
— Search & Replace по всем файлам
— Поиск неиспользуемого кода
Отличный рефакторинг, хороший автокомплит, кодогенерация простых вещей вроде decription/encodeWithCoder, неплохие подсказки по коду, ну и в целом за счет множества удобных и настроенных «из коробки» вещей работа становится намного легче и приятней :)
Нуу… Автокомплит как раз стал ровно тем, о котором я мечтал с плагином FuzzyAutocomplete, кодогенерация решается собственной, постепенно вырастающей библиотекой сниппетов…

Но рефакторинг и аналитика качества кода в AppCode, похоже и правда лучше) Спасибо! Плюс один довод таки провести какое-то время за ним.
да, чуть не забыл. Еще из плюсов работа с git:
очень классный GUI для всего этого: удобно смотреть диффы, историю коммитов и т.п.
В Xcode GUI для гита тоже весьма неплох. И диффы, и блейм, и история… Всё есть.
Хотя бы на уровне горячих клавиш и простого просмотра списка измененных файлов Xcode уныл, увы :(
Чистая правда) Но, если честно, я не согласен с позицией, что IDE должна быть суперкомбайном, который может вообще все, потому что специализированный гит-клиент и терминал все равно могут лучше. Их и использую)
нене, не подумайте что я говорю о комбайне, но банальное сравнение диффов и коммит с пушем удобней сделать 2 комбинациями клавиш, чем тыкая мышкой, вот и все :)
Статья добротная, стал «хокаге» по Xcode. Узнал много нового, спасибо.
А вроде как неспроста не создается вложенных папок? Кажется оно так быстрее читается с файловой системы или еще что то
Такое возможно, но
-на небольших проектах и в эпоху SSD это совершенно точно не имеет значения.
-на большом проекте я существенных различий в скорости/удобстве работы до и после тоже в общем-то не увидел.
IBDesignable

Ещё IBInspectable для любых классов забыли упомянуть. Xcode 6+.

В каждом проекте обязательно есть .pch файл

Xcode 6 его не создаёт автоматом, но можно добавить вручную.

Это большая и взрослая IDE, с помощью которой можно разрабатывать и на других языках

Можно, но на практике даже Sublime Text нередко лучше справляется с написанием кода. В Xcode плохо работает выравнивание для не C-подобных языков.

От себя добавлю очень полезные шорткаты для IB:

Cmd+Shift+= — подогнать констрейнты под текущий размер вью;
Cmd+= — подогнать размер вью под её содержимое.

Ещё очень удобно выучить шорткаты для манипуляции рабочим пространством типа Cmd+Alt+0, Cmd+Enter и тп. И не забывать про Ctrl+1..6 и Cmd+1..8.
Спасибо за правки про версию XCode — забыл их добавить! За шорткаты для констрейнтов отдельной спасибо)
Про выравнивание для не С-подобных языков вы правы, однако есть неплохие плагины для стилей других языков. Надо будет поподробнее посмотреть на Sublime и на настройки такого рода вещей в XCode.
7.User defined runtime attributes

При этом свойства должны быть при объявлении помечены атрибутом IBOutlet в заголовочном файле.


Неправда, сколько раз я ставил туда layer.cornerRadius и всё было нормально. Я даже затрудняюсь представить, как в IBOutlet через этот механизм можно что-то записать. Обычно же IBOutlet это UIView. Конечно, можно и сделать IBOutlet из Object типа NSNumber или NSColor и писать туда через этот механизм, но это скорее из области извращения.
Да, вероятно вы правы — я проверил, действительно IBOutlet модификатор не обязателен и ключ может быть не тривиальным. Исправляю, большое спасибо.
4.Derived data Exterminator

А я просто в качестве директории для Derived Data указал /tmp.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации