Делаем свою работу в Xcode чуточку эффективнее

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

    Интеграции :)

    Заинтересованных прошу под кат


    С чего начнем?



    Я советую начать с установки менеджера пакетов для Xcode — Alcatraz. Установить его можно выполнив всего одну команду в Terminal.app:
    curl -fsSL https://raw.github.com/supermarin/Alcatraz/master/Scripts/install.sh | sh
    


    Итак, перезапускаем Xcode, жмем Window-> Package Manager. Теперь мы получили UI для управления нашими плагинами. Уже хорошо (любители терминала могут продолжить делать все через консоль).

    Окно Alcatraz

    Импорты?



    Импорт файлов в Objective-C — довольно нудная операция. Представьте ситуацию: вы где-то по колено в коде, а тут вам нужно импортировать еще один класс. Вы скроллите до самого верха *.m файл или переходите в *.h. После этого пишите #import… и возвращаетесь обратно.

    Чтобы решить эту проблему — достаточно установить плагин Auto-Importer. Перезапускаем Xcode, начинаем вводить класс, который еще не импортирован, нажимаем Ctrl+Cmd+H, вуаля:
    image

    А теперь достаточно нажать Return и класс импортирован. По-моему, это очень круто.

    Надоел черный цвет?



    Консоль — мощный инструмент для дебага, но всегда не хватает возможности как-то выделить очень важные сообщения. С этим нам поможет плагин XcodeColors, который добавит в вывод цвета:
    image

    Как видно на скриншоте — синим я подсветил отправляемые из приложения реквесты (реализовано через NSURLProtocol. Если кому-то интересно, как реализовать подобное — пишите, сделаю отдельный пост), а красным подсвечены не обрабатываемые SSE event'ы.

    Для того, чтобы сделать подобное достаточно установить плагин и добавить в ваш *.pch файл строчку:
    #define LogRed(frmt, ...) NSLog((XCODE_COLORS_ESCAPE @"fg255,0,0;" frmt XCODE_COLORS_RESET), ##__VA_ARGS__)
    


    Как видно из кода:
    255,0,0 — RGB цвета (можно хоть радугу нарисовать в консоли, если постараться)
    LogRed — просто дефайн, чтобы в дальнейшем делать красные логи

    В итоге имеем:
    LogRed(@"My string: %@", string);
    


    На закуску



    Очень удобным оказался набор расширений для Quick Look, которые позволяют сразу форматировать JSON, отображать размер изображений, добавляют подсветку синтаксиса и многое другое.

    Надеюсь, что пост оказался полезен и я не потратил зря ваше ценное время. С радостью отвечу на любые вопросы в комментариях.
    Поделиться публикацией
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

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

    • НЛО прилетело и опубликовало эту надпись здесь
        0
        Если честно — не пользовался, расскажете чем лучше?
        • НЛО прилетело и опубликовало эту надпись здесь
            –4
            ИМХО выглядит он страшненько, а все его свистелки — дело привычки. Не знаю как сейчас, но раньше он ещё и проекты долго грузил.
            • НЛО прилетело и опубликовало эту надпись здесь
            0
            Да хорош, он же написан на Java :D
            Если вы печатаете быстро, то AppCode вас только задерживает при навигации по проекту.
              –1
              Что за бред вы говорите? Как Java может вас задерживать?
                0
                Зачем так грубо и неуважительно?
                А вы попробуйте. Год назад где-то пробовал для достаточно большого проекта, сразу же заметил тормоза при быстрой навигации по проекту.
                Почему Java? Не Native UI, а так же GC придадут тормозов.
                  –2
                  1. Слова «пробовал» и «для большого проекта» несовместимы.
                  2. Пробую регулярно.
                  3. Сомневаюсь, что вы писали хорошо.
                  4. Почему не native. Потому что нужна кроссплатформенность.
                  5. Паузы gc можно уменьшить так, что вы запаритесь искать логи.
                  6. Хватит предвзято относится к Java.
                  • НЛО прилетело и опубликовало эту надпись здесь
                      +1
                      Никто не спорит с этим. Хороший продукт, но с заметными тормозами по сравнению с XCode.
                      0
                      Сомневаюсь, что вы понимаете, о чем говорите.
                        0
                        Я Java разработчик, используя Idea и наверное знаю о чем говорю.
                          0
                          Где логика? Одно из другого не следует. Вы можете быть посредственным программистом, который слабо разбирается в системном программировании и во внутренностях Java. Но все же быть Java программистом, который использует IDEA.

                          Кстати, если вы Java программист, то откуда у вас познания Xcode и AppCode, и как вы могли их сравнивать? На каких проектах? Или вы чисто гипотетически считаете, что если все IDE для Java тормозные, то IDEA не тормозит, а значит и работает она так же быстро, как и Xcode?
                            –2
                            Just for fun сравнивал. Во внутренностях Java я довольно но не плохо разбираюсь. Откуда у вас информация про «все»? Предлагаю закончить этот холивар. И попрошу больше вас никогда не писать про тормознутость " java" не имея никаких аргументов по этому поводу.
                              +2
                              > Just for fun сравнивал.

                              Издеваетесь? А я открывал проект в полтора миллиона строк. В смысле работаю с таким проектом в Xcode уже довольно давно. Пробовал AppCode в течении недели. Своему сравнению я почему-то верю больше, чем вашему.

                              > Предлагаю закончить этот холивар.

                              Согласен.

                              > И попрошу больше вас никогда не писать про тормознутость " java" не имея никаких аргументов по этому поводу.

                              А я предлагаю вам не залазить больше в чужие темы и давать комментарии на своем опыте Just For Fun. ;)
              +1
              FuzzyAutocomplete очень крутой плагин для автокомплита. Не знаю как без него жить, помоему нужно добавить в статью.
                0
                Если честно, то шел в статью, чтобы увидеть его на первом месте в списке. FuzzyAutocomplete надо иметь обязательно, все остальное — опционально.
                  0
                  Почему-то до этого не встречал этот плагин. Исправим :)
                  0
                  могу передать привет создателю. Он как раз тут выступал и говорил что практически закончил версию с асинхронной подгрузкой рекомендаций, что не блокирует основной поток (в отличие от эппловской). Можете в гитхабе ветку стянуть. Проект кстати круто настроен — просто собрать его нужно и он кладет результат в папку с плагинами.
                  0
                  Использую BBUUtilitiesTuckAway и BBUDebuggerTuckAway — автоматическое сворачивание панели утилит и отладчика при наборе кода, очень удобно
                    0
                    www.raizlabs.com/dev/2015/03/spicing-up-xcode/
                    Очень рекомендую проглядеть эту статью) Тут много «эффективности» уже на уровень повыше. Парочка — стала ценными откровениями)
                      +2
                      P.S. небольшая личная рекомендация — избавляйтесь от автоимпорта во всех его проявлениях. Честный Dependency injection и жесткий контроль за зависимостями класса — делает код значительно более поддерживаемым и стабильным, удобным для тестирования.

                      Набивание руками импорта — просто еще один шаг подумать над тем — а так ли тебе нужно вызывать этот класс именно в таком виде именно тут.
                      +1
                      Как выше уже писали — попробуйте AppCode, у него есть триал. Я в последнее время открываю Xcode только ради IB. Писать же в нем код — просто потеря времени.
                        0
                        Грамотно и любовно настроенный XCode проигрывает AppCode в очень небольшом спектре задач. И примерно в столь же небольшом — выигрывает.
                        Могли бы вы описать, что делается по вашему мнению в AppCode существенно комфортнее? Интересуюсь для себя — для того, чтобы как-нибудь самому попробовать Апкод, а не только с коллегами обсуждать
                        • НЛО прилетело и опубликовало эту надпись здесь
                        0
                        А что там со Swift в AppCode? В свое время ушел с AppCode именно из-за возможности получать все самое свежее от эпла. Собственно не жалею. Из плагинов установлены XVim и FuzzyAutocomplete. К навигации по проекту быстро привыкаешь, как оказалось, табы и не нужны вовсе :)
                          +1
                          Вы так говорите, как буд-то в xCode совсем нету табов.
                            0
                            они как-бы есть, но работают совсем не как в других програмах.
                            Я много програмирую в Visual Studio и когда надо делать что-то для iOS отсутствие табов в xCode очень напрягает, но терпеть можно :)
                            AppCode в этом плане намного лучше.
                              0
                              Как нету-то? Есть.
                            0
                            Со Swift там пока хуже, чем с Objective-C.

                            Совсем недавно появились подсказки по методам, сворачивания блоков кода нет до сих пор (но можно отмечать блоки вручную Cmd + .) и не хватает индикации наследования методов.
                            Также еще путается при неявном объявлении типа переменной и не показывает, где именно словил ошибку распаковки optional переменной, как Xcode.

                            Это что напрягает лично меня. Но обновления выходят регулярно, каждый раз что-то допиливают. Так что, Xcode использую только для работы с Interface Builder и assets.
                            0
                            Давно использую плагины в Xcode, но про Auto-Importer узнал от Вас.
                            Спасибо!

                            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                            Самое читаемое