Normal view

Как я перестал платить за macOS-минуты: перенос iOS-сборки с GitHub Actions на Xcode Cloud, с цифрами

Одна минута macOS-раннера в GitHub Actions стоит десять минут Linux. Я перенёс iOS-сборку Flutter-приложения в Xcode Cloud: с ~45 оплачиваемых минут на релиз до 6, без .p12 и профилей в секретах, с тремя shell-скриптами вместо 90 строк YAML. Внутри — схема тегов ios/v* и android/v*, настройки Xcode Cloud, которые молча сжигают compute-часы, и таблица семи падений первого живого прогона — ни одно из них не было ошибкой миграции. Плюс чек-лист и открытый скилл, который из этого вырос.

Читать далее

Миллион частиц на iPhone: строим аттрактор Лоренца на GPU с Metal

Привет! Я Максим Савченко, iOS-разработчик. Эта история началась с вопроса, как сделать живую форму в духе иконки Siri — и довольно быстро уехала в другую сторону: аттрактор Лоренца на сотнях тысяч, а потом и на миллионе частиц, где и расчёт, и отрисовка живут на GPU.

Вся схема держится на одной идее: состояние частиц на CPU больше не возвращается. Compute-шейдер читает один буфер, пишет в другой, render-pass сразу рисует результат, на следующем кадре буферы меняются местами.

В статье разбираю это по шагам: математика и выбор интегратора, ping-pong-буферы, compute/render-пайплайн, point primitives и additive blending. А в конце — GPU Frame Capture и замеры на физическом iPhone. Спойлер, который я сам не ожидал: RK4 в этой конфигурации оказался далеко не самым дорогим местом. Основная цена ушла в отрисовку и overdraw.

Если коротко: это не гайд «как нарисовать красивую картинку», а разбор того, зачем вообще лезть в Metal и где кадр упирается на реальном устройстве.

Читать далее

Мобильная разработка за неделю #645 (24 — 30 августа)

В этом дайджесте надежное выполнение фоновых задач в iOS и детекция лица в реалтайме для биометрии в Android, забавные анимации с меш-градиентами в Jetpack Compose и кастомизация пейволов с Apple Foundation Models, Kotlin Coroutines Channels и Actor‑модель, фоновые задачи в KMP с API как у WorkManager, разработка на Авроре под Аврору, двуногий робот в форме утёнка от Hugging Face и многое другое. Заходите!

Читать далее

Apple меняет домен Private Relay: почему Sign in with Apple нельзя строить вокруг email

Apple меняет домен новых Private Relay адресов для Sign in with Apple. Внешне это похоже на небольшую правку allowlist, но на практике быстро выявляет хрупкую архитектуру, где email участвует в поиске аккаунта.

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

Читать далее

Как Mojang кинула свою же игру?

Здравствуйте! Игра Minecraft появилась ещё в далеком 2009 году, и по сей день как многие знают популярна. Единственное, Minecraft офицально был доступен лишь на ПК. И разумеется, студия Mojang делала порты и на другие устройства, будь то консоли или телефоны. Сегодня, в этой статье пойдёт речь как раз про порты этой игры и разберёмся, как Mojang целенаправленно готовилась их заменить.

Читать далее

Любишь, чтобы сервер работал, — люби и BMC: кто и как решает проблемы на стыке железа и прошивки

Стабильность современного сервера зависит от BMC (Baseboard Management Controller): он управляет аппаратной платформой, следит за ее состоянием и решает множество других задач. Поэтому разбираться с проблемами BMC непросто, но именно здесь инженер получает возможность глубоко погрузиться в продукт: не только вырасти в системном программировании и железе, но и научиться воспроизводить проблемы, смотреть на продукт интегративно и ясно излагать мысли, понимая каким образом наши конечные заказчики эксплуатируют системы в своей инфраструктуре.  

Меня зовут Павел Гуделёв, я руковожу центром компетенций L3 в YADRO. С моим коллегой Александром Старцевым на примерах покажем, как мы решаем задачи, связанные с BIOS/BMC, в нашем подразделении. Будьте готовы — впереди несколько инженерных детективов. В конце статьи я перечислю навыки нужные для этой работы, поделюсь вакансией и расскажу, как подготовиться к собеседованию.

Превратим железо в рабочий сервер →
❌