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

Лучшее iOS сообщество в Телеге: @iosgt

Размещение рекламы: @tanyasanovna
Download Telegram
Traits в Swift Testing

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

Оказывается, в iOS есть официальный API, с помощью которого можно запретить удалять ваше приложение. Он входит в Screen Time API. Но есть два нюанса. Во-первых, нужно получить специальный аппрув Apple, во-вторых, пользователь тоже должен дать явное согласие на этот запрет.
Swift Container Plugin

Плагин для SwiftPM, с помощью которого можно собирать контейнеры с вашими серверными приложениями и публиковать их в нужные облака. Доклад с деталями можно посмотреть тут.
SafariExtension на SwiftUI

Если бы меня сходу спросили, на чем разрабатываются расширения для Safari, я был бы уверен, что это JavaScript. Оказывается, их можно писать нативно на SwiftUI!
Ускорение сетевых запросов на старте приложения

Ребята из Додо делятся своим опытом профилирования сетевых запросов и кучи оптимизаций, которые помогли ускорить старт приложения в два раза. Примеры оптимизаций:

👉По одной URLSession на хост для переиспользования коннекшнов
👉Прогрев коннекшна первой строчкой в приложении
👉Оптимизация порядка запросов с оглядкой на UX
Обзор недавней Server-Side Swift конференции

Недавно прошла первая большая конференция, посвященная Swift на сервере. Это на ней анонсировали интероп с Java и штуки вроде плагина для контейнеризации, про которые я уже рассказывал в канале.

Держите статью с кратким содержанием всех докладов, чтобы вы могли сами решить, на что еще обратить внимание. Я все еще удивляюсь, что Things, мой любимый туду лист, довольно давно переехал на Swift, и вроде бы довольны.
Как сохранять микросекунды при конверсии Date <-> String

Нрбольшое напоминание – при конвертации строки в дату и обратно с использованием DateFormatter информация о микросекундах теряется. Если для вас они важны, то в статье разбирается, как сохранить их значение.
Эпизод Swift Talk про Concurrency

Ребята из Objc.io выпустили бесплатный эпизод своего видеоблога про Swift Concurrency. где на примере небольшого macOS приложения разбираются с основными фичами и ошибками компиляции.
Новые статьи в документации

Держите пачку октябрьских обновлений документации Apple:

👉Win-back offers: специальный тип подписок, направленный на возвращение ушедших от вас пользователей
👉Camera Control: HIG и документация
👉Гайд по поддержке разных размеров часов
👉Новые семплы для visionOS
Genesis – новый генератор статических сайтов на Swift

Генератор статических сайтов – один из самых простых способов собрать себе тот самый блог, о котором вы давно мечтали. А если этот генератор написан на Swift, вы еще можете и поиграться с необычным применением любимого языка.

Genesis – еще один такой генератор. От альтернатив его отличает максимально простая реализация, отсутствие каких-то внешних зависимостей и работа со строками вместо сложных DSL.
Рекомендации по оптимизации перфоманса

GitHub репозиторий с подборкой статей, инструментов и кейсов оптимизации разных аспектов перфоманса.
SpectreKit – библиотека для консольного UI

SpectreKit – пока еще сырая библиотека для того, чтобы собирать красивый UI для консольных приложений, написанных на Swift.
Почему UserDefaults может не возвращать данные

👉У вас включен флаг Sensitive Data Encryption, который не дает получать доступ к данным в залоченном телефоне, но вы пытаетесь обратиться к UserDefaults из виджета.
👉Автоматический преворминг приложения может включаться даже тогда, когда телефон заблокирован. Получается та же проблема, что и выше.
👉Если вы перезагрузили телефон с запущенной LiveActivity, при ее следующей загрузке данные не будут доступны.
Почему приложения на Android весят меньше

Очень часто можно увидеть, что одно и то же приложение в App Store весит 100мб, а в Play Store – 10мб. В статье разбираются причины этого и то, что каждая из платформ понимает под "размером".
ReactiveCollectionsKit – новая библиотека для коллекций

Помните легендарные библиотеки IGListKit и JSQDataSourcesKit? Их автор зарелизил еще одну библиотеку для отображения коллекций, по его словам, с учетом ощибок всех предыдущих итераций. Основная идея за библиотекой – коллекция реактивно реагирует на изменения вью модели, запуская нужные анимации в нужный момент.

👉Библиотека на GitHub