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

Новости Kotlin и мультиплатформы @kotlin_broadcast
Новости Android @android_broadcast
Реклама и прочее @android_broadcast_bot
Download Telegram
🧰🐥 Разработка на Swift под Android
Внутри сообщества официально собирается рабочая группа по созданию Android приложений на Swift. Основная цель - добавить и поддерживать Android как официальную платформу для Swift
Задачи рабочей группы:
🔵Улучшение и поддержка поддержки Android в официальном дистрибутиве Swift
🔵Усовершенствование основных пакетов Swift для работы с идиомами Android
🔵Определение уровней поддержки платформы и работа над достижением официальной поддержки
🔵Определение поддерживаемых уровней и архитектур Android API
🔵Развитие непрерывной интеграции для проекта Swift
🔵Выявление и рекомендация методов взаимодействия Swift и Java SDK для Android
🔵Разработка поддержки для отладки приложений Swift на Android
🔵Консультирование и помощь в добавлении поддержки Android в пакеты Swift сообщества
Общение через Форум Swift для Android и в рабочей группе на форумах Swift. Членство в рабочей группе открыто для всех желающих.

Новость интригующая, хотя в моменте ничего и не даст:
🔴Сейчас речь идет о начале работы рабочей группы, а не о готовом решении
🟢Apple на своем примере смогут показать как использовать swift для разработки под Andoid, т.к. имеют достаточно своих приложений (например, Apple music)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥23🤔81👏1
🔨Макрос Playground: Запуск фрагментов кода в Xcode canvas
Небольшое но приятное нововведение в Xcode 26 - макрос #Playground для запуска фрагментов кода и превью в Xcode canvas.
🔵Макрос #Playground позволяет быстро экспериментировать с кодом без необходимости определения отдельного кода.
🔵Макрос #Playground можно использовать в любом месте файлов Swift, что делает его полезным дополнением к рабочему процессу.
🔵bitdrift предоставляет инструмент для наблюдения по запросу, созданный специально для мобильных команд.
🔵Новый макрос #Playground является отличным инструментом для быстрого экспериментирования с кодом проекта.
🔵Для работы с макросом #Playground необходимо импортировать фреймворк Playgrounds.
Звучит в качестве примеров использования библиотек прямо из кода. Было бы здорово чтобы разработчики библиотек это начали использовать.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥71
This media is not supported in your browser
VIEW IN TELEGRAM
📱 Разбираемся и улучшаем производительность SwiftUI
Очень поучительная история от Airbnb, они начали использовать SwiftUI еще в 2022 году, повысили скорость разработки и получили проблемы с производительностью приложения.

Архитектура SwiftUI в Airbnb
🔵Airbnb использует самописную UDF библиотеку Epoxy
🔵SwiftUI не всегда хорошо работает с однонаправленными подходами.
🔵SwiftUI использует алгоритм для определения, какие представления нуждаются в перерисовке
🔵Лишние перерисовки снижают производительность.
🔵SwiftUI сравнивает свойства View для определения необходимости перерисовки
🔵Некоторые типы, такие как замыкания, не поддерживаются.
🔵Простые типы данных могут сравниваться по ссылке, а не по значению.
🔵Если представление соответствует Equatable, SwiftUI использует его эквивалентное соответствие.

Проблемы с производительностью
🔴При изменении состояния экрана весь код тела представления полностью пересчитывается.
🔴Это может привести к большому количеству ненужной работы и ухудшению производительности.

Повышение производительности
🟢Реализация декомпозиция на отдельные SwiftUI View позволяет корректно совершать перерисовку
🟢SwiftUI обновляет только те части представления, которые действительно изменились
🟢SwiftLint для анализа сложности представления
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
🎯 Руководство по промптингу FoundationModels
Создание эффективных управляемых подсказок для FoundationModels имеет свою специфику. Они обучены для работы на устройствах и взаимодействию со SwiftUI.

🟢Ограниченный размер контекста: 4096 токенов для ввода и вывода.
🟢Защита от небезопасного ввода и вывода, что может привести к ложным срабатываниям.
🟢Описание персонажа улучшает генерацию.
🟢Формулировка подсказок лучше работает при наличии четкой команды.
🟢Важно учитываеть ограничение пользовательского ввода для предотвращения неожиданных результатов.
🟢Важно обрабатывать ошибки, возникающие при неправильном вводе пользователя.
🟢LanguageModelSession выдает специализированные ошибки. Необходимо продумать, как справляться с этими ошибками в пользовательском интерфейсе.
🟢С помощью Generable, guided вывода и тестирования на устройстве можно экспериментировать.
🟢Не нужно беспокоиться о форматировании в формате JSON или особенностях удаленного API.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21
📱 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