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

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

Размещение рекламы: @tanyasanovna
Download Telegram
На SwiftUI уже написано достаточно много кода и приложений, чтобы можно было выделять часто встречающиеся антипаттерны. В статье разбирается несколько групп ошибок, ведущих к ухудшению фактического и воспринимаемого перфоманса приложений.
На прошлой неделе я выкладывал статью про weak self в Swift. Держите еще один материал по теме, предлагающий три правила по работе с self в замыканиях:
1️⃣A strongly-retained self isn’t always a retain cycle
2️⃣A weakly retained self will never be a retain cycle
3️⃣Upgrade self to strong at the top of closures to avoid weird behavior
Если вы привыкли использовать функцию addSubview для добавления вьюшек в иерархию, в SwiftUI вам надо будет переучиваться на использование transitions, которые обрабатывают добавление/удаление вьюшек автоматически. Держите подробную статью от objc.io про Transitions в SwiftUI, с хорошими схемами и примерами кода.
Хороший гайд по тому, как стать техническим инфлюенсером. Несколько запомнившихся мыслей:
📌Большинство профессионально успешных людей не заметны в онлайне, не стоит верить своему пузырю.
📌Самая полезная метрика – количество людей, которые обращаются к тебе за советом.
📌Выбирайте самые топовые свои материалы и прорабатывайте для них сертезный план дистрибуции. Каналов получения новых читателей очень много.
📌Вы всегда можете присосаться к чужому каналу дистрибуции – например, написав гостевой блогпост (я тоже, если что, с радостью выложу ваши статьи)
Apple начали рассылать некоторым разработчикам письма с уведомлением о том, что их приложения будут сняты с публикации через 30 дней из-за того, что они не обновлялись продолжительное время. Какой именно срок становится триггером – пока неизвестно, но в примерах говорят про два года.
Когда вам нужно проиграть звук в приложении, самый простой вариант – создать инстанс AVAudioPlayer с нужным url и использовать его. Но в большинстве случаев стоит подумать над тем, как проигрываемый звук должен синхронизироваться с контекстом. Например, останавливать музыку в других приложениях, пока ваше проигрывание не закончится. В этом помогает AVAudioSession, разные режимы работы которого разбираются в этой статье.
Координаторы устарели. Да здравствуют Навигаторы! Автор статьи описывает свой подход к реализации навигации в приложении: типобезопасный, отделяемый от бизнес-логики, позволяющий легко расширять архитектуру. Если найдете отличия от координаторов, дайте знать.
MockingKit – это Swift библиотека для создания удобных динамических моков протоколов и классов. В отличие от моков, создаваемых вручную, в этом случае не придется реализовывать внутреннюю логику руками. Моки автоматически будут записывать, кто и сколько раз к ним обратился, и какую информацию передал.
Environment в SwiftUI работает как словарь, в котором каждому ключу соответствует определенный тип данных. Например, isEnabled гарантированно содержит Boolean, а font Optional<Font>. Держите Gist с реализацией аналогичной структуры данных, и статью про особенности ее использования.
Любое приложение, которое делает https запросы, спамит в консоль логами вида [boringssl] boringssl_metrics_log_metric_block_invoke(151) Failed to log metrics. Автор статьи раскапывает причину их появления с помощью дизассемблера и находит способ, как их можно заглушить.
SwiftNIO в ближайшем релизе дропают поддержку CocoaPods, с рекомендацией всем пользователям переходить на SPM. Основная причина – релиз в CocoaPods довольно трудоемкий, требует поддержки кучи podspec и постоянного разбора проблем подов. Кажется, первая ласточка того, что использование библиотеками CocoaPods будет постепенно снижаться.