creator cover iOS Dev IQ
iOS Dev IQ

iOS Dev IQ 

Алгоритмы, код, UI, разбор сложных тем

399subscribers

95posts

Showcase

3

About

Здесь вы увидите уникальные подборки, разбор кода и сложные термины простым и понятным языком.

Что вас ждёт внутри?

🏅Подборки лучших материалов для подготовки.
🧠 Непростые темы с собеседований (задачи, разбор полётов).
👨‍💻 Личная эффективность (советы, мысли, опыт).
🔨 Код. Правила и необычные подходы.
📓 Алгоритмическая секция (если вы хотите узнать, что такое мемоизация или разобраться, наконец, с поиском в ширину).
🏄 Реализация эффектов (от анимации Wallet до эффектов в приложении Messages или NameDrop).
🔝Моя кастомная подборка полезных библиотек.
🤖 Премиум-возможности в боте @iOSIQBot
Я Виктор Грушевский — автор канала iOS Dev, iOS-разработчик с 2011 года (примерно тогда был переход с iOS 4 на iOS 5).
Возможно, вы могли читать мои статьи на хабре или знать по вот этим пунктам:
На протяжении своего пути мне всегда нравилось создавать приложения, настраивать анимации, проектировать архитектуру и искать неочевидные пути выхода из сложных технических ситуаций.
Эти стремления отразились и в моём аккаунте разработчика, и в контестах.
Я никогда не считал алгоритмы лишними в разработке, улучшение скорости работы вашего приложения на 3 секунды сэкономит несколько тысяч часов, если им пользуются миллионы.

Здесь вы получите приоритетный доступ к новейшим материалам про разработку (и UIKit, и SwiftUI), узнаете, как создавать необычные анимации, и увидите плюсы (и минусы) разных архитектур.

Канал с материалами: https://t.me/iosdev
Сайт: https://iosiq.ru
Бот для подготовки: @iOSIQBot
Приложение: iOS IQ

Доступ к Notion есть на уровнях: Мастер • Архитектор
Спасибо вам за вашу поддержку!
_______________________

ℹ️ Внимание, после подписки проверьте ваши личные сообщения здесь, на бусти.

Реализуем голографический эффект на Metal в стиле покемон-карточек

Запилил реализацию кайфового эффекта, который срочно нужно добавить в Collectr (я даже написал им письмо, но не уверен, что они реализуют).  
Сам алгоритм состоит из нескольких шагов: звёздочки разбросаны по невидимой сетке: в каждой клетке случайно решаем, будет тут звёздочка или нет, в каком месте сесть и какого быть размера. У каждой свой тайминг: появляется в свой момент, плавно разгорается, плавно гаснет, поэтому мигают вразнобой, а не все сразу. 
Скруглённые углы карточки тоже считаются на лету: шейдер сам чекает, где край, и плавно меняет прозрачность, если требуется. 
А 3D-наклон  сделан уже на SwiftUI: куда тапаем пальцем, туда и поворачиваем)

iOS Roadmap 2026 — путь от Trainee до Staff/Principal


Роадмапов в интернете много, но почти все они сводятся к перечню тем без понимания «куда» и «почему». Я собрал свой, основанный не только на опыте проведения интервью на Senior+, статьях на Хабре и сотнях постов на канале, но и собрал базу по компетенциям, скиллам и так далее.

Grace Rocky save stars!

Рад видеть, что действительно хороший фильм нашёл отклик у многих зрителей (и, что удивительно, на всех сайтах с оценками тоже), хотя в последние пару недель 100% небольшую лепту внесла и Артемида-2. 
Кстати, забавный факт, если вам понравилось кино, у того же писателя буквально есть ещё одно произведение с названием Артемида (и да, тоже про Луну, но не совсем про экспедицию).
Делюсь ещё одним вариантом заставки для макоси на основе шейдера, в этот раз попробовал воссоздать ещё одну из самых запоминающихся сцен фильма.
В этот раз попробовал воссоздать полёт и взгляд на астрофагов. Делюс алгоритмом, если захотите воспроизвести:
Creator has disabled comments for this post.

Крутая заставка по мотивам Hail Mary для MacOS на Metal+SwiftUI

Мне давно хотелось посмотреть что под капотом вот этих заставок, которые 100% видел каждый.
Как оказалось, есть специальный таргет в оси, который до сих пор генерит h+m файлы по дефолту (хотя и без проблем эту шляпу можно дропнуть и впилить нормальный код на Swift).
Я даже нашел какой-то древний репозиторий, в котором кто-то сделал ту самую заставку с dvd (а вот тут есть более свежий вариант).
Пришлось побороться с передачей нашей вьюхи с шейдером, но в итоге все оказалось проще, а ещё кстати можно даже прокидывать возможность менять настройки наружу для юзера.
Creator has disabled comments for this post.

Анимация принтера в 30 строчек кода

Глупо отрицать, что многие непростые вещи сейчас можно сделать буквально за считанные минуты. 
Например, на гифке один из эффектов в моём пет-проекте. Под капотом UIBezierPath, а значит, эффект можно полностью кастомизировать отображение как угодно.
Код целиком (включая анимацию выезжающего листа) уже доступен в Notion.

Виды кэширования в iOS: плюсы и минусы, стратегии обновления и интересные задачи

Я постарался собрать самые популярные подходы к реализации и рассмотрел их плюсы и минусы по важным параметрам: производительности, надёжности и стоимости + сложности реализации (тут и про трафик, и про стратегию обновления в целом). 
От того, что именно мы планируем кэшить, будет и зависеть выбранный: ответ сети, изображения, модели, резы вычислений, где хранить (память, диск, БД) и как управлять инвалидацией.
Про концепты работы с кэшированием можно посмотреть и на GitHub: тут и вот здесь (уверен, что многие сталкивались  и использовали это решение).
А ещё разобрал несколько популярных паттернов для реализации этой задачи.
Про TTL, версионирование и как лучше всего поступить при логауте - тоже есть.
Кстати, разобрался немного с mermaid-диаграммами, так что теперь будет больше красивых схем).
Знаю, что многие спрашивают это и в рамках секции по систем-дизайну, так что красивое и доступное структурирование никогда не помешает.
Реализация эффекта InvisibleInk из iMessage на SwiftUI + Metal
Level required:
Мастер
$14.8$6.7 per month
-55%
Offer ends 31 May.

3D-диаграммы в iOS 26 в 3 строчки кода

В 26 оси появилась крутая история с возможностью добавить 3D-диаграммы буквально в пару строк (можно юзать SurfacePlot или 3D-инициализаторы для PointMark, RuleMark, и RectangleMark).
Например, можно сделать так:
Chart3D {
    SurfacePlot(x: "x", y: "y", z: "z") { x, z in
        sin(2 * x) * cos(2 * z)
    }
}

Изучение жестов в SwiftUI + Приложение


Жесты позволяют создавать живые, отзывчивые и понятные каждому интерфейсы. Простые добавить несложно, но вот в комбинациях запутаться довольно просто. Важно понимать не только как они работают в связке, но и какие подводные камни возможны при поворотах или свайпах.
Я написал большую статью с примерами, которую структурировал на несколько важных разделов, с которых рекомендовал бы начать знакомиться с системой жестов не только новичкам, но и тем, у кого возникают сложности при их адаптации:
🔘 Основы работы с жестами (от простых нажатия и удержания до поворотов и перетаскивания).
🔘 Комбинации: перетаскивание и масштабирование, вращение и перемещение.
🔘 Последовательности жестов, расстановка приоритетов.

Создаём музыку бесплатно: как я упаковал MusicGen в нативное приложение для MacOS (Swift + Python и щепотка шейдеров)

Вчера холодным зимним вечером смотрел ролик на ютубе, услышал ненавязчивую музыку и вспомнил про опрос в нашем канале.
Стало интересно, можно ли создать собственный генератор без регистрации и смс без подписок, и короткий ответ - да, можно.
Простой рецепт, из которого можно создать более-менее приемлемый вариант:
Движок - Python + Apple MLX (кстати, сначала пробовал без этого и очевидно упёрся в проблему использования GPU на Apple Silicon).
В качестве модели заттачил MusicGen Small (можно потяжелее).
Обёртку запилил на SwiftUI и добавил немного красоты для фона.
Классный пост, очень прикольно получилось. Заметил пару моментов: не распаковывается all_scripts.zip и после "Но если вам лень и вы хотите просто посмотреть, как работает проект, тут есть секретная ссылка:" пусто
Игорь Клюжев, проверил ещё раз, архив со скриптами корректно распаковывается) Можешь в лс здесь на бусти прислать скриншот ошибки, если она есть - как у тебя выглядит?
Subscription levels3

Мастер

$14.8$6.7 per month
-55%
• Ранний доступ к приложению-компаньону
• Доступ к закрытому чату в iOS Dev
 с самыми важными постами.
• Доступ ко всем постам на бусти сразу же.
• Доступ к другим ресурсам в будущем одним из первых.
• Доступ к notion и всем материалам.
+ chat

Архитектор

$29.6 per month
• Ранний доступ к приложению-компаньону
• Доступ к закрытому чату в iOS Dev
 с самыми важными постами.
• Доступ ко всем постам на бусти сразу же.
• Доступ к другим ресурсам в будущем одним из первых.
Возможность предлагать свои темы.
• Возможность комментирования материалов в notion.
+ chat

Инженер

$89 per month
Подписка для тех, кто готов поддержать развитие канала по максимуму, так как считает это правильным. 

Преимущества содержат все то, что на предыдущих уровнях.

Но с возможностью доступа в будущем к эксклюзивам.

• Ранний доступ к приложению-компаньону
• Доступ к закрытому чату в iOS Dev с самыми важными постами.
• Доступ ко всем постам на бусти сразу же.
• Доступ к другим ресурсам в будущем одним из первых.
• Возможность комментирования материалов в notion.
+ chat
Go up