iOS Такой 🍏
3.39K subscribers
421 photos
10 videos
2 files
302 links
IT | Подкасты | Apple | iOS Материалы | Swift

Реклама: @new_repository

Тёплый чат: https://t.me/+tzWmsOMTPpFjMzAy

Бусти: boosty.to/dimov_ios
Download Telegram
Как масштабировать все элементы экрана в SwiftU

Возможно, вы сталкивались с тем, что SwiftUI не очень дружелюбно относится к разного рода растягиваниям и сдвигам на экране. Чтобы разобраться с этой проблемой, сначала необходимо понять, как происходит масштабирование в SwiftUI.

При использовании функции frame() мы создаем строгое пространство для нашего объекта, которое не зависит от других объектов. Когда мы хотим разместить текстовый элемент от самого края экрана, это может вызвать множество проблем с адаптацией на других экранах.

А на самом деле все просто - нужно просто умножить параметр на коэффициент экрана)

Возьмем изначальные размеры нашего фрейма и умножим на коэффициент экрана. То есть мы берем размер экрана, на котором запускаем программу, и нужный нам размер экрана из Figma и делим друг на друга. Как итог - получаем коэффициент масштабирования

#digest #swiftui
Popuv View - библиотека тостов, оповещений и всплывающих окон для SwiftUI

Popup View - это библиотека для создания всплывающих уведомлений (тостов) на SwiftUI. Она предоставляет различные компоненты и функции, которые позволяют легко создавать и настраивать всплывающие уведомления в пользовательском интерфейсе SwiftUI.

С использованием Popup View, вы можете создавать тосты с различными стилями, анимациями и настройками. Вы можете установить текст, цвет фона, иконку и другие параметры для каждого всплывающего уведомления. Библиотека также предоставляет возможность управлять временем отображения и поведением тостов, такими как автоматическое исчезновение после определенного времени или ручное закрытие пользователем.

Эта библиотека облегчает создание и управление всплывающими уведомлениями в SwiftUI, что позволяет вам легко добавлять информационные сообщения, предупреждения или уведомления в вашем приложении.

#digest #библиотека #swiftUI
Что нового в SwiftUI для iOS 17?

SwiftUI продолжает быстро развиваться, и в этом году мы видим огромное количество улучшений в прокрутке, интересные новые эффекты SF Symbols, продвинутую поддержку шейдеров Metal и многое другое.

Некоторые обновления в этом релизе из числа тех, которые автор предлагал лично. Среди них - добавление шейдеров Metal, улучшение работы Color с Codable, добавление замыкания по завершении для анимаций, которое дает нам возможность анимировать градиенты. Теперь мы ещё можем скруглять углы прямоугольника по своему усмотрению. Только благодаря первой бета-версии автор закрыл как минимум дюжину своих предложений!

- Набор обновлений для ScrollView
- Улучшение прорисовки и анимаций
- Интеграция встроенных покупок (in-app purchases) в SwiftUI
- Новый модификатор inspector()
- Новый модификатор onKeyPress()
- Управление отображением колонок NavigationSplitView в компактных макетах
- Добавление тактильных эффектов с использованием сенсорной обратной связи
- Уведомление пользователя о недоступности контента
- Одновременная заливка и обводка фигур
- Новый API для работы со spring анимациями

Прочие изменения
- Модификатор foregroundColor() теперь считается устаревшим и его заменил новый - foregroundStyle()

- Изменение цветов с использованием градиента будет происходить с анимацией

- Spring анимация теперь является дефолтной в
SwiftUI и содержит гораздо больше встроенных параметров, таких как .bouncy и .snappy, а сами анимации теперь создаются с помощью гораздо более простого API

- Появилась возможность скруглять только определенные углы прямоугольника, а не все сразу

- Упрощен синтаксис для заливки и обрезки фигур: .rect, .capsule и т.д.

- При создании табличных представлений вместо ForEach(users, content: TableRow.init) можно писать просто ForEach(users)


#digest #swiftui
Создаем дефолтные аватары пользователей в SwiftUI

Мы часто сталкиваемся с необходимостью отображения аватаров пользователей в наших приложениях. Однако работа с аватарами по умолчанию для пользователей, не имеющих фотографий профиля, может быть утомительной и повторяющейся. В этой статье мы рассмотрим простое и эффективное решение этой проблемы с помощью SwiftUI и расширений Swift.

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

Содержание статьи с примерами кода

1. Настройка модели пользователя
2. Создание расширения для строк
3. Кастомный View дефолтного аватара
4. Реализация генератора аватаров


#digest #swiftui
SwiftUI для большого B2C-продукта

В конце 2022 было запущено приложение Яндекс Путешествий на SwiftUI. Это было очень интересно, сложно и немножко больно.

Большие продукты очень аккуратно пробуют новые технологии, ведь для старых написаны разные хэлперы, либы, а для SwiftUI такого мало, поэтому сколько-то шишек набить все-таки пришлось. О них и будет этот доклад.

Слушатели смогут решить для себя, стоит ли запускать приложение с нуля полностью на относительно новом SwiftUI или стоит подождать, пока технология стабилизируется, узнать, какие боли могут возникнуть при проектировании нетривиального приложения на новом стеке, и как их решать.

#digest #swiftui
Все по SwiftUI

➡️ SwiftUI Tutorials — серьезный материал от Apple, который сформирует базовые знания

➡️ Лекции Стенфорда. Бесспорно, не требующий представления ресурс, который содержит изменения за 2023 год

➡️ SwiftUI by Example — куча страниц с кодом под любую задачу

➡️ Awesome SwiftUI — список статей, обучающих программ, руководств и видосов

➡️ SwiftUI Weekly — обновляемый список ссылок на материалы

#digest #swiftui
Отображение панели выбора фотографий в SwiftUI

Знаете ли вы, что Apple создала способ для SwiftUI получить доступ к фотографиям пользователя, не запрашивая разрешения и при этом сохраняя конфиденциальность? Статья расскажет о том, как это работает и как это можно использовать в собственных проектах c примером кода.

Apple рекомендует разработчикам использовать встроенный пикер, если вашему приложению «нужен доступ только для чтения, чтобы получить изображения для публикации в Интернете или вставки в документ или электронное письмо», и что «поскольку система управляет своим жизненным циклом в отдельном процессе, она по умолчанию является приватной. Пользователю не нужно явно авторизовывать ваше приложение для выбора фотографий, что обеспечивает более простой и оптимизированный пользовательский опыт»

#digest #swiftui
Отладка представлений SwiftUI: что вызывает изменения?

Представления SwiftUI с большим количеством триггеров перерисовки могут стать проблемой. Отладка представлений SwiftUI является необходимым навыком при написании динамических представлений с несколькими триггерами перерисовки. Такие обертки свойств, как @State и @ObservedObject, перерисуют ваше представление на основе измененного значения.

Часто это ожидаемое поведение, и все выглядит так, как должно быть. Однако в так называемых массивных представлениях SwiftUI (MSV) может существовать множество различных триггеров, вызывающих неожиданную перерисовку представлени
Из этой статьи вы узнаете, почему при написании динамических представлений SwiftUI необходимо предотвращать подобное.

#digest #swiftui