iOS Broadcast
3.41K subscribers
1.81K photos
85 videos
1.01K links
Подборка новостей и статей для iOS разработчиков.

Новости Kotlin и мультиплатформы @kotlin_broadcast
Новости Android @android_broadcast
Реклама и прочее @ab_manager
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Преимущества Swift Testing при линковке багов
XCTest использует простые комментарии для добавления контекста в тестовые примеры. Swift Testing предоставляет специальный признак bug для передачи краткого описания ошибки. Ключевым преимуществом является видимость названия ошибки в результатах тестирования и в интерфейсе Xcode. Особенно удобно, если вы придерживаетесь TDD, предоставляя доказательства устранения ошибки своими тестами.
В статье приводится сравнение с XCTest, скорее, для того чтобы показать что именно заменяет новый синтаксис. Врядли кто-то осознанно выберет XCTest для нового проекта
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21
🐥 Гайд по обеспечению современного параллелизма: системы с отслеживанием состояния
Очень полезная статья для новичков с пошаговым разбором хороших практик по обеспечению параллелизма со Swift Concurrency. Реальные приложения записывают данные в локальное хранилище, удалённые сервисы и, как правило, используют изменяемое состояние. В статье создают SwiftUI приложение, которое работает с состоянием, размещённым в (придуманной) удалённой сетевой службе.
🟢Создание удаленной системы
🟢Проблемы с асинхронным кодом
🟢Использование актеров в логике
🟢Использование актеров во View
🟢Различия между параллелизмом и диспетчеризацией
🟢Состояние гонки
🟢Критические секции
🟢Проблемы с асинхронными вызовами
🟢Асинхронные функции и обработчики завершения
🟢Проблемы с акторами
Новичкам я бы не советовал "просто" повторять все что приводится в статье, а скорее вдумчиво прочитать и повторить в своем pet-проекте подглядывая в статью
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
🐥 Атрибут @frozen в Swift
Атрибут @frozen — маркирует enum как неизменяемые, что обеспечивает как преимущества производительности, так и повышенную стабильность, особенно в контексте разработки фреймворков. В статье подробно рассматривается использование @frozen, объясняется его роль в языке Swift, особенно при создании библиотек или фреймворков, и то, как он помогает безопасно и эффективно обрабатывать эволюцию enum. Если коротко:
🟢Используйте @frozen для фреймворков и библиотек, где enum не изменится
🟢Не используйте @frozen для enum, которые могут "эволюционировать"

Атрибут важен для оптимизации кода и стабильности ABI. Использования @frozen делает кодовую базу более надежной и совместимой между версиями Swift.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍3
This media is not supported in your browser
VIEW IN TELEGRAM
🔨 Refactor -> Extract selection to file

Любимая фишка Xcode 16 - возможность вырезать блоки кода в отдельные файлы без их предварительного создания. Просто вырезаю содержимое, выбираю нужный каталог и вставляю его из буфера обмена. Обратите внимание, что название соответствует структуре в выделенном коде
Please open Telegram to view this post
VIEW IN TELEGRAM
19
📚 CRUD операции в SwiftData с помощью ModelActor

SwiftData имеет очень простой API, но если вы используете Swift Сoncurrency, API SwiftData можно еще упростить. Статья описывает способ избавиться от явного использования Context:
🔵Работа идет через Sendable типы.
🔵Протокол Sendable определяет основные CRUD-операции с асинхронными методами.
🔵Селекторы обеспечивают типобезопасный способ указания данных для работы.
В статье так же указывается важное замечание о временных идентификаторах: новые элементы имеют временные идентификаторы до сохранения и постоянные после, это нужно держать в голове.
Несмотря на то что я приверженец использования "Pure API" без надстроек и сахара, могу признать, что данное решение имеет право на жизнь.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
📱 Списки в SwiftUI
Подробный обзор контейнера List для новичков в SwiftUI. Даже если весь проект на UIKit, можно внедрить в Debug или QA экраны конфигурации. В статье покрыты следующие темы:
🔵Пример статического списка
🔵Динамическое заполнение списка
🔵Использование протокола идентификации элементов
🔵Стили списков SwiftUI
🔵Использование разделов
🔵Поддержка выбора
🔵Изменение цвета фона
🔵Оптимизация производительности

Если статья покажется вам полезной, советую обратить внимание на:
🟡Официальную документацию этого компонента, в ней есть дополнительные аспекты использования вне iOS
🟡Отображение данных в списках - статья от Apple про визуализизацию данных в соответствии с внешним видом платформы
🟡Выбор контейнера, исходя из контента - статья Apple про выбор между контейнерами Stack, Grid, List и Form
#swiftui #lists #basics #tutorial
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥1