ShadowGlow - улучшенные тени для Jetpack Compose
ShadowGlow — это библиотека Jetpack Compose с широкими возможностями настройки, разработанная для отображения теней у элементов. Создавайте потрясающие визуальные эффекты глубины, свечения и динамики с помощью таких функций, как параллакс, управляемый гироскопом, и плавная анимация дыхания.
Фичи:
🎨 Сплошные и градиентные тени
📐 Настройка форм
🎭 Различные стили размытия
🌌 Эффект параллакса с гироскопом
🌬 Эффект пульсирующей анимации
🚀 Простота использования
📱 Совместимость со светлыми и темными темами
ShadowGlow на GitHub: https://github.com/StarkDroid/compose-ShadowGlow
Платформа: Android
⭐️: 17
ShadowGlow — это библиотека Jetpack Compose с широкими возможностями настройки, разработанная для отображения теней у элементов. Создавайте потрясающие визуальные эффекты глубины, свечения и динамики с помощью таких функций, как параллакс, управляемый гироскопом, и плавная анимация дыхания.
Фичи:
🎨 Сплошные и градиентные тени
📐 Настройка форм
🎭 Различные стили размытия
🌌 Эффект параллакса с гироскопом
🌬 Эффект пульсирующей анимации
🚀 Простота использования
📱 Совместимость со светлыми и темными темами
ShadowGlow на GitHub: https://github.com/StarkDroid/compose-ShadowGlow
Платформа: Android
⭐️: 17
Укрощаем Android UI-тесты на Compose: как Page Object спас нас от рутины
Вы когда-нибудь тратили слишком много драгоценного времени на поиск нужного testTag в иерархии Compose Screen? А потом еще полдня чинили тесты после каждого чиха в UI? Или, может быть, несколько недель ждали, пока в дизайн-систему добавят недостающий тег или семантику, чтобы вообще начать писать свой UI-тест? Если вы хоть на один вопрос ответили «Да», эта статья для вас. Давайте навсегда покончим с этой рутиной и займемся более креативными задачами!
Статья: https://habr.com/ru/companies/raiffeisenbank/articles/950474/
Платформа: Android
Вы когда-нибудь тратили слишком много драгоценного времени на поиск нужного testTag в иерархии Compose Screen? А потом еще полдня чинили тесты после каждого чиха в UI? Или, может быть, несколько недель ждали, пока в дизайн-систему добавят недостающий тег или семантику, чтобы вообще начать писать свой UI-тест? Если вы хоть на один вопрос ответили «Да», эта статья для вас. Давайте навсегда покончим с этой рутиной и займемся более креативными задачами!
Статья: https://habr.com/ru/companies/raiffeisenbank/articles/950474/
Платформа: Android
Что произойдет, если заменить каждый цикл For в Swift на map, filter и reduce?
Каждый разработчик Swift обожает хороший цикл
Но я всё время слышал из «лагеря функционального программирования» шепоток о том, что
Поэтому я задал себе простой вопрос: а что, если я полностью откажусь от циклов
Я решил попробовать. И результаты оказались… удивительными.
Статья: https://apptractor.ru/info/articles/for-map-filter-reduce.html
Платформа: iOS/Swift
Каждый разработчик Swift обожает хороший цикл
for. Это наш хлеб насущный. Нужно перебрать числа? Цикл for. Собрать данные? Цикл for. Изменить состояние? Да, снова цикл for.Но я всё время слышал из «лагеря функционального программирования» шепоток о том, что
map, filter и reduce могут заменить большинство циклов for — и не просто заменить их, а сделать их чище, быстрее и выразительнее.Поэтому я задал себе простой вопрос: а что, если я полностью откажусь от циклов
for в своей кодовой базе Swift и заменю их функциональными конструкциями?Я решил попробовать. И результаты оказались… удивительными.
Статья: https://apptractor.ru/info/articles/for-map-filter-reduce.html
Платформа: iOS/Swift
🤣4
Swift Configuration - чтение конфигураций
Swift Configuration - библиотека от Apple для чтения конфигураций в приложениях. Swift Configuration задает уровень абстракции между читателями конфигурации и провайдерами. Приложения и библиотеки считывают конфигурацию через согласованный API, в то время как фактический поставщик настраивается один раз в точке входа приложения. Библиотека позволяет объединять нескольких поставщиков в иерархию, где значения из источников с более высоким приоритетом переопределяют значения из источников с более низким приоритетом. Поддерживает множество встроенных провайдеров - переменные окружения, аргументы командной строки, JSON или YAML файлы, директории файлов, значения в памяти и т.п.
Swift Configuration на GitHub: https://github.com/apple/swift-configuration
Платформа: iOS
⭐️: 393
Swift Configuration - библиотека от Apple для чтения конфигураций в приложениях. Swift Configuration задает уровень абстракции между читателями конфигурации и провайдерами. Приложения и библиотеки считывают конфигурацию через согласованный API, в то время как фактический поставщик настраивается один раз в точке входа приложения. Библиотека позволяет объединять нескольких поставщиков в иерархию, где значения из источников с более высоким приоритетом переопределяют значения из источников с более низким приоритетом. Поддерживает множество встроенных провайдеров - переменные окружения, аргументы командной строки, JSON или YAML файлы, директории файлов, значения в памяти и т.п.
Swift Configuration на GitHub: https://github.com/apple/swift-configuration
Платформа: iOS
⭐️: 393
Погружаемся в недра Retrofit
Думаю, многие задумывались о том, что происходит с функциями в интерфейсе Retrofit сервиса, когда мы помечаем их ключевым словом suspend? У некоторых даже есть заблуждение, что для сетевых запросов в таком случае используется корутиновский Dispatchers.IO. Спойлер — это не совсем так.
В этой статье мы как раз разберёмся, как всё работает на самом деле.
Статья: https://habr.com/ru/companies/alfa/articles/947908/
Платформа: Android
Думаю, многие задумывались о том, что происходит с функциями в интерфейсе Retrofit сервиса, когда мы помечаем их ключевым словом suspend? У некоторых даже есть заблуждение, что для сетевых запросов в таком случае используется корутиновский Dispatchers.IO. Спойлер — это не совсем так.
В этой статье мы как раз разберёмся, как всё работает на самом деле.
Статья: https://habr.com/ru/companies/alfa/articles/947908/
Платформа: Android
Скрытые угрозы Room: почему база тормозит и как это исправить
Вам говорят добавить офлайн кэширование в приложение для Android. «Просто используйте Room, всё будет просто». Несколько запросов, пара сущностей, и всё готово за полдня.
Три дня спустя ваше приложение зависает, запросы еле ползают, а в консоли Play накапливаются ANR-ошибки.
Знакомо?
Вот что происходит, когда база данных Room сталкивается с реальными масштабами. А хорошая новость? У большинства этих проблем есть проверенные решения.
Статья: https://apptractor.ru/info/articles/skrytye-ugrozy-room-pochemu-baza-tormozit-i-kak-eto-ispravit.html
Платформа: Android
Вам говорят добавить офлайн кэширование в приложение для Android. «Просто используйте Room, всё будет просто». Несколько запросов, пара сущностей, и всё готово за полдня.
Три дня спустя ваше приложение зависает, запросы еле ползают, а в консоли Play накапливаются ANR-ошибки.
Знакомо?
Вот что происходит, когда база данных Room сталкивается с реальными масштабами. А хорошая новость? У большинства этих проблем есть проверенные решения.
Статья: https://apptractor.ru/info/articles/skrytye-ugrozy-room-pochemu-baza-tormozit-i-kak-eto-ispravit.html
Платформа: Android
❤2
QuickBall - быстрый доступ к системным настройкам
QuickBall - плавающее меню, обеспечивающее быстрый доступ к системным функциям, таким как регулировка громкости, яркости и блокировка экрана. Шар остаётся видимым поверх всех приложений и автоматически скрывается на экране блокировки.
QuickBall на GitHub: https://github.com/chayanforyou/QuickBall
Платформа: Android
⭐️: 9
QuickBall - плавающее меню, обеспечивающее быстрый доступ к системным функциям, таким как регулировка громкости, яркости и блокировка экрана. Шар остаётся видимым поверх всех приложений и автоматически скрывается на экране блокировки.
QuickBall на GitHub: https://github.com/chayanforyou/QuickBall
Платформа: Android
⭐️: 9
•
(iOS Ru) Переезд на Swift 6: строим графы для успешной миграции•
(iOS En) Code along with the Foundation Models framework•
(iOS En) iOS 26 Custom Tab Bar With Action Button Using SwiftUI•
(iOS En) SwiftUI WebView (URL Argument) – Features, Validation & More•
(And Ru) Android добрался до ноутбуков•
(And Ru) Как убрать Activity context из ViewModel и написать Unit-test•
(And En) Under the hood with Google AI on Android•
(And En) Android developer verification•
(And En) The New Material3 Expressive Explained In 7 Minutes•
(And En) Avoid this App Crash Issue in a Production•
(And En) Mobile System Design Interview With Lead Android Engineer•
(Crs En) Is Kotlin Multiplatform Right for Your App?•
(Dev Ru) Docs as Code. Когда документация становится частью кода, а не пыткой•
(Dev Ru) Архитектура LLM — BERT, трансформеры, attentions•
(Dev En) AWS CloudOps Engineer Associate (SOA-C03) Certification Course – Pass the ExamПрошлогодние видео:
•
(iOS Ru) Как мы запекали 3D-пиццу•
(iOS Ru) Есть ли ORM круче SwiftData•
(iOS Ru) Макросы спустя полгода: не все так гладко•
(iOS Ru) DriverKit: гоняем данные по проводу без мам, пап и MFi•
(Dev Ru) Уволить нельзя терпеть•
(Dev Ru) Lua – идеальный встраиваемый языкPlease open Telegram to view this post
VIEW IN TELEGRAM
👍1
Отделяем мух от Kotlett. Динамические обновления без релизов и BDUI
Kotlett — это внутренняя платформа VK, которая реализует паттерн code-push, то есть динамическую доставку фич для Android- и iOS-приложений без использования BDUI и релиза приложения в магазине. В этой статье автор подробно рассказывает, как устроен Kotlett, как он решает проблемы BDUI, обеспечивает офлайн-работу и почему в компании считают его перспективным фреймворком «динамики для народа».
Статья: https://habr.com/ru/companies/vktech/articles/950588/
Платформа: разработка
Kotlett — это внутренняя платформа VK, которая реализует паттерн code-push, то есть динамическую доставку фич для Android- и iOS-приложений без использования BDUI и релиза приложения в магазине. В этой статье автор подробно рассказывает, как устроен Kotlett, как он решает проблемы BDUI, обеспечивает офлайн-работу и почему в компании считают его перспективным фреймворком «динамики для народа».
Статья: https://habr.com/ru/companies/vktech/articles/950588/
Платформа: разработка
😁1
SwiftUI-Adapter - поддержка новых модификаторов SwiftUI на старых версиях iOS
Библиотека от читателя:
SwiftUI-Adapter избавит вас от головной боли при работе с новыми модификаторами SwiftUI.
Недавно я наткнулся на удобную Android-библиотеку, которая упрощает работу с разными версиями API и подумал: «Почему бы не сделать что-то подобное для SwiftUI?». После этого родилась идея разработать инструмент, который избавит вас от бесконечных проверок available и сделает код чище.
Установка библиотеки выполняется через Swift Package Manager.
Зачем это нужно?
Каждый раз, когда Apple выпускает новый модификатор в SwiftUI, нам приходится писать такие конструкции:
SwiftUI-Adapter делает эту рутину за вас! Просто используйте единый синтаксис – проверки версий останутся под капотом:
Преимущества
• Не влияет на производительность: все проверки производятся на этапе компиляции
• Чистая кодовая база: больше никаких available в каждом втором файле
• Простота интеграции: добавляется за пару минут через SPM
• Открытый исходный код: полная прозрачность, возможность вносить правки и участвовать в развитии
• Библиотека поддерживает модификаторы доступные с iOS 15 и выше, а так же macOS 12 и выше
• SwiftUI-Adapter поддерживает большое количество модификаторов, включая новые модификаторы, которые были добавлены в iOS 26 и macOS 26. Описание каждого из модификаторов доступно на странице в GitHub.
SwiftUI-Adapter на GitHub: https://github.com/Wolfaks/SwiftUI-Adapter
Платформа: iOS
⭐️: 10
Библиотека от читателя:
SwiftUI-Adapter избавит вас от головной боли при работе с новыми модификаторами SwiftUI.
Недавно я наткнулся на удобную Android-библиотеку, которая упрощает работу с разными версиями API и подумал: «Почему бы не сделать что-то подобное для SwiftUI?». После этого родилась идея разработать инструмент, который избавит вас от бесконечных проверок available и сделает код чище.
Установка библиотеки выполняется через Swift Package Manager.
Зачем это нужно?
Каждый раз, когда Apple выпускает новый модификатор в SwiftUI, нам приходится писать такие конструкции:
if #available(iOS 15.0, macOS 12.0, *) {
YourView()
.badge(5)
} else {
YourView()
}SwiftUI-Adapter делает эту рутину за вас! Просто используйте единый синтаксис – проверки версий останутся под капотом:
YourView()
.adapter.badge(5)
Преимущества
• Не влияет на производительность: все проверки производятся на этапе компиляции
• Чистая кодовая база: больше никаких available в каждом втором файле
• Простота интеграции: добавляется за пару минут через SPM
• Открытый исходный код: полная прозрачность, возможность вносить правки и участвовать в развитии
• Библиотека поддерживает модификаторы доступные с iOS 15 и выше, а так же macOS 12 и выше
• SwiftUI-Adapter поддерживает большое количество модификаторов, включая новые модификаторы, которые были добавлены в iOS 26 и macOS 26. Описание каждого из модификаторов доступно на странице в GitHub.
SwiftUI-Adapter на GitHub: https://github.com/Wolfaks/SwiftUI-Adapter
Платформа: iOS
⭐️: 10
Swift Codable
На этой неделе мы поговорим ещё об одном встроенном типе Swift -
Статья: https://habr.com/ru/articles/953560/
Платформа: iOS/Swift
На этой неделе мы поговорим ещё об одном встроенном типе Swift -
Codable. Думаю, все, кто писал клиент-серверные приложения, сталкивались с этим протоколом: он позволяет преобразовывать наши структуры в бинарные данные и обратно. Однако, полагаю, немногие задумывались, как этот привычный механизм работает под капотом. Сегодня я постараюсь рассказать об этом.Статья: https://habr.com/ru/articles/953560/
Платформа: iOS/Swift
Как я писал свою звонилку для видеозвонков
После запуска VK MAX звонков все мы ощутили «улучшение качества связи»: WhatsApp и Telegram-звонки внезапно стали то заикаться, то просто падать. На парковке созвониться? Забудьте. Через VPN по мобильной сети? Тоже боль. Добавим к этому ещё и порезанную сотовую связь «из-за дронов» — и получаем настоящий ад для тех, кто привык общаться через привычные мессенджеры.
Решение? Сделать свою звонилку. Так родился проект JOPA Call — Just One Peer App (или, если по-русски: «Просто одно приложение для звонков»).
Статья: https://habr.com/ru/articles/953222/
Платформа: Android
После запуска VK MAX звонков все мы ощутили «улучшение качества связи»: WhatsApp и Telegram-звонки внезапно стали то заикаться, то просто падать. На парковке созвониться? Забудьте. Через VPN по мобильной сети? Тоже боль. Добавим к этому ещё и порезанную сотовую связь «из-за дронов» — и получаем настоящий ад для тех, кто привык общаться через привычные мессенджеры.
Решение? Сделать свою звонилку. Так родился проект JOPA Call — Just One Peer App (или, если по-русски: «Просто одно приложение для звонков»).
Статья: https://habr.com/ru/articles/953222/
Платформа: Android
This media is not supported in your browser
VIEW IN TELEGRAM
Делаем анимацию отрисовки для SF Symbols в SwiftUI
В отличие от традиционной анимации с плавным изменением масштаба, плавным изменением направления движения или эффектом подпрыгивания, анимация рисования имитирует естественный процесс рисования символа пером, создавая более привлекательные и выразительные пользовательские интерфейсы. В результате получается более выразительный и продуманный эффект, который ощущается как созданный вручную, динамичный и реалистичный.
Статья: https://apptractor.ru/info/articles/delaem-animatsiyu-otrisovki-dlya-sf-symbols-v-swiftui.html
Платформа: iOS
В отличие от традиционной анимации с плавным изменением масштаба, плавным изменением направления движения или эффектом подпрыгивания, анимация рисования имитирует естественный процесс рисования символа пером, создавая более привлекательные и выразительные пользовательские интерфейсы. В результате получается более выразительный и продуманный эффект, который ощущается как созданный вручную, динамичный и реалистичный.
Статья: https://apptractor.ru/info/articles/delaem-animatsiyu-otrisovki-dlya-sf-symbols-v-swiftui.html
Платформа: iOS
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Compose Exploded Layers - слои Compose в 3D
Compose Exploded Layers позволяет визуально разделить пользовательский интерфейс на слои, расположенные вдоль вектора смещения, визуализируя компонуемое дерево в трёхмерном пространстве.
Используйте библиотеку для:
• Показа структуры или иерархии в сложных макетах
• Создания динамических визуализаций для карточек, списков или фотографий
• Добавления глубины переходам, вступлениям или интерфейсам редактора
Compose Exploded Layers на GitHub: https://github.com/pingpongboss/compose-exploded-layers
Платформа: Android
⭐️: 38
Compose Exploded Layers позволяет визуально разделить пользовательский интерфейс на слои, расположенные вдоль вектора смещения, визуализируя компонуемое дерево в трёхмерном пространстве.
Используйте библиотеку для:
• Показа структуры или иерархии в сложных макетах
• Создания динамических визуализаций для карточек, списков или фотографий
• Добавления глубины переходам, вступлениям или интерфейсам редактора
Compose Exploded Layers на GitHub: https://github.com/pingpongboss/compose-exploded-layers
Платформа: Android
⭐️: 38
❤1
Преодолевая барьер скорости: как неблокирующие заставки сокращают время запуска приложений Android на 90%
В статье показано, что классический SplashActivity тормозит старт, ведь пока экран с логотипом не закроется, контент не рендерится. Вместо этого автор предлагает неблокирующий splash screen — накладывать анимацию поверх основной активити и управлять показом через OnPreDrawListener, чтобы UI подгружался параллельно.
Результаты впечатляют: по данным тестов, время до первого отображения контента сокращается до 90%, а при сложных Lottie-анимациях — до 95%. Приложение визуально стартует почти мгновенно, а splash становится не тормозом, а маской загрузки.
Минусы тоже есть — повышенное потребление памяти и нагрузка на слабых устройствах. Поэтому автор советует адаптивный подход: лёгкий splash для low-end девайсов и анимированный для мощных. Полный разбор с кодом и графиками — в оригинальной статье.
Статья: https://sankalpchauhan.com/breaking-the-speed-barrier-how-non-blocking-splash-screens-cut-android-app-launch-time-by-90
Платформа: Android
В статье показано, что классический SplashActivity тормозит старт, ведь пока экран с логотипом не закроется, контент не рендерится. Вместо этого автор предлагает неблокирующий splash screen — накладывать анимацию поверх основной активити и управлять показом через OnPreDrawListener, чтобы UI подгружался параллельно.
Результаты впечатляют: по данным тестов, время до первого отображения контента сокращается до 90%, а при сложных Lottie-анимациях — до 95%. Приложение визуально стартует почти мгновенно, а splash становится не тормозом, а маской загрузки.
Минусы тоже есть — повышенное потребление памяти и нагрузка на слабых устройствах. Поэтому автор советует адаптивный подход: лёгкий splash для low-end девайсов и анимированный для мощных. Полный разбор с кодом и графиками — в оригинальной статье.
Статья: https://sankalpchauhan.com/breaking-the-speed-barrier-how-non-blocking-splash-screens-cut-android-app-launch-time-by-90
Платформа: Android
❤1
SwiftyChat - интерфейс чата на SwiftUI
SwiftyChat - готовый интерфейс чата со встроенными ячейками сообщений для быстрого старта.
Фичи:
• Поддержка строк с атрибутами
• Поддержка альбомной ориентации (автоматически масштабирует ячейки сообщений с заданным свойством cellWidth, если оно задано)
• Аватар пользователя (с различными вариантами расположения, использование необязательно)
• Сокрытие клавиатуры (при касании за ее пределами)
• Многострочная панель ввода
• Прокрутка в самый вниз
• Воспроизведение видео в фоновом режиме «Картинка в картинке»
• Скругление определённых углов текстовых сообщений.
• Реализация кастомных ячеек сообщений
• Свайп для скрытия клавиатуры
SwiftyChat на GitHub: https://github.com/EnesKaraosman/SwiftyChat
Платформа: iOS
⭐️: 312
SwiftyChat - готовый интерфейс чата со встроенными ячейками сообщений для быстрого старта.
Фичи:
• Поддержка строк с атрибутами
• Поддержка альбомной ориентации (автоматически масштабирует ячейки сообщений с заданным свойством cellWidth, если оно задано)
• Аватар пользователя (с различными вариантами расположения, использование необязательно)
• Сокрытие клавиатуры (при касании за ее пределами)
• Многострочная панель ввода
• Прокрутка в самый вниз
• Воспроизведение видео в фоновом режиме «Картинка в картинке»
• Скругление определённых углов текстовых сообщений.
• Реализация кастомных ячеек сообщений
• Свайп для скрытия клавиатуры
SwiftyChat на GitHub: https://github.com/EnesKaraosman/SwiftyChat
Платформа: iOS
⭐️: 312
Rijksmuseum - музей на Kotlin Multiplatform
Rijksmuseum — это многомодульное кроссплатформенное приложение на Kotlin и Compose, которое предлагает захватывающий способ изучения коллекции произведений искусства знаменитого Рейксмузеума в Амстердаме.
Внутри: Kotlin Multiplatform, Compose Multiplatform, корутины, Koin, Coil, Ktor, Compose Navigation, Jetpack Lifecycle и Jetpack ViewModel.
Rijksmuseum на GitHub: https://github.com/fethij/Rijksmuseum
Платформа: Android/кроссплатформа
⭐️: 383
Rijksmuseum — это многомодульное кроссплатформенное приложение на Kotlin и Compose, которое предлагает захватывающий способ изучения коллекции произведений искусства знаменитого Рейксмузеума в Амстердаме.
Внутри: Kotlin Multiplatform, Compose Multiplatform, корутины, Koin, Coil, Ktor, Compose Navigation, Jetpack Lifecycle и Jetpack ViewModel.
Rijksmuseum на GitHub: https://github.com/fethij/Rijksmuseum
Платформа: Android/кроссплатформа
⭐️: 383
❤4👍1
Почему моё Android-приложение крашится?
Если вы Андроид-разработчик, думаю, вам часто приходилось сталкиваться с ситуациями, когда код вашего приложения выбрасывает необрабатываемое исключение и ваше приложение закрывается. На сленге можно сказать, что «приложение крашится». В этой статье автор разберётся, почему это происходит и какие механизмы лежат в основе такого поведения.
Статья: https://habr.com/ru/companies/alfa/articles/950280/
Платформа: Android
Если вы Андроид-разработчик, думаю, вам часто приходилось сталкиваться с ситуациями, когда код вашего приложения выбрасывает необрабатываемое исключение и ваше приложение закрывается. На сленге можно сказать, что «приложение крашится». В этой статье автор разберётся, почему это происходит и какие механизмы лежат в основе такого поведения.
Статья: https://habr.com/ru/companies/alfa/articles/950280/
Платформа: Android
❤1
JetCo Library - готовые UI-компоненты Compose
JetCo — это готовая к использованию библиотека Compose с готовыми компонентами пользовательского интерфейса как для Android, так и для KMP. Разработанная специально для энтузиастов Jetpack Compose, библиотека JetCo сделает вашу жизнь проще, ваши приложения — красивее, а ваших пользователей — счастливее.
JetCo на GitHub: https://github.com/developerchunk/JetCo
Платформа: Android/кроссплатформа
⭐️: 111
JetCo — это готовая к использованию библиотека Compose с готовыми компонентами пользовательского интерфейса как для Android, так и для KMP. Разработанная специально для энтузиастов Jetpack Compose, библиотека JetCo сделает вашу жизнь проще, ваши приложения — красивее, а ваших пользователей — счастливее.
JetCo на GitHub: https://github.com/developerchunk/JetCo
Платформа: Android/кроссплатформа
⭐️: 111
❤1
Генерация изображений с использованием Foundation Models в SwiftUI
Я хочу генерировать изображения с помощью Foundation Models. Думаю, как только вы это увидели, основной подход тоже стал довольно очевиден.
Определим инструмент для генерации изображений - ImageCreator из фреймворка Image Playground.
Звучит очень просто, правда? Тогда зачем я вообще пишу эту статью? Потому что cуществует много вещей, которые мы не можем возвращать как выходные данные инструмента или определять как тип управляемого ответа модели. Конечно, можно просто предоставить несколько отдельных пользовательских интерфейсов для каждой цели, например: один для чата, один для генерации изображений, и использовать либо Foundation Models, либо Image Playground соответственно.
Возможно, так было два года назад, но в конце 2025 года это точно не то, что нужно делать. Что, если вам нужно генерировать и другие типы артефактов, помимо изображений? Звуковые дорожки. Файлы кода. И бла-бла-бла. Вы собираетесь создавать отдельный пользовательский интерфейс для каждого из них и ожидать, что пользователь будет переключаться между ними?
Статья: https://apptractor.ru/info/articles/generatsiya-izobrazheniy-s-ispolzovaniem-foundation-models-v-swiftui.html
Платформа: iOS
Я хочу генерировать изображения с помощью Foundation Models. Думаю, как только вы это увидели, основной подход тоже стал довольно очевиден.
Определим инструмент для генерации изображений - ImageCreator из фреймворка Image Playground.
Звучит очень просто, правда? Тогда зачем я вообще пишу эту статью? Потому что cуществует много вещей, которые мы не можем возвращать как выходные данные инструмента или определять как тип управляемого ответа модели. Конечно, можно просто предоставить несколько отдельных пользовательских интерфейсов для каждой цели, например: один для чата, один для генерации изображений, и использовать либо Foundation Models, либо Image Playground соответственно.
Возможно, так было два года назад, но в конце 2025 года это точно не то, что нужно делать. Что, если вам нужно генерировать и другие типы артефактов, помимо изображений? Звуковые дорожки. Файлы кода. И бла-бла-бла. Вы собираетесь создавать отдельный пользовательский интерфейс для каждого из них и ожидать, что пользователь будет переключаться между ними?
Статья: https://apptractor.ru/info/articles/generatsiya-izobrazheniy-s-ispolzovaniem-foundation-models-v-swiftui.html
Платформа: iOS
👍1
Elegant Emoji Picker - красивый пикер эмодзи
Почему в UIKit нет встроенного инструмента для выбора эмодзи? По той же причине, по которой нет приложения-калькулятора в iPadOS? Возможно. Но стоит ли нам просто потакать лени Крейга? Не в этот раз. UIEmojiPicker — элегантный инструмент для выбора эмодзи.
Elegant Emoji Picker — настраиваемый, простой в использовании, еще более простой в реализации и красивый (субъективно) пикер эмодзи для iOS, iPadOS и MacOS.
Elegant Emoji Picker на GitHub: https://github.com/Finalet/Elegant-Emoji-Picker
Платформа: iOS
⭐️: 90
Почему в UIKit нет встроенного инструмента для выбора эмодзи? По той же причине, по которой нет приложения-калькулятора в iPadOS? Возможно. Но стоит ли нам просто потакать лени Крейга? Не в этот раз. UIEmojiPicker — элегантный инструмент для выбора эмодзи.
Elegant Emoji Picker — настраиваемый, простой в использовании, еще более простой в реализации и красивый (субъективно) пикер эмодзи для iOS, iPadOS и MacOS.
Elegant Emoji Picker на GitHub: https://github.com/Finalet/Elegant-Emoji-Picker
Платформа: iOS
⭐️: 90
👍1