RU

Мы научили агента писать тесты так, как их пишет наша команда

Привет! Я Артем Житко, iOS разработчик в Т-Банке. Каждому iOS-разработчику знакома ситуация: задача уже готова, кажется, что самое сложное уже позад…

AI-агентыLLMiOSSwiftUnit-тестированиеXCTestAGENTS.mdSKILL.mdАвтоматизация тестированияГенерация кода
Habr
RU

Когда кончаются 5-часовые лимиты, я иду на обед. Когда недельные, обьявляется выходной?

Я один делаю Кубыш , приложение для личных финансов на iPhone, а код пишет ИИ-агент. У которого два лимита: на 5 часовые и на недельные. За нескольк…

ИИ-агентыClaudeсоло-разработкапродуктивностьИИLLMiOSSwiftпродуктовая разработкаcodex
Habr
RU

Откуда пришли установки iOS-приложения без SDK атрибуции: спецстраницы App Store вместо UTM

Я делаю Кубыш, приложение для учета расходов и накоплений на iPhone: оно считает, сколько можно тратить в день до зарплаты и когда накопишь на цель.…

App StoreApp Store Connectатрибуцияcustom product pagesинди-разработкаИИLLMiOSSwiftпродуктовая разработка
Habr
RU

Вари меня нежно: какой смартфон будет работать нормально, пока Google и Apple душат установку приложений

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

AppleiOSAndroidAOSPandroid developer verificationimazingаврораросаkvadraosред ос м
Habr
RU

Firefox для iOS получил встроенный блокировщик рекламы, а Firefox 155 на десктопе — CSS-функции progress() и alpha()

Mozilla добавила в Firefox для iOS встроенный блокировщик рекламы на WebKit Content Blocker и EasyList. Одновременно вышел Firefox 155 с новыми CSS-…

JavaScriptВеб-разработкаCSSБраузерыiOSНовости
Tproger
RU

Как мы построили систему регрессионного UI-тестирования для iOS-приложения: XCUITest, mock backend и XcodeBuildMCP

По мере роста UI-регрессии сложнее всего становится управлять не тестами, а их окружением: состоянием приложения, ответами backend и воспроизводимос…

iOSSwiftXCUITestUI-тестированиерегрессионное тестированиеавтоматизация тестированияmock backendXcodeBuildMCPИИ-агентыiOS Simulator
Habr
RU

Почему отправленная MDM-команда ещё не означает выполненную

MDM-команда проходит через очередь, инфраструктуру Apple или Google и агент на устройстве. Поэтому ответ API ещё ничего не говорит о фактическом при…

MDMAndroid EnterpriseiOSAPNsAndroid Management APIOutboxeventual consistencyуправление устройствами
Habr
RU

Один фреймворк для Android и iOS: звучит круто, работает?  Нет

Почему единый кроссплатформенный фреймворк для автотестов Android и iOS не работает на практике и когда стоит разделить его на два отдельных проекта…

JavaТестированиеAndroidGitРаспознаваниеiOSРаботаSwiftHRGitLabKotlinФинтехQAПриложениеdevСерверБиблиотекиТестирование приложений и сайтов плюсИнфраструктураСтатьи
Tproger
RU

Один радар на стекле, другой в телефоне, и в каждом чего-то не хватало

У меня есть физический радар детектор — коробочка на стекле. И есть купленное приложение-антирадар. Что общего у них двух? В каждом чего-то не хвата…

радар-детекторантирадарiOSSwiftGPSгироскопфьюжн сенсоровкраудсорсингApp Attest
Habr
RU

«Люди вокруг» на SpriteKit: кольца-расстояния, инерция пальцем и виртуализация аватаров

Продолжение истории про проект геолокационной соцсети: “как мы людей в круги расставляли”. Рассказываю о том, как можно красиво отобразить пользоват…

iOSSwiftSpriteKitUIанимациявиртуализацияCADisplayLinkигровой движокгеолокация
Habr
RU

Тап по тысяче точек за O(log n): QuadTree и сферическая геометрия в гео-соцсети

9 лет назад я разрабатывал геолокационную соц.сеть на заказ, где мы отображали чаты на карте. До релиза не дошло, но интересного опыта было получено…

iOSSwiftалгоритмыQuadTreeструктуры данныхпространственный индекссферическая геометрияMapboxкартыоптимизация
Habr
RU

Как нарисовать тысячи объектов на карте и не убить FPS: эволюция рендера на Mapbox GL

Когда-то давно я разрабатывал геолокационную соцсеть, где на карте живут «облака» — посты, привязанные к точке. И этих облаков на экране могло быть…

iOSSwiftMapboxкартырендерингпроизводительностьоптимизацияGPUFPSdata-driven
Habr