iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT
12.5K subscribers
706 photos
66 videos
4.1K links
Самые интересные статьи, видео и новости, связанные с iOS разработкой. Не больше трёх материалов в день.

Регистрация в РКН: https://gosuslugi.ru/snet/67b464d698a28c4e866d827a

Размещение рекламы: @tanyasanovna
Download Telegram
Новый API для подписок – Retention Messaging

Apple анонсировали новый API для приложений с подписками. В чем суть – теперь когда пользователь хочет отменить подписку, вы можете показать ему кастомизируемое сообщение. В него можно включать свой текст, изображение, предложение альтернативной подписки, или даже скидку. Короче говоря, попробовать убедить его не уходить с концами.

API пока доступен только по приглашениям, оставить запрос можно тут.
15👍3🔥1
Как повысить качество SwiftUI-приложений через тестирование?

На открытом уроке «Покрываем проект на 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 могут работать и общаться друг с другом, как будто они работают в одной распределенной системе – отправлять друг другу сообщения и вызывать функции.
👍12
let и var в структурах

John Sundell разбирает, в каких случаях поля структуры лучше делать мутабельными, а в каких – нет. Все сводится к тому, чтобы по умолчанию использовать var, а let – только когда это имеет явный смысл.
👎62👍9🔥1
Как повысить качество SwiftUI-приложений через тестирование?

На открытом уроке «Покрываем проект на SwiftUI Unit-тестами и Snapshot-тестами» 6 августа в 20:00 МСК мы разберем, как минимизировать ошибки и улучшить качество кода с помощью тестирования. Убедитесь, как правильно разделить визуальную часть и бизнес-логику, освоите принципы чистых тестов и научитесь использовать Snapshot-тесты для UI-слоя.

Получите чёткое понимание, как тестировать SwiftUI-приложения, избавитесь от рутины при написании тестов и ускорьте разработку.

Присоединяйтесь и получите скидку на курс «iOS Developer. Professional»: https://otus.pw/8OLh/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
👎23👍2💅21
Как делать крутые консольные интерфейсы

Если вы делаете на Swift какие-то CLI программы, то подборка советов из этой статьи поможет сделать их гораздо более дружелюбными. Вот про что идет речь:

👉Как получать текущий размер окна терминала и учитывать его при отображении интерфейса
👉Удаление ранее напечатанных символов, что позволит делать анимации
👉Как прятать курсор, когда он не нужен
👉Как подписываться на изменения размера окна и сигналы прерывания
🔥15👍42
Как обходить вырезание информации в логах macOS

Когда вы выводите в консоль macOS дебажные сообщения, то в рамках обеспечения приватности Apple вырезает оттуда часть информации – пути к файлам, вставленные строки, UUID, а вместо них вставляет <private>. Детали про то, как именно определяется, какую информацию вырезать, и как это обойти – в статье.
👍3
Что нового в SwiftUI для macOS

В Xcode 26 SwiftUI существенно улучшили не только для iOS, но и для macOS. Держите детальный разбор всех заметных изменений – от нового WebView до лучшего перфоманса в списках.
💅11👍7
Конференция Стратоплана про кризисный менеджмент

Менеджеру нужно постоянно балансировать между интересами двух сторон – бизнеса и его команды. В идеальном мире они, конечно же, сонаправлены, но на практике практически всегда разъезжаются. В кризисных ситуациях все только усугубляется – бизнесу нужно и двигаться быстрее, и резать косты, а сотрудникам, наоборот, нужны стабильность и понятные задачи.

На открытой конференции Стратоплана куча крутых экспертов расскажут, как менеджеру выживать в такой ситуации, приносить пользу и компании, и своей команде, и при этом не сходить с ума и не нарушать своих принципов. Вот самые интересные доклады из программы:

👉Слава Панкратов даст базовые принципы поведения в кризисных ситуациях
👉Роман Ивлиев объяснит, почему техлиду не стоит надевать на себя шапочку финансового директора, и вместо этого оставаться в своей зоне компетенции
👉Николай Ашанин разберет кучу инструментов по тому, как сокращать издержки и быстро перенаправлять команду, не убивая ее мотивацию
👉Андрей Менде расскажет, как строить автономные команды, у которых не нужно стоять над душой

А, в целом, там будут фаундеры и топы Skyeng, Kolesa Group, Nimax, Карьерного цеха, Sprouty, ОКБ «Понедельник», TDM из EPAM. Так что почерпнуть точно будет чего

📆Конференция онлайн, проходит с 12 по 15 августа. Участие бесплатное, с вас – только зарегистрироваться и прийти.
👍21👎15🔥75💅1
Perception 2.0 – бэкпорт Observation framework

Полтора года назад Pointfree выпустили библиотеку Perception – бэкпорт Observation framework на все версии iOS, начиная с 13. На этой неделе вышла его новая мажорная версия.

Из самого важного – бэкпорт новой фичи Observations из Swift 6.2.
313🔥7💅5👎1
Bazel + iOS + VS Code

Spotify выпустили билд сервер, который позволяет разрабатывать под iOS с использованием Bazel в любом редакторе, который поддерживает LSP. Работают индексация проекта, навигация, сборка, запуск, и дебаг через lldb.
24🔥22
🔍Как правильно организовать сетевое взаимодействие в iOS?

На открытом уроке «От первого 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 – например, можно сделать так, чтобы в неактивном состоянии строка поиска превращалась в кнопку.
👍3
@isolated(any)

Большой разбор от NSHipster того, как появившийся в Swift 6.0 модификатор isolated помогает работать с асинхронностью.
👍91
Как покрыть проект на SwiftUI тестами и эффективно проверять навигацию и взаимодействие с сервером?

Присоединяйтесь к открытому уроку 13 августа в 20:00 МСК. Мы разберём, как покрыть навигацию двумя способами, применить Snapshot-тесты и эффективно организовать UI-тестирование с генерацией маркеров и мокирования данных для подмены сетевого трафика.

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

🔥Посетите урок и получите скидку на курс «iOS Developer. Professional»: https://otus.pw/qnuM/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
👎30
Поддержка OpenRouter в Xcode

OpenRouter – это платформа, которая дает доступ к большинству LLM через один API и единую систему токенов. Это удобно, так как можно не заморачиваться с подключением разных моделей. Так вот, теперь вы можете обращаться к API OpenRouter прямо из Xcode, попробуйте!
14👍1
Как писать хорошие дизайн-доки

Не важно, для кого вы описываете задачу – для кожаного мешка, или для кремниевого, вам нужно уметь писать понятные дизайн-документы. В статье – несколько полезных правил по работе с ними.
👍1
Не перестаю радоваться вещам, которые обнаруживаются в SQLite (предыдущие серии: раз, два).

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

👉Кросс-платформенность. SQLite можно собрать на любой платформе, на которой запускается С компилятор.
👉Стабильный формат базы. Вне зависимости от платформы, один и тот же файл базы будет одинаково читаться и работать.
👉Тщательность тестирования на уровне авиации.
👉Нереально подробная документация.
👉Вся история изменений кода хранится сразу на нескольких географически распределенных серверах, принадлежащих разным компаниям.
👍236🔥2👎1
UDF без дополнительных библиотек

Unidirectional Data Flow – довольно простой архитектурный паттерн, для реализации которого необязательно тащить в проект библиотеки и фреймворки вроде TCA. Более того, базовую логику UDF можно использовать в реализации отдельных фичей, где она приносит максимум пользы.
👎8💅21