Fork me on GitHub
Elegant iOS form builder in Swift
form +++ Section()
<<< TextRow(){ row in
row.title = "Name"
<<< DateRow(){
$0.title = "Birthdate"
$0.value = Date()
import UIKit
import Eureka

class ViewController: FormViewController {
override func viewDidLoad() {

GitHub Get Started

What makes Eureka special?

Save time coding

By adding Eureka, you will be able to create powerful forms without all the repetitive and complex code required. You can also create dynamic forms out of the box!

Reuse your code

Write your code once and use it everywhere. Forget about duplicated style and validation code and enjoy Eureka's abstractions to power up you app!


Eureka is actively maintained and supported by Xmartlabs engineering team and a thriving community of users and contributors - it is currently used in +15k apps in the App Store!

Best in Class

Comprehensive documentation, tens of custom rows and lighting fast support of new Swift/iOS versions made Eureka the preferred tool of 10 of the top 200 apps in the App Store.

Trusted by

Getting Started


Cocoapods 1.1.0.rc.3 or newer version must be used. Specify Eureka into your project’s Podfile:

source ''
platform :ios, '9.0'
pod 'Eureka', '~> 3.0.0'


Carthage is a simple, decentralized dependency manager for Cocoa. Just specify Eureka into your project’s Cartfile:

github "xmartlabs/Eureka" ~> 3.0.0

Manually as Embedded Framework

1) Clone Eureka as a git submodule by running the following command from your project root git folder:

git submodule add

2) Open Eureka folder that was created by the previous git submodule command and drag the Eureka.xcodeproj into the Project Navigator of your application’s Xcode project.

3) Select the Eureka.xcodeproj in the Project Navigator and verify the deployment target matches with your application deployment target.

4) Select your project in the Xcode Navigation and then select your application target from the sidebar. Next select the “General” tab and click on the + button under the “Embedded Binaries” section.

5) Select Eureka.framework and we are done!

Eureka Community

Eureka is a community-driven project. 
Your contribution counts!

While simplicity and extensibility were main design attributes behind Eureka core library, the EurekaCommunity project was created to foster an ecosystem of community supported plugins and extensions. Have a row to share with the community? Drop us a line!

Color Picker Row

Allows to create a row that displays colors and lets the user pick them.

Credit Card Row

Allows to create a credit card row, with its number, expiration date and the CVV/CVC value. It provides a default UI but that can be easily changed to fit any other design.

Generic Password Row

Allows to create passwords fields. Its main purpose is to provide feedback to the user while is entering the password.

Google Places Row

Allows to use Google Places autocomplete functionality to select a place suggested by the provided API.

Image Row

Allows to create a row for taking pictures or choosing it from the gallery.

Postal Address Row

Includes a series of UITextField's to allow the user to enter postal address information.

Rich Text Row

Allows us to edit and display HTML.

Suggestion Row

Provides completion suggestions as the user is typing.

Tokenizer Row

It includes the CLTokenInputView which allows the user to select, add and remove tokens.