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

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

Размещение рекламы: @tanyasanovna
Download Telegram
Blend modes в SwiftUI

Гайд по тому, как работают разные режимы смешивания цветов в SwiftUI, и какими формулами они описываются.
Что нового в UI тестах в Xcode 16

👉Функция waitForNonExistence(withTimeout:), которая позволяет привязаться к исчезновению какого-то элемента.
👉Функция wait(for:toEqual:timeout:), которая дает привязаться к моменту, когда свойство элемента будет равняться определенному значению.
Проблемы использования NSCopying со Swift

Из-за особенностей того, как в Objective-C работают designated initializer'ы, наследование от классов, реализующих протокол NSCopying, в Swift может привести к неприятным крешам. Инженеры PSPDFKit рассказывают о том, как их можно попробовать обойти.
This media is not supported in your browser
VIEW IN TELEGRAM
Как принципы дизайна реализуются в конкретных решениях

Очень крутой обзор приложения Family, крипто-кошелька с топовым дизайном и анимациями. В посте разбираются все принципы дизайна, которым следовала команда, и то, в какие паттерны интерфейса и анимаций они превращались. Если вы ищете вдохновения – рекомендую!
Лонгрид про макросы

Огромная статья про то, как работают макросы в Swift: их роли, реализация конкретных макросов, устройство библиотеки SwiftSyntax, инструменты для их тестирования и влияние на перфоманс проекта.
Латтнер считает Swift слишком сложным

Крис Латтнер недавно дал интервью, в рамках которого прошелся по Swift:

👉Swift, the original idea was factor complexity (…) massively failed, in my opinion (…) Swift has turned into a gigantic, super complicated bag of special cases, special syntax, special stuff.
👉instead of fixing the core, what the team did, both when I was there, so partially my fault, but also subsequently, is they started adding all these special cases (…) a lot of this stuff got added under extreme time pressure to enable a feature like #SwiftUI. And there's a bunch of stuff that feeds into that, as well as just the language gets more and more and more and more complicated.
Критика data race safety

Критику сложности Swift, поднятую Латтнером, продолжает Алекс Гребенюк, автор Nuke и Pulse. Swift 6 с data race safety и компиляторными ошибками, которые только мешают в простых приложениях и перекладывает на плечи программиста кучу работы, и делает опыт работы с языком только хуже. Это идет вразрез с изначальными планами Apple по созданию языка, дружелюбного к разработчикам, быстрого и простого.
Как создать альтстор

Q&A с авторами AltStore, первого официального стороннего стора, появившегося в EU.

👉Как магазин заводится с технической стороны
👉Особенности распространения приложений через такие магазины
👉Отличие процессов нотаризации заливки приложений от обычного
👉Платежные опции для приложений
👉Adult контент
Используем SwiftUI из CLI

Пример того, как с помощью класса ImageRenderer из SwiftUI можно сделать консольную тулу, которая будет добавлять бейджи на иконку приложения.
Live Activity в Uber

Uber рассказали про свой опыт разработки Live Activity. С технической стороны все довольно тривиально, а вот продуктовые результаты интересные:

👉На 2.3% меньше отмен заказов водителем
👉На 2.1% меньше отмен заказов пассажиром

Получается, что благодаря более прозрачному статусу заказа уменьшаются шансы того, что пассажир забудет про такси.
Swift Homomorphic Encryption

Apple выпустили новую официальную библиотеку для гомоморфного шифрования. Если не вдаваться в детали, то это такой метод шифрования, который позволяет выполнять операции над секретными данными без знания ключа шифрования. Например, это помогает вынести тяжелые вычислительные операции на сервер, не нарушая при этом приватности для пользователя.
Обнаружение flaky тестов в Tuist

Tuist теперь умеет определять тесты, которые выдают неконсистентные результаты, хотя ни сам тест, ни тестируемый код не изменялись.
Issue Reporting – библиотека для отображения ворнингов в Xcode

Issue Reporting – новая библиотека от Pointfree, которая помогает быстро показывать ворнинги и ассерты прямо из кода. Помимо отображения тултипа, можно еще и автоматически активировать брейкпойнт в момент показа уведомления.
Swift Foundation доступен в Swift 6 Nightly

Помните план Apple переписать Foundation на Swift? Так вот, частично переписанный Swift Foundation уже доступен в ночных сборках Swift 6, причем поддерживает даже Linux и Windows.
Конвертация XCTest в swift-testing

swift-testing-revolutionary – инструмент, который автоматически конвертирует все ваши XCTest в новый формат swift-testing. Работает и как Xcode плагин, и как самостоятельный CLI тул. Пока что не поддерживается ряд аннотаций, но большинство тестов уже могут быть сконвертированы.
This media is not supported in your browser
VIEW IN TELEGRAM
Scrolling picker на SwiftUI

Гайд по тому, как сделать компонент-рулетку на SwiftUI, которая будет скроллиться всегда строго по сетке.
Онбординг пользователя в новые фичи

Простой подход к обучению пользователя новым фичам. Весь экран затемняется, подсвечивается только ключевой элемент, а снизу появляется шторка с объяснением, зачем он нужен.
This media is not supported in your browser
VIEW IN TELEGRAM
Новая фича в Xcode 16

В Xcode 16 можно скопировать какой-то код в открытом файле, перетащить его в Project Navigator, и как результат автоматически создастся новый файл с корректным именем. Будущее!
Ask WWDC – AI поиск по всем сессиям WWDC

Смотрите, какой классный сервис. Задаешь вопрос про любой API, получаешь в ответ выжимку того, что о нем рассказывали на WWDC, и ссылки на все релевантные сессии.
Tuist Previews – быстрый способ пошарить билд

Tuist релизнули классную фичу. В консоли вызываете команду tuist share MyApp, она заливает ваш билд в облако и выдает url. Этот url можно пошарить с кем угодно в команде, вставить в консоль, и приложение сразу же запустится на вашем симуляторе. Выглядит супер-удобно!