iOS Dev
Відкрити в Telegram
👨💻Автор: Виктор Грушевский (@Viktorianec) ⚒️ База: https://boosty.to/ios_dev | 🤖 @iOSIQBot | https://iosiq.ru 🍏Канал об iOS-разработке, алгоритмах и архитектурах ⭐️ Подготовка к собесам ⭐️ Код. Много кода. #ios #mobile #swift
Показати більше7 999
Підписники
+424 години
+427 днів
+8130 день
Архів дописів
8 000
Большое руководство для проверки пользовательских данных в SwiftUI
Валидация не должна быть слишком сложной, так как основная цель в том, чтобы сигнализировать пользователю о некорректности вводимой инфы.
Этого можно добиться, показывая сообщения об ошибках, подсвечивая поля или включая/отключая определенные действия.
ℹ️ Распространённый подход к реализации — создание кастомных компонентов, но и у этого варианта есть свои минусы.
📖 В этой статье рассмотрено несколько опций для проверки валидности данных и показано, как это можно покрыть тестами.
😃 iOS Dev
8 000
SwiftUI Button: кастомные стили и лучшие практики
Для многих приложений необходимо создавать кастомные компоненты.
Это может быть обусловлено единообразием дизайна, и такие стили — отличный способ добиться желаемого.
Например, можно реализовать дополнительную анимацию масштабирования для улучшения индикации нажатого состояния.
📖 В этой статье разбираются разные подходы к созданию таких элементов для дальнейшего переиспользования.
Больше про подходы к кастомизации можно почитать в нашем канале:
🔗 Создание переиспользуемых компонентов в SwiftUI
🔗 Разбор кнопок SwiftUI: создание и возможности кастомизации
🔗 Настраиваемая кнопка с разными состояниями в SwiftUI
😃 iOS Dev
8 000
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
8 000
Подборка докладов с конференции 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
8 000
Создание экрана настроек в SwiftUI с помощью AppStorage
Несложный экран с опциональными фичами необходим буквально в каждом пет-проекте (или в каком-нибудь тестовом задании).
📖 В этой статье, особенно полезной новичкам, рассматривается создание такого экрана, а ещё автор напоминает, для чего нужно использовать suiteName.
😃 iOS Dev
8 000
Разбор Apple Intelligence: генерация изображений
🔗 Image Playground, работающий на базе Apple Intelligence это новый инструмент, который позволяет легко переводить текстовые и визуальные запросы в изображения.
Он доступен в macOS 15.2 beta, iOS 18.2 beta и iPadOS 18.2 beta и расширяет творческие возможности не только для пользователей, но и для нас, разработчиков.
📖 С возможностями работы с Image Playground можно ознакомиться здесь.
😃 iOS Dev
8 000
Прокачиваем использование ScrollView: создание коллекций с вертикальной и горизонтальной прокруткой
📖 В этом материале рассказывается об особенностях использования ScrollView при внедрении пагинации, свойствах
containerRelativeFrame, работе с позицией прокрутки и анимациях.
🔗А вот тут в канале можно почитать про реализацию эффектов ScrollView.
😃 iOS Dev8 000
Как 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
8 000
Создание клона приложения Messages с помощью SwiftUI
📖 В статье автор делится своим подходом к вёрстке списка чатов, выборе аттачей и затрагивает особенности реализации баббла сообщений с помощью Path.
А посмотреть на реализацию эффекта отклеивания, как в нативном приложении, можно в этом посте.
😃 iOS Dev
8 000
Бесплатные курсы по мобильной разработке и аналитике для студентов
Узнайте про Python, мобильную разработку и анализ данных.
Просто подайте заявку на сайте Т-Образования.
Преподаватели-эксперты поделятся с вами актуальными знаниями, которые пригодятся для карьеры в ИТ.
🔗 Выберите курс и проходите его в удобном темпе
8 000
Растягивание аудиофайла до нужной длины в Swift
Такая фича может быть полезной для устранения проблем синхронизации (например, при переводе исходного файла и генерации субтитров).
📖 Том Локхорст и Матейс Кадейк рассказывают, почему комбинации AVMutableComposition и AVAudioUnitTimePitch недостаточно. И описывают способ с дублированием конкретных фрагментов аудио в рассчитанных точках.
В рамках хакатона от RevenueCat я делал небольшую утилиту для генерации сабов, поэтому данный подход может оказаться весьма полезным. Да и для пополнения пула знаний решение довольно любопытное.
🛠 Код примера доступен на GitHub.
😃 iOS Dev
8 000
Создание кастомного Segmented Control в SwiftUI
Хотя многие примеры модификатора
matchedGeometryEffect() посвящены анимации, он может применяться и в других контекстах, например для создания своих контролов.
📖 Наталья Панферова в своем блоге рассказывает о простом способе использования этого модификатора для создания собственного компонента со слайд-анимацией.
😃 iOS Dev8 000
Полезные советы для Advent of Code на Swift
Каждый декабрь Эрик Вастл публикует Advent of Code — увлекательный набор заданий по написанию алгоритмов.
Каждый день с 1 по 25 декабря публикуется по одной задаче.
Задачи появляются постепенно, начиная с самых простых и постепенно усложняются.
🔗 Здесь есть несложная инструкция, как присоединиться к Swift-лидерборду.
А на скриншоте несколько советов, как упростить решение задач, используя Swift Algorithms.
😃 iOS Dev
8 000
Новогодняя анимация на SwiftUI+AppKit
Интересное решение придумал разработчик, чтобы добавить немного атмосферы в последний месяц этого года.
🤩 Оказывается, что такой эффект можно создать для мака, что и доказывает Simon B. Støvring.
Интересно, кто-то из читателей нашего канала сможет повторить такой эффект?
😃 iOS Dev
8 000
Реализация поисковых подсказок в SwiftUI
🔎 Модификатор
searchSuggestions(_:) - это полезная фича, которая улучшает работу поиска в приложениях для iOS.
В сочетании с отслеживанием истории поиска можно создать интуитивно понятный интерфейс, который поможет пользователям быстро найти то, что они ищут (и легко вернуться к ранее просмотренным элементам).
📖 В этом материале рассказано, как внедрить такую фичу в своё приложение поэтапно:
1️⃣ Реализация фильтрации поиска в режиме реального времени.
2️⃣ Внедрение подсказок.
3️⃣ Отслеживание истории поиска.
4️⃣ Создание удобной навигации.
😃 iOS Dev8 000
Пример интеграции Natural Language: анализ текста и генерация градиента на основе результата
ℹ️ Natural Language — это фреймворк, предоставляющий набор инструментов для анализа и обработки текста.
Его можно использовать, например, для определения языка, поиска сходства между фрагментами и т. д.
📖 В своей статье Артем Новичков рассматривает особенности использования фреймворка, приводит примеры и показывает возможное применение с использованием MeshGradient (в канале есть несколько разборов).
🛠 Код примера доступен на GitHub.
😃 iOS Dev
8 000
Оптимизация процесса компиляции и выполнения тестов в Xcode
⏳ Компиляция проектов Xcode может занимать много времени (особенно после очистки кэша).
При этом время компиляции обычно растет динамически вместе с увеличением проекта, а скорость сборок часто повышается только за счёт обновления аппаратного обеспечения, что само по себе крайне дорогостоящий процесс.
На протяжении многих лет в Tuist вкладывали средства в решение этой проблемы, используя наиболее оригинальный и экономически эффективный подход с помощью фич Xcode.
📖 В этой статье разработчики из Tuist объясняют, что именно может замедлять скорость сборки проектов, какие шаги можно предпринять и почему превьюхи в SwiftUI могут отвалиться из-за проблем билд-системы самого Xcode.
😃 iOS Dev
8 000
Подборка экспериментальных анимаций на SwiftUI с кодом
😎 Майкл Ли - дизайнер, который любит делать прототипы с необычными подходами.
Недавно он заопенсорсил всю коллекцию (и обещает продолжать её наполнять).
🛠 Ознакомиться с примерами можно на Github.
😃 iOS Dev
8 000
Об анатомии крэшей на iOS «по-взрослому»
Давид Чупреев из команды Core iOS ОК на хабре постарался раскрыть тему крашей, и в фундаментальной статье описал, откуда они берутся и, что самое главное, как с ними взаимодействовать.
📖 В этом материале затрагиваются не только технические азы, но и структура краш-репорта, виды исключений, а также принцип работы PLCrashReporter.
🔗 А в нашем канале недавно был ещё один разбор «9 уровней зла» от падения фрейм-рейта до компрометации системы в целом.
😃 iOS Dev
Вже доступно! Дослідження Telegram за 2025 — головні інсайти року 
