Telegram Web Link
Please open Telegram to view this post
VIEW IN TELEGRAM
Об анатомии крэшей на iOS «по-взрослому»

Давид Чупреев из команды Core iOS ОК на хабре постарался раскрыть тему крашей, и в фундаментальной статье описал, откуда они берутся и, что самое главное, как с ними взаимодействовать.

📖 В этом материале затрагиваются не только технические азы, но и структура краш-репорта, виды исключений, а также принцип работы PLCrashReporter.

🔗 А в нашем канале недавно был ещё один разбор «9 уровней зла» от падения фрейм-рейта до компрометации системы в целом.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Подборка экспериментальных анимаций на SwiftUI с кодом

😎 Майкл Ли - дизайнер, который любит делать прототипы с необычными подходами.

Недавно он заопенсорсил всю коллекцию (и обещает продолжать её наполнять).

🛠 Ознакомиться с примерами можно на Github.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Оптимизация процесса компиляции и выполнения тестов в Xcode

Компиляция проектов Xcode может занимать много времени (особенно после очистки кэша).

При этом время компиляции обычно растет динамически вместе с увеличением проекта, а скорость сборок часто повышается только за счёт обновления аппаратного обеспечения, что само по себе крайне дорогостоящий процесс.

На протяжении многих лет в Tuist вкладывали средства в решение этой проблемы, используя наиболее оригинальный и экономически эффективный подход с помощью фич Xcode.

📖 В этой статье разработчики из Tuist объясняют, что именно может замедлять скорость сборки проектов, какие шаги можно предпринять и почему превьюхи в SwiftUI могут отвалиться из-за проблем билд-системы самого Xcode.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Пример интеграции Natural Language: анализ текста и генерация градиента на основе результата

ℹ️ Natural Language — это фреймворк, предоставляющий набор инструментов для анализа и обработки текста.

Его можно использовать, например, для определения языка, поиска сходства между фрагментами и т. д.

📖 В своей статье Артем Новичков рассматривает особенности использования фреймворка, приводит примеры и показывает возможное применение с использованием MeshGradient (в канале есть несколько разборов).

🛠 Код примера доступен на GitHub.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Реализация поисковых подсказок в SwiftUI

🔎 Модификатор searchSuggestions(_:) - это полезная фича, которая улучшает работу поиска в приложениях для iOS.

В сочетании с отслеживанием истории поиска можно создать интуитивно понятный интерфейс, который поможет пользователям быстро найти то, что они ищут (и легко вернуться к ранее просмотренным элементам).

📖 В этом материале рассказано, как внедрить такую фичу в своё приложение поэтапно:

1️⃣ Реализация фильтрации поиска в режиме реального времени.
2️⃣ Внедрение подсказок.
3️⃣ Отслеживание истории поиска.
4️⃣ Создание удобной навигации.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
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
Полезные советы для Advent of Code на Swift

Каждый декабрь Эрик Вастл публикует Advent of Code — увлекательный набор заданий по написанию алгоритмов.

Каждый день с 1 по 25 декабря публикуется по одной задаче.

Задачи появляются постепенно, начиная с самых простых и постепенно усложняются.

🔗 Здесь есть несложная инструкция, как присоединиться к Swift-лидерборду.

А на скриншоте несколько советов, как упростить решение задач, используя Swift Algorithms.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Создание кастомного Segmented Control в SwiftUI

Хотя многие примеры модификатора matchedGeometryEffect() посвящены анимации, он может применяться и в других контекстах, например для создания своих контролов.

📖 Наталья Панферова в своем блоге рассказывает о простом способе использования этого модификатора для создания собственного компонента со слайд-анимацией.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Растягивание аудиофайла до нужной длины в Swift

Такая фича может быть полезной для устранения проблем синхронизации (например, при переводе исходного файла и генерации субтитров).

📖 Том Локхорст и Матейс Кадейк рассказывают, почему комбинации AVMutableComposition и AVAudioUnitTimePitch недостаточно. И описывают способ с дублированием конкретных фрагментов аудио в рассчитанных точках.

В рамках хакатона от RevenueCat я делал небольшую утилиту для генерации сабов, поэтому данный подход может оказаться весьма полезным. Да и для пополнения пула знаний решение довольно любопытное.

🛠 Код примера доступен на GitHub.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Создание клона приложения Messages с помощью SwiftUI

📖
В статье автор делится своим подходом к вёрстке списка чатов, выборе аттачей и затрагивает особенности реализации баббла сообщений с помощью Path.

А посмотреть на реализацию эффекта отклеивания, как в нативном приложении, можно в этом посте.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Как 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
Please open Telegram to view this post
VIEW IN TELEGRAM
Прокачиваем использование ScrollView: создание коллекций с вертикальной и горизонтальной прокруткой

📖 В этом материале рассказывается об особенностях использования ScrollView при внедрении пагинации, свойствах containerRelativeFrame, работе с позицией прокрутки и анимациях.

🔗А вот тут в канале можно почитать про реализацию эффектов ScrollView.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
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
Please open Telegram to view this post
VIEW IN TELEGRAM
Создание экрана настроек в SwiftUI с помощью AppStorage

Несложный экран с опциональными фичами необходим буквально в каждом пет-проекте (или в каком-нибудь тестовом задании).

📖 В этой статье, особенно полезной новичкам, рассматривается создание такого экрана, а ещё автор напоминает, для чего нужно использовать suiteName.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Подборка докладов с конференции 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
Please open Telegram to view this post
VIEW IN TELEGRAM
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
Please open Telegram to view this post
VIEW IN TELEGRAM
SwiftUI Button: кастомные стили и лучшие практики

Для многих приложений необходимо создавать кастомные компоненты.

Это может быть обусловлено единообразием дизайна, и такие стили — отличный способ добиться желаемого.

Например, можно реализовать дополнительную анимацию масштабирования для улучшения индикации нажатого состояния.

📖 В этой статье разбираются разные подходы к созданию таких элементов для дальнейшего переиспользования.

Больше про подходы к кастомизации можно почитать в нашем канале:

🔗 Создание переиспользуемых компонентов в SwiftUI
🔗 Разбор кнопок SwiftUI: создание и возможности кастомизации
🔗 Настраиваемая кнопка с разными состояниями в SwiftUI

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Большое руководство для проверки пользовательских данных в SwiftUI

Валидация не должна быть слишком сложной, так как основная цель в том, чтобы сигнализировать пользователю о некорректности вводимой инфы.
Этого можно добиться, показывая сообщения об ошибках, подсвечивая поля или включая/отключая определенные действия.

ℹ️ Распространённый подход к реализации — создание кастомных компонентов, но и у этого варианта есть свои минусы.

📖 В этой статье рассмотрено несколько опций для проверки валидности данных и показано, как это можно покрыть тестами.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
2025/02/22 15:32:45
Back to Top
HTML Embed Code: