Warning: Undefined array key 0 in /var/www/tgoop/function.php on line 65

Warning: Trying to access array offset on value of type null in /var/www/tgoop/function.php on line 65
2064 - Telegram Web
Telegram Web
This media is not supported in your browser
VIEW IN TELEGRAM
🕖 TimelineView в SwiftUI
TimelineView позволяет обновлять UI компоненты по расписанию. Это обеспечивает плавную анимацию с понятным читабельным интерфейсом. Сам TimelineView не имеет внешнего вида, а управляет обновлениями контента. Требуется свойство, соответствующее протоколу Timeline.
Пример использования TimelineView:
🔵Создание анимации с помощью TimelineView.
🔵Пример анимации: случайный цвет и изменение масштаба изображения.
🔵Временная шкала обновляется с помощью TimelineView.
🔵Цветная анимация основана на синусоидальной волне.
🔵Анимация размера основана на эффекте пульсации синусоидальной волны.
Пример показывает, как анимировать изображение с помощью TimelineView.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
📱 SwiftUI Canvas — Искусство рисования в коде
Простой и понятный гайд по рисованию на Canvas. Как и весь SwiftUI, отрисовка описывается декларативно. Тут так же используется и TimeLineView. Статья содержит примеры:
🔵Пульсирующий круг
🔵Синусоидальная волна
🔵Вращающийся квадрат
🔵Взрыв частиц
🔵Кольцо прогресса
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Android Broadcast
Please open Telegram to view this post
VIEW IN TELEGRAM
🐥 Современное конструирование URL-адресов в Swift
John Sundell вернулся к ведению своего сайта и начал с базы, как конструировать URL-адрес в Swift:
🟢URL-адреса в Swift представляются с помощью выделенного типа URL-адрес.
🟢Использование URL-адреса требует преобразования строк в URL-адреса, что может быть неудобно.
🟢Расширение URL-адреса позволяет выполнять принудительное разворачивание для статических строк.
🟢В Swift 5.9 появились макросы, которые могут быть полезны для статических URL-адресов.
🟢Макрос позволяет проверять статические строки URL-адресов во время компиляции.

Динамические компоненты URL-адресов
🔵Для динамических URL-адресов можно использовать URL-компоненты, но это требует дополнительных функций
🔵В iOS 16 появился новый API для создания динамических URL-адресов, который упрощает процесс.
🔵Новый API позволяет создавать динамические URL-адреса с помощью статического URL-адреса. Это упрощает процесс и делает его более читаемым.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🈸 Залетаем в Spotlight
Удивительный факт, маркетологи тратят невероятные бюджеты на рекламу приложения, но мало кто готов выделить время разработки на бесплатные возможности попадания в контекст пользователя. Например интегрироваться с Spotlight:
🔵Spotlight позволяет пользователям быстро находить приложения, файлы и другие элементы на устройстве.
🔵Spotlight индексирует как локальные, так и онлайн-данные.
🔵Интегрируется с Siri и другими сервисами для контекстных подсказок.

Способы индексации контента:
🔵Использование AppShortcutsProvider
🔵Индексация контента с помощью основных API Spotlight
🔵Начиная с iOS 18.4, можно управлять отображением объектов
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🐥Использование defer в асинхронном контексте
Не знаю почему, но часто разработчики забывают о ключевом слове defer. Он позволяет отложить выполнение блока кода до выхода из текущей области. Такое Откладывание полезно при написании надежного и читабельного кода. Его можно можно и нужно применять и в асинхронном контексте, как рассмотрено в статье:
🟢Пример: метод loadItems в поисковом сервисе, который использует базу данных API и требует закрытия соединения после выполнения операций.
🟢Откладывание позволяет решить проблему дублирования кода и снизить вероятность ошибок.
🟢В асинхронных контекстах, откладывание помогает сгладить код и упростить управление состоянием.
🟢Пример: Itemlist сервис, который использует асинхронные запросы для загрузки элементов и отслеживает состояние загружаемых задач.
🟢Откладывание может быть полезным инструментом для управления состоянием и очистки кода в Swift.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
📱 Сохранение состояния навигации в SwiftUI
Одно из неожиданных преимуществ использования навигации SwiftUI, ее полная интеграция с Codable:
🟣Сохранение состояния навигации улучшает пользовательский опыт при запуске многоэкранных приложений.
🟣SwiftUI позволяет сериализовать навигационный путь, что позволяет сохранять и восстанавливать состояние навигации.
🟣Каждый элемент навигационного пути должен быть хэшируемым и поддающимся кодированию.
🟣Для восстановления навигации декодированный путь восстанавливается и декодируется обратно

Ограничения и рекомендации:
🟡Сохранение состояния навигации полезно, но требует стабильности типов данных и структуры маршрутов
🟡Важно включать только простые и безопасные данные в маршруты для сохранения

От себя ещё добавлю, что любое декодирование маршрута это потенциальная уязвимость и нужно заранее продумать, есть ли маршруты для декодирования которых требуются условия, например декодирование экрана за пейволом 😏
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
📱 Отлаживаем приложение вместе со SwiftUI Instruments
Отличный гайд от серф студии про практические навыки использования инструментов отладки SwiftUI. Instruments SwiftUI собирает данные о view, view properties, Core Animation Commits, Time Profiler и Hangs.

Использование Core Animation Commits:
🟢Помогает найти дорогие перерисовки UI.
🟢Следить за полями View Body и View Properties

Использование Hangs:
🟢Помогает найти ощутимые фризы
🟢Обращать внимание на длительность и количество зависаний

Итоги:
🟣SwiftUI Instruments помогают лучше понимать SwiftUI.
🟣Можно использовать для проверки подписок и оптимизации кода.
🟣На больших проектах инструменты полезны для рефакторинга и проверки новой логики.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
2025/07/04 11:04:58
Back to Top
HTML Embed Code: