Open Source Obj-C to Swift Converter.
Switch branches/tags
Nothing to show
Clone or download
Latest commit 1bd6bcc Dec 23, 2015



Try the online version at

Project Goal

We created objc2swift for our own good, to reduce the redundant task when rewriting Obj-C code to Swift.

Generally, rewriting process consists of two phases: first simply replacing the syntax from Obj-C to Swift, then adopting new features that are introduced to Swift.

objc2swift is aimed at reducing the first half of the process, so that we can focus more on the creative / intellectual work.

Please do not expect complete conversion.


  • Merges @interface and @implementation and create a single Swift class.
  • Converts properties, including those that have it's own getter/setter in the implementation.
  • Converts message-send to method-call.
  • Converts init-process such as [[MyThing alloc] initWithThing:...] into MyThing(thing: ...).
  • Converts corresponding types and functions: NSInteger -> Int, NSLog -> print
  • ...and more!

Quick Start


Build jar:

$ git clone
$ cd objc2swift
$ ./gradlew jar

Create an alias, and pass the Obj-C source files you want to convert.

$ alias objc2swift='java -jar /path/to/objc2swift/build/libs/objc2swift-1.0.jar'
$ objc2swift src/test/resources/sample.*


Install typesafe-activator, and run.

$ brew install typesafe-activator
$ cd web/
$ activator run

Access localhost:9000, and there you are!

Developer's Guide

objc2swift is made with ANTLR. More detail coming soon.


This software is released under the MIT License, see LICENSE.txt.