This media is not supported in your browser
    VIEW IN TELEGRAM
  Реализация анимации Tap to Cash и эффекта Таноса (SpriteKit + CoreMotion + SwiftUI)
Приятные анимации и флоу взаимодействия для пользователя часто будут решающим фактором при выборе вашего приложения среди прочих.
Например, одна из самых кайфовых анимаций прошлой оси - это tap to cash.
Её можно реализовать и на Metal, и на SpriteKit.
В этот раз решил пойти вторым путём. Для этого можно юзать эффект турбулентности с помощью turbulenceField. В отличие от аналогичного с шумом наша сила будет пропорциональна скорости объекта внутри нашего поля.
Для того, чтобы создать эффект завихрения можно юзать любую интервальную функцию (в своём решении я запилил несложный аналог осциллограммы через
Для оптимизации распадающихся цифр (вообще тут тоже можно юзать любое вью/картинку и так далее) можно чекнуть массив пикселей (пригодится CGContext, можно почитать тут) из нашей картинки с определённым шагом для производительности (если идти по каждому, можно словить нефиговые лаги) и использовал эти позиции для формирования наших частиц. А на фоне просто-напросто дополнительный SKEmitterNode.
Ещё прикрутил реакцию на наклон девайса из стороны в сторону и вверх-вниз для небольшого эффекта смещения.
📖 А для трансформа кнопок добавил немного фич из новой 26 оси (в этом посте писал подробнее).
Весь код и рабочий пример по традиции уже доступен в закрытой базе:
Можно подписаться в⭐️  в телеграме или 💰  с приятными условиями на бусти.
😃  iOS Dev
Приятные анимации и флоу взаимодействия для пользователя часто будут решающим фактором при выборе вашего приложения среди прочих.
Например, одна из самых кайфовых анимаций прошлой оси - это tap to cash.
Её можно реализовать и на Metal, и на SpriteKit.
В этот раз решил пойти вторым путём. Для этого можно юзать эффект турбулентности с помощью turbulenceField. В отличие от аналогичного с шумом наша сила будет пропорциональна скорости объекта внутри нашего поля.
Для того, чтобы создать эффект завихрения можно юзать любую интервальную функцию (в своём решении я запилил несложный аналог осциллограммы через
sin(currentTime * EmitterConstants.oscillationMultiplier).Для оптимизации распадающихся цифр (вообще тут тоже можно юзать любое вью/картинку и так далее) можно чекнуть массив пикселей (пригодится CGContext, можно почитать тут) из нашей картинки с определённым шагом для производительности (если идти по каждому, можно словить нефиговые лаги) и использовал эти позиции для формирования наших частиц. А на фоне просто-напросто дополнительный SKEmitterNode.
Ещё прикрутил реакцию на наклон девайса из стороны в сторону и вверх-вниз для небольшого эффекта смещения.
📖 А для трансформа кнопок добавил немного фич из новой 26 оси (в этом посте писал подробнее).
Весь код и рабочий пример по традиции уже доступен в закрытой базе:
Можно подписаться в
🧠 Что вы получите уже сейчас:➡️ Карта изучения Swift Concurrency (примеры, разбор каждого уровня, полезные советы)➡️ Вопросы на чтение кода (несколько уровней: простых, посложнее)➡️ Многопоточность➡️ DispatchQueue: практические вопросы➡️ Swift Concurrency➡️ Алгоритмы: терминология и примеры + путь Яндекс Coderun (разбор нескольких десятков задач)➡️ Память: ARC, side table, флаги, утечки➡️ Результаты зарплатного опроса в нашем канале + сравнение с европейскими реальными зарплатами в iOS➡️ Разбор подходов к анимациям и лучшие паттерны (классические способы, Metal, комбинации - все подкреплено кодом)➡️ Утечки памяти в Swift: что с ними делать, как предотвратить?➡️ Навигация в SwiftUI: типы, отличия, разбор неочевидных моментов
Please open Telegram to view this post
    VIEW IN TELEGRAM
  16🔥36 10🤯8 4⚡2👍2🤩1
  🚀 Роадмап по принципу работы тайп-чекера и планов на его улучшение в Swift
Наконец-то в одном месте появилось детальное объяснение не только существующих проблем, но и вообще того, как устроен тайп-чекер.
📖 В официальной документации появился огромный пост (за авторством Славы Пестова) о том, что проводится уже сейчас для улучшения проверки типов выражений в компиляторе.
Сюда входят изменения, которые уже были реализованы в Swift 6.2, изменения, которые находятся в мэйн-ветке, изменения, над которыми планируется работать в следующем, а также предварительные долгосрочные планы.
Речь о том самом:
Слава прошёлся и разложил по полочкам несколько важных разделов:
➡️  Про перегрузку (какие вообще варики допускает Swift)
➡️  Решение ограничений (как вообще это реализуется компилятором)
➡️  Алгоритмическая сложность
➡️  Что вообще значит reasonable time
➡️  Недопустимые выражения, режим восстановления и диагностика
➡️  Цели (и не только они)
➡️  Что уже улучшили в Swift 6.2
➡️  А что планируется в Swift 6.3
➡️  Будущие улучшения (про оптимизацию биндингов, удаление хаков производительности и многое другое)
➡️  Планы на будущее
😃  iOS Dev
Наконец-то в одном месте появилось детальное объяснение не только существующих проблем, но и вообще того, как устроен тайп-чекер.
📖 В официальной документации появился огромный пост (за авторством Славы Пестова) о том, что проводится уже сейчас для улучшения проверки типов выражений в компиляторе.
Сюда входят изменения, которые уже были реализованы в Swift 6.2, изменения, которые находятся в мэйн-ветке, изменения, над которыми планируется работать в следующем, а также предварительные долгосрочные планы.
Речь о том самом:
the compiler is unable to type-check this expression in reasonable time (тут можно чекнуть пару подходов).Слава прошёлся и разложил по полочкам несколько важных разделов:
Please open Telegram to view this post
    VIEW IN TELEGRAM
  7 14🔥7✍6💯4👍3 2❤🔥1👏1
  Доклады с конференции Swift Connection 2025
В открытом доступе появился список докладов с парижской конференции этого года.
Среди наиболее любопытных:
📺 Что на самом деле происходит с вашим iOS-приложением во время компиляции
В этой сессии разбирают файлы .xcarchive и .ipa, чтобы показать на примерах, что Xcode делает с исходным кодом. Рассказывают и о процессе компиляции, Mach‑O, Info.plist, метаданных Obj-C/Swift и много другом.
📺 Улучшенная обработка ошибок в Swift: от Obj-C Legacy к Swift 6
Докладчик рассказывает, почему даже LocalizedError не всегда надежён, и как выглядит по-настоящему нативная обработка ошибок в Swift.
📺 Удивительный мир приватных API
В этом докладе рассказывается не только о том, как они работают, но и то, как их, например, искать и применять в Objective-C (и пытаться использовать в Swift).
📺 Создание приложений для iOS без Xcode, с использованием Cursor+Claude
В лекции можно узнать больше про Cursor, Claude Code и настроить свой проект для сборки за пределами Xcode.
➡️  Большая подборка докладов с других конференций в этом посте.
😃  iOS Dev
В открытом доступе появился список докладов с парижской конференции этого года.
Среди наиболее любопытных:
📺 Что на самом деле происходит с вашим iOS-приложением во время компиляции
В этой сессии разбирают файлы .xcarchive и .ipa, чтобы показать на примерах, что Xcode делает с исходным кодом. Рассказывают и о процессе компиляции, Mach‑O, Info.plist, метаданных Obj-C/Swift и много другом.
📺 Улучшенная обработка ошибок в Swift: от Obj-C Legacy к Swift 6
Докладчик рассказывает, почему даже LocalizedError не всегда надежён, и как выглядит по-настоящему нативная обработка ошибок в Swift.
📺 Удивительный мир приватных API
В этом докладе рассказывается не только о том, как они работают, но и то, как их, например, искать и применять в Objective-C (и пытаться использовать в Swift).
📺 Создание приложений для iOS без Xcode, с использованием Cursor+Claude
В лекции можно узнать больше про Cursor, Claude Code и настроить свой проект для сборки за пределами Xcode.
Please open Telegram to view this post
    VIEW IN TELEGRAM
  10 11🔥5 5✍4👍3❤🔥2👏1💯1