Вся суть мака.

Сегодня у нас развлекательный пост, в котором наглядно демонстрируются преимущества ноутбука одной компании над ноутбуком другой компании.

Какао-Макао.

Кто в детстве не пил какао? Я думаю, что пили все. Я вообще мог пить три раза в день: на завтрак в обед и ужин. Потом какао сменилось на кофе, а потом вместо хорошего черного кофе полился не менее хороший и не менее черный чай.

Но какао в моей жизни осталось, оно просто приобрело другую форму.

Встречайте крайне необходимую вещь для любого iOS разработчика — CocoaPods.

CocoaPods — это отличный инструмент для использования сторонних библиотек в своем приложении. Причем работать с CocoaPods настолько просто, что даже ребенок разберется за 15 минут.

Изначально CocoaPods, конечно же, заточен под работу с Objective-C, но это ведь не значит, что и с языком Swift он не будет взаимодействовать (просто нужно добавить в проект bridge-файл, через который подключаются библиотеки).

В общем: с использованием CocoaPods возможности приложений стремительно расширяются, а разработчику становится намного легче добавлять новые функции.

Ну, и конечно, статья про CocoaPods на «Хабре»: CocоaPods — мощное средство в руках Objective-C разработчика

Заряжаем Xcode.

Этот пост является вольным переводом статьи Xcode, Supercharged.

Для нас, как инженеров, очень важно привыкнуть к инструментам, которые мы используем в работе каждый день, но никогда не стоит останавливаться на их изучении. Всегда найдутся скрытые возможности, которые помогают нам работать быстрее и концентрироваться на цели, а не на средствах ее достижения. Я покажу некоторые «фишки», которые обнаружил за время своей работы в среде разработки Xcode. Надеюсь, они и вам пригодятся.

1. Ctrl + цифры

В Xcode есть быстрая навигация по всему проекту: от корневого каталога до файлов и методов в них. Просто нажмите Ctrl + цифры от 1 до 6 и сами увидите. В появляющихся окнах также работает поиск.

2. «Фишки» брэйкпоинтов

Брэйкпоинты — прекрасны. Их тоже можно «зарядить». Вы знали, что можете выполнять LLVM-комманды и даже воспроизводить алерты при срабатывании брэйкпоинта? Причем вы можете комбинировать это с беспрерывным выполнением (когда вам нужно понять, что метод вызывается, но не нужно останавливать приложение).

3. Нечеткий поиск где угодно

Не можете вспомнить где видели что-то в коде? В Xcode есть нечеткий поиск по всему проекту — Cmd+Shift+O. Ключевой момент именно в нечеткости: если результатов поиска слишком много — просто продолжайте печатать пока не найдете то что ищете.

4. Редактирование в области видимости (in Scope)

Поставьте курсор на имя метода или переменной и нажмите Cmd+Ctrl+E. Обратите внимание как выделено каждое упоминание этого слова. Достаточно изменить это имя один раз и Xcode изменит его везде в классе, в котором оно используется. Этим очень удобно пользоваться, когда вам нужно быстро переименовать какую-то переменную или метод. Также это работает для локальных переменных в их областях видимости. Это особенно удобно, когда вы дали название свойству/методу, а потом передумали.

5. camelCase выделение

Эта «фишка» отлично работает в сочетании с предыдущей. В Xcode можно быстро выделять camelCase-текст с помощью Ctrl+Shift+стрелка вправо/влево. Вы просто быстро выделяете слова в названии переменной. Это очень удобно. Обратите внимание, что это может конфликтовать с настройками системы, особенно с переключением между рабочими областями в OS X.

6. Простое переключение между кодом и навигатором

Хотите быстро переключиться из редактора в навигатор файлов? Cmd+Shift+J и вы уже там. Хотите обратно в редактор? И чтоб не тянуться к мышке или трекпаду? Пожалуйста: Cmd+J. Бонусом к этому идет быстрый поиск файлов в навигаторе. Просто нажмите Cmd+Option(Alt)+J.

7. Брэйкпоинты на переменных

Поставьте брэйкпоинт на строку с объявлением переменной и Xcode будет там останавливаться каждый раз когда значение переменной изменяется (на самом деле, в данном примере брэйкпоинт срабатывает, потому что в этой же строке описан метод didSet(…) {…}).

8. Быстро перейти к определению

Вы ведь нажимали Cmd и кликали мышкой по названию переменной или метода, чтоб разобраться что это такое? Поставьте курсор в текст и нажмите Cmd+Ctrl+J. Это также работает и для ваших собственных определений.

9. Различия с последнего коммита

Кому нужны сторонние git-инструменты, если можно посмотреть различия прям внутри Xcode? Cmd+Shift+Alt+Enter(Return).

10. Быстрая работа с брэйкпоинтами

Нажмите Cmd+\ чтоб поставить или убрать брэйкпоинт в строке в которой находится курсор. Также можете использовать Cmd+Y чтоб включать-выключать брэйкпоинты во всем проекте.

Эти комбинации клавиш стали частью моей повседневной работы и помогли ускорить написание кода и внесения изменений. Если же какая-то из этих комбинаций конфликтует с другой настройкой, которую вы сделали раньше, вы всегда можете их изменить. Просто нажмите Cmd+,(запятая) и зайдите в «Key Bindings». Удачного вам фаст-программинга!

О танцах.

Сегодняшний пост будет не очень серьезным, но тем не менее — довольно важным. Как правило, танцы (особенно с бубном) — это прерогатива системных администраторов. Но и программистам они не чужды. Вот вам несколько наглядных примеров, которые помогут повысить скиллы:

О паттернах.

Без паттернов в разработке никуда. Но сегодня уже не обязательно читать нудную «Банду четырех» (я честно пытался, но кроме слова «нудотина» никаким другим эту книгу охарактеризовать не могу).

Откуда же получить знания сегодня, причем в понятном и удобоваримом виде? Именно об этом сегодняшний пост.

Первая рекомендация: книга Андрея Будая «Дизайн-паттерны — просто, как двери». Простым и понятным языком всего на 90 страниц описаны основные паттерны проектирования, примеры из реальной жизни и примеры программного кода. Это лучшая книга по этой тематике, на которую я натыкался.

По теме iOS разработки есть интересные примеры реализаций паттернов на Swift. Тут на помощь приходит сообщество iOS Dev Course а если конкретнее, то вот эта серия видосов:

А на закуску — еще два, которые помогут прокачаться и в MVC, и в VIPER:


Ссылки, ссылки, ссылочки.

За последнее время у меня собралось много материалов, которые я, в первую очередь, хотел бы сохранить для себя. Ну и заодно — поделиться с общественностью, может кому-то это будет полезно, может кто-то узнает что-то новое или посмотрит на какую-то вещь другим взглядом.

Начнем. Сначала у нас очень хороший видос про команды терминала. «Маководы» в целом, и iOS разработчики в частности, регулярно пользуются терминалом, поэтому небольшая обучалка командам точно будет не лишней:

На втором месте — отличная статья с «Хабра» на тему разработки: 7 смертных грехов программного проекта. Почитайте обязательно, много интересного и полезного.

И, конечно же, Архитектурные паттерны в iOS все с того же «Хабра», куда ж без них. Не MVC единым как говорится. 🙂

Ну и напоследок — немного мотивации от Стива:

А от себя добавлю: учитесь, пока вы учитесь — вы молоды.

Все в первый раз. 

Давно ничего не писал в блог, около трех месяцев, но я исправлюсь. Обещаю писать чаще и по существу, тем более, что материалов накопилось немало.

За время отсутствия произошло много важных вещей, но я остановлюсь на некоторых, которые произошли со мной впервые: Apple опубликовал в App Store мое первое приложение, я закончил свои первые курсы по iOS программированию и нашел свою первую же работу iOS программистом. И, естественно, получил первые деньги за программирование для iOS устройств. И, скажу я вам, это прекрасное чувство, когда что-то происходит в первый раз.

Вспоминаю рассказ Сухомлинского об учителе и первоклашках: учитель спрашивал у детей чего они в своей жизни еще не видели: восхода зари, как соловей пьет утренню росу, что-то про шмеля (не помню уже что), и говорил им, что они счастливые, потому что у них еще будет возможность все это увидеть впервые.

И Сухомлинский был прав. Человек действительно ощущает счастье когда получает первый опыт в чем-либо или первые ощущения, которых ранее не знал.