Мобильный кот
2.72K subscribers
88 photos
3 videos
2 files
87 links
Все, что считаю важным про жизнь мобильного разработчика

Шкаф с материалами
https://t.me/cat_with_mobile_cabinet
Download Telegram
Шорткаты Xcode. Часть 1

#пишемхорошийкод #инструменты #xcode

Общаясь с разработчиками довольно часто я вижу (и очень удивляюсь этому), что даже матерые девелоперы, пришедшие в iOS с богатым опытом других языков, совершенно не используют горячие клавиши при работе в Xcode. При этом, сколько раз вы видели огромные списки шорткатов? Я думаю видели и не один раз, но из-за размера этих списков прохожили мимо. Я считаю, что:

1. Шорткаты обязательно нужно использовать, это один из показателей профессионализма.
2. Вводить их в необходимо по чуть-чуть, иначе вы их просто не будете использовать.

Сейчас предлагаю попробовать в действии три базовых шортката, которые позволят быстрее редактировать код:

Переместить указатель в начало/конец строки: ⌘ + → или ⌘ + ←
Переместить указатель на слово влево/вправо: ⌥ + → или ⌥ + ←
Выделить текст: комбинации выше + ⇧

Попробуйте их в действии.
Например, чтобы полностью удалить какую-либо строку строку:
1. Переведите указатель в нее
2. Нажмите ⌘ + ← (перейди в начало строки)
3. Нажмите + ⌘ + → (выдели весь текст до конца строки)
4. Нажмите Backspace (удали выделенный код)
Xcode 12.3 - Проблема с периодическим/постоянным зависанием среды разработки

#xcode

Все чаще в сети и тематических чатах появляются сообщения от разработчиков о внезапном зависании Xcode 12.3. Он просто перестает отвечать, постоянно крутится индикатор загрузки. Писать код в таких условиях становится просто невозможно.

Решение: Как оказалось, вся проблема в беспроводной загрузке приложений на физическое устройство. До появления нового патча нам необходимо отказаться от этого способа загрузки, отключив его в окне настроек Устройств и симуляторов.
⌨️ Организация рабочего пространства Xcode

#xcode #продуктивность

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

- Откройте проект в Xcode, запустите симулятор.

- В главном меню Xcode выберите пункт Window - Tile Window To Right Screen.

- Выберите симулятор в качестве окна, отображающегося в другой части экрана.

- Измените ширину/соотношение экранов

Profit! Результат на скриншоте выше

P.S. Актуально даже на маленьких экранах, так как позволяет значительно уменьшить размер симулятора и убрать док.
TestFlight. Как отключить запрос о соответствии экспортным требования

Каждый раз выкладывая приложения приходится заходить в AppStore Connect и нажимать "Нет" в этом окне (см. рис.), чтобы выложить приложение? А его очень просто отключить.

Для этого в Info.plist создайте ключ App Uses Non-Exempt Encryption со значением NO. После этого все сборки будут автоматически становиться доступными для пользователей.

За подсказку спасибо @Higderin

Другие советы по тегу #xcode
🔧LLDB - это низкоуровневый отладчик (debugger), входящий в состав базового элемента компилятора Swift - LLVM. Многие из нас создают программы не зная о том, что могут использовать его возможности при отладке, об этом мы сегодня и поговорим. LLDB имеет множество команд, которые можно использовать прямо в консоли Xcode.

Как только вы приостановили выполнение приложения (например по сработавшему брейкпоинту), в консоли появляется надпись (lldb), сообщаяющая, что вы можете вводить требуемые команды.

1️⃣Вывод значения параметра
Команды print и po, например
(lldb) po UIApplication.shared.delegate.someGlobalSet

При этом в консоли будет выведена полная структура объекта. Команды po и print имею немного отличающийся формат вывода.
po ...
▿ 2 elements
- 0 : 5
- 1 : 6

print ...
(Set<Int>) $R7 = 2 values {
[0] = 5
[1] = 6
}

2️⃣Изменение значение параметра прямо в ходе исполнения
Команды expression и e, например
(lldb) e parameterName = someValue

Эта команда позволит изменить значение параметра parameterName на someValue. При этом прямо в консоли присутсвует автодополнение, а также происходит проверка типов и изменяемости параметров.

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

3️⃣Текущий состав фрейма стека текущего потока
Команда frame, например
(lldb) frame variable

Просто выводит простыню-структуру текущего фрейма (если не помните, что это, то читайте про стек, кучу и память).

Эти команды лишь для затравки вашего интереса. LLDB предоставлет стооолько всего интересно, что я настоятельно рекомендую вам продолжить знакомтсво с ним самостоятельно. Например с помощью этой статьи или этого видео.

Другие полезные штуки по хэштегам #xcode #инструменты #пишемхорошийкод