Site icon AppTractor

Разработка мобильных приложений: все материалы — 07.07

Разработка

Маркетинг

Кроссплатформа

iOS

Мне захотелось зайти иначе. Я взял три «памятных» нововведения Swift 6.2, написал на них бенчмарки, прогнал на релизном тулчейне и полез в сгенерированный ассемблер. Вопрос меня занимал не «что это делает», а куда более практичный: дают ли эти фичи реальный выигрыш в цифрах — и в каких случаях оптимизатор Swift давно делает то же самое за вас, бесплатно и молча. Ответ оказался менее очевидным, чем их маркетинг.

Android

Kotlin DSL — это не отдельный язык и не «магия» Gradle, а обычный Kotlin, который благодаря trailing lambda, extension- и infix-функциям, перегрузке операторов и особенно lambdas with receivers начинает выглядеть как специализированный язык. Поэтому dependencies { implementation(...) } — всего лишь вызов функции с лямбдой, а внутри блока меняется не синтаксис языка, а объект-получатель this. По той же схеме устроены блоки Ktor, Koin, kotlinx.html и многие API в Compose. Создание собственного DSL начинается не с классов, а с желаемого вида кода: сначала проектируется удобный call site, затем для каждого блока определяется receiver и добавляются builder-функции, создающие и связывающие объекты. В статье этот подход показан на HTML DSL, где структура Kotlin-кода повторяет структуру документа, типы ограничивают допустимые вложения, а @DslMarker не позволяет случайно обращаться к внешнему receiver. В результате примерно за 60 строк получается типобезопасный мини-язык с автодополнением и проверкой ошибок на этапе компиляции.

← Предыдущий выпуск

Exit mobile version