en
Feedback
iOS Dev

iOS Dev

Open in Telegram

👨‍💻Автор: Виктор Грушевский (@Viktorianec) ⚒️ База: https://boosty.to/ios_dev | 🤖 @iOSIQBot | https://iosiq.ru 🍏Канал об iOS-разработке, алгоритмах и архитектурах ⭐️ Подготовка к собесам ⭐️ Код. Много кода. #ios #mobile #swift

Show more
7 880
Subscribers
-224 hours
-17 days
-5230 days
Posts Archive
iOS Dev
7 880
Бесплатные курсы по мобильной разработке и аналитике для студентов Узнайте про Python, мобильную разработку и анализ данных.
Бесплатные курсы по мобильной разработке и аналитике для студентов Узнайте про Python, мобильную разработку и анализ данных. Просто подайте заявку на сайте Т-Образования. Преподаватели-эксперты поделятся с вами актуальными знаниями, которые пригодятся для карьеры в ИТ. 🔗 Выберите курс и проходите его в удобном темпе

iOS Dev
7 880
Растягивание аудиофайла до нужной длины в Swift Такая фича может быть полезной для устранения проблем синхронизации (например
Растягивание аудиофайла до нужной длины в Swift Такая фича может быть полезной для устранения проблем синхронизации (например, при переводе исходного файла и генерации субтитров). 📖 Том Локхорст и Матейс Кадейк рассказывают, почему комбинации AVMutableComposition и AVAudioUnitTimePitch недостаточно. И описывают способ с дублированием конкретных фрагментов аудио в рассчитанных точках. В рамках хакатона от RevenueCat я делал небольшую утилиту для генерации сабов, поэтому данный подход может оказаться весьма полезным. Да и для пополнения пула знаний решение довольно любопытное. 🛠 Код примера доступен на GitHub. 😃 iOS Dev

iOS Dev
7 880
Создание кастомного Segmented Control в SwiftUI Хотя многие примеры модификатора matchedGeometryEffect() посвящены анимации, он может применяться и в других контекстах, например для создания своих контролов. 📖 Наталья Панферова в своем блоге рассказывает о простом способе использования этого модификатора для создания собственного компонента со слайд-анимацией. 😃 iOS Dev

iOS Dev
7 880
Полезные советы для Advent of Code на Swift Каждый декабрь Эрик Вастл публикует Advent of Code — увлекательный набор заданий
Полезные советы для Advent of Code на Swift Каждый декабрь Эрик Вастл публикует Advent of Code — увлекательный набор заданий по написанию алгоритмов. Каждый день с 1 по 25 декабря публикуется по одной задаче. Задачи появляются постепенно, начиная с самых простых и постепенно усложняются. 🔗 Здесь есть несложная инструкция, как присоединиться к Swift-лидерборду. А на скриншоте несколько советов, как упростить решение задач, используя Swift Algorithms. 😃 iOS Dev

iOS Dev
7 880
Новогодняя анимация на SwiftUI+AppKit Интересное решение придумал разработчик, чтобы добавить немного атмосферы в последний месяц этого года. 🤩 Оказывается, что такой эффект можно создать для мака, что и доказывает Simon B. Støvring. Интересно, кто-то из читателей нашего канала сможет повторить такой эффект? 😃 iOS Dev

iOS Dev
7 880
Реализация поисковых подсказок в SwiftUI 🔎 Модификатор searchSuggestions(_:) - это полезная фича, которая улучшает работу поиска в приложениях для iOS. В сочетании с отслеживанием истории поиска можно создать интуитивно понятный интерфейс, который поможет пользователям быстро найти то, что они ищут (и легко вернуться к ранее просмотренным элементам). 📖 В этом материале рассказано, как внедрить такую фичу в своё приложение поэтапно: 1️⃣ Реализация фильтрации поиска в режиме реального времени. 2️⃣ Внедрение подсказок. 3️⃣ Отслеживание истории поиска. 4️⃣ Создание удобной навигации. 😃 iOS Dev

iOS Dev
7 880
Пример интеграции Natural Language: анализ текста и генерация градиента на основе результата ℹ️ Natural Language — это фреймворк, предоставляющий набор инструментов для анализа и обработки текста. Его можно использовать, например, для определения языка, поиска сходства между фрагментами и т. д. 📖 В своей статье Артем Новичков рассматривает особенности использования фреймворка, приводит примеры и показывает возможное применение с использованием MeshGradient (в канале есть несколько разборов). 🛠 Код примера доступен на GitHub. 😃 iOS Dev

iOS Dev
7 880
Оптимизация процесса компиляции и выполнения тестов в Xcode ⏳ Компиляция проектов Xcode может занимать много времени (особенн
Оптимизация процесса компиляции и выполнения тестов в Xcode ⏳ Компиляция проектов Xcode может занимать много времени (особенно после очистки кэша). При этом время компиляции обычно растет динамически вместе с увеличением проекта, а скорость сборок часто повышается только за счёт обновления аппаратного обеспечения, что само по себе крайне дорогостоящий процесс. На протяжении многих лет в Tuist вкладывали средства в решение этой проблемы, используя наиболее оригинальный и экономически эффективный подход с помощью фич Xcode. 📖 В этой статье разработчики из Tuist объясняют, что именно может замедлять скорость сборки проектов, какие шаги можно предпринять и почему превьюхи в SwiftUI могут отвалиться из-за проблем билд-системы самого Xcode. 😃 iOS Dev

iOS Dev
7 880
Подборка экспериментальных анимаций на SwiftUI с кодом 😎 Майкл Ли - дизайнер, который любит делать прототипы с необычными подходами. Недавно он заопенсорсил всю коллекцию (и обещает продолжать её наполнять). 🛠 Ознакомиться с примерами можно на Github. 😃 iOS Dev

iOS Dev
7 880
Об анатомии крэшей на iOS «по-взрослому» Давид Чупреев из команды Core iOS ОК на хабре постарался раскрыть тему крашей, и в ф
Об анатомии крэшей на iOS «по-взрослому» Давид Чупреев из команды Core iOS ОК на хабре постарался раскрыть тему крашей, и в фундаментальной статье описал, откуда они берутся и, что самое главное, как с ними взаимодействовать. 📖 В этом материале затрагиваются не только технические азы, но и структура краш-репорта, виды исключений, а также принцип работы PLCrashReporter. 🔗 А в нашем канале недавно был ещё один разбор «9 уровней зла» от падения фрейм-рейта до компрометации системы в целом. 😃 iOS Dev

iOS Dev
7 880
Black Friday для iOS Dev 🎆 Нашёл замечательный ресурс на Github со всеми скидками для разработчиков (тут есть и Proxyman, и
Black Friday для iOS Dev 🎆 Нашёл замечательный ресурс на Github со всеми скидками для разработчиков (тут есть и Proxyman, и RocketSlim, и многое другое). Целых 5 000 звёзд. И дополню своими (кстати, сегодня выложил решения сложных задач с CodeRun, одна из них с любопытным подходом): 💰 -30% на бусти (работает для старых, актуальных и новых подписчиков) на всю неделю. ⭐️ -30% в телеграм. Вот, что вас там ждёт:
Подготовка к собеседованиям: - Мок-собесы с публичным доступом (сейчас несколько десятков на русском и английском языках). - Вопросы для подготовки по секциям (сотни примеров на разные темы) - Частные узкие темы (с поиском проблем в коде). - System Design. Мои советы и большая подборка материалов. Алгоритмы: - Сложность алгоритмов. - Разбор десятков задач с контестов (в том числе и от яндекса). - Популярные методы решения задач (с примерами). Архитектуры: - Все паттерны проектирования банды четырёх. Общая информация и примеры реализации на Swift. - Архитектурные заблуждения. - Реализация в реальных приложениях. Необычные эффекты: В этом разделе я делюсь анимациями, подходами к созданию и десятками примеров. Инструментарий. Полезные советы при работе с Xcode, терминалом и симулятором.
📱Скидка на ReviewBuddy (больше о приложении) 📱Приложение iOS IQ - бесплатно (так будет всегда).

iOS Dev
7 880
Интеграция Live Activity и Dynamic Island в iOS: подробное руководство 📖 В масштабной статье описаны этапы, позволяющие, эфф
Интеграция Live Activity и Dynamic Island в iOS: подробное руководство 📖 В масштабной статье описаны этапы, позволяющие, эффективно интегрировать Live Activities и Dynamic Island в приложение для iOS. Плюс в том, что рассмотрен каждый шаг: от ограничений дизайна до обработки обновлений. 📺 Также материал доступен и в формате видео. 😃 iOS Dev

iOS Dev
7 880
Есть ли место творчеству в разработке? Многие романтизируют нашу профессию, но так ли это на самом деле, большой вопрос. В некоторых рекламах показывают программистов, которые пьют чашку кофе, за окном льёт дождь, а яблочко на ноутбуке (прошли времена) светится и озаряет надеждой на светлое будущее. В реальности же всё немного иначе. Чаще всего разработка — это совокупность многих ограничений: ТЗ, дизайн, жёсткая архитектура, процесс код-ревью и тестирование — повторить несколько раз. В зависимости от уровня компании между каждым этапом могут быть свои прослойки, в том числе согласования, многократные изменения и смещения приоритетов. Когда-то давным-давно я запомнил важную истину: код, который вы пишете на работе, вам не принадлежит. Казалось бы, банальная фраза, но она сильно меняет мировоззрение. Наша задача — в первую очередь закрывать потребности бизнеса и получать за это справедливое вознаграждение. В мифическом человеко-месяце Брукса есть глава, посвященная радостям ремесла. Я не помню детали, так как читал её в университете, но суть в том, что программисты радуются самому процессу разработки и решению сложных, запутанных вещей. Выброс дофамина, который мы получаем, когда сложные вещи наконец компилятся, бустит общее состояние, а возможность делать вещи, полезные остальным, выступает путеводной звездой. На мой взгляд, выгорание человека как специалиста происходит в первую очередь от отсутствия понимания, что именно нужно сделать. И от монотонности одного и того же, что справедливо не только для программирования. Поэтому в сфере, когда вы решаете новые задачи, расширяя функциональность, гибкость мышления будет только развиваться. Я общался со многими людьми, которые менторят людей (а ещё ведут блоги о разработке, но не программируют сами, что интересно), видел множество ребят, которые разочаровывались в программировании спустя два месяца после попадания в профессию, и видел выгоревших профессионалов с десятилетним опытом по причинам, озвученным в абзаце выше. Несмотря на это, количество людей, которые стремятся попасть внутрь магического IT все также высоко. Приведу пример, за последние несколько месяцев я общался со своими коллегами из топовых компаний, и по нашим суммарным внутренним метрикам количество продолжает расти, в начале года на одну вакансию в среднем было 12 отзывов, сейчас около 40 (это уже после того, как HR делятся резюме кандидатов), об этом нужно помнить. Творческая ли наша профессия? Если вы умеете находить радость в условиях жёстких ограничений и кайфуете от того, что вашим продуктом будут пользоваться тысячи людей, безусловно. Если вы готовы постоянно учиться, следить за новыми технологиями и у вас в компании можно юзать новые фреймворки, а не поддерживать 12 ось, то да. Если вы не боитесь сложных вызовов, когда на Stackoverflow отсутствуют ответы, а ChatGPT ещё не обучился, конечно. Но когда вы в очередной раз столкнётесь с багом, который не воспроизводится или ваше приложение зареджектят потому что луна опять не в той фазе, или же проект надо будет перевести на Swift 7 спустя несколько лет, а для этого надо будет обновить треть кодовой базы — перечитайте этот пост. 😃 iOS Dev

iOS Dev
7 880
Подробное объяснение работы с Environment в SwiftUI Автор статьи считает, что SwiftUI буквально произвёл революцию в разработ
Подробное объяснение работы с Environment в SwiftUI Автор статьи считает, что SwiftUI буквально произвёл революцию в разработке приложений благодаря декларативному синтаксису и реактивной обработке данных, тем самым упростив создание динамичных и отзывчивых пользовательских интерфейсов. В основе фреймворка лежит обертка свойств @Environment (и связанные с этим инструменты). 📖 В статье подробно описаны различные механизмы от классических протоколов @EnvironmentObject и ObservableObject до относительно новых макросов @Observable и @Bindable. А ещё уделено внимание производительности и сложным иерархиям вью в приложении. 😃 iOS Dev

iOS Dev
7 880
TextEditor в SwiftUI: возможности, ограничения и советы Работа с текстом — пожалуй, одна из самых частых и важных задач в наш
TextEditor в SwiftUI: возможности, ограничения и советы Работа с текстом — пожалуй, одна из самых частых и важных задач в нашей разработке. В проектах, например, может быть поле для комментариев, создание заметок или даже полноценный редактор. В SwiftUI есть возможность использования TextEditor. И пусть он не такой мощный, как UITextView, его вполне достаточно для большинства случаев использования. 📖 В этом материале разбираются не только примеры использования (например, как сделать свою функцию find/replace), но и приводится простой пример реализации. 😃 iOS Dev

iOS Dev
7 880
Эффект переливающегося стикера на Metal+Swift Крутые анимации всегда сложны, а довести задуманное до конца уже неплохо. 🤩 Нашел блестящую (в прямом и переносном смыслах) реализацию фойл-эффекта. Кстати, автор пишет, что пытался повторить то, что можно встретить в самых разных карточках, например, в покемонах. Использовано сразу несколько шейдеров и модификаций внутри. 📖 Бонусом идёт репозиторий с кодом (из коробки доступно для настройки несколько параметров). ✅А здесь ещё больше сложных анимаций и эффектов. 😃 iOS Dev

iOS Dev
7 880
Обнаружение лиц на изображениях с помощью фреймворка Vision Распознавание лиц может оказаться полезным инструментом для многи
Обнаружение лиц на изображениях с помощью фреймворка Vision Распознавание лиц может оказаться полезным инструментом для многих приложений. Например в системном «Фото» от Apple это используется для организации специальной коллекции. В 18 оси для разработчиков появилась возможность использовать новый запрос FaceObservation, который упрощает работу с такими задачами. 📖 Доступное объяснение и пример использования есть в этой статье. 😃 iOS Dev

iOS Dev
7 880
Большое обновление App Store Connect — версия 2.0 🎉 Apple обновили приложение (надеюсь, теперь не будет постоянного дропа се
Большое обновление App Store Connect — версия 2.0 🎉 Apple обновили приложение (надеюсь, теперь не будет постоянного дропа сессий, как раньше), можно подписаться на уведомления о фичеринге и не только. А ещё появился целый раздел, в котором можно напрямую номинировать своё приложение на фичеринг (среди типов добавление контента, улучшение функциональности или в целом запуск). 📖 Узнать больше о номинациях и новых доступных ресурсах можно здесь. 😃 iOS Dev

iOS Dev
7 880
Что такое краш в iOS: детальный разбор Конечно, факт того, что краш - это завершение работы приложения, является очевидным. Д
Что такое краш в iOS: детальный разбор Конечно, факт того, что краш - это завершение работы приложения, является очевидным. Джейкоб Бартлетт рассматривает природу сбоев с другого угла, ведь на самом деле система вызывает краш, чтобы сохранить устройство в безопасности. 📖 Делюсь отличной статьёй, в которой сложная тема рассмотрена с юмором (и даже приведены 9 уровней зла от падения фрейм-рейта до компрометации системы в целом). Рассмотрены сбои не только в рантайме, но и в ядре XNU, а ещё указано, почему краши - далеко не самое худшее, что может произойти с девайсом. 😃 iOS Dev

iOS Dev
7 880
Вакансия iOS-разработчика в VK Видео VK ищут сотрудника в команду, которая создаёт продукты в области обработки и передачи ви
Вакансия iOS-разработчика в VK Видео VK ищут сотрудника в команду, которая создаёт продукты в области обработки и передачи видео, алгоритмы машинного обучения и компьютерного зрения, а также видео-конференц-связь для пользователей компании. Задачи, которые нужно будет решать: 🔘Разработка приложения ВКонтакте и VK Видео для iOS и tvOS. 🔘Создание важных инструментов: загрузчик и редактор видео. 🔘Участие во всех этапах разработки — от проектирования до запуска. Что ждут от кандидата: 🔘Отличное знание Swift и платформы iOS в целом, уровня middle+ и выше. 🔘Опыт работы с Objective-C или готовность его изучить. 🔘Знание классических алгоритмов и структур данных. 🔗 Откликнуться можно здесь.