I
iOS Dev
17.07.2026 11:35 · 👁 1.5K
Эффект липкого pull-to-refresh в SwiftUI
📺 На канале Kavsoft выложили полезный и несложный туториал для создания эффекта лоадера с морфингом из Dynamic Island.
📖 А ещё одну демонстрацию похожего стиля можно посмотреть в этом посте.
😃 iOS Dev
I
iOS Dev
16.07.2026 10:51 · 👁 2.2K
⚡Приложения VK и МАХ исчезли из Google Play
Пресс-служба ВК сообщила, что пользователи Android-устройств продолжат получать пуш-уведомления о сообщениях, событиях и звонках в МАХ и приложениях VK.
😃 iOS Dev
I
iOS Dev
16.07.2026 06:33 · 👁 2.4K
OpenAI выпустили первое физическое устройство Codex Micro
Стоит 230 долларов. Видео с примерами работы - тут.
😃 iOS Dev
I
iOS Dev
15.07.2026 12:37 · 👁 2.4K
Морфинг текста на SwiftUI в 50 строк кода
Вы же помните, что я просто обожаю необычные эффекты)
Вот как тут, например - с принтером и анимацией отчётов за пару десятков строк кода. Или в стиле tap to cash (до сих пор прилетают запросы где взять туториал).
Так вот, делюсь одним необычным и несложным эффектом - вдохновиться можете где-нибудь здесь.
А по факту у нас два текста кроссфейдятся с анимированным блюром, а с помощью шейдера поверх мы режем альфу по заданному порогу. В общем из-за этого размытые буквы «слипаются» и перетекают друг в друга, как жидкость)
Если разобраться, как такое сделать, можно удивиться, насколько все просто (это аналог feColorMatrix "0 0 0 255 -140" из примера выше):
#include <metal_stdlib>
#include <SwiftUI/SwiftUI_Metal.h>
using namespace metal;
[[stitchable]] half4 textMorphThreshold(float2 position,
SwiftUI::Layer layer,
float4 bounds,
float threshold,
float softness) {
half4 c = layer.sample(position);
float a = float(c.a);
if (a < 1e-4) {
return half4(0.0);
}
float na = smoothstep(threshold - softness, threshold + softness, a);
float3 rgb = float3(c.rgb) / a;
return half4(half3(rgb * na), half(na));
}
Ну а если вам все-таки нужен исходный код, вы можете прям переписать его с гифки или не терять время и найти его: ⭐️ здесь или 💰 тут.
😃 iOS Dev
I
iOS Dev
14.07.2026 08:32 · 👁 3.4K
⚡ Сайты github, google и apple в РФ недоступны
По данным хабра, Git и вообще доступ к репам без доп сетевых средств сейчас невозможен.
[UPD] Спустя 2 часа ситуация стабилизировалась. РКН при этом заявил, что доступ не ограничивался.
😃 iOS Dev
I
iOS Dev
13.07.2026 15:53 · 👁 2.6K
Перетаскивание элементов в SwiftUI в iOS 27
Я уже делился примером с WWDC на счет появившихся опций (официальная дока здесь).
📖 В этой статье можно посмотреть более расширенную инструкцию и возможности работы нового API.
😃 iOS Dev
I
iOS Dev
10.07.2026 10:59 · 👁 3.5K
А сегодня же пятница, а у каждого из нас множество мемов
Предлагаю провести конкурс. С вас - смешной (ну или под тремя слоями постиронии) мем про разработку, можно iOS, можно ИИ, да даже про жизнь.
С меня NFT-подарок в телеге для победителя.
Го в комменты)
😃 iOS Dev
I
iOS Dev
10.07.2026 07:39 · 👁 3.1K
Новый скилл для дизайна в стиле Apple на основе WWDC-сессий
Эмиль Ковальски отобрал 17 топовых принципов дизайна и анимаций, легко транслируемый и для веба, например.
🛠 У репозитория уже более 7 000 звёзд.
Если хотите огромную подборку скиллов, поставьте 👍.
😃 iOS Dev
I
iOS Dev
09.07.2026 08:04 · 👁 2.8K
Изменение порядка для List и Grid с сохранением в SwiftData
Стюарт Линч выпустил урок по работе со SwiftData. В нём он рассказывает, как реализовать перетаскивание в LazyVGrid с помощью onDrag, onDrop и специального DropDelegate.
📺 А ещё в этом видео можно узнать, как:
• Перейти от локального состояния к @Query в SwiftData
• Сохранять изменения пользовательского порядка сортировки при перезапуске приложухи
• Добавлять элементы управления для редактирования (и добавления элементов)
• Обрабатывать удаление строк с сохранением порядка сортировки
• Создавать плавные анимации в сетке с помощью перетаскивания
😃 iOS Dev
I
iOS Dev
08.07.2026 14:17 · 👁 2.9K
Собираем краши в iOS 27 c помощью CrashReportExtension
С помощью нового фреймворка можно анализировать и безопасно отправлять отчеты прямиком на свой бэкенд, не привязываясь к сторонним SDK.
Для этого нужно создать отдельное расширение CrashReporterExtension. Кстати, его особенность в том, что оно запускается в отдельном изолированном процессе, полностью независимо от нашей крашнутой приложухи.
Когда приложение упадёт, система автоматически вызовет наше расширение и передаст ему метод processCrashReport.
В коде это выглядит так:
@main
struct MyCrashExtension: CrashReporterExtension {
func processCrashReport(process: CrashedProcess) {
// Получаем доступ к данным упавшего процесса
let corpsePort = process.corpsePort
let images = process.binaryImages
// 1. Формируем свой краш-репорт
// 2. Сохраняем на диск или шлем на сервер
}
}
Через CrashedProcess можно получить corpsePort и доступ к загруженным бинарникам, на основе чего уже можно сформировать дамп для отладки.
Хотя подавляющее большинство юзает Firebase или Sentry, ещё одна альтернатива нам не помешает.
➡️ Список всех новых фреймворков iOS 27.
😃 iOS Dev