iOS Broadcast
3.4K subscribers
1.73K photos
86 videos
989 links
Подборка новостей и статей для iOS разработчиков.

Новости Kotlin и мультиплатформы @kotlin_broadcast
Новости Android @android_broadcast
Реклама и прочее @ab_manager
Download Telegram
⚡️Релиз iOS 18 состоится 16 сентября
Порадовались новым iPhone, пора за работу. Совсем скоро пользователи начнут перекрашивать иконоки. Полезные ссылки:
🟢iOS & iPadOS 18 Beta 8
🟢Xcode 16 Beta 6
🟢Гайд по кастомизации иконок
🟢Гайд по подготовке проекта к iOS 18
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👌4
🈸 В App Store теперь принимаются заявки с приложениями под iOS 18
🟢iOS 18, iPadOS 18, macOS Sequoia и watchOS 11 будут доступны пользователям по всему миру 9 сентября
🟢Начиная с апреля 2025 года, приложения для App Store Connect должны быть созданы с использованием SDK для iOS 18

Полезные ссылки:
🟢AVFoundation пополнился новым разделом по работе с Camera Control
🟢Для дизайнеров обновили HIG по тому как работать с оверлеем от Camera Control
🟢Xcode, iOS, MacOS и iPadOS получили Release Candidate
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
📚 Рекомендации по использованию Codable и enum в моделях SwiftData
После моего погружения в SwiftData, продолжаю с интересом смотреть на опыт оптимизации и использования нового фреймворка. В этот раз попалась глубокая статья с советами по оптимальному использованию SwiftData вместе с Codable типами, включая перечисления:
🟢SwiftData коренным образом изменила способ построения моделей данных, поддерживая метод объявления на основе кода и использование типов, соответствующих протоколу Codable.
🟢Многие разработчики предпочитают использовать новые возможности SwiftData, но непонимание деталей реализации может привести к проблемам в будущем.
🟢В SwiftData codable протокол служит индикатором для разделения типов на составные атрибуты, а не для обработки с помощью Codable/Decodable.
🟢Использование Codable типов в качестве предикатов запроса в SwiftData повышает гибкость и эффективность запросов.
🟢Рекомендуется использовать простые Codable типы в моделях SwiftData для обеспечения стабильности и "ремонтопригодности" модели.
🟢Изменение свойств Codable типов может нарушить работу упрощенного механизма миграции данных SwiftData и облачной синхронизации.
🟢При использовании Codable массивов в моделях SwiftData их метод хранения отличается от метода хранения отдельных Codable объектов.
🟢Сохранение enum в SwiftData сложнее, чем сохранение составных Codable типов, enum не могут использоваться в качестве предикатов запроса.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥71
Преобразование приложения из Obj-C

Немного олдскула на вечер пятницы, история миграции мини-приложения с Obj-C+UIKit на Swift+SwiftUI в 2024 😥. Приложение не обновлялось в течение 3 лет и будет удалено из App Store через 90 дней-именно такие сообщения мотивируют переписать приложение. Приложение предназначено для профессиональных музыкантов и студентов музыкальных вузов, играющих на гобое, позволяет практиковаться с метрономом и воспроизводить звук или высвечивать экран в соответствующее время для каждого такта.
🟢Автор не согласен с политикой Apple по удалению старых приложений только из-за их возраста
🟢В приложении используются четыре основных экрана: главный, настройки, воспроизведения и синхронизации
🟢Главный экран и экраны настроек были успешно преобразованы в SwiftUI, а код воспроизведения и синхронизации остались на Objective-C

Удивительно, но автор сравнивал количество строк на Obj-C и Swift и не сравнил время компиляции, хотя для такого маленького приложения разница и будет не существенная. Что меня удивило, так это не желание обновлять приложение даже раз в 3 года, достаточно же раз в год собирать на актуальном Xcode 🧠
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔1
Как не надо создавать StateObject

Статья посвящена ошибке при использовании @StateObject. Проблема возникает из-за сохранения промежуточного результата в локальной переменной, @autoclosure важен для предотвращения создания новой ViewModel каждый раз при обновлении View
🟢Если не передать полный код инициализации, оболочка StateObject не сможет управлять созданием ViewModel
🟢В результате, каждый раз при выполнении инициализатора View будет создаваться новая ViewModel, которая никогда не будет использоваться
🟢Это может привести к лишнему созданию экземпляров ViewModel и плавающим ошибкам
🟢Важно передавать полный код инициализации при создании StateObject
Please open Telegram to view this post
VIEW IN TELEGRAM
👌4👍2
Депрекейты в iOS 18
Сегодня состоялся резиз iOS 18, а значит пора взглянуть, чего же мы лишились с этим релизом:
🔘Депрекейты в API в StoreKit. Важно обратить внимание на устаревшие API, если приложение использует покупки внутри приложения. Необходимо перейти на StoreKit 2
🔘Изменения в UIKit. UIImage(named:) теперь возвращает nil вместо неопределенного изображения.
🔘Качество съемки в Vision Framework. Качество захвата лица изменилось с faceCaptureQuality на captureQuality.score. Устаревший API FaceObservation остается доступным, но новые версии API VisionRequest и VisionObservation могут скоро стать устаревшими.
🔘Порядок расположения объектов в RealityKit Порядок расположения дочерних объектов может измениться неожиданно. Разработчики не полагаются на порядок расположения объектов, поэтому изменения не являются критическими.
🔘Устаревание расширений для Today Widgets. Расширения для просмотра Legacy Today устарели, и разработчики должны были отказаться от них 4 года назад 😥
В целом, ничего интересного, кроме более корректного поведения UIImage(named:)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍71
Все что нужно знать о дисплеях текущей линейки iPhone
🟣Из-за увеличения размеров Pro линейки, теперь у 16 iPhone 4 размера экрана
🟣У iPhone 16 Pro рамки дисплея еще тоньше, размер увеличился с 6.1" до 6.3"
🟣У iPhone 16 Pro Max размер увеличился с 6.7" до 6.9"
🟣Scale factor остался тот же - 3x
🟣Для AppStoreConnect теперь достаточно выгружать один размер скриншота 6.9" или 6.5"
🟣Дизайн Dynamic island не изменился, так что размер Safe Area в портретном режиме остался прежним
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍2
Анонсируем Swift 6

Поздравляю всех iOS разработчиков с релизом Swift 6! Мы планомерно разбирали все нововведения в деталях, но стоит еще раз их перечислить:
🟢Новый подход к многопоточности, новый Swift будет избавлять нас от состояния гонки
🟢Typed throws, теперь можно указывать тип выбрасываемой ошибки
🟢Swift Testing - новый продвинутый фреймворк для тестирования
🟢Модель "владения" через некопируемые типы и ~Copyable
🟢Интероп с C++ напрямую из Swift
🟢Новая модель компиляции подмножества языка для встроенных систем
🟢Улучшения производительности и стабильности
🟢Поддержка 128-битных целых чисел
🟢Улучшенная отладка с помощью @debugDescription
🟢Улучшенная производительность при запуске с explicit модулями
🟢Foundation типы JSONDecoder, URL, Calendar, FileManager, ProcessInfo, и многие другие, наконец, переписаны на Swift. Теперь это часть языка а не Apple экосистемы
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👍1