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

Регистрация в РКН: https://gosuslugi.ru/snet/67b464d698a28c4e866d827a

Размещение рекламы: @tanyasanovna
Download Telegram
Как в Airbnb улучшают перфоманс SwiftUI

Пока самые слабые отказываются от SwiftUI из-за проблем с перфомансом, Airbnb пытается решать проблемы с ним. В сегодняшней статье они рассказывают про то, как работает diffing алгоритм и как его контролировать.
👍44👎14🔥3
FaultOrdering – ускоряем запуск приложения

Как вы помните, Sentry недавно купили Emerge Tools. Неожиданно, после этого они решили выложить свой ранее платный инструмент в опенсорс. FaultOrdering – пакет, автоматически генерирующий Order-файлы во время прогона UI-тестов. А использование этих файлов позволяет ускорить запуск приложения где-то на 20%.
👍344
Опыт со Swift Package Registry

Swift Package Registry – фича SwiftPM, позволяющая вам поднять собственный сервер для раздачи пакетов. Это важно в следующих случаях:

👉Вы хотите ускорить пайплайны за счет того, чтобы не клонировать каждый раз Git репозитории
👉Вы боитесь supply chain атак
👉Вы боитесь, что репозитории с пакетами, на которые вы полагаетесь, в какой-то прекрасный день удалят

В статье подробно разбирается опыт развертки своего Swift Package Registry поверх Artifactory.
👍30
Reaper – SDK для поиска мертвого кода

Sentry продолжают выкладывать в опенсорс инструменты, полученные в наследство после покупки EmergeTools. В этот раз очередь Reaper – инструмента, который помогает отслеживать код, который никогда не используется в проде.
👍386
Вкатываемся в Container

Один из самых важных анонсов WWDC – Container, инструмент, позволяющий собирать Linux контейнеры на macOS. В статье разбираемся, как собрать контейнер с Vapor приложением, запушить его в удаленный реестр и задеплоить.
👍172🔥2👎1💅1
Approachable Concurrency

В Xcode 26 появилась возможность активировать несколько фичей Swift 6.2 под общим зонтиком approachable concurrency. В статье разбирается, в чем суть каждой из них.
🔥14👍4👎3
Почему Gmail весит 700мб

За последний год приложение Gmail прибавило в весе 100мб, и теперь весит все 700. EmergeTools разбирают, откуда берется это астрономическое число в приложении, в котором, казалось бы, всего пара экранов.
💅275🔥4
Как использовать Gemini в Xcode

В Xcode 26 можно подключать любые LLM, если у вас есть их API ключ. Но с Gemini есть нюанс – их URL схема не соответствует тому, чего ожидает Xcode. При этом у Gemini довольно интересные модели: огромное окно контекста, низкие цены, хорошие рейтинги в бенчмарках по разработке. В статье разбирается, как с помощью нескольких хитрых костылей все-таки подключить модели Google к Xcode.
👍231👎1
Что нового в тестировании

Продолжаем серию глубоких разборов того, что нового появилось в бета-версиях Xcode, iOS и Swift. В этот раз – про Swift Testing, XCTest и автотесты.

6 years on, there is still no way to unit test code using SwiftUI. The official guidance remains use UI Automation Tests and SwiftUI Previews. Unsurprising, but extremely disappointing
👍15
UI Kit для iOS 26

Подъехали обновленные наборы компонентов в Figma и Sketch для iOS и iPadOS 26.
🔥1
Java интероп в Swift 6.2

Как вы помните, в конце прошлого года Apple анонсировали нативный интероп с Java. Он помогает и самим Apple, которые постепенно начинают писать на Swift новые высоконагруженные сервисы, и сообществу, которое посматривает на Server-side Swift.

Так вот, держите хороший обзор того, как этот интероп работает в последней версии Swift, и как настраивать окружение, чтобы все работало.
👍252
Как упаковать Haskell в Swift Framework

Продолжая тему интеропов, зайдем в гораздо более странную сторону – Haskell. В статье разбирается, как обернуть библиотеку на этом языке в Swift фреймворк – на удивление все работает довольно просто.
🔥11👎2
Как в Swift работает мьютекс

Начиная с iOS 18, у нас появился Synchronisation framework. Помимо прочего, он дает поддержку мьютексов, которые хорошо заточены на работу со Swift Concurrency. В статье разбирается, как с ними работать, в чем отличие от других типов локов и акторов.
🔥244👎2💅1
Даем Claude Code доступ к SwiftUI

Claude Code – самый хайповый сегодня инструмент для AI-assisted разработки. Реализация максимально простая – консольный интерфейс, максимально тонкая прослойка между вами и моделями от Anthropic, и доступ к MCP и другим консольным тулам.

Полезнее всего агентв становятся, когда у них есть доступ к результатам выполнения написанного кода. В статье разбирается, как снепшотные тесты могут помочь агенту итерироваться по тому, какой интерфейс получается, и докручивать его до идеала.
6👍6👎5
Новый API для подписок – Retention Messaging

Apple анонсировали новый API для приложений с подписками. В чем суть – теперь когда пользователь хочет отменить подписку, вы можете показать ему кастомизируемое сообщение. В него можно включать свой текст, изображение, предложение альтернативной подписки, или даже скидку. Короче говоря, попробовать убедить его не уходить с концами.

API пока доступен только по приглашениям, оставить запрос можно тут.
15👍4🔥2
Как повысить качество SwiftUI-приложений через тестирование?

На открытом уроке «Покрываем проект на SwiftUI Unit-тестами и Snapshot-тестами» 6 августа в 20:00 МСК мы разберем, как минимизировать ошибки и улучшить качество кода с помощью тестирования. Убедитесь, как правильно разделить визуальную часть и бизнес-логику, освоите принципы чистых тестов и научитесь использовать Snapshot-тесты для UI-слоя.

Получите чёткое понимание, как тестировать SwiftUI-приложения, избавитесь от рутины при написании тестов и ускорьте разработку.

Присоединяйтесь и получите скидку на курс «iOS Developer. Professional»: https://otus.pw/Zbd3W/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
👎24👍1
Swift-Erlang Actor System

Так, про Java и Haskell поговорили на прошлой неделе, теперь настала очередь Erlang. Новая библиотека позволяет Swift программам подключаться к распределенному Erlang кластеру. Что это значит – акторы на Swift и на Erlang могут работать и общаться друг с другом, как будто они работают в одной распределенной системе – отправлять друг другу сообщения и вызывать функции.
👍12