iOS Dev
7.55K subscribers
952 photos
69 videos
1 file
1.08K links
🍏Канал об iOS-разработке, необычных подходах и решениях.
👨‍💻Автор: Виктор Грушевский (@Viktorianec)
Темы:
⭐️ Подготовка к собеседованиям.
⭐️ Архитектуры и алгоритмы.
⭐️ Код. Много кода.

⚒️База знаний: https://boosty.to/ios_dev

#ios #mobile #swift
加入频道
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
Реализация кликабельных ссылок в SwiftUI

Благодаря Markdown в SwiftUI довольно легко можно реализовать такую возможность.

Кроме этого, можно юзать не только глобальный стиль, но и задать собственный для каждой из ссылок.

📖 В этой статье описаны необходимые шаги, а здесь доступно опенсорсное решение.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
UICollectionView — кастомизация, лучшие практики и необычные советы

UICollectionView по праву мощнейший инструмент для верстки, который используют 99.99% приложений.

👨‍💻 Я решил поделиться набором советов и практик в iOS IQ, среди которых, например, способы создания кастомных заголовков, перетаскивание ячеек, кастомные лэйауты и многое, многое другое.

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

Безусловно, как и остальные секции, раздел будет постоянно пополняться.

💰 Получить доступ можно тут и ⭐️ тут.
Please open Telegram to view this post
VIEW IN TELEGRAM
Полезные инструменты

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

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

ℹ️ Например, на мобиусе несколько назад был рад послушать в офлайне замечательный доклад Евгения Ртищева об эффективной работе с сетью (если кто-то не видел, посмотрите обязательно).

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

Поэтому делюсь полезным опросом от Максима Гришутина на счёт самых используемых фреймворков, связанных с iOS-разработкой:

🔗Пройти опрос можно здесь.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Коллекция анимаций для iOS-приложений

🎆 Делюсь очередной находкой, интересным сайтом, на котором собраны лучшие анимации в приложениях Apple и не только.

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

🔗 Уже сейчас собрано около 1000 анимаций, которые могут вдохновить вас на создание своих собственных.

Кстати, вот тут вы можете найти реализацию некоторых эффектов (в том числе и на Metal).

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM
Подборка топовых докладов с NSSpain 2024

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

📺 Реализация плавной прокрутки в Threads*.
Несмотря на то, что iPhone и iPad продолжают становиться все мощнее и мощнее, поддерживать плавность прокрутки приложений как никогда важно. Кстати, вот тут доступна первая версия доклада.

📺 Как создать лучший Pull Request
Написать хороший код - это только половина дела.

📺 Вы действительно знаете Swift?
В этом докладе автор рассказывает о некоторых API, которые мы используем каждый день, чтобы понять, что происходит на самом деле, и обещает показать несколько трюков, которых вы раньше не видели.

📺 Тестируйте свои приложения!
Krzysztof Zablocki делится информацией, как тестирование может сделать вас более эффективным и каковы лучшие практики для поддерживаемых тестов!

🔗 Целиком плейлист конференции доступен по этой ссылке.

Другие интересные подборки докладов:

🔗 Подборка докладов с iOS Conf SG 2024
🔗 Подборка докладов с конференции Swift Craft
🔗 Доклады с конференции try! Swift Tokyo 2024
🔗 Подборка докладов с конференции Swift Connection 2024

*Threads и Instagram принадлежит компании Meta, признанной экстремистской и запрещенной в России.

😃 iOS Dev
Please open Telegram to view this post
VIEW IN TELEGRAM