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
В 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