Новый API для подписок – Retention Messaging
Apple анонсировали новый API для приложений с подписками. В чем суть – теперь когда пользователь хочет отменить подписку, вы можете показать ему кастомизируемое сообщение. В него можно включать свой текст, изображение, предложение альтернативной подписки, или даже скидку. Короче говоря, попробовать убедить его не уходить с концами.
API пока доступен только по приглашениям, оставить запрос можно тут.
Apple анонсировали новый API для приложений с подписками. В чем суть – теперь когда пользователь хочет отменить подписку, вы можете показать ему кастомизируемое сообщение. В него можно включать свой текст, изображение, предложение альтернативной подписки, или даже скидку. Короче говоря, попробовать убедить его не уходить с концами.
API пока доступен только по приглашениям, оставить запрос можно тут.
❤15👍3🔥1
Как повысить качество SwiftUI-приложений через тестирование?
На открытом уроке «Покрываем проект на SwiftUI Unit-тестами и Snapshot-тестами» 6 августа в 20:00 МСК мы разберем, как минимизировать ошибки и улучшить качество кода с помощью тестирования. Убедитесь, как правильно разделить визуальную часть и бизнес-логику, освоите принципы чистых тестов и научитесь использовать Snapshot-тесты для UI-слоя.
Получите чёткое понимание, как тестировать SwiftUI-приложения, избавитесь от рутины при написании тестов и ускорьте разработку.
Присоединяйтесь и получите скидку на курс «iOS Developer. Professional»: https://otus.pw/Zbd3W/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
На открытом уроке «Покрываем проект на SwiftUI Unit-тестами и Snapshot-тестами» 6 августа в 20:00 МСК мы разберем, как минимизировать ошибки и улучшить качество кода с помощью тестирования. Убедитесь, как правильно разделить визуальную часть и бизнес-логику, освоите принципы чистых тестов и научитесь использовать Snapshot-тесты для UI-слоя.
Получите чёткое понимание, как тестировать SwiftUI-приложения, избавитесь от рутины при написании тестов и ускорьте разработку.
Присоединяйтесь и получите скидку на курс «iOS Developer. Professional»: https://otus.pw/Zbd3W/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
👎24👍1
Swift-Erlang Actor System
Так, про Java и Haskell поговорили на прошлой неделе, теперь настала очередь Erlang. Новая библиотека позволяет Swift программам подключаться к распределенному Erlang кластеру. Что это значит – акторы на Swift и на Erlang могут работать и общаться друг с другом, как будто они работают в одной распределенной системе – отправлять друг другу сообщения и вызывать функции.
Так, про Java и Haskell поговорили на прошлой неделе, теперь настала очередь Erlang. Новая библиотека позволяет Swift программам подключаться к распределенному Erlang кластеру. Что это значит – акторы на Swift и на Erlang могут работать и общаться друг с другом, как будто они работают в одной распределенной системе – отправлять друг другу сообщения и вызывать функции.
Swift Forums
Introducing swift-erlang-actor-system
I'm excited to share a new actor system we've been building for Swift's distributed actors: swift-erlang-actor-system. This actor system enables Swift programs to join a distributed Erlang cluster. Here's an example of a simple chat program using the actor…
👍12
Ужасы вайбкодинга
Вайб-кодинг, кажется, ускоренным темпом преодолел пик хайпа, и все больше людей начинает понимать, что на одних промптах к модели далеко не уедешь. Держите подборку примеров ярких инцидентов, связанных с бездумным использованием AI:
👉Replit удалил всю базу знаний с прода без возможности восстановления
👉Хранение вейтлиста на фронтенде
👉Уже ставший классическим пример того, сколько уязвимостей могут найти в сгенерированном проекте
Вайб-кодинг, кажется, ускоренным темпом преодолел пик хайпа, и все больше людей начинает понимать, что на одних промптах к модели далеко не уедешь. Держите подборку примеров ярких инцидентов, связанных с бездумным использованием AI:
👉Replit удалил всю базу знаний с прода без возможности восстановления
👉Хранение вейтлиста на фронтенде
👉Уже ставший классическим пример того, сколько уязвимостей могут найти в сгенерированном проекте
AICodingHorrors
AICodingHorrors | The price of AI-assisted coding, literally!
AI Coding Horrors is a growing collection of real-world disasters caused by AI-assisted coding tools like sky-high bills, leaked secrets, broken apps,..
👍21💅4❤1👎1🔥1
let и var в структурах
John Sundell разбирает, в каких случаях поля структуры лучше делать мутабельными, а в каких – нет. Все сводится к тому, чтобы по умолчанию использовать var, а let – только когда это имеет явный смысл.
John Sundell разбирает, в каких случаях поля структуры лучше делать мутабельными, а в каких – нет. Все сводится к тому, чтобы по умолчанию использовать var, а let – только когда это имеет явный смысл.
Swift by Sundell
Deciding between ‘let’ and ‘var’ for Swift struct properties | Swift by Sundell
Does marking a given Swift struct property as either ‘let’ or ‘var’ simply determine its mutability, or is there more to it? Let’s explore!
👎62👍9🔥1
Как повысить качество SwiftUI-приложений через тестирование?
На открытом уроке «Покрываем проект на SwiftUI Unit-тестами и Snapshot-тестами» 6 августа в 20:00 МСК мы разберем, как минимизировать ошибки и улучшить качество кода с помощью тестирования. Убедитесь, как правильно разделить визуальную часть и бизнес-логику, освоите принципы чистых тестов и научитесь использовать Snapshot-тесты для UI-слоя.
Получите чёткое понимание, как тестировать SwiftUI-приложения, избавитесь от рутины при написании тестов и ускорьте разработку.
Присоединяйтесь и получите скидку на курс «iOS Developer. Professional»: https://otus.pw/8OLh/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
На открытом уроке «Покрываем проект на SwiftUI Unit-тестами и Snapshot-тестами» 6 августа в 20:00 МСК мы разберем, как минимизировать ошибки и улучшить качество кода с помощью тестирования. Убедитесь, как правильно разделить визуальную часть и бизнес-логику, освоите принципы чистых тестов и научитесь использовать Snapshot-тесты для UI-слоя.
Получите чёткое понимание, как тестировать SwiftUI-приложения, избавитесь от рутины при написании тестов и ускорьте разработку.
Присоединяйтесь и получите скидку на курс «iOS Developer. Professional»: https://otus.pw/8OLh/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
👎23👍2💅2❤1
Как делать крутые консольные интерфейсы
Если вы делаете на Swift какие-то CLI программы, то подборка советов из этой статьи поможет сделать их гораздо более дружелюбными. Вот про что идет речь:
👉Как получать текущий размер окна терминала и учитывать его при отображении интерфейса
👉Удаление ранее напечатанных символов, что позволит делать анимации
👉Как прятать курсор, когда он не нужен
👉Как подписываться на изменения размера окна и сигналы прерывания
Если вы делаете на Swift какие-то CLI программы, то подборка советов из этой статьи поможет сделать их гораздо более дружелюбными. Вот про что идет речь:
👉Как получать текущий размер окна терминала и учитывать его при отображении интерфейса
👉Удаление ранее напечатанных символов, что позволит делать анимации
👉Как прятать курсор, когда он не нужен
👉Как подписываться на изменения размера окна и сигналы прерывания
swifttoolkit.dev
Techniques for Engaging CLIs with the Terminal Utilities Package
A tiny Swift package can help you make more engaging CLIs
🔥15👍4❤2
Как обходить вырезание информации в логах macOS
Когда вы выводите в консоль macOS дебажные сообщения, то в рамках обеспечения приватности Apple вырезает оттуда часть информации – пути к файлам, вставленные строки, UUID, а вместо них вставляет
Когда вы выводите в консоль macOS дебажные сообщения, то в рамках обеспечения приватности Apple вырезает оттуда часть информации – пути к файлам, вставленные строки, UUID, а вместо них вставляет
<private>
. Детали про то, как именно определяется, какую информацию вырезать, и как это обойти – в статье.steipete.me
Logging Privacy Shenanigans | Peter Steinberger
Apple's logs redact your debugging data as <private>. Here's what actually gets hidden, why old tricks don't work anymore, and the only reliable way to see your logs again.
👍3
Что нового в SwiftUI для macOS
В Xcode 26 SwiftUI существенно улучшили не только для iOS, но и для macOS. Держите детальный разбор всех заметных изменений – от нового WebView до лучшего перфоманса в списках.
В Xcode 26 SwiftUI существенно улучшили не только для iOS, но и для macOS. Держите детальный разбор всех заметных изменений – от нового WebView до лучшего перфоманса в списках.
TrozWare
SwiftUI for Mac 2025 - TrozWare
Crazy Mac lady. Mac author & developer. Lover of Apple computers and devices. Swift & SwiftUI enthusiast. Unofficial Mac app dev evangelist
💅11👍7
Конференция Стратоплана про кризисный менеджмент
Менеджеру нужно постоянно балансировать между интересами двух сторон – бизнеса и его команды. В идеальном мире они, конечно же, сонаправлены, но на практике практически всегда разъезжаются. В кризисных ситуациях все только усугубляется – бизнесу нужно и двигаться быстрее, и резать косты, а сотрудникам, наоборот, нужны стабильность и понятные задачи.
На открытой конференции Стратоплана куча крутых экспертов расскажут, как менеджеру выживать в такой ситуации, приносить пользу и компании, и своей команде, и при этом не сходить с ума и не нарушать своих принципов. Вот самые интересные доклады из программы:
👉Слава Панкратов даст базовые принципы поведения в кризисных ситуациях
👉Роман Ивлиев объяснит, почему техлиду не стоит надевать на себя шапочку финансового директора, и вместо этого оставаться в своей зоне компетенции
👉Николай Ашанин разберет кучу инструментов по тому, как сокращать издержки и быстро перенаправлять команду, не убивая ее мотивацию
👉Андрей Менде расскажет, как строить автономные команды, у которых не нужно стоять над душой
А, в целом, там будут фаундеры и топы Skyeng, Kolesa Group, Nimax, Карьерного цеха, Sprouty, ОКБ «Понедельник», TDM из EPAM. Так что почерпнуть точно будет чего
📆Конференция онлайн, проходит с 12 по 15 августа. Участие бесплатное, с вас – только зарегистрироваться и прийти.
Менеджеру нужно постоянно балансировать между интересами двух сторон – бизнеса и его команды. В идеальном мире они, конечно же, сонаправлены, но на практике практически всегда разъезжаются. В кризисных ситуациях все только усугубляется – бизнесу нужно и двигаться быстрее, и резать косты, а сотрудникам, наоборот, нужны стабильность и понятные задачи.
На открытой конференции Стратоплана куча крутых экспертов расскажут, как менеджеру выживать в такой ситуации, приносить пользу и компании, и своей команде, и при этом не сходить с ума и не нарушать своих принципов. Вот самые интересные доклады из программы:
👉Слава Панкратов даст базовые принципы поведения в кризисных ситуациях
👉Роман Ивлиев объяснит, почему техлиду не стоит надевать на себя шапочку финансового директора, и вместо этого оставаться в своей зоне компетенции
👉Николай Ашанин разберет кучу инструментов по тому, как сокращать издержки и быстро перенаправлять команду, не убивая ее мотивацию
👉Андрей Менде расскажет, как строить автономные команды, у которых не нужно стоять над душой
А, в целом, там будут фаундеры и топы Skyeng, Kolesa Group, Nimax, Карьерного цеха, Sprouty, ОКБ «Понедельник», TDM из EPAM. Так что почерпнуть точно будет чего
📆Конференция онлайн, проходит с 12 по 15 августа. Участие бесплатное, с вас – только зарегистрироваться и прийти.
👍21👎15🔥7❤5💅1
Perception 2.0 – бэкпорт Observation framework
Полтора года назад Pointfree выпустили библиотеку Perception – бэкпорт Observation framework на все версии iOS, начиная с 13. На этой неделе вышла его новая мажорная версия.
Из самого важного – бэкпорт новой фичи Observations из Swift 6.2.
Полтора года назад Pointfree выпустили библиотеку Perception – бэкпорт Observation framework на все версии iOS, начиная с 13. На этой неделе вышла его новая мажорная версия.
Из самого важного – бэкпорт новой фичи Observations из Swift 6.2.
www.pointfree.co
Perception 2.0: An updated back-port of Swift’s Observation framework
We are proud to announce Perception 2.0: A full back-port of Swift’s Observation framework that works on iOS 13+ and macOS 10.15, and now includes the newest tools from the framework, including Observations.
3❤13🔥7💅5👎1
Bazel + iOS + VS Code
Spotify выпустили билд сервер, который позволяет разрабатывать под iOS с использованием Bazel в любом редакторе, который поддерживает LSP. Работают индексация проекта, навигация, сборка, запуск, и дебаг через lldb.
Spotify выпустили билд сервер, который позволяет разрабатывать под iOS с использованием Bazel в любом редакторе, который поддерживает LSP. Работают индексация проекта, навигация, сборка, запуск, и дебаг через lldb.
GitHub
GitHub - spotify/sourcekit-bazel-bsp: iOS Development (and more) in alternative IDEs like Cursor / VSCode, for Bazel projects
iOS Development (and more) in alternative IDEs like Cursor / VSCode, for Bazel projects - spotify/sourcekit-bazel-bsp
❤24🔥22
🔍Как правильно организовать сетевое взаимодействие в iOS?
На открытом уроке «От первого HTTP-запроса к собственному сетевому слою в Swift» 13 августа в 20:00 МСК мы подробно разберём основы работы с HTTP/HTTPS, REST и JSON, а также научим вас правильно использовать URLSession для запросов и обработки ответов.
❗️Мы покажем, как выстроить чистую и поддерживаемую архитектуру сетевого слоя, работать с инъекцией зависимостей и создавать готовый NetworkClient для различных типов запросов. Вы получите уверенность в том, что ваш код легко масштабировать и поддерживать.
👉Присоединяйтесь и получите скидку на курс «iOS Developer»: https://otus.pw/POjW/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
На открытом уроке «От первого HTTP-запроса к собственному сетевому слою в Swift» 13 августа в 20:00 МСК мы подробно разберём основы работы с HTTP/HTTPS, REST и JSON, а также научим вас правильно использовать URLSession для запросов и обработки ответов.
❗️Мы покажем, как выстроить чистую и поддерживаемую архитектуру сетевого слоя, работать с инъекцией зависимостей и создавать готовый NetworkClient для различных типов запросов. Вы получите уверенность в том, что ваш код легко масштабировать и поддерживать.
👉Присоединяйтесь и получите скидку на курс «iOS Developer»: https://otus.pw/POjW/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
👎39👍2
Как поменялся поиск в SwiftUI в iOS 26
В новых версиях iOS и iPadOS немного изменили поведение поиска в SwiftUI – и в тулбаре, и в таббаре. В основном косметика, но есть и новые API – например, можно сделать так, чтобы в неактивном состоянии строка поиска превращалась в кнопку.
В новых версиях iOS и iPadOS немного изменили поведение поиска в SwiftUI – и в тулбаре, и в таббаре. В основном косметика, но есть и новые API – например, можно сделать так, чтобы в неактивном состоянии строка поиска превращалась в кнопку.
Nil Coalescing
SwiftUI Search Enhancements in iOS and iPadOS 26
Take advantage of the updated search placement and behavior in iOS 26, and implement toolbar and tab bar search patterns that adapt across devices and integrate with the new Liquid Glass design.
👍3
@isolated(any)
Большой разбор от NSHipster того, как появившийся в Swift 6.0 модификатор isolated помогает работать с асинхронностью.
Большой разбор от NSHipster того, как появившийся в Swift 6.0 модификатор isolated помогает работать с асинхронностью.
NSHipster
@isolated(any)
There are cases where just a little more visibility and control over how to schedule asynchronous work can make all the difference.
👍9❤1
Как покрыть проект на 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, попробуйте!
❤14👍1
Как писать хорошие дизайн-доки
Не важно, для кого вы описываете задачу – для кожаного мешка, или для кремниевого, вам нужно уметь писать понятные дизайн-документы. В статье – несколько полезных правил по работе с ними.
Не важно, для кого вы описываете задачу – для кожаного мешка, или для кремниевого, вам нужно уметь писать понятные дизайн-документы. В статье – несколько полезных правил по работе с ними.
Grant Slatton's Blog
Writing a good design document
A guide
👍1
Не перестаю радоваться вещам, которые обнаруживаются в SQLite (предыдущие серии: раз, два).
Разработчики настолько серьезно относятся к проекту, что коммитятся на то, что будут поддерживать его до 2050 года. И достигнуть этого помогают следующие решения:
👉Кросс-платформенность. SQLite можно собрать на любой платформе, на которой запускается С компилятор.
👉Стабильный формат базы. Вне зависимости от платформы, один и тот же файл базы будет одинаково читаться и работать.
👉Тщательность тестирования на уровне авиации.
👉Нереально подробная документация.
👉Вся история изменений кода хранится сразу на нескольких географически распределенных серверах, принадлежащих разным компаниям.
Разработчики настолько серьезно относятся к проекту, что коммитятся на то, что будут поддерживать его до 2050 года. И достигнуть этого помогают следующие решения:
👉Кросс-платформенность. SQLite можно собрать на любой платформе, на которой запускается С компилятор.
👉Стабильный формат базы. Вне зависимости от платформы, один и тот же файл базы будет одинаково читаться и работать.
👉Тщательность тестирования на уровне авиации.
👉Нереально подробная документация.
👉Вся история изменений кода хранится сразу на нескольких географически распределенных серверах, принадлежащих разным компаниям.
👍23❤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.
👎8💅2❤1