es
Feedback
iOS Dev

iOS Dev

Ir al canal en Telegram

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

Mostrar más
8 000
Suscriptores
-124 horas
+467 días
+7930 días
Archivo de publicaciones
iOS Dev
8 001
Параллельное выполнение задач в Swift: подход старой школы vs структурированный параллелизм Возможность запускать задачи пара
Параллельное выполнение задач в Swift: подход старой школы vs структурированный параллелизм Возможность запускать задачи параллельно — это хорошо, ведь это ускорит работу, если вы можете использовать несколько ядер процессора, но как мы можем реализовать такие операции в Swift? 🤔 Представьте, что у вас есть изображение шириной 50 000 пикселей и длиной 20 000 пикселей, то есть ровно один миллиард пикселей. Как бы вы изменили цвет каждого пикселя? Какой способ вы бы использовали? 📖 Tibor Bödecs на примерах объясняет, как управлять параллельными операциями, используя несколько подходов, в том числе и с использованием Task Group. @iOS Dev

iOS Dev
8 001

iOS Dev
8 001

iOS Dev
8 001

iOS Dev
8 001
Detached tasks в Swift: определение и примеры коды Detached tasks (отсоединенные задачи) позволяют создать новую задачу верхн
Detached tasks в Swift: определение и примеры коды Detached tasks (отсоединенные задачи) позволяют создать новую задачу верхнего уровня и отключиться от текущего структурированного контекста параллелизма. Хотя отключение от структурированного параллелизма звучит ужасно, все же есть примеры использования, в которых вы можете извлечь выгоду. Тем не менее, важно знать о последствиях, чтобы убедиться, что вы знаете, что делаете. 📖 В этом материале вы узнаете: 1️⃣ Что представляет из себя detached task? 2️⃣ Какие риски существуют при использовании таких задач. 3️⃣ Когда использовать detached tasks? @iOS Dev

iOS Dev
8 001
Weekend offer от VK для мобильных разработчиков и ML-специалистов Команды Дзена, Почты Mail.ru, Антиспама и Маруси приглашают
Weekend offer от VK для мобильных разработчиков и ML-специалистов Команды Дзена, Почты Mail.ru, Антиспама и Маруси приглашают разработчиков пообщаться с командами и получить шанс попасть в одну из них за пару дней: достаточно оставить отклик, и с вами свяжутся. Уже 18 и 19 февраля состоятся встречи с тимлидами, которые расскажут про процессы и задачи, которые предстоит решать, и ответят на все вопросы. Также состоятся интервью и финальные собеседования с кандидатами. Уже вечером 19 февраля определят лучших и отправят им оффер. Успевайте оставить отклик до 16 февраля! @iOS Dev

iOS Dev
8 001
Эволюция архитектуры приложения *Facebook для iOS *Facebook для iOS (FBiOS) — старейшая мобильная кодовая база в *Meta. С тех
Эволюция архитектуры приложения *Facebook для iOS *Facebook для iOS (FBiOS) — старейшая мобильная кодовая база в *Meta. С тех пор как приложение было переписано в 2012 году, над ним работали тысячи инженеров, оно было отправлено миллиардам пользователей и оно может поддерживать работу сотен инженеров одновременно. После многих лет итерации кодовая база не похожа на типичную кодовую базу iOS: 🔘 Там полно C++, Objective-C(++) и Swift. 🔘 Она имеет десятки динамически загружаемых библиотек (dylib) и так много классов, что их невозможно загрузить в Xcode сразу. 🔘 Apple SDK практически не используется в чистом виде — все было обернуто или заменено собственной абстракцией. 🔘 В приложении активно используется генерация кода с помощью Buck (кастомной системы сборки). 🔘 Без интенсивного кэширования нашей системы сборки инженерам пришлось бы провести целый рабочий день в ожидании сборки приложения. 📖 Чтобы отпраздновать 10-летний юбилей кодовой базы, разработчики рассказали о технических решениях, лежащих в основе этой эволюции, а также об их историческом контексте. *Facebook и Instagram продукты компании Meta, которая признана в России экстремистской организацией, деятельность ее сервисов Facebook и Instagram в стране запрещена. @iOS Dev

iOS Dev
8 001
Создание iOS-приложения в стиле Trello с помощью Drag & Drop API Drag & Drop — это взаимодействие с пользователем, с помощью
Создание iOS-приложения в стиле Trello с помощью Drag & Drop API Drag & Drop — это взаимодействие с пользователем, с помощью которого можно перемещать данные по экрану. Эта фича активно используется такими приложениями, как Trello, Jira и многими другими для перемещения элементов между досками. 📖 В этом примере используется API перетаскивания для создания приложения, похожего на Trello, с несколькими основными функциями: 1️⃣ Создание доски. 2️⃣ Добавление элементов на доску. 3️⃣ Перемещение элементов между досками с помощью перетаскивания. 🛠 Пример итогового приложения доступен на Github. @iOS Dev

iOS Dev
8 001

iOS Dev
8 001

iOS Dev
8 001
JUG Ru Group приглашает мобильных разработчиков выступить на конференции Mobius 2023 Spring! Конференция будет идти четыре дн
JUG Ru Group приглашает мобильных разработчиков выступить на конференции Mobius 2023 Spring! Конференция будет идти четыре дня: 12–13 мая в онлайне и 19–20 мая в офлайне в Москве. Приглашаем вас выступить на ней. Стать спикером Mobius — это возможность: 👉 Развить личный бренд и улучшить навык публичных выступлений. 👉 Обсудить рабочие задачи в неформальной обстановке.   👉 Попасть на все конференции весны от JUG Ru Group бесплатно. 👉 Пообщаться с комьюнити и Программным комитетом. Выбирайте любой формат — доклад, воркшоп, дискуссию или что-то свое. Вам помогут подготовиться, проведут репетиции, а после конференции вы получите запись в 4K на YouTube, чтобы поделиться ей с друзьями и коллегами. Выбирайте тему на сайте или предлагайте свои идеи и подавайте заявку до 20 февраля. Билеты на Mobius 2023 Spring уже в продаже.

iOS Dev
8 001
Как отменить фоновую задачу в Swift при использовании async/await Синтаксис async/await, представленный в Swift 5.5, позволяе
Как отменить фоновую задачу в Swift при использовании async/await Синтаксис async/await, представленный в Swift 5.5, позволяет писать асинхронный код в удобочитаемом виде. Асинхронное программирование может повысить производительность приложения, но важно иметь возможность отменять неиспользуемые таски, чтобы они не вмешивались в работу приложения. 📖 В этой статье показано, как явно отменить задачу, и показано, как при этом автоматически отменяются дочерние задачи. Кроме этого, будет полезно перед этим прочесть и этот материал: 🌐 Пример работы с async let для параллельного выполнения фоновых задач в Swift @iOS Dev

iOS Dev
8 001
Даже в сложных системах, и даже у Apple встречаются проблемы Например, приложение часов macOS обновляет свой пользовательский интерфейс с помощью таймеров, и эти таймеры добавляются только в defaultRunLoopMode, в результате чего пользовательский интерфейс перестает обновляться (попросту фризятся часы) при открытии и отслеживании меню. А вот если бы они прочитали этот пост в нашем канале, то такой проблемы бы не было: Полное руководство по использованию таймеров в Swift @iOS Dev — на самом деле работа со временем может быть куда труднее

iOS Dev
8 001
Поиск эффективного алгоритма для определения среднего цвета изображения Поиск среднего цвета изображения — хороший трюк, кото
Поиск эффективного алгоритма для определения среднего цвета изображения Поиск среднего цвета изображения — хороший трюк, который можно иметь в своем наборе инструментов для оживления ваших экранов. Например, в iOS он используется Apple для создания своих красивых виджетов на хоумскрине. Существует множество статей о том, как это сделать на iOS, но весь код, например, используя Core Image. 📖 Но, как рассказывает автор в этом материале, здесь могут быть свои подводные камни, и описывает ещё два подхода, которые можно использовать. @iOS Dev

iOS Dev
8 001
Пример создания нативного приложения с использованием реализации Core ML Stable Diffusion от Apple В декабре в Apple представ
Пример создания нативного приложения с использованием реализации Core ML Stable Diffusion от Apple В декабре в Apple представили оптимизацию Core ML для Stable Diffusion в macOS 13.1 и iOS 16.2, а также код для начала развертывания на устройствах Apple Silicon. Существует ряд причин, по которым развертывание Stable Diffusion на устройстве в приложении предпочтительнее серверного подхода. 1️⃣ Во-первых, конфиденциальность конечного пользователя защищена, поскольку любые данные, предоставленные пользователем в качестве входных данных для модели, остаются на устройстве пользователя. 2️⃣ Во-вторых, после первоначальной загрузки пользователям не требуется подключение к Интернету для использования модели. 3️⃣ Наконец, локальное развертывание этой модели позволяет разработчикам сократить или полностью исключить свои расходы, связанные с сервером. 🔗 В этом репозитории содержатся подробные инструкции по тестированию и развертыванию. 🔗 Пример реализации в нативном приложении на Swift. Внимание, по очевидным причинам требования к совместимости довольно существенные: 🔘 macOS Ventura 13.1, iOS/iPadOS 16.2, Xcode 14.2. 🔘 Время работы: ~8s in macOS on MacBook Pro M1 Max (64 GB). Model: Stable Diffusion v2-base, ORIGINAL attention implementation, CPU + GPU. 23 ~ 30s on iPhone 13 Pro. Model: Stable Diffusion v2-base, SPLIT_EINSUM attention, CPU + Neural Engine, memory reduction enabled. @iOS Dev

iOS Dev
8 001
Передача данных в iOS: delegates, notifications, closures Несомненно, это обязательные знания для каждого разработчика, незав
Передача данных в iOS: delegates, notifications, closures Несомненно, это обязательные знания для каждого разработчика, независимо от того, является ли он новичком. Знание доступных инструментов и методов, того, что работает лучше всего, где и когда, имеет решающее значение для правильного процесса разработки. В конце концов, возможность отправлять сообщения и данные туда и обратно между классами — это одна из первых вещей, о которых должен узнать разработчик. В этой статье рассматриваются следующие способы для обмена данными внутри приложения: 1️⃣ Паттерн delegate (о нём можно прочитать ещё и здесь). 2️⃣ Notifications (они же уведомления). 3️⃣ Closures & action handlers. 🛠 Код доступен по ссылке на Github. Кстати, если вы хотите узнать о способах обмен данными между приложениями, то рекомендую посмотреть вот тут. @iOS Dev

iOS Dev
8 001
Хотите попробовать себя в iOS-разработке, но сложно оставаться с учёбой один на один? На курсе в Яндекс Практикуме вас поддержит целая команда сопровождения. 1. Наставники — действующие мобильные разработчики — проведут Q&A-сессии по сложным темам, сеансы кодинга в прямом эфире и расскажут реальные истории из жизни разработчиков.. 2. Ревьюеры — опытные iOS-разработчики — проверят проекты и подскажут, как сделать их лучше. 3. Кураторы и команда поддержки помогут учиться регулярно и не сбиться с пути. Если вы никогда не пробовали писать код, освоить базовые принципы программирования поможет двухнедельный курс «Бассейн». А в сообществе студентов Практикума можно будет поделиться трудностями и получить совет. Познакомьтесь с языком Swift и напишите своё первое приложение бесплатно →

iOS Dev
8 001
Итерация сообщений веб-сокетов с помощью async / await в Swift В iOS 13 мы получили возможность легко отправлять и получать д
Итерация сообщений веб-сокетов с помощью async / await в Swift В iOS 13 мы получили возможность легко отправлять и получать данные с помощью веб-сокетов через URLSession. С помощью async/await появилась возможность получать данные с серверов, используя ключевое слово await. 📖 В этом материале объясняется, как создать собственный механизм для удобного асинхронного перебора сообщений при использовании веб-сокетов, особое внимание уделяется URLSessionWebSocketTask и AsyncThrowingStream. @iOS Dev

iOS Dev
8 001
Топ-5 репозиториев, которые набрали больше всего звёзд ⭐️ на GitHub за 2022 год: - Алгоритмы на Swift от Apple. - Приложение
Топ-5 репозиториев, которые набрали больше всего звёзд ⭐️ на GitHub за 2022 год: - Алгоритмы на Swift от Apple. - Приложение на SwiftUI с общим кодом для Mac, iPad и iPhone. Тоже от Apple. - DivKit рисует интерфейс с сервера. Проект Яндекса. - Настраиваемые spring-анимации. - Графики на Swift Charts. В нашем чате ежедневно приходит топ-репозиториев за день.

iOS Dev
8 001