Как покрыть проект на SwiftUI тестами и эффективно проверять навигацию и взаимодействие с сервером?
Присоединяйтесь к открытому уроку 13 августа в 20:00 МСК. Мы разберём, как покрыть навигацию двумя способами, применить Snapshot-тесты и эффективно организовать UI-тестирование с генерацией маркеров и мокирования данных для подмены сетевого трафика.
Вы получите навыки, которые помогут не только создавать стабильные приложения, но и легко масштабировать тестирование в реальных проектах на SwiftUI.
🔥Посетите урок и получите скидку на курс «iOS Developer. Professional»: https://otus.pw/qnuM/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Присоединяйтесь к открытому уроку 13 августа в 20:00 МСК. Мы разберём, как покрыть навигацию двумя способами, применить Snapshot-тесты и эффективно организовать UI-тестирование с генерацией маркеров и мокирования данных для подмены сетевого трафика.
Вы получите навыки, которые помогут не только создавать стабильные приложения, но и легко масштабировать тестирование в реальных проектах на SwiftUI.
🔥Посетите урок и получите скидку на курс «iOS Developer. Professional»: https://otus.pw/qnuM/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
👎30
Поддержка OpenRouter в Xcode
OpenRouter – это платформа, которая дает доступ к большинству LLM через один API и единую систему токенов. Это удобно, так как можно не заморачиваться с подключением разных моделей. Так вот, теперь вы можете обращаться к API OpenRouter прямо из Xcode, попробуйте!
OpenRouter – это платформа, которая дает доступ к большинству LLM через один API и единую систему токенов. Это удобно, так как можно не заморачиваться с подключением разных моделей. Так вот, теперь вы можете обращаться к API OpenRouter прямо из Xcode, попробуйте!
❤20👍1
Как писать хорошие дизайн-доки
Не важно, для кого вы описываете задачу – для кожаного мешка, или для кремниевого, вам нужно уметь писать понятные дизайн-документы. В статье – несколько полезных правил по работе с ними.
Не важно, для кого вы описываете задачу – для кожаного мешка, или для кремниевого, вам нужно уметь писать понятные дизайн-документы. В статье – несколько полезных правил по работе с ними.
Grant Slatton's Blog
Writing a good design document
A guide
👍1
Не перестаю радоваться вещам, которые обнаруживаются в SQLite (предыдущие серии: раз, два).
Разработчики настолько серьезно относятся к проекту, что коммитятся на то, что будут поддерживать его до 2050 года. И достигнуть этого помогают следующие решения:
👉Кросс-платформенность. SQLite можно собрать на любой платформе, на которой запускается С компилятор.
👉Стабильный формат базы. Вне зависимости от платформы, один и тот же файл базы будет одинаково читаться и работать.
👉Тщательность тестирования на уровне авиации.
👉Нереально подробная документация.
👉Вся история изменений кода хранится сразу на нескольких географически распределенных серверах, принадлежащих разным компаниям.
Разработчики настолько серьезно относятся к проекту, что коммитятся на то, что будут поддерживать его до 2050 года. И достигнуть этого помогают следующие решения:
👉Кросс-платформенность. SQLite можно собрать на любой платформе, на которой запускается С компилятор.
👉Стабильный формат базы. Вне зависимости от платформы, один и тот же файл базы будет одинаково читаться и работать.
👉Тщательность тестирования на уровне авиации.
👉Нереально подробная документация.
👉Вся история изменений кода хранится сразу на нескольких географически распределенных серверах, принадлежащих разным компаниям.
👍26❤6🔥2👎1
UDF без дополнительных библиотек
Unidirectional Data Flow – довольно простой архитектурный паттерн, для реализации которого необязательно тащить в проект библиотеки и фреймворки вроде TCA. Более того, базовую логику UDF можно использовать в реализации отдельных фичей, где она приносит максимум пользы.
Unidirectional Data Flow – довольно простой архитектурный паттерн, для реализации которого необязательно тащить в проект библиотеки и фреймворки вроде TCA. Более того, базовую логику UDF можно использовать в реализации отдельных фичей, где она приносит максимум пользы.
Christian Tietze
Adapt Unidirectional Flow Virtues to Your Plain SwiftUI App
To get started, you can require authentication for actions on buttons anywhere in your SwiftUI app produce a change up the scene, e.g. a log-in overlay or dialog, by injecting a closure into the environment to handle that.
👎13💅4❤2
Гигантский обзор всех изменений в UIKit
Держите самый подробный обзор из всех, что я видел, про изменения в UIKit в iOS 26, в том числе во всех бетах. Что важно – сюда попали даже те обновления, которые прошли мимо документации и WWDC сессий.
Держите самый подробный обзор из всех, что я видел, про изменения в UIKit в iOS 26, в том числе во всех бетах. Что важно – сюда попали даже те обновления, которые прошли мимо документации и WWDC сессий.
Sebvidal
What's New in UIKit
Learn what's new in UIKit in the iOS 26 SDK.
👍34❤3🔥1
Релиз SwiftMCP 1.0
Если вы подумываете вкатиться в мир MCP серверов и разработать что-то для своих ежедневных задач, посмотрите на SwiftMCP – реализацию MCP протокола на вашем любимом языке. Повод хороший – библиотека стала feature complete и получила первую стабильную версию.
Если вы подумываете вкатиться в мир MCP серверов и разработать что-то для своих ежедневных задач, посмотрите на SwiftMCP – реализацию MCP протокола на вашем любимом языке. Повод хороший – библиотека стала feature complete и получила первую стабильную версию.
Cocoanetics
Four Months in the Making: SwiftMCP 1.0 is Here
After four months of intensive development, I’m thrilled to announce that SwiftMCP 1.0 is feature-complete and ready for you to use. For those just joining, SwiftMCP is a native Swift implementatio…
❤14👍6
Результаты опроса Stack Overflow за 2025
Во вполне вероятной смерти Stack Overflow в ближайшие годы мне больше всего жаль будет потерять их ежегодные опросы, которые дают репрезентативный и очень полезный срез индустрии. Пару недель назад подбили результаты исследования за этот год. Давайте посмотрим, что там есть для нас релевантного:
👉Популярность Swift выросла с 4.7 до 5.9%, и он продолжает держаться в топ-20 языков.
👉Swift удерживает позиции и в списке любимых языков. До Rust с его 72% конечно далеко, но рейтинг в 52% выше, чем у большинства других.
👉Только четверть разработчиков счастливы на своей работе, но в прошлом году таких было еще меньше.
👉Больше всего на счастье влияют автономность, хорошая компенсация и решение реально важных проблем.
👉В прошлом году к AI относились на 10% позитивнее, чем в этом. Что контринтуитивно – профессиональные разработчики ценят AI больше, чем начинающие.
👉84% опрошенных используют AI в своей работе.
👉Чаще всего AI используют для поиска и генерации контента, а реже всего – для деплоя, мониторинга, планирования проекта.
👉AI агенты все еще не стали мейнстримом, только треть опрошенных их как-то использует. Из них 70% считают, что их продуктивность выросла.
Во вполне вероятной смерти Stack Overflow в ближайшие годы мне больше всего жаль будет потерять их ежегодные опросы, которые дают репрезентативный и очень полезный срез индустрии. Пару недель назад подбили результаты исследования за этот год. Давайте посмотрим, что там есть для нас релевантного:
👉Популярность Swift выросла с 4.7 до 5.9%, и он продолжает держаться в топ-20 языков.
👉Swift удерживает позиции и в списке любимых языков. До Rust с его 72% конечно далеко, но рейтинг в 52% выше, чем у большинства других.
👉Только четверть разработчиков счастливы на своей работе, но в прошлом году таких было еще меньше.
👉Больше всего на счастье влияют автономность, хорошая компенсация и решение реально важных проблем.
👉В прошлом году к AI относились на 10% позитивнее, чем в этом. Что контринтуитивно – профессиональные разработчики ценят AI больше, чем начинающие.
👉84% опрошенных используют AI в своей работе.
👉Чаще всего AI используют для поиска и генерации контента, а реже всего – для деплоя, мониторинга, планирования проекта.
👉AI агенты все еще не стали мейнстримом, только треть опрошенных их как-то использует. Из них 70% считают, что их продуктивность выросла.
survey.stackoverflow.co
2025 Stack Overflow Developer Survey
The 2025 Developer Survey is the definitive report on the state of software development. In its fifteenth year, Stack Overflow received over 49,000+ responses from 177 countries across 62 questions focused on 314 different technologies, including new focus…
❤14👍1
Переезжаем из Xcode в Zed
Zed – сравнительно новый редактор кода, который, в отличие от большинства остальных, не является форком VS Code. Он написан полностью на Rust, и его основная ценность – он супер быстрый и легковесный. В статье разбираемся, как перевести туда большую часть повседневных задач, включая редактирование Swift кода, дебаг и запуск приложений.
Zed – сравнительно новый редактор кода, который, в отличие от большинства остальных, не является форком VS Code. Он написан полностью на Rust, и его основная ценность – он супер быстрый и легковесный. В статье разбираемся, как перевести туда большую часть повседневных задач, включая редактирование Swift кода, дебаг и запуск приложений.
🔥18💅14👍5
This media is not supported in your browser
VIEW IN TELEGRAM
Чем плох TextKit 2
Marcin Krzyzanowski – один из самых больших экспертов по работе с текстом в iOS. Помимо прочего, вы можете знать его как ментейнера библиотеки STTextView. Держите обзор от него основных проблем TextKit 2, с которыми он столкнулся за годы работы с ним.
Marcin Krzyzanowski – один из самых больших экспертов по работе с текстом в iOS. Помимо прочего, вы можете знать его как ментейнера библиотеки STTextView. Держите обзор от него основных проблем TextKit 2, с которыми он столкнулся за годы работы с ним.
❤15👎2
Как сделать пиратское PassKit приложение для своей качалки
Отличная байка от Вадима Дробинина про то, как он зареверсил механизм генерации одноразовых QR-кодов для входа в тренажерку, и написал свой бэкенд на Swift и PassKit приложение, которое экономит ему 8 секунд каждый день!
Отличная байка от Вадима Дробинина про то, как он зареверсил механизм генерации одноразовых QR-кодов для входа в тренажерку, и написал свой бэкенд на Swift и PassKit приложение, которое экономит ему 8 секунд каждый день!
Vadim Drobinin - iOS Development Expert
How I accidentally became PureGym's unofficial Apple Wallet developer
Tired of fumbling with the PureGym app for 47 seconds every morning, I reverse-engineered their API to build an Apple Wallet pass that gets me in with a quick wrist scan. Along the way, I discovered their bizarre security theatre: QR codes that expire every…
🔥24❤1
Анатомия AVCaptureSession
Разбираемся, из каких элементов состоит сессия захвата камеры, как они взаимодействуют друг с другом, и какие классы за них отвечают.
Разбираемся, из каких элементов состоит сессия захвата камеры, как они взаимодействуют друг с другом, и какие классы за них отвечают.
Mfaani
High Level Anatomy of a Camera Capturing Session
I used the following tutorial series from Apple on ‘Capturing and Displaying Photos’. They’re great. Just that it took me a bit to be able to piece together how components from AVFoundation work together.
Working with AVFoundation isn’t really the kind where…
Working with AVFoundation isn’t really the kind where…
🔥16
Новый релиз Swift AWS Lambda Runtime
Недавно вышла первая бета второй версии Swift пакета для работы с AWS Lambda. По сравнению с первой версией, внутреннюю реализацию полностью переделали, и мигрировали на Swift Concurrency. Из ключевых новых фичей – background execution, streaming responses и поддержка Swift Service Lifecycle.
Недавно вышла первая бета второй версии Swift пакета для работы с AWS Lambda. По сравнению с первой версией, внутреннюю реализацию полностью переделали, и мигрировали на Swift Concurrency. Из ключевых новых фичей – background execution, streaming responses и поддержка Swift Service Lifecycle.
swifttoolkit.dev
What’s New in the Lambda V2 Runtime (Beta)
Explore the new features: background execution, streaming responses, and more
🔥9❤1
Кэширование в GitHub Actions
Запуск билда на CI чаще всего довольно долгое занятие. Сначала пару минут загружаются Ruby гемы, затем 5 минут SwiftPM подгружает все на свете, и Xcode еще 10 минут собирает весь проект. А если вы собираете приватный репозиторий, то за каждую дополнительную минуту приходится доплачивать.
Держите инструкцию, как настроить кэширование на всех этапах сборки проекта, и в десятки раз ускорить весь пайплайн.
Запуск билда на CI чаще всего довольно долгое занятие. Сначала пару минут загружаются Ruby гемы, затем 5 минут SwiftPM подгружает все на свете, и Xcode еще 10 минут собирает весь проект. А если вы собираете приватный репозиторий, то за каждую дополнительную минуту приходится доплачивать.
Держите инструкцию, как настроить кэширование на всех этапах сборки проекта, и в десятки раз ускорить весь пайплайн.
nowham.dev
Supercharge Your GitHub Actions with Smart Caching | No-Wham Dev
Stop waiting around for builds and make your CI actually fast
👍4
👾Самое время собрать свою команду из IT-акул: Открыта регистрация на самый масштабный онлайн-хакатон в мире!
💸 40 млн рублей призового фонда:
— 1 млн рублей — для тех, кто займёт первое место
— 600 тысяч — второе
— 400 тысяч — третье
💼 20 актуальных задач от ведущих компаний страны: Газпромбанк.Тех, VK Tech, Kaspersky, АФЛТ-Системс (Группа «Аэрофлот»), Союзмультфильм, Авито, Итэлма.
⏳ 14 дней на разработку решений
Принять участие могут:
✔️ граждане РФ и других стран от 18 лет
✔️ специализация: Front / Back / FullStack, Web-разработчика, UX / UI дизайнеры, Product / Project-менеджеры, Data Scientists, Data Engineers, аналитики и другие специалисты
✔️ местоположение — неважно, всё проходит онлайн
Других ограничений нет!
📅 Успейте зарегистрироваться до 18 сентября!
Регистрация по ссылке 👉🏻 https://i.moscow/lct?utm_source=sp&utm_medium=social&utm_campaign=iosgr/?erid=2VtzqvskcDx
📲 А больше новостей и подробностей — на нашем канале, подписывайтесь: https://t.me/leaders_hack
💸 40 млн рублей призового фонда:
— 1 млн рублей — для тех, кто займёт первое место
— 600 тысяч — второе
— 400 тысяч — третье
💼 20 актуальных задач от ведущих компаний страны: Газпромбанк.Тех, VK Tech, Kaspersky, АФЛТ-Системс (Группа «Аэрофлот»), Союзмультфильм, Авито, Итэлма.
⏳ 14 дней на разработку решений
Принять участие могут:
✔️ граждане РФ и других стран от 18 лет
✔️ специализация: Front / Back / FullStack, Web-разработчика, UX / UI дизайнеры, Product / Project-менеджеры, Data Scientists, Data Engineers, аналитики и другие специалисты
✔️ местоположение — неважно, всё проходит онлайн
Других ограничений нет!
📅 Успейте зарегистрироваться до 18 сентября!
Регистрация по ссылке 👉🏻 https://i.moscow/lct?utm_source=sp&utm_medium=social&utm_campaign=iosgr/?erid=2VtzqvskcDx
📲 А больше новостей и подробностей — на нашем канале, подписывайтесь: https://t.me/leaders_hack
👎14❤2👍1💅1
Как работает ConcentricRectangle API
В iOS 26 Apple наконец-то взялись за одну из сложнейших проблем программирования – корректное скругление углов. Как результат – в SwiftUI появился новый API, который и разбирается в сегодняшней статье.
В iOS 26 Apple наконец-то взялись за одну из сложнейших проблем программирования – корректное скругление углов. Как результат – в SwiftUI появился новый API, который и разбирается в сегодняшней статье.
❤19💅11👍3🔥1
Swift Raw Identifiers
В Swift 6.2 появилась новая языковая фича, raw identifiers. В чем смысл – обычно названия переменных, функций и констант не могут начинаться с цифры, содержать пробелы и другие символы. Теперь – могут, если заключить их в кавычки.
Вот где это полезно:
👉Для понятных названий тестовых функций, заменяет аннотации
👉В enum'ах, когда вы перечисляете какие-то численные значения
В Swift 6.2 появилась новая языковая фича, raw identifiers. В чем смысл – обычно названия переменных, функций и констант не могут начинаться с цифры, содержать пробелы и другие символы. Теперь – могут, если заключить их в кавычки.
Вот где это полезно:
👉Для понятных названий тестовых функций, заменяет аннотации
👉В enum'ах, когда вы перечисляете какие-то численные значения
Use Your Loaf - iOS Development News & Tips
Swift Raw Identifiers
Swift 6.2 adds raw identifiers to the language.
💅29👍6👎4❤1🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
На интервью в Apple ты щелкаешь задачи из LeetCode, а потом засовываешь в пикер времени очень длинный список чисел вместо бесконечного цикла.
💅63🔥9👎1
Mobile Meetup SberHealth❤️
Когда: 10 сентября в 18:30
Где: Москва офлайн/онлайн трансляция
В программе доклады от ведущих экспертов SH:
🔘 От разрозненных решений к системному подходу: история Core-команды
🔘 Особенности построения и развития дизайн-системы в мобильном приложении СберЗдоровья
⭐️ Прокопьев Евгений,
Лид мобильной команды в Купере,
расскажет почему стоит следующее мобильное приложение писать на React Native
⭐️ Юрий Шабалин,
Appsec Solutions – Владелец продукта Стингрей, Управляющий директор Стингрей Технолоджиз,
разберет самые частые уязвимости в мобильных приложениях
Присоединяйтесь, чтобы прокачать свои навыки и задать вопросы экспертам⭐️
🔜 Узнать подробности и зарегистрироваться
Реклама. ООО "Инновационные сервисы"
ИНН: 7725317248, erid:2SDnjdpy94A
Когда: 10 сентября в 18:30
Где: Москва офлайн/онлайн трансляция
В программе доклады от ведущих экспертов SH:
Лид мобильной команды в Купере,
расскажет почему стоит следующее мобильное приложение писать на React Native
Appsec Solutions – Владелец продукта Стингрей, Управляющий директор Стингрей Технолоджиз,
разберет самые частые уязвимости в мобильных приложениях
Присоединяйтесь, чтобы прокачать свои навыки и задать вопросы экспертам
Реклама. ООО "Инновационные сервисы"
ИНН: 7725317248, erid:2SDnjdpy94A
Please open Telegram to view this post
VIEW IN TELEGRAM
👎21❤5👍2🔥2💅2
swift-parca – профилировщик для Server-side Swift
swift-parca – новая библиотека для continuous profiling ваших серверных приложений. В чем суть – вам не нужно заранее думать о том, чтобы начать логировать что-то в проде, все нужные события записываются автоматически, при этом практически никакого оверхеда на перфоманс это не дает.
swift-parca – новая библиотека для continuous profiling ваших серверных приложений. В чем суть – вам не нужно заранее думать о том, чтобы начать логировать что-то в проде, все нужные события записываются автоматически, при этом практически никакого оверхеда на перфоманс это не дает.
Swift Forums
Announcing swift-parca: low-overhead continuous profiling for Swift on Server
At Ordo One, we’ve been using perf_events + FlameGraph for a number of years to investigate Swift performance on Linux, but the manual sampling approach has limitations - you need to know when and what to profile, making it reactive rather than proactive.…
👍5