iOS Broadcast
3.32K subscribers
1.66K photos
82 videos
960 links
Подборка новостей и статей для iOS разработчиков.

Новости Kotlin и мультиплатформы @kotlin_broadcast
Новости Android @android_broadcast
Реклама и прочее @android_broadcast_bot
Download Telegram
📱 WebKit для SwiftUI
На WWDC25 Apple представила WebView и WebPage для упрощения работы с веб-контентом в SwiftUI. Удивительно, но эти новые API уже доступны начиная с iOS 18.4. Давайте разбираться!
🔵WebPage обеспечивает поддержку состояния загрузки и оценки прогресса.
🔵Для обработки разных состояний, таких как ошибки или перенаправления, есть свойство currentNavigationEvent.
🔵Добавлены элементы управления для сохранения контента, включая селектор типа контента.
🔵Для сохранения снимков, PDF и веб-архивов используются разные методы.
🔵Новый WebArchiveView позволяет отображать сохраненные веб-архивы.
🔵Возможность скроллить к элементу веб-страницы
🔵Расширенные возможности по работе с JavaScript
Новые API значительно упрощают обработку веб-контента в SwiftUI. Все детали в отдельном разделе документации
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Android Broadcast
This media is not supported in your browser
VIEW IN TELEGRAM
🐱 Lokilizer - open source инструмент для перевода строк. Работает на основе AI с поддержкой различных моделей

Уникальная фича - перевод с 2 языков на другие сразу. Например, с русского и английского.

Приложение разворачивается как сервер. Есть подробная инструкция и Docker образ

Автор описал больше про инструмент в статье
Please open Telegram to view this post
VIEW IN TELEGRAM
4
Swift concurrency. Executors, Actors и их связь с потокам
Полезная статья из серии Swift Concurrency, где автор разбирается в недрах:
🟢Как определяется поток, на котором будет выполняться Task?
🟢Почему в рамках одной Task поток может меняться?
🟢Что такое Executor и на какие типы он делится?
🟢За что отвечает TaskExecutor, а за что SerialExecutor?
🟢Как определить текущий Executor по коду?
🟢Как использовать свой самописный Executor?

🟣Компоненты Swift Concurrency
🟢Task и child task — базовые единицы для асинхронных функций.
🟢Job — часть таски между точками прерываний.
🟢Executor — распределяет Job по потокам.
🟢Cooperative thread pool — пул потоков, равный количеству ядер устройства.

Типы Executor'ов
🟢Global concurrent executor — дефолтный планировщик, распределяет Job'ы конкуррентно.
🟢Serial executors — каждый actor имеет свой, выполняет джобы последовательно.
🟢Main Actor executor — выполняет джобы на main thread.

🟡Понимание механизма работы swift concurrency помогает контролировать и прогнозировать использование инструментов.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍2
⤵️ Подходы к навигации в SwiftUI
Автор рассматривает все основные подходы к навигации (часть статьи еще дополняется). SwiftUI сначала был представлен с NavigationView, потом его замененили на NavigationStack стек в iOS 16. Все это время часть разработчиков строила навигаюцию вообще на базе UIKit. В статье рассматриваются подходы:
🟢Базовая навигация по списку
🟢Динамическая/программируемая маршрутизация
🟢Вложенные перечисления для организации сложных сценариев
🟢Глобальная маршрутизация в SwiftUI
🟢Реализация навигационного "хука" с использованием Environment
🟢Удаление навигационной зависимости
🟢Навигация по вкладкам
🟢Структура приложения
🟢NavigationStack и PatientNavigationStack
🟢Использование Environment Values
🟢Управление "модалками"

Добавляйте в 🔖 чтобы не потерять
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🈸 State of in-app subscriptions 2025
Подписочные системы монетизации почти полностью заменили классическую покупку контента. Если для нас как пользователей это не лучшая новость, то как разработчикам требуется понимать как это использовать:
🟢Рынок покупок в приложениях приближается к $170 млрд к 2025 году.
🟢Высокие цены ≠ низкая конверсия Во всех планах топ-цены по квартилю дают самый высокий LTV, при этом конверсия остается стабильной.
🟢Искусственный интеллект облегчает создание и запуск приложений, но сложнее превратить их в стабильный доход.
🟢Weekly-подписки доминируют За год они выросли на +10 % и уже дают ≈50 % всех новых покупок в App Store. Обошли месячные и годовые в каждом регионе.
🟢Триалы кардинально повышают LTV Бесплатный пробный период увеличивает LTV на 55-64 % в зависимости от страны. Наибольший эффект — у weekly-подписок.
🟢Маленькие рынки → большая выручка Сингапур, Катар, Багамы — в топе по LTV. По Adapty Pricing Index, готовность платить различается в 2-3 раза. Локальное ценообразование — must-have.
🟢Адаптивный индекс ценообразования помогает определить тенденции и оптимизировать цены.
🟢Еженедельные подписки приносят наибольший доход в большинстве регионов.
🟢Ценообразование и упаковка являются ключевыми факторами увеличения доходов от подписки на приложения.
🟢Адаптивное ценообразование позволяет корректировать цены с уверенностью и определять доход.
🟢LTV и рентабельность определяют долгосрочный доход от подписки на приложения.
🟢Эксперименты — лучший ускоритель роста Приложения, которые провели 50+ A/B-тестов пейволлов, растут в 100× быстрее. Начинать лучше с триалов и структуры планов.
Полный отчет
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
🐥 Переход на Swift Testing
Swift Testing предлагает новые возможности для юнит и функционального тестирования. Переход с XCTest на Swift Testing может быть сложным. Официальный гайд Apple не охватывает все практические аспекты.

Поиск и выполнение тестов:
🔵XCTest использует XCTestCase с функциями среды выполнения Objective-C.
🔵Swift Testing использует макросы для генерации описания тестов.
🔵XCTest выполняет тесты последовательно, Swift-тестирование — параллельно.

Проблемы:
🔴Ассерты не работают вне контекста Task
🔴Проблемы с общим изменяемым состоянием
🔴Наследуемые тестовые сценарии не наследуют тесты

Рекомендации по миграции:
🟢Если количество тестов небольшое, использовать быстрое параметризованное тестирование
🟢В противном случае комбинировать XCTests и Swift Testing в один целевой объект
🟢Дождаться поддержки тестового наследования в Swift-тестировании

Преимущества и недостатки миграции:
🟢Возможность переосмыслить дизайн тестов и использовать современные Swift парадигмы
🟢Отсутствие API для тестирования пользовательского интерфейса и производительности
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
2
🐥 Swift и C++
Когда-то давно, на старте карьеры, я попал на проект с Objective-C++. Не просто ручной подсчет ссылок а полноценное управление аллокацией памяти. С менее понятным кодом с тех пор я не сталкивался. И вот, он вернулся, интероп с C++:
🔘Новая система взаимодействия позволяет использовать библиотеки C++ в Swift.
🔘Совместимость C++ и Swift упрощает создание кроссплатформенных инструментов.
🔘Логика C++ может быть повторно использована на различных платформах.
🔘Поддержка взаимодействия Swift с C++ сокращает дублирование кода и ускоряет разработку.
🔘Это упрощает создание кроссплатформенных инструментов с интерфейсом Swift
🔘Логика, написанная на C++, может быть повторно использована на различных платформах

Не думаю что кто-то в здравом уме будем писать логику на C++, но вот использовать готовые опенсорсные C++ движки или повышать производительность в местах ботлнеков может быть полезно.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3