Мобильная разработка за неделю #630 (11 — 17 мая)
Возвращаемся после небольшого майского перерыва с новым дайджестом - советы и хитрости Xcode 16 и как добиться 0 рекомпозиций в сложном кастомном UI, три раунда войны с Android-клавиатурой в WebView и обновление без разрешения пользователя, 10 оптимизаций Swift, которые улучшат производительность, тестирование Compose по-новому, декларативная навигация для Flutter, под капотом перезапуска приложения Бургер Кинг и многое другое. Заходите!
200 OK по протоколу, но не OK для клиента: автоматизация контроля совместимости API и приложения
Выпустить релиз — часы работы команды. Упасть на старте — 1 секунда. Узнать об этом не из отзывов пользователей — бесценно. Серверные тесты проходят, эндпоинт отвечает 200 OK, но мобильный клиент падает на первом же ответе API.Типичный сценарий: в user.id приходит null, у status появляется новое значение или меняется вложенная структура — и ответ API расходится с клиентскими моделями.
200 OK иногда = кома: почему API «работает», а приложение — нет (и как нам помог ИИ)
Статус 200 OK коварен своей тривиальностью.Бэкенд-тесты «зеленые», API честно отдает данные, а веб-клиент мгновенно подхватывает изменения. Кажется, что всё в порядке, но в это же время мобильные клиенты теряют работоспособность. Приложение не выдает сетевых ошибок, оно просто не может корректно обработать обновленный DTO: клиент ожидает одну структуру данных, а получает другую.Это не баг логики сервера, а технический разрыв между живым API и замороженным артефактом — версией приложения, которая ничего не знает о правках в схеме данных, сделанных через полгода после его релиза.
Один ИИнженер — десять рук: как мы исследовали LLM в AppSec
Всем привет, на связи Solar appScreener!В этой статье расскажем о нашем опыте использования ИИ в нашем собственном продукте.
За два месяца вместо года: как мы переписали 97 тысяч строк кода с Objective-C на Swift
Миграция большого iOS-проекта с Objective-C на Swift кажется понятной задачей ровно до тех пор, пока не начинаешь считать объём. В нашем случае это были 10 тысяч файлов, сотни тысяч строк кода и постоянная необходимость не останавливать развитие продукта. Ручной подход работал слишком медленно, поэтому мы начали автоматизировать миграцию с помощью LLM — и в итоге превратили её из бесконечного техдолга в воспроизводимый процесс.
Google объяснила увеличение объёма занятой памяти на Android после обновлений системы
Google объяснила, почему объём памяти Android AICore иногда резко возрастает. Система позволяет запускать функции генеративного ИИ непосредственно на аппаратном обеспечении Android-смартфона или планшета.
AI в iOS-разработке: что у меня реально закрепилось в 2026, а что я выкинул
За последние полгода я перетряс свой рабочий стек полностью: Cursor, Claude Code, Codex, локальные Qwen-модели для ревью, несколько итераций своего AGENTS.md, Xcode MCP, mobile-mcp, Conductor для параллельных сессий. Что-то прижилось, что-то я удалил через неделю, а какие-то практики, которые ещё весной казались обязательными, сейчас выглядят странно.Ниже — мои личные заметки по итогам этих полугода, а не обзор индустрии. Многое я подсмотрел у коллег и в чатах, не всё придумал сам.1. Минимализм в AGENTS.mdЕсли у вас CLAUDE.md (или AGENTS.md

