50 сниппетов с полезными анимациями из разных приложений
Анимации не всегда служат только для украшения интерфейса. Они могут нести полезные функции. Например, сообщать пользователю об ошибке, мотивировать его сделать целевое действие или сообщать о важном событии.
В репозитории содержится несколько десятков примеров таких анимаций из разных приложений. Для каждого из них объясняется контекст его применения и приводится реализация.
Анимации не всегда служат только для украшения интерфейса. Они могут нести полезные функции. Например, сообщать пользователю об ошибке, мотивировать его сделать целевое действие или сообщать о важном событии.
В репозитории содержится несколько десятков примеров таких анимаций из разных приложений. Для каждого из них объясняется контекст его применения и приводится реализация.
GitHub
GitHub - GetStream/purposeful-ios-animations: Meaningful iOS animations built to inspire you in creating useful animations for…
Meaningful iOS animations built to inspire you in creating useful animations for your apps. Each of the animations here was cloned with SwiftUI. Have you seen an app animation you love to rebuild a...
👍37🔥6🤡3💯2❤1
Как анимация и вибрация помогли Додо сделать кнопку полезнее
В прошлом посте я поделился паттернами анимаций, которые приносят пользу. Кейс Додо из этой статьи – отличный пример использования таких паттернов на практике.
В прошлом посте я поделился паттернами анимаций, которые приносят пользу. Кейс Додо из этой статьи – отличный пример использования таких паттернов на практике.
🤡23🔥15❤2👍2
Conditional Layouts в SwiftUI
- В новой версии SwiftUI появился протокол Layout, который реализуется всеми стандартными контейнерами
- В протоколе две функции: sizeThatFits, которая расчитывает финальный размер контейнера с учетом всех детей, и placeSubviews, которая лэйаутит все дочерние вьюшки
- Новый тип AnyLayout позволяет менять лэйаут внутри контейнера без полной перерисовки вьюшек и сбрасывания стейта
- В новой версии SwiftUI появился протокол Layout, который реализуется всеми стандартными контейнерами
- В протоколе две функции: sizeThatFits, которая расчитывает финальный размер контейнера с учетом всех детей, и placeSubviews, которая лэйаутит все дочерние вьюшки
- Новый тип AnyLayout позволяет менять лэйаут внутри контейнера без полной перерисовки вьюшек и сбрасывания стейта
🤯27🔥3😢2👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Pow – анимированные переходы для SwiftUI
Вышла Beta версия библиотеки Pow, которая добавляет кучу классных transition’ов для ваших вьюх. Несколько примеров:
💨Blur – при добавлении View переходит из заблюренного в четкое состояние, при удалении – наоборот
⭕️Iris – растущий круг при добавлении, убывающий – при удалении
🪄Vanish – View рассыпается на мелкие кусочки
Вышла Beta версия библиотеки Pow, которая добавляет кучу классных transition’ов для ваших вьюх. Несколько примеров:
💨Blur – при добавлении View переходит из заблюренного в четкое состояние, при удалении – наоборот
⭕️Iris – растущий круг при добавлении, убывающий – при удалении
🪄Vanish – View рассыпается на мелкие кусочки
👏28🤡19👍4❤🔥3
Команды Почты и Облака Mail.ru ищут iOS-разработчиков и запускают Weekend Offer
В команду Почты Mail.ru приглашают человека, который готов участвовать в продуктовой разработке по основным направлениям развития почты, поддерживать и улучшать технические и продуктовые SLA и метрики в основных продуктах.
В команду Облака Mail.ru приглашают iOS-разработчика, который разделит задачи по развитию продукта, будет участвовать в новых продуктовых запусках и A/B-тестах, принимать технические вызовы в работе с файлами и медиаконтентом, а также улучшать инфраструктуру и автоматизацию.
Успейте зарегистрироваться до 2 сентября!
В команду Почты Mail.ru приглашают человека, который готов участвовать в продуктовой разработке по основным направлениям развития почты, поддерживать и улучшать технические и продуктовые SLA и метрики в основных продуктах.
В команду Облака Mail.ru приглашают iOS-разработчика, который разделит задачи по развитию продукта, будет участвовать в новых продуктовых запусках и A/B-тестах, принимать технические вызовы в работе с файлами и медиаконтентом, а также улучшать инфраструктуру и автоматизацию.
Успейте зарегистрироваться до 2 сентября!
🤡98👎10👍5🌭4🤬1
Статистика использования SwiftUI, Catalyst и AppKit системными приложениями macOS
- В macOS Ventura 85% приложений используют AppKit, 12% – SwiftUI, 4% – Catalyst
- Доля SwiftUI растет с каждой версией. С Monterey она выросла в 2.5 раза
- Catalyst стагнирует уже пару лет
- В macOS Ventura 85% приложений используют AppKit, 12% – SwiftUI, 4% – Catalyst
- Доля SwiftUI растет с каждой версией. С Monterey она выросла в 2.5 раза
- Catalyst стагнирует уже пару лет
🔥22👍6🤡4🌭2
Интерактивные туториалы на DocC
DocC, инструмент для генерации документации от Apple, умеет не только генерировать API reference, но и очень крутые пошаговые интерактивные туториалы. Вот, что они позволяют делать:
📝Разбивать туториал на главы
📹Встраивать видео, картинки и загружаемые файлы
✅Показывать квизы с вопросами, которые проверяют полученные знания
А вот еще один пример того, как можно использовать эти туториалы.
DocC, инструмент для генерации документации от Apple, умеет не только генерировать API reference, но и очень крутые пошаговые интерактивные туториалы. Вот, что они позволяют делать:
📝Разбивать туториал на главы
📹Встраивать видео, картинки и загружаемые файлы
✅Показывать квизы с вопросами, которые проверяют полученные знания
А вот еще один пример того, как можно использовать эти туториалы.
👍27🔥3❤🔥2
Модификатор presentationDetents() в SwiftUI
Этот модификатор помогает установить, какого размера должен быть отображаемый Sheet. Что интересно – он работает и с Popover, для которого тоже можно кастомизировать размер.
Этот модификатор помогает установить, какого размера должен быть отображаемый Sheet. Что интересно – он работает и с Popover, для которого тоже можно кастомизировать размер.
👍34🤡10
AppBox – инструмент для распространения сборок через Dropbox
С помощью AppBox можно распространять все виды сборок – Development, Ad-Hoc и Enterprise. Сервис полностью бесплатный, простой в использовании, интегрируется с Fastlane.
С помощью AppBox можно распространять все виды сборок – Development, Ad-Hoc и Enterprise. Сервис полностью бесплатный, простой в использовании, интегрируется с Fastlane.
😁8🤡7👍6
Lighter – генератор Swift-врапперов для SQLite базы
Lighter берет схему SQLite базы и генерирует из нее набор соответствующих Swift структур. Дальше их можно использовать двумя способами – встроенным в Lighter API для работы с базой или, не затаскивая дополнительных зависимостей, создавать соединение с базой вручную. Интегрируется в проект с помощью SwiftPM Plugins.
Lighter берет схему SQLite базы и генерирует из нее набор соответствующих Swift структур. Дальше их можно использовать двумя способами – встроенным в Lighter API для работы с базой или, не затаскивая дополнительных зависимостей, создавать соединение с базой вручную. Интегрируется в проект с помощью SwiftPM Plugins.
👍8
Изменения в отображении ViewController’ов в iPadOS 16
Огромный анализ всех изменений в отображении, которые произошли с разными видами ViewController’ов. Посмотрите, насколько это коснется вас, и решите – надо ли адаптироваться или использовать предложенные воркэраунды.
Огромный анализ всех изменений в отображении, которые произошли с разными видами ViewController’ов. Посмотрите, насколько это коснется вас, и решите – надо ли адаптироваться или использовать предложенные воркэраунды.
TCA Action Boundaries
При использовании архитектуры TCA в очень больших приложениях возникают проблемы, которые не решаются стандартными подходами. В статье разбирается какую проблему несет в себе стандартная реализация Action.
При использовании архитектуры TCA в очень больших приложениях возникают проблемы, которые не решаются стандартными подходами. В статье разбирается какую проблему несет в себе стандартная реализация Action.
🔥17👎3🤯1
Релиз Pulse 2.0
Pulse – это система работы с логами для iOS и macOS приложений. Она записывает логи и сетевые запросы и позволяет удобно с ними работать. Состоит из встраиваемой в приложение библиотеки, экрана-консоли логов и сетевых запросов и приложений для анализа логов.
В версии 2.0 появилось много новых фичей:
- Отображение статуса pending сетевых запросов
- Улучшенное отображение метрик сетевых запросов, в том числе средней продолжительности и размеров запросов и ответов сервера
- Подробное отображение ошибок URLSession
- Улучшенное macOS приложение для анализа логов
Pulse – это система работы с логами для iOS и macOS приложений. Она записывает логи и сетевые запросы и позволяет удобно с ними работать. Состоит из встраиваемой в приложение библиотеки, экрана-консоли логов и сетевых запросов и приложений для анализа логов.
В версии 2.0 появилось много новых фичей:
- Отображение статуса pending сетевых запросов
- Улучшенное отображение метрик сетевых запросов, в том числе средней продолжительности и размеров запросов и ответов сервера
- Подробное отображение ошибок URLSession
- Улучшенное macOS приложение для анализа логов
🔥45👍8🌚3❤2
DivKit — новый фреймворк для Server-Driven UI
- Позволяет управлять с сервера как отдельным элементом интерфейса, так и всем экраном
- Поддерживает server-driven ui второго поколения: описываются не параметры кастомизации крупных блоков, а вся верстка блока в целом
- Создан и применялся в приложениях Яндекса, сейчас опубликован командой на гитхабе.
- Позволяет управлять с сервера как отдельным элементом интерфейса, так и всем экраном
- Поддерживает server-driven ui второго поколения: описываются не параметры кастомизации крупных блоков, а вся верстка блока в целом
- Создан и применялся в приложениях Яндекса, сейчас опубликован командой на гитхабе.
🤡65👍29👎9❤4🤔1🤬1
Как отловить приложения, которые трекают ваши действия во встроенном браузере
На прошлой неделе Felix Krause выпустил исследование, в котором он проверил, какие скрипты инжектятся во встроенные браузеры разных социальных сетей. TikTok, например, трекает в нем все ваши действия, вплоть до вводимых данных, в том числе и паролей.
Он же запустил сайт InAppBrowser.com. При заходе на него вы увидите, каким образом браузер модифицировал код страницы.
На прошлой неделе Felix Krause выпустил исследование, в котором он проверил, какие скрипты инжектятся во встроенные браузеры разных социальных сетей. TikTok, например, трекает в нем все ваши действия, вплоть до вводимых данных, в том числе и паролей.
Он же запустил сайт InAppBrowser.com. При заходе на него вы увидите, каким образом браузер модифицировал код страницы.
🔥42👍2
Визуализация алгоритмов сортировки на Swift Charts
Автор видео реализует различные алгоритмы сортировки на Swift и визуализирует их на графиках из Swift Charts.
🫧Bubble Sort
☝️Selection Sort
📥 Insertion Sort
💨 Quick Sort
Автор видео реализует различные алгоритмы сортировки на Swift и визуализирует их на графиках из Swift Charts.
🫧Bubble Sort
☝️Selection Sort
📥 Insertion Sort
💨 Quick Sort
👍37🔥14
SwiftUI и Large Content Viewer
- В iOS доступны семь дефолтных размеров текста – от супер маленького до супер большого
- Некоторые системные компоненты физически не могут показывать текст слишком большого размера, и вместо этого по лонг тапу показывает увеличенную вьюшку. Эта функциональность называется Large Content Viewer
- В посте разбирается, как ее поддержать в своих кастомных компонентах и настроить Large Content Viewer для своего кейса
- В iOS доступны семь дефолтных размеров текста – от супер маленького до супер большого
- Некоторые системные компоненты физически не могут показывать текст слишком большого размера, и вместо этого по лонг тапу показывает увеличенную вьюшку. Эта функциональность называется Large Content Viewer
- В посте разбирается, как ее поддержать в своих кастомных компонентах и настроить Large Content Viewer для своего кейса
😢9👍5🤔1