@ObjCName и API, удобные для Swift
Формируйте экспорт так, чтобы вызовы из Swift выглядели естественно
«@ObjCName и API, удобные для Swift» — бесплатный урок Kotlin Multiplatform Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Kotlin Multiplatform Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Kotlin Multiplatform Academy содержит 4 уроков всего.
Части этого урока еще не переведены и отображаются на английском.
Make Swift Devs Happy
Your shared API should read naturally in Swift. A few annotations and habits make the bridge feel native, not bolted on.
Rename with @ObjCName
The @ObjCName annotation lets you give a type or function a different name on the Swift side without renaming the Kotlin one.
@ObjCName("UserService")
class UserRepositoryCleaner Method Names
Use @ObjCName on functions too, so a verbose Kotlin name becomes a short, idiomatic Swift call site that reads well.
@ObjCName("load")
fun loadUserData()Avoid Name Clashes
Kotlin allows overloads that Obj-C cannot express. Renaming with @ObjCName prevents the mangled names Swift would otherwise see.
Hide with @HiddenFromObjC
Mark internal helpers with @HiddenFromObjC so they never appear in the framework, keeping the Swift surface small and clean.
@HiddenFromObjC
fun internalCache()Default Arguments Vanish
Kotlin default arguments do not cross the bridge, so Swift sees one full signature. Provide overloads if Swift needs choices.
Favor Simple Types
Expose plain data classes and primitives at the boundary. Deep generics and sealed hierarchies get awkward for Swift callers.
Watch Property Names
A Kotlin isActive boolean reads great in Swift, but odd getter names can look clumsy, so name properties with Swift in mind.
Document for iOS
Add KDoc on exported members. Some of it surfaces in Xcode, helping iOS devs use your shared API without guessing.
Test the Call Sites
Open the generated header or a Swift file and actually read how your API looks. If it feels clunky, refine the annotations.
A Polished Bridge
Thoughtful naming and hiding turn shared Kotlin into an API Swift devs enjoy, making cross-team work smooth and friendly.
Quick Check
Let us check what @ObjCName is for.
Recap
Shape exports with @ObjCName and @HiddenFromObjC, favor simple types, and read the real Swift call sites. A friendly bridge wins. 🎉
Часто задаваемые вопросы
Урок «@ObjCName и API, удобные для Swift» бесплатный?
Да — полный текст урока «@ObjCName и API, удобные для Swift» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Kotlin Multiplatform Academy, подпишись на CoddyKit PRO. Курс Kotlin Multiplatform Academy содержит 4 уроков всего.
Чему я научусь в уроке «@ObjCName и API, удобные для Swift»?
Формируйте экспорт так, чтобы вызовы из Swift выглядели естественно Ты практикуешь Kotlin Multiplatform Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Kotlin Multiplatform Academy?
Предыдущий опыт не требуется. Kotlin Multiplatform Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «@ObjCName и API, удобные для Swift»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Kotlin Multiplatform Academy?
Да. Каждый урок Kotlin Multiplatform Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Как Kotlin преобразуется в Objective-C
- Функции suspend как async в Swift
- Сбор Flow из Swift
- @ObjCName и API, удобные для Swift