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

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

Размещение рекламы: @tanyasanovna
Download Telegram
XCSnippetsApp – приложение с подборкой сниппетов кода

Приложение помогает искать и использовать в Xcode 200+ различных сниппетов от коммьюнити. Приложение автоматически обновляется, подкачивая новые сниппеты из репозиториев с их подборками.
🤡33🔥20👎1
📆Каждый день я стараюсь публиковать несколько классных и полезных материалов про iOS разработку. За месяц их набегает много десятков, и ориентироваться в них не всегда легко. Чтобы облегчить вам задачу, я хочу попытаться снова начать публиковать ежемесячные дайджесты лучших материалов по реакциям читателей.

🎨Разработка UI
Сториборды в watchOS депрекейтнули
Разбор Navigation API в SwiftUI
Анимированное перетекание иконок из одной формы в другую
Бэкпорты новых фичей UIKit и SwiftUI
Реализация DynamicStack на SwiftUI
Как правильно скруглять края у вьюшек

🧱Системные фреймворки
Примеры реализаций всех графиков с WWDC на Swift Charts
URL.documentsDirectory для доступа к папке Documents приложения
Как определить локацию пользователя по номеру телефона
Изменения в dyld в iOS 16 и их влияние на перфоманс
Рекомендации Apple по перфомансу

🦅Swift
Новый API для работы со временем в Swift
Сравнение трех подходов к многопоточному коду
Все Swift анонсы с WWDC

🗜Инструменты и сервисы
Каталог всех SwiftUI компонентов и их свойств
Hang Detection в iOS 16
Вышел App Store Connect 2.0

🕵️‍♀️Кстати, у меня есть еще один канал, на который стоит подписаться тем, кто хочет расти в управление командойTechLead Good Reads. Держите несколько интересных материалов оттуда на закуску!
🌟Как улучшить коммуникацию, используя STAR метод
Радикальная искренность, и как она помогает тимлиду
🤲Как научить разработчиков просить о помощи
🌏Огромный гайд по тому, как управлять remote командой
📚Рекомендации тимлидских книг

Если дайджест вам понравился – ставьте ❤️, 👍 и 🔥. Благодаря этому я пойму, что собирал его не зря! А если у вас будут конкретные предложения по его улучшению – смело пишите в комментарии!
#digest
🔥113👍188😱1
Принцип работы ViewThatFits в SwiftUI

- ViewThatFits заменяет собой использование GeometryReader
- ViewThatFits измеряет доступное пространство и подставляет в него одну из дочерних вьюшек, которая подходит по размеру
- Порядок дочерних вьюшек важен – подставляется первая из списка вью подходящего размера
🥰14👍11❤‍🔥2👎1
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