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
Использование моделей 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
Универсальность использования Tasks в Swift

Если вы уже давно занимаетесь разработкой для платформ Apple, ваше понимание «параллелизма» может уходить корнями к эпохе Grand Central Dispatch. А если вы в разработке для яблочных девайсов ещё дольше, то как заметил Макс Зелеманн, то даже и к pthreads.

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

📖 Вот выводы, к которым в итоге пришёл автор статьи (но рекомендую посмотреть и сам пост):

➡️ В своей простейшей форме они представляют собой замыкания для длительных операций в фоне.

➡️ Они предоставляют асинхронный контекст, позволяя вызывать асинхронный код.

➡️ Если хранить дескриптор, можно ждать завершения в другом месте или отменить задачу вовсе, когда она больше не нужна.

➡️ Если вы передаете дескриптор задачи, он служит в качестве промиса (будущего) для значения результата.

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


😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
19🔥118👏6👍3
Просто напоминание, в Матрице плохих парней называли агентами.

25 лет спустя они уже здесь.
9😁72🤣1683🔥2🤯2👍1💯1🎅1
Разбор архитектуры SwiftUI в 2025 году: MVVM, MVC или TCA

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

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


Именно с такими словами выступает автор следующей статьи.

📖 А его взгляд на то, что стоит использовать - можно почитать вот здесь.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
11🔥229👏421👍1💯1🏆1
iOS Dev
Просто напоминание, в Матрице плохих парней называли агентами. 25 лет спустя они уже здесь.
Тем временем в Xcode 26.3 рассказали, как работать с агентами

В новом видео за 5 минут рассказывают, как юзать OpenAI Codex и Claude Agent, для совместной работы над сложными многоэтапными задачами.

Например, как Xcode позволяет агентам создавать проекты, запускать тесты и искать документацию Apple — и все это через Model Context Protocol.

📺 А вот и ссылка!

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
9🔥22👍96👏3❤‍🔥1🆒1