Интеграция Live Activity и Dynamic Island в iOS: подробное руководство
📖 В масштабной статье описаны этапы, позволяющие, эффективно интегрировать Live Activities и Dynamic Island в приложение для iOS.
Плюс в том, что рассмотрен каждый шаг: от ограничений дизайна до обработки обновлений.
📺 Также материал доступен и в формате видео.
😃 iOS Dev
📖 В масштабной статье описаны этапы, позволяющие, эффективно интегрировать Live Activities и Dynamic Island в приложение для iOS.
Плюс в том, что рассмотрен каждый шаг: от ограничений дизайна до обработки обновлений.
📺 Также материал доступен и в формате видео.
Please open Telegram to view this post
VIEW IN TELEGRAM
7 23👍11⚡5🔥3👏2💯2☃1🎉1🤩1
Black Friday для iOS Dev
🎆 Нашёл замечательный ресурс на Github со всеми скидками для разработчиков (тут есть и Proxyman, и RocketSlim, и многое другое). Целых 5 000 звёзд.
И дополню своими (кстати, сегодня выложил решения сложных задач с CodeRun, одна из них с любопытным подходом):
💰 -30% на бусти (работает для старых, актуальных и новых подписчиков) на всю неделю.
⭐️ -30% в телеграм.
Вот, что вас там ждёт:
📱Скидка на ReviewBuddy (больше о приложении)
📱Приложение iOS IQ - бесплатно (так будет всегда).
И дополню своими (кстати, сегодня выложил решения сложных задач с CodeRun, одна из них с любопытным подходом):
Вот, что вас там ждёт:
Подготовка к собеседованиям:
- Мок-собесы с публичным доступом (сейчас несколько десятков на русском и английском языках).
- Вопросы для подготовки по секциям (сотни примеров на разные темы)
- Частные узкие темы (с поиском проблем в коде).
- System Design. Мои советы и большая подборка материалов.
Алгоритмы:
- Сложность алгоритмов.
- Разбор десятков задач с контестов (в том числе и от яндекса).
- Популярные методы решения задач (с примерами).
Архитектуры:
- Все паттерны проектирования банды четырёх. Общая информация и примеры реализации на Swift.
- Архитектурные заблуждения.
- Реализация в реальных приложениях.
Необычные эффекты:
В этом разделе я делюсь анимациями, подходами к созданию и десятками примеров.
Инструментарий. Полезные советы при работе с Xcode, терминалом и симулятором.
📱Скидка на ReviewBuddy (больше о приложении)
📱Приложение iOS IQ - бесплатно (так будет всегда).
Please open Telegram to view this post
VIEW IN TELEGRAM
22 12☃7👍7🎄2✍1🔥1💯1🏆1
Об анатомии крэшей на iOS «по-взрослому»
Давид Чупреев из команды Core iOS ОК на хабре постарался раскрыть тему крашей, и в фундаментальной статье описал, откуда они берутся и, что самое главное, как с ними взаимодействовать.
📖 В этом материале затрагиваются не только технические азы, но и структура краш-репорта, виды исключений, а также принцип работы PLCrashReporter.
🔗 А в нашем канале недавно был ещё один разбор «9 уровней зла» от падения фрейм-рейта до компрометации системы в целом.
😃 iOS Dev
Давид Чупреев из команды Core iOS ОК на хабре постарался раскрыть тему крашей, и в фундаментальной статье описал, откуда они берутся и, что самое главное, как с ними взаимодействовать.
📖 В этом материале затрагиваются не только технические азы, но и структура краш-репорта, виды исключений, а также принцип работы PLCrashReporter.
🔗 А в нашем канале недавно был ещё один разбор «9 уровней зла» от падения фрейм-рейта до компрометации системы в целом.
Please open Telegram to view this post
VIEW IN TELEGRAM
7 14👍8👏5☃2✍1🔥1🎉1💯1🎅1
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