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

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

Размещение рекламы: @tanyasanovna
Download Telegram
Оптимизация перфоманса с помощью Accelerate фреймворка

Недавно я делился хорошей русскоязычной статьей с обзором фреймворка Accelerate. Держите пример того, как его использование помогло улучшить перфоманс конверсии видео и процессинга аудио на несколько порядков.
Инструмент для тестирования universal links

getuniversal.link – бесплатный сервис для тестирования того, насколько корректно Apple закешировали ваш AASA файл.

Детали – в блогпосте.
Опыт разработки на Swift под Playdate

Михаил Рубанов вдохновился недавно появившейся поддержкой Swift в консоли Playdate, и попробовал сделать для нее пет-проект. В видео он рассказывает про:

👉Доступный API
👉Особенности разработки без тестов, логгера и дебаггера
👉Работу с UnsafeMutablePointer и ручным управлением памятью
Проблемы работы со SwiftUI на iOS 14 и их решения

Команда Яндекс Диска написала шикарный лонгрид про то, как они добавляли SwiftUI в легаси проект на UIKit и столкнулись с миллионом проблем по ходу интеграции:

👉Баги в шаринге файлов
👉Борьба с CocoaPods и превью
👉Проблемы в работе с коллекциями
👉Проблемы с анимациями

Помимо решения этих проблем ребята делятся и советами по улучшению перфоманса, которые помогли получить прирост порядка 3х.
Как и когда запрашивать ревью на приложение

Тред с обсуждением особенностей работы с requestReview API, которое показывает пользователю предложение оценить приложение. Основная сложность с тем, что разработчик напрямую не управляет появлением этого алерта, равно как и не может узнать, был ли он показан.

👉Примерные бенчмарки количества рейтингов к количеству загрузок: 1.5-2.5%.
👉Конкретных стратегий очень много, но народная мудрость говорит о том, что лучше запрашивать отзыв не сразу на старте приложения, а после завершения целевого действия.
👉Больше всего хвалят показ по сочетанию следующих факторов: 5 запусков приложения, несколько совершенных целевых действий, и хотя бы неделя, прошедшая с первого запуска.
Function Body Macros

В Swift приняли пропозал, добавляющий в систему макросов возможность подменять или аугментировать тело функции. Короче, такой свиззлинг, но в компайл-тайме.

Такая штука открывает кучу возможностей, например:
👉Автоматическое логирование вызова функции и переданных аргументов
👉Превращение обычных функций в RPC
mise – удобный version manager для тулинга

mise – менеджер версий, который позволяет вам централизованно управлять версиями консольных тулов, используемых как локально, так и на CI. Создаете toml файл, определяете там нужные версии, добавляете его в репозиторий проекта – и готово!
Про iOS разработку в Revolut

Обзорная статья про то, как в Revolut организована iOS разработка во всех их приложениях. Интересные факты:

👉Используется Clean Architecture, смешанная с MVVM-C.
👉Приложения побиты на модули, 160 пошарены между всеми проектами, еще 170 в основном приложении.
👉По техстеку: Swift, Bazel, минимум зависимостей от сторонних фреймворков.
👉Всего над их проектами работает 120 айосеров.
👉Регулярно гоняются 150.000 юнит тестов и 3.000 UI тестов.
Get API – новый аналог Postman

Если вы устали от перегруженности Postman фичами, а Insomnia почему-то тоже не подходит, посмотрите на Get API. Основные плюшки:

👉Нативное macOS приложение, не перегруженное фичами и сложным интерфейсом
👉Умеет работать и с REST, и с вебсокетами
👉Не требует заведения учетных записей, работает с GitHub как с источником правды
Swift исполняется 10 лет

10 лет назад на WWDC Apple впервые представили Swift🎉

Расскажите в комментариях про то, что вы подумали про Swift в первое время после анонса!
Финалисты Apple Design Awards 2024

Объявили финалоистов ежегодной предввдцшной премии Apple Design Awards. Из самого интересного:

👉Arc Search получает премию в категории Interaction за перепридумывание мобильного браузера.
👉Crouton, инди-приложение для менеджмента рецептов, тоже награждается за Interaction.
👉Meditate, приложение для медитаций, награждается в Visuals за крутые анимации мандалы на SwiftUI.
👉Copilot Money, премия за инновации, за применение ML для управления личными финансами.
Современный UIKit

PointFree начали серию выпусков, в которых они показывают, как может выглядеть современная разработка на чистом UIKit, без всяких SwiftUI примесей. В качестве примера реализуется экран выбора и настроек Wi-Fi сети.
Not Private APIs

Community-driven документация по некоторым из приватных API.
Генерация DocC документации для нескольких таргетов

У DocC есть ограничение – он генерирует документацию только для одного таргета. Команда PSPDFKit рассказывает, как обойти это ограничение, и с посощью набора скриптов собрать документацию сразу нескольких фреймворков в один архив.
Современный UIKit, часть 2

Продолжение серии выпусков от Pointfree про современную разработку на чистом UIKit. Основной фокус этой части на работе с UICollectionView.

Первая часть вот здесь.
Concurrency в Swift 6

Подробный разбор всех новых языковых фичей в Swift 6, которые связаны с concurrency в формате проблема-решения-ограничения.
На этой неделе будет очень много материалов по мотивам только что прошедшего WWDC, так что готовьтесь! А начнем с конспекта Platforms State of the Union!