TGViewer
Mobile Development by AppTractor Mobile Development by AppTractor @apptractor · 11K subscribers
Post #6188 2.34K
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 строк получается типобезопасный мини-язык с автодополнением и проверкой ошибок на этапе компиляции.

• ShizuCallRecorder — запись телефонных звонков без root-прав
• Топ-10 вопросов по Kotlin в 2026 году
• Kotlin DSL Deep Dive: From Gradle Scripts to Building Your Own
• Architectural Safety in Kotlin: Shifting Errors from Runtime to Compile-Time
• Senior Android Interview Questions & Answers (2026 Edition)
Medium Kotlin DSL Deep Dive: From Gradle Scripts to Building Your Own What .kts files actually are, why Gradle’s dependencies { } is just a function call, and how to build a working HTML DSL from scratch
  • 👍 5
  • 💯 1
More from @apptractor
  1. Oct 9, 2026📺 Видео и подкасты за неделю • (iOS En) Pinterest Context Menu Using SwiftUI • (iOS En) C…
  2. Oct 9, 2026🧠 Тимлид в эпоху AI: почему TTM всё ещё не ускоряется Раньше задача тимлида была понятна:…
  3. Oct 8, 2026Вчера подразделение Google, занимающееся экспериментальными проектами и поддержкой инновац…
  4. Oct 8, 2026Первый убыток JetBrains за 26 лет Компания JetBrains (а именно ее чешское юридическое лицо…
  5. Oct 7, 2026Post #6318
  6. Oct 7, 2026​Еще из вчерашнего интересное - создатель Ruby on Rails Дэвид Хайнемайер Ханссон (DHH) на…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →