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

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

Размещение рекламы: @tanyasanovna
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
История одного дебаг-меню

Ребята из Альфы рассказывают, как устроено дебаг-меню в их приложениях. Из интересного – есть создание тестовых пользователей, просмотр логов сетевых запросов и аналитики, и счетчик FPS.
Как работают текстовые кодировки

Записали топовый выпуск Подлодки про разные неочевидные аспекты устройства текстовых кодировок и работы с ними. Больше всего, конечно, про Unicode. Если хотите узнать, почему в любом приложении, работающем с текстом, есть баги – обязательно слушайте!

По мотивам подкаста Никита Прокопов написал еще и шикарную статью, в которой подбил основные тезисы.
Интерактивный гайд по CRDT

Лучший пост недели. Очень просто и подробно разбираются принципы работы CRDT, сразу в виде кода и интерактивного плейграунда. Статья про JavaScript, но все сниппеты кода очень простые, и легко переносятся на Swift.
Изменения в парсинге URL

Изменение, которое вы могли пропустить. Начиная с iOS 17, поменялся стандарт парсинга строки в URL, использующийся при вызове init(string:) функции. Основное изменение – раньше при парсинге невалидных символов получался nil, а теперь поведение стало менее строгим. Если хотите откатиться до старого поведения, нужно использовать другую функцию.
Как работать с фреймворком Screen Time

Фреймворк Screen Time появился с iOS 16. С его помощью можно писать специальные экстеншны, которые позволяют отслеживать время, которое пользователь проводит в других приложениях. В статье пошагово разбирается, как в приложение Streaks добавляли такой мониторинг.
Тактильная отдача в SwiftUI

С помощью модификатора sensoryFeedback можно настраивать тактильную отдачу для различных действий с приложением. Все, что нужно для настройки – указать стиль отдачи и пороговое значение, с которого она включится.
Насколько активно Apple использует Swift и SwiftUI

Новая итерация ежегодного анализа бинарей в iOS. В iOS 17 такая статистика:

👉Использование Swift продолжает расти. Скорость его роста уже равна скорости роста Objective-C.
👉Впервые за всю историю количество бинарников, использующих только UIKit, упало. SwiftUI же растет еще быстрее – уже 21% бинарников его используют.
👉Несмотря на доступность Secure Enclave для Swift, Apple использует его только с Objective-C.
Insights – новая фича Reveal

Первый крупный релиз Reveal за долгое время. Основная фича – Insights. Это набор из 130 инспекций, которые проактивно подсвечивают различные потенциальные проблемы с версткой и accessibility в приложении.
История переезда Spotify на Bazel

🤔Дано:
- 200 iOS разработчиков в 120 командах
- 3 миллиона строк кода только в тестах
- Рост кодовой базы на 30% каждый год
- 80 минут ожидания сборки и прогона тестов на PR

После того, как Spotify перевел все приложение на сборку через Bazel, время ожидания сборки упало в 4 раза, до 20 минут. В статье подробно рассказывается их история миграции: начиная от бесшовной замены xcodebuild на Bazel, заканчивая его интеграцией с IDE.
Гайд по работе с make

Короткий гайд для тех, кто совсем ничего не знает про make. Автор использует его на примере скрипта настройки окружения для нового iOS проекта.
Запуск локальной LLM на iOS

LLaMA.cpp – проект для инференса различных LLM на девайсах. Основная проблема с запуском его на iOS – ограничения по памяти. В статье разбирается, как можно квантовать модель таким образом, чтобы не ухудшить ее точность, попасть в лимиты памяти и запустить ее локально.
Демон, который чинит проблемы с потреблением CPU симуляторов Xcode 15

В симуляторах Xcode 15 есть проблема. При прогоне тестов запускаются процессы, которые могут нагрузить несколько ядер CPU на 100%, и, как результат, значительно увеличить время на их прогон.

Yeetd – простой демон, который отслеживает такие процессы и убивает их. Костыль, но может помочь до исправления корневой проблемы.
Все возможности #Preview макроса

👉Можно использовать как со SwiftUI, так и с UIKit.
👉Если вы хотите сгенерировать несколько превью, макрос можно использовать сколько угодно раз.
👉Чтобы проще отличать превью друг от друга, в макрос можно передать название конкретного превью.
👉Начиная с iOS 17, макросу можно передать еще и параметр, определяющий размер и поворот экрана.
👉Превью можно использовать и с виджетами.
Советы по жизни со SwiftSyntax

Пару месяцев назад я постил обсуждение со Swift Forums про то, что SwiftSyntax, зависимость на который неизбежна при использовании макросов, существенно замедляет сборку и усложняет менеджмент версий ваших зависимостей. В статье от Pointfree дается несколько советов по тому, как эти проблемы можно минимизировать. Статья в первую очередь ориентирована на авторов библиотек, но помочь может и разработчикам приложений.
Fastlane переезжает в Mobile Native Foundation

В феврале я рассказывал про историю вокруг Fastlane. Если кратко, то по историческим причинам права на репозиторий принадлежали Google, который был совсем не заинтересован в развитии проекта. Так вот, все наконец-то закрутилось. Google согласился передать владение проектом в Mobile Native Foundation, который уже хостит несколько интересных вещей. Для Fastlane это в первую очередь развязывает руки для того, чтобы начать собирать донаты и гранты на оплату мейнтейнеров.