61% того, что KMP-модуль отдаёт в iOS, никто не вызывает — 28 августа 2026 г. в 13:21:07.085
61% того, что KMP-модуль отдаёт в iOS, никто не вызывает Если у вас Kotlin Multiplatform, ваш shared-модуль приезжает в Xcode как Objective-C-заголовок, и каждая лишняя строка в нём замедляет сборку и раздувает фреймворк. Разработчик приложения Framed открыл свой Shared.h и увидел 23 622 строки: в Kotlin всё public по умолчанию, поэтому в экспорт попали цвета темы, 38 констант отступов, внутренние колбэки экранов и типы Ktor. Компилятор выкинуть их не может: Objective-C диспетчеризует динамически, вдруг Swift позовёт. Он написал Gradle-плагин kmprofiler: тот сопоставляет заголовок с Swift-кодом и считает экспорты без вызовов. Из 459 деклараций 282 не используются (61,4%). Правка заняла пять файлов: internal для Dimens, Color, Type и UI-моделей, а для классов, нужных Android-модулям, есть @HiddenFromObjC. Заголовок ужался до 13 327 строк (−43,6%), фреймворк похудел на 5,7 МБ. Плагин лежит в Gradle Plugin Portal, автор показал, как прогнать через него свой модуль.

