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

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

Размещение рекламы: @tanyasanovna
Download Telegram
Live Activity доступны в Beta

В beta 4 версии iOS 16 подвезли Live Activities – виджеты, которые отображаются на Lock-скрине, и отображают информацию из вашего приложения в реальном времени. Для их разработки можно использовать новый фреймворк ActivityKit.

Важно – Live Activities не попадут в стабильный релиз iOS 16, а докатятся в одном из следующих обновлений.
👍21
Релиз библиотеки Get 1.0

Get – аналог Alamofire, написанный с использованием async/await. Основные преимущества – в библиотеке сильно меньше кода, и есть много классных интеграций с инструментами вроде Pulse и CreateAPI.
🤡55👍23🔥4👎2
Расширение функциональности UIViewController через паттерн Pluginable

На многих экранах требуется реализовывать одинаковую логику – обрабатывать клавиатуру, показывать ошибки, делать всякие штуки, связанные с жизненным циклом контроллера. В статье рассказывается, как завести базовый контроллер, который даст возможность расширения функциональности своих дочерних классов на основе плагинов.
🔥48👎23👍18🤔5😱1
Открытый воркшоп по Swift Charts

Я уже публиковал десяток статей про то, как работать со Swift Charts. Но самый лучший способ научиться чему-то – сходить на воркшоп эксперта с релевантным опытом, а затем повторить все задания самому. Подключайтесь 4 августа в 20:00 на вебинар Антона Марунько, и вкатитесь в красивые графики!

Вебинар является частью онлайн-курса «iOS Developer» от OTUS.
🤡21🔥5👎31👍1😁1
iOSRef – подборка шпаргалок по iOS разработке

📱Особенности каждого девайса: разрешение, тип экрана, железо, доступные версии ОС
🛠Инструменты: HEX to UIColor, NSDateFormatter, Auto Layout helper
🔗Ссылки на различные гайдлайны
👍30🔥6👎21
Compile-time проверка URL

Если вам не нравится постоянно использовать guard let для проверки валидности URL, попробуйте этот Swift Package. Он проверяет валидность URL прямо во время компиляции.
👎45👍6🤔2🤡2
Малоизвестные возможности цветовой палитры в Xcode

- Палитру можно вызывать не только через меню инструментов, но и через цветовые литералы прямо из кода
- Можно создавать свои палитры цветов и переиспользовать их между проектами
- Цветам в палитре можно задавать названия и использовать их как литералы
- Можно прямо в Xcode сгенерировать свою цветовую палитру на основе любого изображения
👍24🔥4❤‍🔥1
Как работать с типом Measurement в Swift Charts

Foundation предоставляет удобный тип для работы с любым типом измерений – Measurement. Но по умолчанию он пока что не работает со Swift Charts. В статье рассматривается несколько вариантов, как решить эту проблему.
👍1
TableView: reload vs reconfigure

Начиная с iOS 15 в UITableView и UICollectionView появился метод reconfigure. В отличие от reload он не пересоздает ячейку с нуля, а обновляет существующую. По ссылке можно прочитать детали про алгоритм его работы.
👍51🌭6🔥5🤡4🤔3🤬1
Советы по тестированию кастомных Codable инициализаторов

- Кастомную сериализацию нужно тестировать так же, как и другую бизнес-логику
- Кастомный codable init лучше объявлять в экстеншне, чтобы не потерять memberwise init, генерируемый компилятором
- Проверочный объект создаете вручную через memberwise init, а проверяемый – на основе JSON
- Чтобы получить полезный аутпут теста о том, что конкретно отличается в объектах, попробуйте библиотеку Difference
👍19🔥2👎1
Как включить Stage Manager в iPad симуляторе

Стандартный ответ на вопрос – внести правки в .GlobalPreferences.plist на симуляторе, что не очень удобно. Но есть вариант попроще: xcrun simctl spawn booted defaults write -g SBChamoisWindowingEnabled -bool true.
👍3🕊21
Loco – линтер для Localization.strings

Линтер умеет делать следующие проверки:
- Непереведенные строки в Swift коде
- Пропущенные ключи в каких-то из локализаций
- Ключи-дубликаты
- Неиспользуемые ключи
🔥98👍12👎2
Подробный пост про Grids в SwiftUI

👀Сравнение разных типов контейнеров
☎️Разбор настройки Spacing, Alignment, Width/Height
✡️Реализация шестиугольных ячеек
💻Семпловый проект Grid Trainer, в котором можно поиграться самостоятельно со всеми настройками
🔥30
Когда вы интегрируете рекламные SDK в приложение, готовьтесь: будет много проблем. Не всегда очевидных. Но всегда сильно раздражающих.

Ребята из FUNCORP подготовили список таких «граблей» — а заодно объяснили, как работает реклама в приложениях под капотом. Бонус: в статье есть код, который решает самые бесячие проблемы.
Читать здесь.
👍18👎1
Лайфхак для тестирования готовности приложения к интернационализации строк

Если вы укажете NSDoubleLocalizedStrings в качестве Launch Argument, все строки в приложении автоматически продублируются. Благодаря этому можно посмотреть, как приложение справляется с более длинными строками.

Есть еще несколько способов включить этот режим:
- Scheme Editor -> Application Language -> Double Length Pseudolanguage
- Interface Builder -> Preview Assistant Editor -> Double Length
🔥69👍13🤡7🤯3
This media is not supported in your browser
VIEW IN TELEGRAM
Туториал по реализации клона Apple Calculator на SwiftUI

- Разбор того, как правильно декомпозировать калькулятор на View слое
- Поэтапная реализация всех компонентов калькулятора
- Исходники на GitHub
👍21😁4🤡4🔥1
Пошаговая реализация анимации с melting эффектом

Разбор сложных анимаций – это всегда интересно. В этой статье рассказывается, как сделать анимацию перехода между экранами с «плавящим» эффектом.
🔥21🤔6🤡3👍1👎1
SwiftUI не нужен MVVM

Автор сравнивает возможности SwiftUI с майрософтовским WPF, из чего делает вывод, что в SwiftUI ViewModel в большинстве случаев лишняя сущность.
👎43👍17🤡10😁3🤬2🔥1
Неочевидные особенности разработки Live Activity

- Для запуска Live Activity из приложения не требуется явное подтверждение пользователя
- Приложение должно находиться в foreground для старта Activity
- Чтобы Activity обновлялась, нужно либо держать приложение в бэкграунде, либо использовать пуши
- Нет способа подстроить внешний вид и цветовую палитру под обои
- Анимации почти не кастомизируются
🔥17👎5🤡5👍2❤‍🔥1