Обложка канала

iOS Dev. Страница 5

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

  • iOS Dev

    Параллельное выполнение задач в Swift: подход старой школы vs структурированный параллелизм Возможность запускать задачи параллельно — это хорошо, ведь это ускорит работу, если вы можете использовать несколько ядер процессора, но как мы можем реализовать такие операции в Swift? 🤔 Представьте, что у вас есть изображение шириной 50 000 пикселей и длиной 20 000 пикселей, то есть ровно один миллиард пикселей. Как бы вы изменили цвет каждого пикселя? Какой способ вы бы использовали? 📖 Tibor Bödecs на примерах объясняет, как управлять параллельными операциями, используя несколько подходов, в том числе и с использованием Task Group. @iOS Dev
  • iOS Dev

    Обновил приложение Starly (для управления отзывами в аппсторе) Прикрутил возможность обновления раздела «Что нового» с возможность перевода текста сразу на все нужные языки одной кнопкой. Для этого интегрировал сервис перевода от большой компании (спасибо телеграму за идею в его гитхаб-репозитории), а также прикрутил сервис поменьше (можно использовать бесплатные и премиумные ключи от DeepL, если они у вас есть). Обновление содержит ряд внутренних изменений, а также теперь оно доступно в сторе и на gumroad. 🤩 Принял решение сделать его полностью бесплатным (включая все остальные функции вроде ответов на отзывы в аппсторе, шаблонов ответов и шаринга лучших из них). Кому может быть полезно: инди-разработчикам (и некоторым компаниям), ценящим своё время и локализующим приложения больше, чем на один язык. 🌐 Доступно в App Store (mac-версия) и на gumroad. 🌐 Генерация ключей для работы приложения тут (нужен доступ администратора по требованиям доки эпла). 🌐 Если вы хотите сделать своё приложение, вот здесь находится SDK (⭐️1 100 на github). @iOS Dev
  • iOS Dev

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

  • iOS Dev

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

    Эволюция архитектуры приложения *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

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

    Сегментация изображения (и применение в реальном времени) при работе с фреймворком Vision Компьютерное зрение набирает всё большую популярность. Его использование включает обнаружение рака, классификацию клеток, анализ транспортных потоков, анализ спортивных событий в реальном времени и многое другое. Фреймворк Vision позволяет выполнять различные задачи, такие как отслеживание лица, обнаружение штрих-кода и регистрация изображений. В iOS 15 Apple представила API в фреймворке Vision для сегментации людей, который также поддерживает портретный режим. 📖 В этом материале есть ответы на следующие вопросы: 🔘 Что такое сегментация изображения и различные типы сегментации. 🔘 Как создать сегментацию человека для фото. 🔘 Понимание различных уровней качества и компромиссов производительности. 🔘 Создание сегментации людей для лайв-видео. 🔘 Лучшие практики для использования сегментации. 🤩 Кстати, ранее был пост о том, как определять контуры с помощью Vision. @iOS Dev
  • iOS Dev

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

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

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

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

    Пример создания нативного приложения с использованием реализации 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

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

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

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

  • iOS Dev

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

    Посмотрите, какие репозитории пользуются наибольшей популярностью у разработчиков Иван в своём канале собрал статистику по самым успешным репозиториям для iOS, и если алгоритмы на Swift ожидаемо в топ-5, то, например, активно продвигаемый фреймворк Wave для анимаций от Janum Trivedi набрал свои звёзды благодаря крутым примерам из твиттера (и не в последнюю очередь благодаря вашим отзывам после этого поста). 🤩 Кстати, недавно Apple обновили свой курс для разработчиков, и об этом можно почитать вот тут: 🌐 Анонс Apple курса для разработчиков длительностью в 14 часов @iOS Dev – сам топ смотрите ниже😉
  • iOS Dev

    Внимание, вопрос!