en
Feedback
iOS Dev

iOS Dev

Open in Telegram

👨‍💻Автор: Виктор Грушевский (@Viktorianec) ⚒️ База: https://boosty.to/ios_dev | 🤖 @iOSIQBot | https://iosiq.ru 🍏Канал об iOS-разработке, алгоритмах и архитектурах ⭐️ Подготовка к собесам ⭐️ Код. Много кода. #ios #mobile #swift

Show more
7 995
Subscribers
+824 hours
+327 days
+7530 days
Posts Archive
iOS Dev
7 998
Kinetics - опенсорсная либа для эмуляции реальной физики в анимациях SwiftUI Основана на Swift 6 (с соответствием требованиям параллелизма) и добавляет естественности взаимодействию пользователя с приложением. 🛠 Доступна на GitHub (есть демка). По требованиям к проекту: iOS 15.0+ / macOS 12.0+ (и Swift 6.0+). 😃 iOS Dev

iOS Dev
7 998
Нужно ли высшее образование разработчику в 2025 году?
Anonymous voting

iOS Dev
7 998
Лучшие доклады конференции Pragma Conf 2025 #Pragma Conference — международная конференция, полностью посвященная разработке
Лучшие доклады конференции Pragma Conf 2025 #Pragma Conference — международная конференция, полностью посвященная разработке приложений для iOS, macOS, watchOS, visionOS и tvOS. Она прошла всего пару недель назад, а доклады уже выложили, и там много интересного: 📺 Swift 6.2 и миграция приложения Антуан делится тем, как параллелизм может решить ключевые проблемы разработчиков. 📺 The Attribute Graph: невидимая рука SwiftUI Много деталей про систему, буквально лежащую в основе SwiftUI. 📺 Альтернативные маркетплейсы на iOS: интеграция и инновации Тема, которая может пригодиться крупным игрокам рынка: рассмотрены вопросы настройки, этапы разработки, советы по тестированию и многое другое. 📺 Священный секрет скорости нашего приложения Маттео Раттотти и Константин Ерохин делятся необычными способами, которые повысили производительность для всех пользователей. 📺 Радости и трудности незрячего программиста Аркадиуш Свентницкий рассказывает о доступности с точки зрения разработчика. Этот доклад можно только слушать. 📖 Все доклады можно посмотреть здесь. 😃 iOS Dev

iOS Dev
7 998
Как улучшить производительность SwiftUI-приложений SwiftUI сильно упростил разработку интерфейсов, но c увеличением размера,
Как улучшить производительность SwiftUI-приложений SwiftUI сильно упростил разработку интерфейсов, но c увеличением размера, кодовой базы и сколь-нибудь сложной логики начинаются проблемы (ха, на самом деле можно упереться в лаги даже при отображении буквально пары картинок). Я уже делился огромной подборкой инструментов, советами инженеров Apple и многими неочевидными историями, как ускорить отклик вашего приложения. А также новыми доступными инструментами. В новом большом разделе я постарался привести множество реальных моментов в коде SwiftUI, импакт от улучшения которых может быть очевиден на реальных проектах даже при небольших, точечных изменениях. Ещё раз напомнил о флаге LogForEachSlowPath, примерах с async/await и без кэширования не обошлось. Если вы делаете первые шаги в SwiftUI (или в целом хотите узнать немного больше), то подписывайтесь: 💰 На бусти и ⭐️ в телеграме. А пока вы ещё не решились, рекомендую стартовать с этих сессий: 📺 Демистификация и устранение недочетов на этапе рендеринга 📺 Поиск проблем с анимацией пользовательского интерфейса 📺 Использование инструментов для поиска неполадок
🧠 Что вы получите, подписавшись сегодня: ➡️Разбор нескольких сотен вопросов на сложные темы ➡️Вопросы на чтение кода ➡️Многопоточность ➡️DispatchQueue: практические вопросы ➡️Swift Concurrency ➡️Алгоритмы: терминология и примеры ➡️Память: ARC, side table, флаги, утечки ➡️Множество анимаций, шейдеров и не только Подписаться можно на 💰 бусти и ⭐️ в телеграме.
😃 iOS Dev

iOS Dev
7 998
🚀 Прокачали автодополнение кода в Swift Проект, представленный Ахмедом Эльрефаи в рамках Google Summer of Code, расширяет реализацию протокола языкового сервера (LSP) для языков Swift и C. Теперь мы сможем видеть полную документацию, а не только краткое описание (и бонусом все аргументы, доступные для передачи при вызове методов). VS Code, Neovim, IntelliJ IDEA, Vim (редакторы с поддержкой LSP) получат профит от этих улучшений, другие преимущества описаны тут. 📖 Эта работа уже вошла в проект SourceKit-LSP и будет включена в будущую версию тулчейна Swift. 😃 iOS Dev

iOS Dev
7 998
Новая партнерская программа App Store Mini Apps 📖 Сегодня анонсировали партнёрку Mini Apps (созданных, например, на HTML5 и JavaScript). Предлагают и сниженную комиссию в размере 15% от продаж соответствующих покупок в приложениях. Правда, для получения этого бонуса разработчики должны использовать API Declared Age Range и API Advanced Commerce. ➡️ Полные требования, критерии получения доступа к программе и Q&A опубликованы здесь. 😃 iOS Dev

iOS Dev
7 998
Как ИИ-слоп влияет лично на меня Создание контента в эпоху бездумного копирования может и кажется со стороны глупой затеей, н
Как ИИ-слоп влияет лично на меня Создание контента в эпоху бездумного копирования может и кажется со стороны глупой затеей, но я видел атакующие корабли, пылающие над Орионом множество примеров, когда более талантливые разработчики с крутым бэкграундом просто-напросто переставали чем-то делиться из-за того, что их код оборачивали и продавали в десятки раз дороже, а поделки выставляли как инновационные решения (вообще, если пойти шире, такое сплошь и рядом). Все посты, которыми я делюсь - всегда сопровождаю ссылками, неважно - читатель ли нашего канала решил рассказать про GCD или кто-то из твиттера выложил кайфовое решение под новый год. Но есть индивиды, неспособные написать три слова без ошибок, которые регулярно как шакалы рыщут по моему каналу в поисках постов, которые вызвали самый большой отклик. Таким товарищам не хочется задавать никаких вопросов, только пожелать в будущем подключить хотя бы частично мозг, чтобы при прогоне через ИИ добавлять промпт: сделай также, но чтобы было незаметно, что контент чужой. Я решил поделиться парой примеров, которые мне прислали некоторое время назад (и это только из каналов, в которых подписчиков более тысячи, хотя может и они искусственные). Или как там, великие художники воруют? Напомню, что всегда можно отличить знание от повторения, даже если будет использована самая дорогая подписка. 😃 iOS Dev

iOS Dev
7 998
Новый раздел в Swift Tutorials от Apple: работа со SwiftData Полезный набор туториалов пополнился ещё одним разделом, в котором можно познакомиться с понятным примером работы с данными и созданием кастомных вьюх для их отображения. Показывают, как настроить проект, как добавить Photo Picker, создать контейнер данных, а ещё реализовать возможность сохранения/отмены изменений. 📖 Весь урок доступен здесь. 🛠 Стартовый проект для работы - вот тут. 😃 iOS Dev

iOS Dev
7 998
Repost from VK Team
Мобильные разработчики, как насчёт запетлять на Mobius 😉 Если вы не успели взять билеты — не беда: мы разыгрываем две проходки на ивент, чтобы вы точно смогли посмотреть на наш стенд и послушать коллег 💙 Условия простые: ✅подпишитесь на каналы @vkjobs и @mobilehubvk ✅нажмите кнопку «Участвовать» ✅увеличьте свои шансы и пригласите друга — вместе веселее! Информацию об организаторе, правилах и призах ищите здесь, а результаты конкурса мы подведём 14 ноября. Удачи! Участников: 98 Призовых мест: 2 Дата розыгрыша: 16:00, 14.11.2025 MSK (2 дня)

iOS Dev
7 998
Совет по производительности для List+ForEach в SwiftUI Если ваш список лагает, то здесь может помочь параметр -LogForEachSlow
Совет по производительности для List+ForEach в SwiftUI Если ваш список лагает, то здесь может помочь параметр -LogForEachSlowPath (ставим в YES), чтобы SUI логировал ворнинги, как для этой ситуации. 🛠 Можно юзать и напрямую через UserDefaults, пример - вот тут. 😃 iOS Dev

iOS Dev
7 998
Проектирование и создание кастомных лэйаутов в SwiftUI 📖 В официальной документации есть отличный пример с разборами многих инструментов проектирования. 🛠 Например, в этом приложении реализованы кнопки для голосования за определенный тип питомца (а ещё количество голосов и относительный рейтинг в лидерборде). Оно также показывает аватары питомцев, расположенные в соответствии с текущим рейтингом. А ещё там разобраны следующие моменты: ➡️ Принцип работы ViewThatFits (кстати, в канале есть пост) ➡️ Повышение эффективности лэйаута с помощью кэширования ➡️ Анимация переходов между различными лэйаутами 🔗 А ещё в канале можно посмотреть на этот ресурс (в котором наглядно показано, как именно влияют на отображение определённые параметры при создании лэйаута). 😃 iOS Dev

iOS Dev
7 998
Советы по оптимизации скорости и производительности приложений от Apple 📺 Опубликовали видео с прошедшей онлайн-сессии Apple
Советы по оптимизации скорости и производительности приложений от Apple 📺 Опубликовали видео с прошедшей онлайн-сессии Apple, на которой рассказали о нескольких подходах к работе и с Liquid-дизайном, и о том, как использовать некоторые из доступных нам инструментов. 🕔 Про оптимизацию энергопотребления при использовании нового дизайна 🕜 Генерация быстрых ответов с использованием Foundation Models Это мне пригодится. 🕢 Глубокое погружение в перфоманс SwiftUI 🕗 Инструменты производительности в Snap 😃 iOS Dev

iOS Dev
7 998
Кстати, вышел Pluribus - визионерское высказывание Винса Гиллигана, автора шикарных сериалов «Во все тяжкие» и «Лучше звоните Солу». Преамбула сериала заключается в том, что весь мир буквально охвачен счастьем, но главная героиня видит в этом огромную опасность для человечества - это не спойлер, лишь теглайн с imdb/кинопоиска. Хотя главная мысль куда шире и диапазон смыслов подобно лавине накатывает ещё в первой серии. Невозможно не заметить отклик и со стерильными, отточенными движениями каждого из персонажей, которые перекликаются в том числе даже с сессиями WWDC, по крайней мере такая аналогия возникла во время просмотра (ах да, Apple и выступает в качестве платформы стриминга по дефолту). К слову, ещё здесь персонажи соглашаются со всем подобно ИИ-агентам, которые так и наровят сообщить герою: «Да, вы абсолютно правы, съешь ещё этих мягких французских булок, да выпей чаю». В отличие от паразитирующих, повторяющихся клише в каждом из комиксоподобных однотипных поделок, которыми как из рога изобилия посыпали кинотеатры зрителей за скромную плату последние пятнадцать лет, прописанный характер главной героини не стремится понравиться зрителю - у неё свои скелеты в шкафу и свои демоны, которые ведут к неожиданным последствиям. В Pluribus содержится и то, что можно увидеть в течение первых пятнадцати минут. Это латинское слово, означающее из многих. Но ещё это часть более широкой фразы: из многих - единое. И почему это так - можно узнать, посмотрев Pluribus. Думаю, что мысли про параллели с ИИ возникнут у многих, вопрос лишь в том - опыт какого из персонажей окажется ближе лично вам. 😃 iOS Dev

iOS Dev
7 998
Что нового в Swift - новый раздел на swift.org На сайте вышел первый ежемесячный дайджест, в котором рассказывается не только
Что нового в Swift - новый раздел на swift.org На сайте вышел первый ежемесячный дайджест, в котором рассказывается не только о новостях Swift, но также приводятся мнения и точки зрения представителей всего, что так или иначе связано с экосистемой. В октябрьском выпуске освещаются основные моменты конференции Server Side Swift, выпуск основных пакетов и последние пропозалы Swift Evolution. Например, там есть ссылка на интересный доклад Бена Коэна: 📺 Юзабилити и производительность в Swift Бен рассказал о том, как развивается язык и как именно он позволяет достичь максимальной производительности при всех тех изменениях, что происходят. Затронули и InlineArray и Span, и многое другое. 📖 Целиком дайджест можно почитать здесь. 😃 iOS Dev

iOS Dev
7 998
Вышло новое интервью с Крисом Латтнером - от Swift до Mojo Мне понравился момент, когда он сказал буквально следующее:
До Swift я пытался создавать свои пет-проекты на Objective-C, но меня раздражали квадратные скобки и было трудно разобраться с указателями и крашами. Мне даже казалось, что я недостаточно хорош для создания приложений.
Поэтому он создал свой язык программирования! 💪 Вот это я понимаю кардинальное решение проблемы. Красиво, Крис, вопросов нет. 📺 Вообще в интервью много интересных моментов: ➡️ Про компиляторы в начале 2000 ➡️ Почему Крис создал LLVM ➡️ Процесс создания языка программирования ➡️ Swift Playgrounds - как программирование стало более доступным ➡️ Какие проблемы решил Swift и какой технический долг появился ➡️ Недостатки компилятора ➡️ Что можно почерпнуть из изучения компиляторов 📺 А прошлое интервью можно посмотреть здесь. 😃 iOS Dev

iOS Dev
7 998
Небольшой анонс на счёт приложения iOS IQ Я опросил несколько человек на счёт того, что они думают на счёт автогенерации вопросов в будущем - и, конечно же, мнения разделились. Много плюсов, среди которых буквально абсолютный рандом, возможность генерации вопросов на любые темы и в целом возможность отдать управление сложностью алгоритмам эпла. Среди минусов: та же непредсказуемость валидности исходных вопросов, совершенно неочевидно, насколько правильным является ответ и, например - насколько он вообще корректен. Несмотря на это, я все-таки поэкспериментировал вчера с Foundation Models - и думаю, что в каком-то виде (отдельном, с пометкой про AI и то, что вопросы сгенерированы) этот раздел появится. Небольшая демка уже есть на гифке. Если вы хотите получить доступ к ранним версиям в тестфлайте, подпишитесь в ⭐️ в телеграме или 💰 на бусти. Любые идеи и обратная связь приветствуются, например - какой режим лично вы бы хотели увидеть - напишите в сообщения канала или мне в лс.
Напомню, что в ноушне есть множество тем, которые я создавал вручную и это не изменится в будущем: лучше я потрачу несколько часов, но буду уверен в корректности.
🛠 Кстати, недавно появился полезный SPM в качестве замены системному, в котором можно юзать любой кастомный провайдер моделей. 😃 iOS Dev

iOS Dev
7 998
Интеграция функциональности камеры в SwiftUI Хотя на SwiftUI проще создавать практически любые компоненты интерфейса, для раб
Интеграция функциональности камеры в SwiftUI Хотя на SwiftUI проще создавать практически любые компоненты интерфейса, для работы с камерой требуются более низкоуровневые возможности AVFoundation. 📖 В этом материале можно посмотреть на пример решения такой задачи. Для этого в примере используется четыре основных компонента: CameraManager, CameraPreview (для бриджа превью-слоя AVFoundation в SwiftUI через UIViewRepresentable), CameraView - для взаимодействия с камерой и PhotoView (для фотогалереи). 😃 iOS Dev

iOS Dev
7 998
Доклады с конференции Swift Connection 2025 В открытом доступе появился список докладов с парижской конференции этого года. С
Доклады с конференции 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 Dev
7 998
🚀 Роадмап по принципу работы тайп-чекера и планов на его улучшение в Swift Наконец-то в одном месте появилось детальное объяснение не только существующих проблем, но и вообще того, как устроен тайп-чекер. 📖 Слава Пестов написал огромный пост о том, что проводится уже сейчас для улучшения проверки типов выражений в компиляторе. Сюда входят изменения, которые уже были реализованы в Swift 6.2, изменения, которые находятся в мэйн-ветке, изменения, над которыми планируется работать в следующем, а также предварительные долгосрочные планы. Речь о том самом: the compiler is unable to type-check this expression in reasonable time (тут можно чекнуть пару подходов). Слава прошёлся и разложил по полочкам несколько важных разделов: ➡️ Про перегрузку (какие вообще варики допускает Swift) ➡️ Решение ограничений (как вообще это реализуется компилятором) ➡️ Алгоритмическая сложность ➡️ Что вообще значит reasonable time ➡️ Недопустимые выражения, режим восстановления и диагностика ➡️ Цели (и не только они) ➡️ Что уже улучшили в Swift 6.2 ➡️ А что планируется в Swift 6.3 ➡️ Будущие улучшения (про оптимизацию биндингов, удаление хаков производительности и многое другое) ➡️ Планы на будущее 😃 iOS Dev

iOS Dev
7 998
Реализация анимации Tap to Cash и эффекта Таноса (SpriteKit + CoreMotion + SwiftUI) Приятные анимации и флоу взаимодействия для пользователя часто будут решающим фактором при выборе вашего приложения среди прочих. Например, одна из самых кайфовых анимаций прошлой оси - это 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: типы, отличия, разбор неочевидных моментов
😃 iOS Dev