iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT
12.4K subscribers
654 photos
64 videos
3.95K links
Самые интересные статьи, видео и новости, связанные с iOS разработкой. Не больше трёх материалов в день.

Лучшее iOS сообщество в Телеге: @iosgt

Размещение рекламы: @tanyasanovna
Download Telegram
Claymorphism (клейморфизм в переводе, наверное) – новый тренд в дизайне интерфейсов. Его основные отличительные черты – псевдо-3D элементы интерфейса, активное использование теней и ярких цветов. Детальнее про стиль, его отличие от плоского дизайна и скевоморфизма можно почитать тут.
Вместе с версией Swift обновилась и лучшая книга про него – «Advanced Swift» от objc.io. В новом издании:
📌Добавили главу про Swift Concurrency
📌Доработали контент про property wrappers, function builders, протоколы и дженерики.

Обновление бесплатное для всех, кто покупал предыдущие версии.
В iOS 15 появился протокол FormatStyle, который сильно упрощает локализацию различных типов данных, включая свои собственные. В статье приводятся примеры его использования с датами, единицами измерения, числами и кастомными типами.
В Xcode 13.3 появилась новая утилита `xcdebug`, которая подключается к вашему приложению, запущенному через Xcode, прямо из командной строки. Документации у Apple пока нет, примеров использования тоже, поэтому делитесь вашими кейсами, если будете пробовать!
Merge queue – это практика работы с Git, которая облегчает жизнь с большим количеством веток, в которых меняются одни и те же файлы.

В чем суть проблемы – у вас может в один и тот же момент времени висеть сразу несколько веток с зелеными тестами относительно текущего состояния main. Но как только одна из веток будет слита, все остальные станут красными.

Merge queue решает проблему следующим образом. Все PR попадают в единую очередь. Валидность кода в PR проверяется относительно main, в который будут слиты все предыдущие ветки из очереди. Если PR остается зеленым, то он сольется автоматически. Если нет – то либо заблокирует очередь, либо будет автоматически выкинут из нее.
В Xcode 13.3 появился новый режим работы билд-системы, который может существенно ускорить сборку некоторых проектов. Чтобы его активировать, используйте следующий флаг:

defaults write com.apple.dt.XCBuild EnableSwiftBuildSystemIntegration 1
Синтаксис регулярок – это ад. Мало кто способен читать их и, тем более, писать, без использования сторонних сервисов валидаторов. Команда Swift внесла пропозал, который добавит в язык новый DSL для составления регулярок. Выглядит не фонтан, но часть проблем в работе с regexp решит.
VK подготовили Weekend Offer для мобильных разработчиков с бонусом в виде дополнительной зарплаты на старте. Они принимают заявки с 21 до 31 марта: в течение этого времени с вами свяжутся и введут в курс дела. Ищите все подробности тут. Там же можно и заявку отправить. Удачи!
Все знают C как простой и довольно предсказуемый язык. Но и в нем есть свои паззлеры и неочевидные возможности. Вот список нескольких интересных сниппеты.
Представим на секунду, что мы живем в старом мире и можем купить себе новую технику Apple. Купили бы что-то из них?
Anonymous Poll
16%
Оба
16%
Только Mac Studio
11%
Только Studio Display
37%
Ничего
20%
Посмотреть результаты
Lyft – один из самых крупных адоптеров Bazel среди команд iOS разработки. Держите подкаст, в котором главный за Bazel в Lyft делится их опытом:
📌Как команда живет с Bazel и монорепами
📌Как Lyft заадоптил Bazel
📌Как команда поддерживает конфигурацию билда
📌Что такое Bazel в целом
📌Как вкатиться в Bazel
Apple на App Review:
«У вас в приложении есть SafariViewController, а значит вы можете показывать любой контент, ставьте 17+ приложению»

Тоже Apple:
Удобный сервис для того, чтобы вспомнить размеры экрана и различных UI элементов для любого устройства от Apple.
Бывает, что при работе со SwiftUI начинает постоянно появляться сообщение «Automatic preview updating paused». В статье разбирается, откуда появляется эта ошибка, и как от нее избавиться.
История рефакторинга старого приложения Uber длиною в год. Автор честно рассказывает про накопившийся к тому моменту техдолг, неудачные попытки рефакторинга и компромиссы, вызванные принятыми архитектурными решениями.
Разбор логики того, как в SwiftUI происходит управление жизненным циклом View и привязанного к ним стейта. Особенно интересно там все работает у списков.
Продолжим погружаться в проблемы больших команд мобильной разработки. Ребята из Lyft рассказывают, как у них организован мобильный CI. Из интересного:
📌Вся конфигурация CI описывается в вендоронезависимом конфиге
📌Промежуточная абстракция позволяет на каждый коммит дергать разных агентов и разных провайдеров CI
📌Все живет на self-hosted машинах
📌Список задач, которые надо дернуть для каждого PR, генерируется на лету после анализа содержимого PR