👨💻 Почему Apple давит на приложения для генерации кода. Сначала Apple добавила в Xcode поддержку ИИ-агентов. А теперь тихо блокирует обновления приложений вроде Replit и Vibecode - тех самых, где можно собрать приложение по описанию на естественном языке. Формальная причина - нарушение правил App Store. Но реальная подоплека глубже. Что происходит: Apple приостановила обновления для нескольких популярных приложений, которые позволяют пользователям генерировать код и даже создавать полноценные...
Мобильный трудоголик
Пишу простым языком об iOS разработке на Swift и мобильной разработке в целом. Обо мне: https://t.me/hardworkerIT/3 Чат: @hardworkerChatIT Канал про разработку и жизнь в ИТ: @itDenisov Вакансии по мобильной разработке: @mobileDevJobs
Графики
📊 Средний охват постов
📉 ERR % по дням
📋 Публикации по дням
📎 Типы контента
Лучшие публикации
20 из 20🔢 Миграция в SwiftData: как обновлять модель без потери пользовательских данных. Когда в приложении меняется модель данных, миграция становится головной болью. Особенно если пользователи уже накопили тонны информации, которую нельзя просто выкинуть. SwiftData предлагает несколько способов справиться с этой задачей: от автоматических легких миграций до полностью ручных, где разработчик контролирует каждый шаг. Разбираемся, как не наступить на грабли. Версионирование с первого дня: Любая работа с...
🔢 Swift Testing Agent Skill: правила написания качественных тестов с помощью ИИ. Если вы активно используете агентов для генерации кода, то наверняка замечали: с тестами у них беда. Либо вообще не пишут, либо пишут так, что потом больно смотреть. Особенно когда дело доходит до Swift Testing - нового фреймворка от Apple, который пришел на смену XCTest. Чтобы не объяснять одно и то же каждый раз, появился готовый Agent Skill, который обучает ИИ правильно подходить к тестированию. Что за зверь и з...
🔨 Как найти и исправить зависания интерфейса в iOS. Зависания интерфейса - один из самых раздражающих багов для пользователя и сложных для локализации для разработчика. Приложение внешне работает, но периодически замирает, не реагируя на тапы. Частая, но ошибочная реакция - грешить на слабый девайс или тяжелые анимации. В реальности корень проблемы почти всегда кроется в неправильной работе с потоками, а точнее - в блокировке главного (main) потока. Современные инструменты вроде Instruments поз...
🔢 Структура SwiftUI-проекта, которая не разваливается с ростом. Стандартная структура от Xcode - это ловушка. ContentView.swift, пара папок, и вот уже через три месяца вы не можете найти, где лежит экран настроек, потому что он затерялся среди 50 других файлов в одной куче. Чтобы проект жил долго и счастливо, нужна система. И желательно с первого дня. Главная ошибка - группировка по типам: Самое популярное, но неудачное решение: папки Views, Models, ViewModels. Вроде логично, но когда в Views о...
🔨 Подключаем Cursor и Claude Code к Xcode 26.3 Apple открыла Xcode для внешних инструментов. В версии 26.3 появился MCP-сервер, который позволяет подключаться к проекту из Cursor, Claude CLI и любых других клиентов, поддерживающих этот протокол. Теперь можно отдавать команды на сборку, тестирование и даже рендеринг превью, не выходя из любимого редактора. Как это работает: Все строится вокруг утилиты xcrun mcpbridge. Это прослойка, которая принимает запросы по протоколу MCP и переводит их в XPC...
🍏 iOS 26.4: откат эксперимента с поиском. Apple выпустила бета версию iOS 26.4, в которой тихо поправила два системных приложения. Поиск в App Store и Games вернулся к привычному виду: строка вверху экрана, иконка поиска в нижнем таб-баре. Именно так это работало в iOS 18, пока в 26 версии дизайнеры не решили поэкспериментировать. Что поменялось: В предыдущих версиях поиск в App Store был вынесен в отдельную вкладку. Казалось бы, логично - нажал на иконку поиска и ищешь. Но на практике это лома...
👨💻 От управления к хаосу: как плохой проджект подрывает продукт изнутри. Привет! В создании продукта есть фигура, которую часто недооценивают, пока не становится слишком поздно. Речь о менеджере проекта - человеке, который не пишет код и не рисует интерфейсы, но чьи решения определяют, станет ли продукт успешным или отправится на свалку неудачных идей. Сегодня мы разберем, как один непрофессионал в этой роли может системно разрушить даже самую перспективную разработку. Системные ошибки непроф...
🔢 Декодирование JSON в Swift: работа с датой. Одна из самых частых проблем при работе с API - даты. Казалось бы, что может пойти не так? Но на практике бэкенд может прислать timestamp, ISO-строку, американский формат или вообще что-то свое. Swift без правильной настройки просто упадет с ошибкой. Разбираемся, какие стратегии декодирования есть и когда что применять. Что Swift делает по умолчанию: Стандартная стратегия .deferredToDate работает только в одном случае: если данные были закодированы ...
🔢 Как порядок параметров может влиять на размер структуры в Swift. Когда создаешь структуру в Swift, интуитивно кажется, что ее размер должен равняться сумме размеров параметров. Int - 8 байт, String - 16, Bool - 1. Сложил и получил 25. Но на практике компилятор может добавить несколько скрытых байт, и тот же набор полей внезапно займет уже 32 байта. Все дело в выравнивании и пустых вставках между полями. Как процессор читает память: Процессор не работает с байтами по одному. Ему удобнее читать...