Swift to Kotlin

Free Swift to Kotlin Code Converter

No email required. 100% free. Done in 30 seconds.

Transform your code from Swift to Kotlin with our free AI-based code convertion tool. If you like what you see, we also create documentation for your code! We don't ever store your code or any representation of it in our databases, but it will be shared with the LLM of our choice for processing.

Other tools






Ionic + Angular










React Native


Ruby on Rails






How to convert from Swift to Kotlin

If you find yourself needing to convert an iOS app written in Swift into an Android app using Kotlin, you're in the right place. Swift and Kotlin share similarities as modern, expressive languages designed with safety and clarity in mind, but they also have critical differences that you need to address.

Understanding the Basics

Swift is a programming language developed by Apple for iOS, iPadOS, macOS, watchOS, and tvOS app development. It is characterized by its powerful type inference and modern syntax.

Kotlin, on the other hand, is a statically-typed programming language targeting the JVM, Android, JavaScript, and Native. Developed by JetBrains, Kotlin is concise, safe, interoperable, and tool-friendly.

Syntax Differences

Variable Declaration

In Swift, you declare variables using var and constants using let:

var mutableVariable = 42
let immutableConstant = "Hello, Swift"

In Kotlin, you use var for mutable variables and val for read-only variables:

var mutableVariable = 42
val immutableConstant = "Hello, Kotlin"

Type Annotations

Swift allows optional type annotations:

var exampleVariable: String = "Explicit Type"
let anotherVariable = "Type Inferred"

Kotlin also supports type annotations but follows a different syntax:

var exampleVariable: String = "Explicit Type"
val anotherVariable = "Type Inferred"

Functions and Methods

Function Declaration

In Swift, functions are defined with the func keyword:

func greet(name: String) -> String {
    return "Hello, \(name)"

In Kotlin, functions are defined with the fun keyword:

fun greet(name: String): String {
    return "Hello, $name"

Parameters and Return Types

Both languages require explicit type declarations for function parameters and return types, but Kotlin uses a different syntax for string interpolation as shown above.

Control Flow

Conditional Statements

Swift uses if, else if, and else similarly to Kotlin:

if someCondition {
    // Do something
} else if anotherCondition {
    // Do something else
} else {
    // Default case

Kotlin follows the same structure:

if (someCondition) {
    // Do something
} else if (anotherCondition) {
    // Do something else
} else {
    // Default case

Switch and When

Swift's switch statement checks equality between values:

switch someValue {
case 1:
case 2:

Kotlin uses the when keyword, which is more flexible:

when (someValue) {
    1 -> println("One")
    2 -> println("Two")
    else -> println("Other")

Data Structures

Arrays and Lists

In Swift, arrays are defined as follows:

let array: [String] = ["Apple", "Banana", "Cherry"]

In Kotlin, lists are used more commonly for the same purpose:

val list: List<String> = listOf("Apple", "Banana", "Cherry")

Dictionaries and Maps

Swift uses dictionaries:

let dict: [String: Int] = ["One": 1, "Two": 2, "Three": 3]

Kotlin uses maps similarly:

val map: Map<String, Int> = mapOf("One" to 1, "Two" to 2, "Three" to 3)

Object-Oriented Programming

Classes and Objects

Defining classes in Swift:

class Vehicle {
    var name: String
    init(name: String) {
        self.name = name

Defining classes in Kotlin:

class Vehicle(var name: String)


Swift implements inheritance and method overriding like this:

class Car: Vehicle {
    override init(name: String) {
        super.init(name: name)

In Kotlin, use the open keyword for inheritance:

open class Vehicle(var name: String)

class Car(name: String) : Vehicle(name)

Error Handling

Swift's Try-Catch

Swift uses do, try, and catch for error handling:

do {
    try someFunction()
} catch let error {

Kotlin's Try-Catch

Kotlin follows a similar pattern:

try {
} catch (e: Exception) {


Converting code from Swift to Kotlin isn't just about translating syntax; it also involves understanding idiomatic differences and best practices in each language. While both languages share a modern design and features like type safety and functional constructs, they have distinct characteristics that require careful consideration.

By following this guide and paying attention to the specifics of each language, you can ensure a smooth transition of your Swift code to Kotlin. Happy coding!

Document your code using AI

Sign up now
& free your developers' time

Start for free

Join thousands of companies documenting their code using AI.

Frequently Asked Questions

This free AI tool does its best to generate professional documentation. However, it's missing some context from other related files. The paid version takes into account different files to generate documentation for each use case, apart from the documentation of every file. You have also the possibility of add custom concepts to improve the knowledge of your codebase.

No. You don't have to enter any personal information to use Codex's free code documentation tool — it's 100% free.

No. An encrypted version of your code is stored only while its being processed and it's deleted immediately.

If you can work with a custom Azure model in your own account, let us know. If not, Codex also works with open source models that can run on-premises, on your own servers, so your data is always yours. Feel free to get in touch with us!