iOS Dev – Telegram
iOS Dev
7.88K subscribers
1.09K photos
120 videos
1 file
1.31K 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
Эффект Liquid Glass + отражения на Metal за 20 строчек кода

📰 В новый год - с новыми эффектами, как говорится)

Попробовал посмотреть на реализацию под другим углом (буквально) и запилить альтернативное решение.

Для этого по классике подошёл с уже привычным инструментом, попробовал закастомить pull-to-refresh с помощью своего решения в одном из секретных проектов.

Без учёта сигнатуры сам метод занял всего 20 строчек кода.

Код всех реализаций есть 💰тут и ⭐️тут.

Бесплатные ресурсы, с которых можно начать знакомство со сложной математикой:

📖 Книга Дэна Холлика и 📖 GM Shaders — подборка материалов по изучению шейдеров от новичков до про

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
9🔥259👍6🤣3🍓2❤‍🔥11
Слушаете музыку во время работы?
Anonymous Poll
68%
Да
32%
Нет
777🔥6👍2😎2🍓1
This media is not supported in your browser
VIEW IN TELEGRAM
Кстати, о музыке. Вот такое текущее состояние дел в Apple - это Apple Music

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
5🤯50🍓9🫡9💯754👍2🔥2👏1🤗1
Использование моделей Apple Foundation на практике: резюмирование текста

Хотя при использовании всё ещё могут быть присущие LLM риски, фреймворк может быть полезен полезным для ряда задач: от обобщения текста до простых задач генерации.

📖 В этом расширенном руководстве как раз рассмотрен один из таких кейсов.

А ещё рассмотрены способы настройки/ограничений и проверки доступности, а также есть пример готового проекта.

➡️ Напомню, что в канале есть и универсальное руководство по использованию Foundation Models Framework

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
913🔥8❤‍🔥3👍2👏2
Разбор иерархии жестов в SwiftUI

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

🔗 А про комбинацию жестов и анимаций в SwiftUI можно почитать в этом посте.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
618👍8🔥841🏆1🆒1
Gemini станет новым ядром Siri - официальное заявление Apple и Google

Цитата из первоисточника:
«После тщательной оценки пришли к выводу, что технология Google обеспечивает наиболее эффективную основу для Apple Foundation Models, и мы воодушевлены новыми инновационными возможностями, которые она откроет для наших пользователей», — говорится в заявлении.


🗓 Ожидается, что версия Siri следующего поколения будет представлена ​​вместе с iOS 26.4, которая, скорее всего, будет выпущена для широкой публики в марте или апреле.

Надеюсь, для разработчиков тоже будут соответствующие апдейты уже внутри фреймворка Foundation Models.

Ставьте 🔥, если поддерживаете это решение Apple.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
13🔥7787🤯5❤‍🔥43👍1
Секретный способ найти файлы .md для Swift Concurrency/SwiftUI/MapKit и так далее

Вижу волну хайпа вокруг создания инструкций для Claude (и не только), некоторые даже собирают тысячи звёзд на GitHub.

Делюсь способом, в котором вы можете найти буквально эпловские инструкции для Xcode за пару кликов:

/Xcode.app/Contents/PlugIns/IDEIntelligenceChat.framework/Versions/A/Resources/AdditionalDocumentation


Здесь собраны инструкции для FoundationModels/StoreKit/Swift-Concurrency-Updates и многого другого.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
18🔥299❤‍🔥7👍1🫡1
iOS Dev
Какую минимальную версию iOS вы поддерживаете на вашем рабочем проекте?
Какую минимальную iOS на рабочем проекте вы поддерживаете в 2026 году?
Anonymous Poll
5%
26
7%
18
14%
17
31%
16
31%
15
4%
14
7%
13 (или ниже)
26112👍2🔥2👏2🤯22🏆1🍾1🎄1
This media is not supported in your browser
VIEW IN TELEGRAM
Продвинутые графики на SwiftUI без сторонних фреймворков (+ зум и анимации)

Удобная и приятная анимация всё ещё важны при прочих равных параметрах. Графики имеют решающие значения в инвестиционных продуктах и биржах, в частности.

Например, когда-то Telegram проводил один из самых сложных конкурсов (c бюджетом овер $ 100 000), в которых соревновались за производительность десятки и сотни разработчиков.

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

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

Код реализации уже доступен 💰 тут и ⭐️ тут.

Больше про создание графиков в открытом доступе можно почитать вот здесь:

🔗 Создание гистограмм с помощью SwiftUI Charts в iOS 16
🔗 Комбинирование разных типов диаграмм для создания уникального дизайна
🔗 Освоение диаграмм в SwiftUI: круговые и кольцевые диаграммы
🔗 Swift Charts и реализация скролла на графиках


😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
20🔥187❤‍🔥5🤩3👍2🏆11
Dime - опенсорсный трекер финансов с учетом гайдлайнов Apple

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

Даже в этих несложных (но это только на первый взгляд) темах может появиться шедевр вроде Clear.

Да и в тестовых заданиях можно встретить самые разные вариации таких заданий на 4-6 часов работы.

Делюсь приложением с открытым кодом (⭐️ 1 500 звёзд), в котором можно посмотреть на один из подходов.

🛠 Dime на GitHub (есть пример работы с виджетами, синхронизацией iCloud, работа с темами и базовым подходом и многим другим).

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
626👍16👏52🔥2🤩2🤯1
Углубленный анализ миграции данных SwiftData

По мнению Донни Уолша (и с ним сложно не согласиться) легкие миграции хорошо работают, когда не вводятся новые требования: добавление опциональных полей, их удаление или переименование.

Но в ситуации, когда нам нужно ввести новое опциональное свойство, изменить типы или в боле сложном кейсе — мы попадаем в область ручной миграции, и на помощь может прийти SchemaMigrationPlan с настраиваемыми этапами.

📖 В этой статье рассмотрено несколько таких ситуаций:

🔘 Как внедрять версии с помощью VersionedSchema
🔘 Когда следует вводить новые версии схемы
🔘 Когда SwiftData может выполнять миграцию автоматически, а когда стоит использовать SchemaMigrationPlan и MigrationStage
🔘 Как обрабатывать особо сложные миграции

🔗 А вот здесь есть пример от Apple, как интегрировать SwiftData в свой проект.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
6🔥85❤‍🔥4👍3🏆21👏1🎄1
В App Store обнаружили утечки пользовательских данных в сотнях приложений, связанных с ИИ

Из 198 перечисленных на данный момент приложений 196 раскрывают пользовательские данные.

Например, приложение «Chat & Ask AI» допустило утчеку 406 миллионов записей от более чем 18 миллионов пользователей.

Категории, в которых находятся потенциально опасные приложения: Образование, Развлечения, Здоровье и Соцсети.

➡️ Полностью список можно посмотреть здесь.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
6🤯17🔥6🫡65👍22🏆1
iOS Dev
🎉 Вышла тех-превью версия Skip — технологии для кроссплатформенных приложений на базе iOS! По словам разработчика, Skip выступает в роли команды Android (как по мне, это слишком громко сказано), создавая эквивалентное приложение параллельно с iOS-версией.…
🚀Skip с сегодняшнего дня стал бесплатным и опенсорсным

До текущего момента создания приложений в Skip требовалась платная подписка и лицензионный ключ.

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


Что это значит для тех, кто хотел или уже пользуется скипом?

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

🛠 Открыт исходный код движка Skipstone, а сам сайт уже переезжает на skip.dev.

📖 Целиком заявление создателей можно почитать здесь.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
7🔥27156❤‍🔥4👍2💯21🏆1🎅1
This media is not supported in your browser
VIEW IN TELEGRAM
Создаём музыку бесплатно: как я упаковал MusicGen в нативное приложение для MacOS (Swift + Python и щепотка шейдеров)

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

Стало интересно, можно ли создать собственный генератор без регистрации и смс без подписок, и короткий ответ - да, можно.

Простой рецепт, из которого можно создать более-менее приемлемый вариант:

Движок - Python + Apple MLX (кстати, сначала пробовал без этого и очевидно упёрся в проблему использования GPU на Apple Silicon).
В качестве модели заттачил MusicGen Small (можно потяжелее).
Обёртку запилил на SwiftUI и добавил немного красоты для фона.


Проблемы, которые пришлось решать:

Оригинальный скрипт юзал библиотеку scipy для сохранения звука (а это потенциально дофига зависимостей). В качестве норм решения прокатило переписать модуль сохранения звука audio.pyна чистом Python (wave + numpy).

Упаковка для приложения:

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


Вся магия внутри самого приложения происходит с помощью Process:

В итоге остановился на 4 доступных параметрах (можно меньше, больше к сожалению, вряд ли):

process.arguments = [promptText, selectedStyle, outputURL.path, durationString]

В качестве промпта можно использовать любой вариант музыки, который вам нравится, для стиля в целом тоже. У меня, например, сейчас несколько пресетов: от саундтреков до Lo-Fi.

С длительностью все сложнее: есть и ограничения модели, и сам трансформ происходит не слишком понятно на первый взгляд, модуль принимает шаги: steps = int(duration_sec * 50).

И вообще максимальная длительность ограничена типом модели, так что тут тоже пришлось немного подкрутить.

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

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

🛠 Расширенная инструкция и пример кода (а также все необходимые скрипты для настройки):

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

🎹 Примеры музыки: в комментариях.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
2020🔥10🏆7❤‍🔥3👍3🎅2🎄1🆒1
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥76❤‍🔥3👍2💯22
This media is not supported in your browser
VIEW IN TELEGRAM
Изучение жестов в SwiftUI: комбинации, практика, примеры и код

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

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

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


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

Весь код, все примеры и многое другое: 💰 На бусти и ⭐️ в телеграме.

🧠 Что вы получите ещё, подписавшись:
➡️Карта изучения Swift Concurrency (примеры, разбор каждого уровня, полезные советы)
➡️Вопросы на чтение кода (несколько уровней: простых, посложнее)
➡️Многопоточность
➡️DispatchQueue: практические вопросы
➡️Swift Concurrency
➡️Алгоритмы: терминология и примеры + путь Яндекс Coderun (разбор нескольких десятков задач)
➡️Память: ARC, side table, флаги, утечки
➡️Результаты зарплатного опроса в нашем канале + сравнение с европейскими реальными зарплатами в iOS
➡️Разбор подходов к анимациям и лучшие паттерны (классические способы, Metal, комбинации - все подкреплено кодом)
➡️Утечки памяти в Swift: что с ними делать, как предотвратить?
➡️Навигация в SwiftUI: типы, отличия, разбор неочевидных моментов


😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
24🔥15👍8🤯43❤‍🔥21
Улучшение удобства использования библиотек C в Swift

В экосистеме ПО есть огромное количество интересных, полезных и даже забавных библиотек C.

Хотя у нас всегда есть опция пойти и переписать эти библиотеки на Swift, обычно в этом нет необходимости, поскольку Swift обеспечивает прямую совместимость с C.

После небольшой настройки можно юзать существующие библиотеки C прямо из нашего Swift-кода.

Дуг Грегор, который работает над компилятором и рантаймом Swift, написал огромную детальную статью на официальном сайте, в которой поделился примерами такого использования, особенностями построения карты модулей и подводными камнями, которые могут возникнуть.

📖 Целиком руководство доступно здесь.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
912🔥7👏6👍3💯2🆒11
🔥 Приложения для Windows можно будет писать на Swift

Буквально несколько часов назад была анонсирована новая рабочая группа Windows!

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

• Улучшение поддержки Windows для официального дистрибутива Swift.
• Рекомендации по улучшению основных пакетов Swift, таких как Foundation и Dispatch.
• Рекомендации Swift относительно будущей поддержки Windows.
• Выявление и рекомендация лучших практик для соединения Swift и Windows API, а также свифтовых либ с приложениями Windows.

🗓 Напомню, что в прошлом году аналогичная группа была создана и для Android.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
17🔥428👍7🆒3👏2🏆1🫡1
Swift Community Showcase - интересные проекты и достижения экосистемы

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

🔗 A little brother for Swift Argument Parser
Легковесный альтернативный парсер аргументов командной строки

🔗 Swift Context Management
Для более эффективного понимания лимитов токенов и работы с контекстом в приложениях на Swift

🔗 Modern DI for Swift Concurrency
Современная библиотека DI, разработанная для Swift Concurrency и SwiftUI

🔗monocle
CLI для агентов, позволяет проверять символы Swift через SourceKit-LSP

🔗TaylorTorch: современный Swift-враппер for LibTorch
Позволяет юзать всю мощь PyTorch для нативных Swift-приложений. В следующий раз попробую его использовать 👩‍🎓

Остальные проекты можно посмотреть на скриншоте.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
8🔥1710💯41👍1👏1🤯1🏆1
Swift Actors: 6 подводных камней, которые подстерегают даже опытных разработчиков

Когда Apple представила акторы, среди обещаний особенно выделялось: «конец проблемам с гонками данных». Реальность оказалась гораздо сложнее.

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

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

📖 Целиком статью можно прочитать вот тут.

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