iOS Dev
7.88K subscribers
1.08K photos
110 videos
1 file
1.28K links
👨‍💻Автор: Виктор Грушевский (@Viktorianec)

⚒️ База: https://boosty.to/ios_dev | 🤖 @iOSIQBot | https://iosiq.ru

🍏Канал об iOS-разработке, алгоритмах и архитектурах

⭐️ Подготовка к собесам

⭐️ Код. Много кода.

#ios #mobile #swift
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Проектирование и создание кастомных лэйаутов в SwiftUI

📖 В официальной документации есть отличный пример с разборами многих инструментов проектирования.

🛠 Например, в этом приложении реализованы кнопки для голосования за определенный тип питомца (а ещё количество голосов и относительный рейтинг в лидерборде). Оно также показывает аватары питомцев, расположенные в соответствии с текущим рейтингом.

А ещё там разобраны следующие моменты:

➡️ Принцип работы ViewThatFits (кстати, в канале есть пост)
➡️ Повышение эффективности лэйаута с помощью кэширования
➡️ Анимация переходов между различными лэйаутами

🔗 А ещё в канале можно посмотреть на этот ресурс (в котором наглядно показано, как именно влияют на отображение определённые параметры при создании лэйаута).

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
912💯55👍4❤‍🔥21🔥1
Совет по производительности для List+ForEach в SwiftUI

Если ваш список лагает, то здесь может помочь параметр -LogForEachSlowPath (ставим в YES), чтобы SUI логировал ворнинги, как для этой ситуации.

🛠 Можно юзать и напрямую через UserDefaults, пример - вот тут.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
51713🔥8👍4👏3❤‍🔥2💯1🫡1
This media is not supported in your browser
VIEW IN TELEGRAM
Новый раздел в Swift Tutorials от Apple: работа со SwiftData

Полезный набор туториалов пополнился ещё одним разделом, в котором можно познакомиться с понятным примером работы с данными и созданием кастомных вьюх для их отображения.

Показывают, как настроить проект, как добавить Photo Picker, создать контейнер данных, а ещё реализовать возможность сохранения/отмены изменений.

📖 Весь урок доступен здесь.

🛠 Стартовый проект для работы - вот тут.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
616👍9🔥84👏2🤩1
Как ИИ-слоп влияет лично на меня

Создание контента в эпоху бездумного копирования может и кажется со стороны глупой затеей, но я видел атакующие корабли, пылающие над Орионом множество примеров, когда более талантливые разработчики с крутым бэкграундом просто-напросто переставали чем-то делиться из-за того, что их код оборачивали и продавали в десятки раз дороже, а поделки выставляли как инновационные решения (вообще, если пойти шире, такое сплошь и рядом).

Все посты, которыми я делюсь - всегда сопровождаю ссылками, неважно - читатель ли нашего канала решил рассказать про GCD или кто-то из твиттера выложил кайфовое решение под новый год.

Но есть индивиды, неспособные написать три слова без ошибок, которые регулярно как шакалы рыщут по моему каналу в поисках постов, которые вызвали самый большой отклик.

Таким товарищам не хочется задавать никаких вопросов, только пожелать в будущем подключить хотя бы частично мозг, чтобы при прогоне через ИИ добавлять промпт: сделай также, но чтобы было незаметно, что контент чужой.

Я решил поделиться парой примеров, которые мне прислали некоторое время назад (и это только из каналов, в которых подписчиков более тысячи, хотя может и они искусственные).

Или как там, великие художники воруют?

Напомню, что всегда можно отличить знание от повторения, даже если будет использована самая дорогая подписка.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
51❤‍🔥17👍10🔥8🍓431
Новая партнерская программа App Store Mini Apps

📖 Сегодня анонсировали партнёрку Mini Apps (созданных, например, на HTML5 и JavaScript).

Предлагают и сниженную комиссию в размере 15% от продаж соответствующих покупок в приложениях.

Правда, для получения этого бонуса разработчики должны использовать API Declared Age Range и API Advanced Commerce.

➡️ Полные требования, критерии получения доступа к программе и Q&A опубликованы здесь.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
696🔥5❤‍🔥22👍1💯1🍓1
This media is not supported in your browser
VIEW IN TELEGRAM
🚀 Прокачали автодополнение кода в Swift

Проект, представленный Ахмедом Эльрефаи в рамках Google Summer of Code, расширяет реализацию протокола языкового сервера (LSP) для языков Swift и C.

Теперь мы сможем видеть полную документацию, а не только краткое описание (и бонусом все аргументы, доступные для передачи при вызове методов).

VS Code, Neovim, IntelliJ IDEA, Vim (редакторы с поддержкой LSP) получат профит от этих улучшений, другие преимущества описаны тут.

📖 Эта работа уже вошла в проект SourceKit-LSP и будет включена в будущую версию тулчейна Swift.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
922🔥20👍831👏1💯1
Как улучшить производительность SwiftUI-приложений

SwiftUI сильно упростил разработку интерфейсов, но c увеличением размера, кодовой базы и сколь-нибудь сложной логики начинаются проблемы (ха, на самом деле можно упереться в лаги даже при отображении буквально пары картинок).

Я уже делился огромной подборкой инструментов, советами инженеров Apple и многими неочевидными историями, как ускорить отклик вашего приложения. А также новыми доступными инструментами.

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

Ещё раз напомнил о флаге LogForEachSlowPath, примерах с async/await и без кэширования не обошлось.

Если вы делаете первые шаги в SwiftUI (или в целом хотите узнать немного больше), то подписывайтесь:

💰 На бусти и ⭐️ в телеграме.

А пока вы ещё не решились, рекомендую стартовать с этих сессий:

📺 Демистификация и устранение недочетов на этапе рендеринга

📺 Поиск проблем с анимацией пользовательского интерфейса

📺 Использование инструментов для поиска неполадок

🧠 Что вы получите, подписавшись сегодня:
➡️Разбор нескольких сотен вопросов на сложные темы
➡️Вопросы на чтение кода
➡️Многопоточность
➡️DispatchQueue: практические вопросы
➡️Swift Concurrency
➡️Алгоритмы: терминология и примеры
➡️Память: ARC, side table, флаги, утечки
➡️Множество анимаций, шейдеров и не только
Подписаться можно на 💰 бусти и ⭐️ в телеграме.


😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
912🔥7🏆42👍2🆒22
Лучшие доклады конференции Pragma Conf 2025

#Pragma Conference — международная конференция, полностью посвященная разработке приложений для iOS, macOS, watchOS, visionOS и tvOS. Она прошла всего пару недель назад, а доклады уже выложили, и там много интересного:

📺 Swift 6.2 и миграция приложения
Антуан делится тем, как параллелизм может решить ключевые проблемы разработчиков.

📺 The Attribute Graph: невидимая рука SwiftUI
Много деталей про систему, буквально лежащую в основе SwiftUI.

📺 Альтернативные маркетплейсы на iOS: интеграция и инновации
Тема, которая может пригодиться крупным игрокам рынка: рассмотрены вопросы настройки, этапы разработки, советы по тестированию и многое другое.

📺 Священный секрет скорости нашего приложения
Маттео Раттотти и Константин Ерохин делятся необычными способами, которые повысили производительность для всех пользователей.

📺 Радости и трудности незрячего программиста
Аркадиуш Свентницкий рассказывает о доступности с точки зрения разработчика. Этот доклад можно только слушать.

📖 Все доклады можно посмотреть здесь.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
714🔥7👍43🤩1💯1🏆1
Нужно ли высшее образование разработчику в 2025 году?
Anonymous Poll
47%
Да
53%
Нет
59❤‍🔥6🔥4💯42👍2🍓221
This media is not supported in your browser
VIEW IN TELEGRAM
Kinetics - опенсорсная либа для эмуляции реальной физики в анимациях SwiftUI

Основана на Swift 6 (с соответствием требованиям параллелизма) и добавляет естественности взаимодействию пользователя с приложением.

🛠 Доступна на GitHub (есть демка).

По требованиям к проекту: iOS 15.0+ / macOS 12.0+ (и Swift 6.0+).

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
824🔥9❤‍🔥8🎉621👍1
Адаптация гибридного проекта на SwiftUI+UIKit к Liquid Glass

📖 В этой статье описаны принятые решения по рефакторингу для Sheet/Navigation/Popover.

Помимо этого есть пример расчёта размеров для UIBarButtonItem и работа с CABackdropLayer, а также показано, как создать уникальный эффект стеклянного текста с помощью Core Text.

🛠 Все описанное доступно и в проекте на GitHub.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
61411❤‍🔥4💯22👍1🔥1
«Сбер» планирует сократить до 20% сотрудников, признанных неэффективными искусственным интеллектом

Первые результаты оптимизаций с помощью ИИ уже на поверхности, буквально в реальном времени пару дней назад прозвучал тезис в одном из крупнейших, если не самом крупном бигтехе в СНГ.

Греф пояснил, что оценка эффективности проводится с помощью мультиагентной системы. Сокращения планируется завершить к 1 января.


Что думаете, если ИИ начнёт оценивать результаты вашего труда?

У кого-то в компании эта схема уже применяется? Если да, то каким образом?

Считается количество строк в пуллреквесте или количество тасок, передвинутых на доске?

Что лично вы думаете о таких оптимизациях?

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
7🤯46🔥6👍5🍓422❤‍🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Чёрная пятница для iOS Dev - в чём плюсы?

Читатели, которые поддерживают канал не только словом/комментарием или реакцией - это восхитительно, и бустит в буквальном смысле на создание новых полезных инструментов: приложения, бота, роадмапов, подборок, разборов.

Я всегда считаю, что не просто говорить, а делать всегда значит больше, чем просто строить воздушные замки. Лучше одна реализованная фича, чем невероятный проект на 5 лет, к кому никто так и не приступит.

Об этом и мой канал. О необычных вещах с простыми решениями, а ещё о том, что не всегда ИИ - это выход и спасательный круг. О критическом мышлении, сложных вопросах и многом другом.

Я пишу о том, что мне интересно. Делаю то, что мне нравится и не строю карточный домик из ложных тезисов, на которых базируется сейчас слишком многое.

А параллельно с этим по крупицам выстраиваю фундаментальную базу для изучения iOS (и делюсь личным опытом, который может пригодиться и в других направлениях).

Подготовка к собеседованиям:
- Мок-собесы с публичным доступом (сейчас несколько десятков на русском и английском языках).
- Вопросы для подготовки по секциям (сотни примеров на разные темы)
- Частные узкие темы (с поиском проблем в коде).
- System Design. Мои советы и большая подборка материалов.

Алгоритмы:
- Сложность алгоритмов.
- Разбор десятков задач с контестов (в том числе и от яндекса).
- Популярные методы решения задач (с примерами).

Архитектуры:
- Все паттерны проектирования банды четырёх. Общая информация и примеры реализации на Swift.
- Архитектурные заблуждения.
- Реализация в реальных приложениях.

Необычные эффекты:
В этом разделе я делюсь анимациями, подходами к созданию и десятками примеров.

Инструментарий. Полезные советы при работе с Xcode, терминалом и симулятором.

А помимо этого - у всех подписавшихся по умолчанию есть доступ к режиму собеседований в боте и к ранним версиям приложениям iOS IQ.

И это только часть того, что есть уже сегодня.

Подписаться можно на бусти и в телеграме ближайшие 2 недели с приятными условиями.
612🔥106👏2👍1🎉1
Многозадачность и управление приоритетами

На моей практике не сосчитать случаев, когда появлялись задачи с высшим уровнем приоритета, которыми нужно заменить часть текущих, а при тестировании появлялись корнер-кейсы, о которых догадаться просто-напросто невозможно.

Например, управление одной учеткой в реальном времени с разных девайсов и совершение почти похожих действий могут привести порой к неожиданным результатам (предотвращение таких гонок - одна из задач в любых системах общения, будь то какой-нибудь мессенеджер, и, например, организация голосового/видео чата).

И может показаться, что есть опция захватить пачку задач сразу и выполнять их параллельно, буквально как Юлий Цезарь.

Вот только утверждение, что Цезарь делал несколько дел одновременно - все-таки миф, на самом деле речь шла о быстром переключении задач.

И хотя такой навык особенно полезен в нашей сфере, но на самом деле сумма времени, потраченного на эти несколько задач якобы параллельно, будет точно такой же и при последовательном подходе.

Поэтому рациональное желание сделать быстрее/лучше при увеличении допустимого пула задач вполне вероятно приведет к увеличению сроков.

При оценке задач с опытом приходит и то, что фича попадет в релизную сборку не только после того, как вы напишете код, но и когда её протестируют, требования по ТЗ будут уточнены, а все изменения по дизайну приняты и реализованы.

Все остальные вещи вроде наличия общей дизайн-системы, общего подхода к проверке фич и заранее заложенного времени на тестирование могут помочь, но совершенно не гарантируют, что заложенное в неделю время окажется в итоге неделей, а не месяцем.

Часто вышестоящие менеджеры могут забывать о законе Брукса, стремясь увеличить производительность команд с помощью расширения количественного состава:

«Если проект не укладывается в сроки, то добавление рабочей силы задержит его ещё больше».

На самом деле, все абсолютно логично - новых ребят, пусть и супер-толковых, всегда необходимо онбордить, естественно закладывать время на обучение от их коллег и постепенно погружать в документацию.

Да и вообще, написание кода - это лишь верхушка айсберга в продуктовой разработке.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
9119❤‍🔥433👍1🔥1👌1💯1
Как работать с шейдерами

Дэн Холлик выпустил новую главу в своей книге Making Software, посвященную шейдерам, фундаментальным принципам и математике.

Хотя напрямую статья не относится к iOS-разработке, но настолько изумительно все описано, что я не могу не поделиться.

Дэн подошёл к теме основательно, и начал аж с того, как работает GPU, описал графический пайплайн (и про vertex shading, про растеризацию и fragment shading) и снабдил все качественными иллюстрациями.

Есть инфа и про апи Microsoft (которая всем нам знакома как DirectX) и их HLSL, но и Apple с Metal не остались в стороне.

📖 Рекомендую сохранить себе статью не только для общего развития, но и чтобы узнать, как в целом создавать крутую графику, зная только x и y-координаты.

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

🔗 Warp-эффект на metal-шейдере
🔗 Beauty infinite loop
🔗 Огненный шейдер

Код всех реализаций есть 💰 тут и ⭐️ тут, не забывайте про Black Friday.


😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
9199❤‍🔥9👍4🔥3🎉1💯11
Вышло обновление лекций Стэнфорда для iOS-разработчиков

Этот курс - в целом одна из лучших бесплатных точек входа для iOS-разработчиков, и буквально недавно вышло большое обновление из 6 лекций: от основ SwiftUI до демонстрации работы с данными.

📖 Курс целиком доступен здесь (обещают выложить новые лекции в ближайшем будущем).

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
822❤‍🔥17👍5🔥5🏆4💯21👏1🆒1
Please open Telegram to view this post
VIEW IN TELEGRAM
16🔥127💯5👍3🍓2❤‍🔥1
Что такое стратегия Direct-to-Consumer и почему не развивать её — значит проиграть?

Каждая большая индустрия рано или поздно осознаёт простую вещь: посредники — это компромисс, а не эволюция. D2C — не просто модный тренд. Это взросление игровой индустрии, неизбежный этап, на котором вы либо управляете процессами напрямую, либо наблюдаете, как вас регулируют по чужим правилам.
Рассказываем о разных аспектах D2C здесь.
🔥65👍432👏1💯1🍓1
This media is not supported in your browser
VIEW IN TELEGRAM
Иконка App Store в реальном мире

Безусловно, иконки приложений (или в данном случае целого стора) могут или меняться часто, или оставаться прежними на протяжении долгих лет.

Но вот недавно я увидел обсуждение, в котором разработчики (да и пользователи тоже) на полном серьезе спорили, что из себя представляет современный вариант иконки app store (раньше там было более понятное изображение).

Один из вариантов, который предложил Кристиан (про его историю и инди-разработку я писал когда-то вот тут), заключается в том, что логотип App Store сделан из трёх наклонённых иконок приложений.

И он пошёл дальше, и сделал целую модель (которую вы видите прямо сейчас).

🖨 Кстати, если у вас есть 3D-принтер и вы немного в теме - то вот тут можно распечатать свою собственную фигурку, например для рабочего стола.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
28🔥20🤯653👍2❤‍🔥1👏1💯1🏆1
Доходы от App Store — это результат вашей экспертизы, инвестированного времени и развития продукта. Но доступ к этим доходам часто сопровождается ограничениями, бюрократией и неудобными процессами, которые тратят ресурсы команды.

Dev.Cab помогает студиям и разработчикам упростить финансовую сторону работы с App Store и сфокусироваться на продукте, а не на борьбе с платежной инфраструктурой.

Мы выстраиваем удобный процесс приёма и распределения поступлений, который делает финансовую часть стабильной и предсказуемой.

Что даёт работа с Dev.Cab:
🔹 Прозрачные комиссии, без скрытых условий
🔹 Понятная и структурированная схема поступлений
🔹 Удобное управление средствами, в том числе для команд и издателей
🔹 Поддержка и сопровождение, когда нужно быстро решить вопросы

Dev.Cab создаёт комфортный финансовый контур вокруг вашего бизнеса в App Store — чтобы вы могли работать спокойно и масштабироваться без лишних рисков.

Подробнее и консультация → dev.cab

Реклама. ИП Чернов Олег Владимирович ИНН: 691007481228 erid: 2VtzquvQ8VX
12👌7🔥6👍31👏1🤯1💯11
Xcode Behaviors - полезный трюк

Как показывает практика, то, что кажется очевидным, не всегда таковым является. Например, когда-то в канале я делился простым способом как перемещаться по терминалу к нужному символу.

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

Например, в Xcode есть полезная штука Xcode Behaviors (в ней можно настраивать кастомные действия для открытия вкладок, триггеров на старт/финиш билда, на ошибки, да почти на что угодно).

Вот как можно открывать директорию проекта по хоткею, например:

1. Создаём скрипт, например openProject.sh
2. В него добавляем следующее:
#!/bin/bash
open "`pwd`"

3. Накидываем на скрипт права на исполнение через терминал (или свойства) chmod +x openProject.sh
4. Переходим Xcode behaviors -> Edit behaviors -> Custom Behavior
5. Задаём название - например Open Project Behavior, добавляем хоткей, например cmd+option+9 (или любой другой, если будет конфликт, Xcode ругнётся).
6. Выбираем наш скрипт.

И теперь каждый раз, когда вы будете нажимать cmd+option+9, будет открываться директория текущего проекта.

Кстати, в Boosty (все ещё доступном по хорошим условиям) лежит и необычный пример MVP для логирования сборок билдов и интеграции c Xcode.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
82110💯63🔥2👍1👏1