This media is not supported in your browser
VIEW IN TELEGRAM
Подборка экспериментальных анимаций на SwiftUI с кодом
😎 Майкл Ли - дизайнер, который любит делать прототипы с необычными подходами.
Недавно он заопенсорсил всю коллекцию (и обещает продолжать её наполнять).
🛠 Ознакомиться с примерами можно на Github.
😃 iOS Dev
😎 Майкл Ли - дизайнер, который любит делать прототипы с необычными подходами.
Недавно он заопенсорсил всю коллекцию (и обещает продолжать её наполнять).
🛠 Ознакомиться с примерами можно на Github.
Please open Telegram to view this post
VIEW IN TELEGRAM
6 23☃7👍5🔥3💯3⚡2❤🔥1👏1🎄1
Оптимизация процесса компиляции и выполнения тестов в Xcode
⏳ Компиляция проектов Xcode может занимать много времени (особенно после очистки кэша).
При этом время компиляции обычно растет динамически вместе с увеличением проекта, а скорость сборок часто повышается только за счёт обновления аппаратного обеспечения, что само по себе крайне дорогостоящий процесс.
На протяжении многих лет в Tuist вкладывали средства в решение этой проблемы, используя наиболее оригинальный и экономически эффективный подход с помощью фич Xcode.
📖 В этой статье разработчики из Tuist объясняют, что именно может замедлять скорость сборки проектов, какие шаги можно предпринять и почему превьюхи в SwiftUI могут отвалиться из-за проблем билд-системы самого Xcode.
😃 iOS Dev
⏳ Компиляция проектов Xcode может занимать много времени (особенно после очистки кэша).
При этом время компиляции обычно растет динамически вместе с увеличением проекта, а скорость сборок часто повышается только за счёт обновления аппаратного обеспечения, что само по себе крайне дорогостоящий процесс.
На протяжении многих лет в Tuist вкладывали средства в решение этой проблемы, используя наиболее оригинальный и экономически эффективный подход с помощью фич Xcode.
📖 В этой статье разработчики из Tuist объясняют, что именно может замедлять скорость сборки проектов, какие шаги можно предпринять и почему превьюхи в SwiftUI могут отвалиться из-за проблем билд-системы самого Xcode.
Please open Telegram to view this post
VIEW IN TELEGRAM
12 14👍9👏3✍2☃1🔥1🎉1🎄1
This media is not supported in your browser
VIEW IN TELEGRAM
Пример интеграции Natural Language: анализ текста и генерация градиента на основе результата
ℹ️ Natural Language — это фреймворк, предоставляющий набор инструментов для анализа и обработки текста.
Его можно использовать, например, для определения языка, поиска сходства между фрагментами и т. д.
📖 В своей статье Артем Новичков рассматривает особенности использования фреймворка, приводит примеры и показывает возможное применение с использованием MeshGradient (в канале есть несколько разборов).
🛠 Код примера доступен на GitHub.
😃 iOS Dev
Его можно использовать, например, для определения языка, поиска сходства между фрагментами и т. д.
📖 В своей статье Артем Новичков рассматривает особенности использования фреймворка, приводит примеры и показывает возможное применение с использованием MeshGradient (в канале есть несколько разборов).
🛠 Код примера доступен на GitHub.
Please open Telegram to view this post
VIEW IN TELEGRAM
7 22⚡9🔥8👍7💯2😎2✍1☃1👏1🎄1 1
This media is not supported in your browser
VIEW IN TELEGRAM
Реализация поисковых подсказок в SwiftUI
🔎 Модификатор
В сочетании с отслеживанием истории поиска можно создать интуитивно понятный интерфейс, который поможет пользователям быстро найти то, что они ищут (и легко вернуться к ранее просмотренным элементам).
📖 В этом материале рассказано, как внедрить такую фичу в своё приложение поэтапно:
1️⃣ Реализация фильтрации поиска в режиме реального времени.
2️⃣ Внедрение подсказок.
3️⃣ Отслеживание истории поиска.
4️⃣ Создание удобной навигации.
😃 iOS Dev
🔎 Модификатор
searchSuggestions(_:)
- это полезная фича, которая улучшает работу поиска в приложениях для iOS. В сочетании с отслеживанием истории поиска можно создать интуитивно понятный интерфейс, который поможет пользователям быстро найти то, что они ищут (и легко вернуться к ранее просмотренным элементам).
📖 В этом материале рассказано, как внедрить такую фичу в своё приложение поэтапно:
1️⃣ Реализация фильтрации поиска в режиме реального времени.
2️⃣ Внедрение подсказок.
3️⃣ Отслеживание истории поиска.
4️⃣ Создание удобной навигации.
Please open Telegram to view this post
VIEW IN TELEGRAM
8 16👍8💯5✍3🆒2☃1🔥1👏1🏆1🎄1
This media is not supported in your browser
VIEW IN TELEGRAM
Новогодняя анимация на SwiftUI+AppKit
Интересное решение придумал разработчик, чтобы добавить немного атмосферы в последний месяц этого года.
🤩 Оказывается, что такой эффект можно создать для мака, что и доказывает Simon B. Støvring.
Интересно, кто-то из читателей нашего канала сможет повторить такой эффект?
😃 iOS Dev
Интересное решение придумал разработчик, чтобы добавить немного атмосферы в последний месяц этого года.
Интересно, кто-то из читателей нашего канала сможет повторить такой эффект?
Please open Telegram to view this post
VIEW IN TELEGRAM
7🎅26 11👍6☃5🔥3🎉2💯2👏1
Полезные советы для Advent of Code на Swift
Каждый декабрь Эрик Вастл публикует Advent of Code — увлекательный набор заданий по написанию алгоритмов.
Каждый день с 1 по 25 декабря публикуется по одной задаче.
Задачи появляются постепенно, начиная с самых простых и постепенно усложняются.
🔗 Здесь есть несложная инструкция, как присоединиться к Swift-лидерборду.
А на скриншоте несколько советов, как упростить решение задач, используя Swift Algorithms.
😃 iOS Dev
Каждый декабрь Эрик Вастл публикует Advent of Code — увлекательный набор заданий по написанию алгоритмов.
Каждый день с 1 по 25 декабря публикуется по одной задаче.
Задачи появляются постепенно, начиная с самых простых и постепенно усложняются.
А на скриншоте несколько советов, как упростить решение задач, используя Swift Algorithms.
Please open Telegram to view this post
VIEW IN TELEGRAM
7 20👍10🔥6👏2💯2 2⚡1👌1🎄1🆒1
This media is not supported in your browser
VIEW IN TELEGRAM
Создание кастомного Segmented Control в SwiftUI
Хотя многие примеры модификатора
📖 Наталья Панферова в своем блоге рассказывает о простом способе использования этого модификатора для создания собственного компонента со слайд-анимацией.
😃 iOS Dev
Хотя многие примеры модификатора
matchedGeometryEffect()
посвящены анимации, он может применяться и в других контекстах, например для создания своих контролов. 📖 Наталья Панферова в своем блоге рассказывает о простом способе использования этого модификатора для создания собственного компонента со слайд-анимацией.
Please open Telegram to view this post
VIEW IN TELEGRAM
7 15👍10🎄6❤🔥2🔥2💯2🎅2👏1🎉1
Растягивание аудиофайла до нужной длины в Swift
Такая фича может быть полезной для устранения проблем синхронизации (например, при переводе исходного файла и генерации субтитров).
📖 Том Локхорст и Матейс Кадейк рассказывают, почему комбинации AVMutableComposition и AVAudioUnitTimePitch недостаточно. И описывают способ с дублированием конкретных фрагментов аудио в рассчитанных точках.
В рамках хакатона от RevenueCat я делал небольшую утилиту для генерации сабов, поэтому данный подход может оказаться весьма полезным. Да и для пополнения пула знаний решение довольно любопытное.
🛠 Код примера доступен на GitHub.
😃 iOS Dev
Такая фича может быть полезной для устранения проблем синхронизации (например, при переводе исходного файла и генерации субтитров).
📖 Том Локхорст и Матейс Кадейк рассказывают, почему комбинации AVMutableComposition и AVAudioUnitTimePitch недостаточно. И описывают способ с дублированием конкретных фрагментов аудио в рассчитанных точках.
В рамках хакатона от RevenueCat я делал небольшую утилиту для генерации сабов, поэтому данный подход может оказаться весьма полезным. Да и для пополнения пула знаний решение довольно любопытное.
🛠 Код примера доступен на GitHub.
Please open Telegram to view this post
VIEW IN TELEGRAM
10 13👍9💯5🔥3☃2✍1👏1🙏1🎄1
Создание клона приложения Messages с помощью SwiftUI
📖 В статье автор делится своим подходом к вёрстке списка чатов, выборе аттачей и затрагивает особенности реализации баббла сообщений с помощью Path.
А посмотреть на реализацию эффекта отклеивания, как в нативном приложении, можно в этом посте.
😃 iOS Dev
📖 В статье автор делится своим подходом к вёрстке списка чатов, выборе аттачей и затрагивает особенности реализации баббла сообщений с помощью Path.
А посмотреть на реализацию эффекта отклеивания, как в нативном приложении, можно в этом посте.
Please open Telegram to view this post
VIEW IN TELEGRAM
10 15☃8👍7🔥3✍2 2👏1👌1🏆1🎄1
Как Apple использует Swift и SwiftUI в iOS 18
📖 Александре Колуччи в ежегодном исследовании (как и для прошлых версиях iOS) ответил на несколько вопросов:
1️⃣ Сколько бинарников содержит iOS 18?
2️⃣ Какие языки программирования использовались для разработки системных приложений?
3️⃣ Сколько приложений написано на чистом Swift?
4️⃣ Какой процент приложений использует SwiftUI по сравнению с UIKit?
Очевидный спойлер: количество приложений на Swift и SwiftUI растёт.
Но в iOS 18 Apple также начинает или по крайней мере планирует использовать Swift в низкоуровневой подсистеме Secure Enclave.
😃 iOS Dev
📖 Александре Колуччи в ежегодном исследовании (как и для прошлых версиях iOS) ответил на несколько вопросов:
1️⃣ Сколько бинарников содержит iOS 18?
2️⃣ Какие языки программирования использовались для разработки системных приложений?
3️⃣ Сколько приложений написано на чистом Swift?
4️⃣ Какой процент приложений использует SwiftUI по сравнению с UIKit?
Очевидный спойлер: количество приложений на Swift и SwiftUI растёт.
Но в iOS 18 Apple также начинает или по крайней мере планирует использовать Swift в низкоуровневой подсистеме Secure Enclave.
Please open Telegram to view this post
VIEW IN TELEGRAM
9 18👍9 6🔥3✍2☃1👏1💯1🎄1🆒1
Прокачиваем использование ScrollView: создание коллекций с вертикальной и горизонтальной прокруткой
📖 В этом материале рассказывается об особенностях использования ScrollView при внедрении пагинации, свойствах
🔗 А вот тут в канале можно почитать про реализацию эффектов ScrollView.
😃 iOS Dev
📖 В этом материале рассказывается об особенностях использования ScrollView при внедрении пагинации, свойствах
containerRelativeFrame
, работе с позицией прокрутки и анимациях. Please open Telegram to view this post
VIEW IN TELEGRAM
7 15👍11👏4⚡3✍2🎄2🔥1🏆1🆒1
This media is not supported in your browser
VIEW IN TELEGRAM
Разбор Apple Intelligence: генерация изображений
🔗 Image Playground, работающий на базе Apple Intelligence это новый инструмент, который позволяет легко переводить текстовые и визуальные запросы в изображения.
Он доступен в macOS 15.2 beta, iOS 18.2 beta и iPadOS 18.2 beta и расширяет творческие возможности не только для пользователей, но и для нас, разработчиков.
📖 С возможностями работы с Image Playground можно ознакомиться здесь.
😃 iOS Dev
Он доступен в macOS 15.2 beta, iOS 18.2 beta и iPadOS 18.2 beta и расширяет творческие возможности не только для пользователей, но и для нас, разработчиков.
📖 С возможностями работы с Image Playground можно ознакомиться здесь.
Please open Telegram to view this post
VIEW IN TELEGRAM
14🎄12 9👍5🔥3☃2👌1💯1🆒1
Создание экрана настроек в SwiftUI с помощью AppStorage
Несложный экран с опциональными фичами необходим буквально в каждом пет-проекте (или в каком-нибудь тестовом задании).
📖 В этой статье, особенно полезной новичкам, рассматривается создание такого экрана, а ещё автор напоминает, для чего нужно использовать suiteName.
😃 iOS Dev
Несложный экран с опциональными фичами необходим буквально в каждом пет-проекте (или в каком-нибудь тестовом задании).
📖 В этой статье, особенно полезной новичкам, рассматривается создание такого экрана, а ещё автор напоминает, для чего нужно использовать suiteName.
Please open Telegram to view this post
VIEW IN TELEGRAM
8 15👍6✍4🔥2💯2☃1❤🔥1👌1🎄1 1
Подборка докладов с конференции Swift Connection 2024
Недавно прошло очередное событие для iOS-разработчиков, делюсь плейлистом и приоритетными (на мой взгляд) докладами.
📺 Практическое руководство по производительности Swift
На практике иногда бывает сложно точно знать, на чем следует сосредоточиться (а чего следует избегать), чтобы писать действительно быстрый код Swift. Именно об этом и пойдет речь — с множеством советов и практических примеров.
📺 Данные? Данные! Они повсюду!
В докладе рассмотрены несколько опций и их производительность (Plist/SQLite/CoreData/Swift Data на примере работы с 1 ГБ данных).
📺 Дзен и искусство отладки
Докладчик призывает отказаться от использования поисковиков для своих вопросов и сосредоточиться на сути для настоящего понимания источника проблем.
📺 Swift 6 + Concurrency
Автор делится советами, которые позволят решать асинхронные задачи элегантно и эффективно.
📺 SwiftUI-анимации
В этом видео рассказано о различных способах создания анимации в SwiftUI.
📺 Полностью плейлист конференции доступен здесь.
Другие интересные подборки докладов:
🔗 Подборка докладов с iOS Conf SG 2024
🔗 Подборка докладов с конференции Swift Craft
🔗 Доклады с конференции try! Swift Tokyo 2024
😃 iOS Dev
Недавно прошло очередное событие для iOS-разработчиков, делюсь плейлистом и приоритетными (на мой взгляд) докладами.
📺 Практическое руководство по производительности Swift
На практике иногда бывает сложно точно знать, на чем следует сосредоточиться (а чего следует избегать), чтобы писать действительно быстрый код Swift. Именно об этом и пойдет речь — с множеством советов и практических примеров.
📺 Данные? Данные! Они повсюду!
В докладе рассмотрены несколько опций и их производительность (Plist/SQLite/CoreData/Swift Data на примере работы с 1 ГБ данных).
📺 Дзен и искусство отладки
Докладчик призывает отказаться от использования поисковиков для своих вопросов и сосредоточиться на сути для настоящего понимания источника проблем.
📺 Swift 6 + Concurrency
Автор делится советами, которые позволят решать асинхронные задачи элегантно и эффективно.
📺 SwiftUI-анимации
В этом видео рассказано о различных способах создания анимации в SwiftUI.
Другие интересные подборки докладов:
🔗 Подборка докладов с iOS Conf SG 2024
🔗 Подборка докладов с конференции Swift Craft
🔗 Доклады с конференции try! Swift Tokyo 2024
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍17 10✍5❤🔥3🔥3👏2💯2🎉1🎄1
Matt Massicotte о строгом параллелизме в Swift 6
Внедрение Swift 6 может быть непростым и вызывать большое количество проблем. Не помогает и количество ключевых слов: tasks, sendability, isolation domains и boundaries, actors, preconcurrency (и многое другое).
📺 В этом выпуске Dev Conversations Мэтт рассказывает не только об этом, но ещё о своём опыте работы с платформами Apple еще до появления OS X (а также о работе с батареей iPhone в конце 2000-х, и о первых днях работы в Crashlytics).
📖 Доступен и текстовый вариант беседы: вот здесь.
Вы также можете знать Мэтта по его блогу (некоторые решения и советы появляются и в нашем канале) и репозиторию:
🔗 Практические решения проблем с использованием Swift Concurrency на Github.
😃 iOS Dev
Внедрение Swift 6 может быть непростым и вызывать большое количество проблем. Не помогает и количество ключевых слов: tasks, sendability, isolation domains и boundaries, actors, preconcurrency (и многое другое).
📖 Доступен и текстовый вариант беседы: вот здесь.
Вы также можете знать Мэтта по его блогу (некоторые решения и советы появляются и в нашем канале) и репозиторию:
🔗 Практические решения проблем с использованием Swift Concurrency на Github.
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍14 9💯5🔥4✍3☃1⚡1🎉1
SwiftUI Button: кастомные стили и лучшие практики
Для многих приложений необходимо создавать кастомные компоненты.
Это может быть обусловлено единообразием дизайна, и такие стили — отличный способ добиться желаемого.
Например, можно реализовать дополнительную анимацию масштабирования для улучшения индикации нажатого состояния.
📖 В этой статье разбираются разные подходы к созданию таких элементов для дальнейшего переиспользования.
Больше про подходы к кастомизации можно почитать в нашем канале:
🔗 Создание переиспользуемых компонентов в SwiftUI
🔗 Разбор кнопок SwiftUI: создание и возможности кастомизации
🔗 Настраиваемая кнопка с разными состояниями в SwiftUI
😃 iOS Dev
Для многих приложений необходимо создавать кастомные компоненты.
Это может быть обусловлено единообразием дизайна, и такие стили — отличный способ добиться желаемого.
Например, можно реализовать дополнительную анимацию масштабирования для улучшения индикации нажатого состояния.
📖 В этой статье разбираются разные подходы к созданию таких элементов для дальнейшего переиспользования.
Больше про подходы к кастомизации можно почитать в нашем канале:
Please open Telegram to view this post
VIEW IN TELEGRAM
5 18👍9👏5🔥3✍2💯1🎅1🎄1🆒1
Как долго вы находитесь на текущем месте работы?
Anonymous Poll
15%
Менее полугода
14%
От полугода до года
22%
1-2 года
19%
2-3 года
16%
3-5 лет
10%
От 5 до 10 лет
4%
Более 10 лет
12✍15🎄6⚡5 3👍2🫡2🔥1👏1💯1
Большое руководство для проверки пользовательских данных в SwiftUI
Валидация не должна быть слишком сложной, так как основная цель в том, чтобы сигнализировать пользователю о некорректности вводимой инфы.
Этого можно добиться, показывая сообщения об ошибках, подсвечивая поля или включая/отключая определенные действия.
ℹ️ Распространённый подход к реализации — создание кастомных компонентов, но и у этого варианта есть свои минусы.
📖 В этой статье рассмотрено несколько опций для проверки валидности данных и показано, как это можно покрыть тестами.
😃 iOS Dev
Валидация не должна быть слишком сложной, так как основная цель в том, чтобы сигнализировать пользователю о некорректности вводимой инфы.
Этого можно добиться, показывая сообщения об ошибках, подсвечивая поля или включая/отключая определенные действия.
📖 В этой статье рассмотрено несколько опций для проверки валидности данных и показано, как это можно покрыть тестами.
Please open Telegram to view this post
VIEW IN TELEGRAM
9 12👍8✍5🎅3👏2💯2🎄1
Реализация кликабельных ссылок в SwiftUI
Благодаря Markdown в SwiftUI довольно легко можно реализовать такую возможность.
Кроме этого, можно юзать не только глобальный стиль, но и задать собственный для каждой из ссылок.
📖 В этой статье описаны необходимые шаги, а здесь доступно опенсорсное решение.
😃 iOS Dev
Благодаря Markdown в SwiftUI довольно легко можно реализовать такую возможность.
Кроме этого, можно юзать не только глобальный стиль, но и задать собственный для каждой из ссылок.
📖 В этой статье описаны необходимые шаги, а здесь доступно опенсорсное решение.
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍22 8✍5🔥2🎄2🎉1💯1
UICollectionView — кастомизация, лучшие практики и необычные советы
UICollectionView по праву мощнейший инструмент для верстки, который используют 99.99% приложений.
👨💻 Я решил поделиться набором советов и практик в iOS IQ, среди которых, например, способы создания кастомных заголовков, перетаскивание ячеек, кастомные лэйауты и многое, многое другое.
Уже сейчас можно посмотреть, как реализовать запиненные хэдеры, инвертировать отображение и создать собственный многоуровневый лэйаут.
Безусловно, как и остальные секции, раздел будет постоянно пополняться.
💰 Получить доступ можно тут и ⭐️ тут.
UICollectionView по праву мощнейший инструмент для верстки, который используют 99.99% приложений.
Уже сейчас можно посмотреть, как реализовать запиненные хэдеры, инвертировать отображение и создать собственный многоуровневый лэйаут.
Безусловно, как и остальные секции, раздел будет постоянно пополняться.
Please open Telegram to view this post
VIEW IN TELEGRAM
19👍15 8🎄5🔥4⚡1✍1🆒1
Полезные инструменты
Умение использовать встроенные средства Xcode — невероятно полезно для разработчика любого уровня. И дело не только в профайлере или других важных опциях, но и в системных фреймворках. В канале я касался области знаний, связанных со сторонними зависимостями (и их возможными недостатками).
На мой взгляд, способность по максимуму использовать базовый инструментарий выгодно (и часто конкурентно в том числе) отличает разработчика более высокого уровня.
ℹ️ Например, на мобиусе несколько назад был рад послушать в офлайне замечательный доклад Евгения Ртищева об эффективной работе с сетью (если кто-то не видел, посмотрите обязательно).
Несмотря на это, многие разработчики до сих пор используют опенсорсные решения и это может быть оправдано в той или иной мере.
Поэтому делюсь полезным опросом от Максима Гришутина на счёт самых используемых фреймворков, связанных с iOS-разработкой:
🔗 Пройти опрос можно здесь.
😃 iOS Dev
Умение использовать встроенные средства Xcode — невероятно полезно для разработчика любого уровня. И дело не только в профайлере или других важных опциях, но и в системных фреймворках. В канале я касался области знаний, связанных со сторонними зависимостями (и их возможными недостатками).
На мой взгляд, способность по максимуму использовать базовый инструментарий выгодно (и часто конкурентно в том числе) отличает разработчика более высокого уровня.
ℹ️ Например, на мобиусе несколько назад был рад послушать в офлайне замечательный доклад Евгения Ртищева об эффективной работе с сетью (если кто-то не видел, посмотрите обязательно).
Несмотря на это, многие разработчики до сих пор используют опенсорсные решения и это может быть оправдано в той или иной мере.
Поэтому делюсь полезным опросом от Максима Гришутина на счёт самых используемых фреймворков, связанных с iOS-разработкой:
Please open Telegram to view this post
VIEW IN TELEGRAM
9 11👏5💯5👍2🎄2☃1🔥1👌1🆒1