Telegram Web Link
Работа со SwiftData: гайд по использованию

Хотя она и поддерживается только с iOS 17+, но осваивать и изучать её полезно.
Для новых проектов вы можете использовать SwiftData уже сейчас, в том числе основываясь на этой подборке.

А сегодня я хотел бы поделиться ещё одним набором советов по работе:

Настройка

🔗 Как создать Persistent Container SwiftData или получить к нему доступ

Моделирование

🔗 Как создать модель SwiftData в Swift
🔗 Как добавить структуры или перечисления в SwiftData
🔗 Как использовать Transient в SwiftData

Действия в SwiftData

🔗 Как получить все объекты SwiftData
🔗 Как получить конкретный объект из SwiftData
🔗 Как узнать, существует ли объект в SwiftData

Создание

🔗 Как добавить объект в SwiftData

Обновление

🔗 Как обновить объект в SwiftData

Удаление

🔗 Как удалить объект в SwiftData
🔗 Как удалить все объекты из SwiftData в Swift

Возможные ошибки и решение

🔗 Краш в SwiftData при попытке доступа к удаленному объекту
🔗 Как решить проблему No exact matches in call to instance method 'setValue'

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Большое обновление базы iOS IQ

➡️ Добавлен блок на умение читать и понимать код (и поиск ошибок).

Разобрал порождающие паттерны проектирования (с примерами на Swift):

Абстрактная фабрика, строитель, прототип, синглтон, фабричный метод.

Затронул узкие, но важные темы для собеседований, например:

➡️ Для чего нужен DispatchSemaphore и как с его помощью решить проблему доступа к ресурсу.
➡️ Какая разница между raw и associated в enum?

Поделился своим опытом решения алгоритмических задач:

➡️ Блок средних задач с CodeRun (над некоторыми бился несколько дней).

И несколькими другими важными моментами (кстати, теперь есть и обновляемый changelog внутри).

🐱 Вступить можно вот тут.

😃 iOS IQ
Please open Telegram to view this post
VIEW IN TELEGRAM
Рисование и анимация: контуры и фигуры в SwiftUI

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

📖 В этом уроке рассматривается процесс создания такого элемента путем комбинирования различных контуров и фигур.

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

Отлично подойдёт новичкам (и по времени всего 25 минут). Код доступен здесь.

😃 iOS IQДругие эффекты
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Генерация Swift-кода в (почти) реальном времени на базе нарисованного скетча

🎆 Дэниел Лейверс в демонстрации магистерской диссертации показал, на что способны современные технологии.

Можно набросать скетч помощью iPad-pencil и увидеть, как рядом с ним появляется реальный интерактивный интерфейс и Swift-код.

Приложение использует модель, заранее созданную на базе элементов UI, которая подается в алгоритм yolov5 и преобразуется в CoreML.

Это невероятно сложно и интересно.

📖 Саму диссертацию Дэниела можно прочитать здесь.

😃 iOS IQДругие эффекты
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
😎WWDC 2024 пройдёт с 10 по 14 июня

Сегодня компания Apple объявила о том, что ежегодная Всемирная конференция разработчиков (WWDC) пройдёт в режиме онлайн с 10 по 14 июня 2024 года.

Разработчики и студенты смогут лично принять участие в специальном мероприятии в Apple Park в день открытия.

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

😃 iOS IQ
Please open Telegram to view this post
VIEW IN TELEGRAM
Новый источник знаний от Apple (в дополнение к анонсу WWDC)

📺 Apple запустила новый канал Apple Developer на YouTube, который будет использоваться для обмена информацией о сессиях и мероприятиях WWDC, за которыми смогут следить разработчики.

Видеоролики уже сейчас организованы в плейлисты по темам: App Store, Swift, Spatial Computing, Safari (и будут доплняться другими разделами).

И это уже даёт представление, какой контент мы можем ждать на самой конфе.

😃 iOS IQ
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Воспроизведение анимации с заставки WWDC 2024

В iOS IQ я стараюсь рассматривать не только важные моменты о разработке, но и необычные анимации и эффекты.

Во вчерашней новости многие обратили внимание на сложный эффект в заставке.

🤩А Дэниел Кунц уже успел реализовать его с помощью метал-шейдера.

🐱 Получить доступ к реализации других необычных эффектов можно здесь.

😃 iOS IQ
Please open Telegram to view this post
VIEW IN TELEGRAM
SwiftUI Layout Protocol: как работать с версткой в SwiftUI

Хотя создавать базовый лэйаут несложно, существует множество вариантов, с которыми могут быть трудности.

Ниже будут рассмотрены не только типичные примеры для Layout, но и ряд важных моментов для формирования базы.

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

Первая часть:

➡️ Что такое Layout Protocol?
➡️ Разбор View Hierarchy.
➡️ Первая реализация лэйаута.
➡️ Выравнивание контейнеров.
➡️ Кастомные значения: LayoutValueKey.
➡️ Дефолтный Spacing.
➡️ Для чего нужен Spacer().
➡️ Layout Cache.
➡️ Переключение между лэйаутами с помощью AnyLayout.
➡️ Выводы.

Вторая часть:

➡️ Пусть начнётся веселье!
➡️ Кастомные анимации.
➡️ Двунаправленные кастомные значения.
➡️ Избежание зацикливания и крашей.
➡️ Рекурсивные лэйауты.
➡️ Композиция лэйаутов.
➡️ Еще один пример композиции: Интерполяция.
➡️ Использование binding-параметров.
➡️ Полезный инструмент отладки.
➡️ Заключительные мысли.

🐱 Больше разборов, примеров анимаций, алгоритмов и архитектур — доступно вот здесь.

😃 iOS IQ
Please open Telegram to view this post
VIEW IN TELEGRAM
Новый раздел в Develop in Swift от Apple

🤩 Тим Снит сегодня анонсировал новый набор туториалов для тех, кто только делает первые шаги в программировании с помощью Swift и SwiftUI.

Для понимания даже не нужен предварительный опыт написания кода в целом, так что эти материалы могут стать отличным стартом.

📖 Обучающие материалы Apple доступны здесь.

😃 iOS DevРазбор алгоритмов
Please open Telegram to view this post
VIEW IN TELEGRAM
Важное обновление AppStore Connect, новый сервис Apple Crash +

В дополнение к последним изменениям, касающимся проверки доступа к API и необходимости работы с privacy manifests в эппл сегодня выкатили новую политику проверки приложений.

Теперь review team будет проверять приложения только 3 раза после каждого реджекта. Все остальные проверки доступны платно.

Доступно два вида подписки на Apple Crash +:

💵$ 9.99 в месяц – Apple Crash + безлимитные проверки приложений после первого реджекта.

💵$ 19.99 в месяц – все то же самое, что и в первой версии, но проверка приложений будет в течение часа после загрузки билда.

Видимо, изменения вызваны упущенной выгодой в новых альтсторах.

📺 Детально изменения доступны на новом канале эпла в YouTube.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
TextView и что он скрывает

Уже более 9 лет Михаил Лапушкин работает над своим текстовым редактором. За это время он прошёл огромный путь, и в двух масштабных статьях делится тем, с какими подводными камнями ему пришлось столкнуться и, например, почему в приложении нет сторонних зависимостей.

📖 В первой части Михаил рассказывает свою увлекательную историю приложения (об архитектуре, релизах, дебаге и не только).

📖 А во второй делится хардкорными вещами: работой с атрибутами, стилями, перфомансом, математикой для отрисовки и многим другим.

😃 iOS Dev🐱 Узнать больше об архитектурах
Please open Telegram to view this post
VIEW IN TELEGRAM
Создание 3D-элементов для iOS и VisionOS

Meng To выпустил большое обучающее видео по работе со Spline.

📺 В этом видео можно узнать о следующих вещах:

1️⃣ Создание интерактивных 3D-сцен для приложений iOS и экспорт в Xcode 15+.

2️⃣ Работа над элементами для visionOS.

3️⃣ Пример создания 3D-иконок приложений и динамических анимаций интерфейса.

4️⃣ Расширенные возможности Spline, такие как частицы и физика для более реалистичных эффектов.

5️⃣ Введение в 3D-моделирование.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Шаринг файлов с кастомными типами в iOS

📁 Если вы планируете использовать не только стандартные типы файлов на iOS, но и заставить систему распознать файл и открыть его в вашем приложении, вы можете использовать типы документов и идентификаторы экспортируемых типов.

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

📖 Вот тут есть инструкция с примером кода, как это сделать.

🐱 А в ноушне добавил пост, как можно переносить данные между своими приложениями в целом (около десятка вариантов).

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Apple Store Ковент-Гарден (Лондон)

Посещение необычных или старых сторов эпл - одна из моих небольших традиций при поездках в другие страны.

📸 В этот раз делюсь фотосетом одного из флагманских магазинов компании в Великобритании.

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

Каждое помещение посвящено одной из линеек продукции Apple, а главный двор полностью отдан под большие дубовые столы с десятками планшетов iPad, которые покупатели смогут опробовать.

После оплаты они могут посетить «комнату настройки», где сотрудники Apple распакуют и настроят их новый гаджет.

Забавный факт, даже если у компании что-то пойдет не так, то на продаже этой недвижимости они смогут заработать невероятно крупную сумму денег, ведь адрес этого красивого здания - London, The Plaza, 1.

Около десяти лет назад в Ковент-Гардене было даже больше посетителей, чем на пятом авеню в Нью-Йорке!

Другие истории об эпл сторах:

🍏 Apple Store Marunouchi в Токио.

🍏 Apple Store в Купертино.

🍏 Apple Tower Theater в Лос-Анджелесе.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
2024/11/20 07:20:40
Back to Top
HTML Embed Code: