Kforms

Build Complex Mobile Forms
in Minutes

Kforms is an easy to use developer library for creating complex mobile forms on Android, iOS, and web.

Find Out When!

Get Kforms Now!

Show Me the Code

Show Me the Code

25+ Field Types

Powerful field types like barcode, photo, and signature provide for rich data capture options that are sure to satisfy user requirements.

Conditional Logic

Allows for the configuration of complex mobile forms to show or hide fields, sections, and pages.

Calculations

Built in functionality allows you to easily embed complex calculations that reference multiple fields.

Built in Field Validation

Puts pre-determined constraints on mobile form fields to ensure that the values entered meet the defined criteria.

Fully Customizable

Add your own data sources, use your theme colors, and create your own field types.

Developing Complex Mobile Forms Has Never Been This Easy

KForm Code

new KForm {
 Title = "My Great Form",
 Fields = {
  new TextInputField {
   Title = "Enter your first name",
   PropertyName = "firstName" },
  new DropDownField {
   Title = "What is your favorite season?",
   PropertyName = "favoriteSeason",
   Options = { "Spring", "Summer", "Fall", "Winter" }}
 }
}

<KForm title='My Great Form'>
 <TextInputField
     title='Enter your first name'
     propertyName='firstName' ></TextInputField>
 <DropDownField
     title='What is your favorite season?'
     propertyName='favoriteSeason'
     options={['Spring', 'Summer', 'Fall', 'Winter']} ></DropDownField>
</KForm>
 
 
 

let form = new KFormBuilder()
 .WithTitle("My Great Form")
  .AddTextInputField("Enter your first name")
   .WithPropertyName("firstName")
  .AddDropDownField("What is your favorite season?")
   .WithPropertyName("favoriteSeason")
   .WithOptions(["Spring", "Summer", "Fall", "Winter"])
 .Build();
 
 
 
 

KForm form = new KFormBuilder()
 .WithTitle("My Great Form")
  .AddTextInputField("Enter your first name")
   .WithPropertyName("firstName")
  .AddDropDownField("What is your favorite season?")
   .WithPropertyName("favoriteSeason")
   .WithOptions(["Spring", "Summer", "Fall", "Winter"])
 .Build();
 
 
 
 

Returned Data

{
 "firstName": "John",
 "favoriteSeason": "Spring"
}

25+ Built-in Field Types to Choose From

Single Object Select
Multi-Object Select
Barcode/QR Code
Single Button Bar
Multi Button Bar
Calculation
Currency
Checkbox
Date Picker
Date & Time Picker

Date & Time Stamp
Display View
Drop Down
Geolocation
Line Item
Multiselect
Number
Number Slider
Password

Photo
Signature
Stepper
Switch
Text Area
Text Display
Text Input
Time Picker
Yes/No

Conditional Logic

Allows for effortless control of the information that users are asked to provide in order to tailor complex mobile forms specifically to their needs.

var sections = new List<KSection> {
 new KSection {
  Title = 'General',
  Fields = {
   new YesNoField {
    Title = 'Does the home have a pool?',
    Id = 'pool'
 }}},
 new KSection {
  Title = 'Pool',
  DisplayWhen = valueOf => valueOf('pool') == true,
  Fields = {
   new YesNoField {
    Title = 'Are all diving boards and slides securely anchored?' },
   new NumberField {
    Title = 'Pressure gauge reading (psi)',
    Id = 'pressureGauge' },
   new YesNoField {
    Title = 'Did you clean the pressure filter?',
    RequiredWhen = valueOf => valueOf('pressureGauge') >= 8
 }}}
};

var form = new KForm {
 Title = 'Home Inspection',
 Pages = { new KPage { Sections = sections } }
};

<KForm title='Home Inspection'>
 <KPage>
  <KSection title='General'>
   <YesNoField id='pool' title='Does the home have a pool?' ></YesNoField>
  </KSection>
  <KSection
   title='Pool'
   displayWhen={valueOf => valueOf('pool') == true}>
   <YesNoField 
    title='Are all diving boards and slides securely anchored?' ></YesNoField>
   <NumberField 
    id='pressureGauge' 
    title='Pressure gauge reading (psi)' ></NumberField>
   <YesNoField
    title='Did you clean the pressure filter?'
    requiredWhen={valueOf => valueOf('pressureGauge') >= 8} />
  </KSection>
 </KPage>
</KForm>

let form = new KFormBuilder()
 .WithTitle('Home Inspection')
 .AddPage()
  .AddSection('General')
   .AddYesNoField('Does the home have a pool?')
    .WithId('pool')
   .AddSection('Pool')
    .DisplayWhen({ valueOf in valueOf('pool') == true })
    .AddYesNoField('Are all diving boards and slides securely anchored?')
    .AddNumberField('Pressure gauge reading (psi)')
     .WithId('pressureGauge')
    .AddYesNoField('Did you clean the pressure filter?')
     .RequiredWhen({ valueOf in valueOf('pressureGauge') >= 8 })
 .Build();

KForm form = new KFormBuilder()
 .WithTitle('Home Inspection')
 .AddPage()
  .AddSection('General')
   .AddYesNoField('Does the home have a pool?')
    .WithId('pool')
   .AddSection('Pool')
    .DisplayWhen(valueOf -> valueOf('pool') == true)
    .AddYesNoField('Are all diving boards and slides securely anchored?')
    .AddNumberField('Pressure gauge reading (psi)')
     .WithId('pressureGauge')
    .AddYesNoField('Did you clean the pressure filter?')
     .RequiredWhen(valueOf -> valueOf('pressureGauge') >= 8)
 .Build();

Kforms Conditional Logic Example

Calculations

Easily generate calculations for your form based applications.

new KSection {
 Title = "Cylinder",
 Fields = {
  new NumberField {
   Title = "Radius (r)",
   Id = "cylinderRadius"
  },
  new NumberField {
   Title = "Height (h)",
   Id = "cylinderHeight"
  },
  new CalculationField {
   Title = "Surface Area (2πrh+2πr^2)",
   DecimalPlaces = 2,
   Function = "2*pi*r*h + 2*pi*r^2",
   Variables = {
    {"r", "cylinderRadius"},
    {"h", "cylinderHeight"}
}}}}

<KForm>
 <KPage>
  <KSection title="Cylinder">
   <NumberField id="cylinderRadius" title="Radius (r)" ></NumberField>
   <NumberField id="cylinderHeight" title="Height (h)" ></NumberField>
   <CalculationField
    title="Surface Area (2πrh+2πr^2)"
    decimalPlaces={2}
    function="2*pi*r*h + 2*pi*r^2"
    variables={{
     r: "cylinderRadius",
     h: "cylinderHeight"
    }}
   ></CalculationField>
  </KSection>
 </KPage>
</KForm>

let form = new KFormBuilder()
 .AddPage()
  .AddSection("Cylinder")
   .AddNumberField("Radius (r)")
    .WithId("cylinderRadius")
   .AddNumberField("Height (h)")
    .WithId("cylinderHeight")
   .AddCalculationField("Surface Area (2πrh+2πr^2)")
    .Function("2*pi*r*h + 2*pi*r^2")
   .Variables([
    "r": "cylinderRadius",
    "h": "cylinderHeight"
   ])
   .DecimalPlaces(2)
 .Build();

KForm form = new KFormBuilder()
 .AddPage()
  .AddSection("Cylinder")
   .AddNumberField("Radius (r)")
    .WithId("cylinderRadius")
   .AddNumberField("Height (h)")
    .WithId("cylinderHeight")
   .AddCalculationField("Surface Area (2πrh+2πr^2)")
    .Function("2*pi*r*h + 2*pi*r^2")
    .Variables(new HashMap<string, string>() {{
     put("r", "cylinderRadius");
     put("h", "cylinderHeight");
    }})
    .DecimalPlaces(2)
 .Build();

Kforms Calculations Gif
iPad Multiple Page Complex Forms Gif

Paged Forms

Organize Forms in Pages

Built in Field Validation

For even the most complex forms, Kforms can arrange multiple fields into separate pages for an organized user experience.

Offers an effective way to constrain field input types to specific number ranges, character lengths, string types, and custom validators.

Data Provider

Object select fields give you the ability to bind drop down lists to datasets in your back-end. You can make changes to the bound data to update the options in your form – no code change required.

Kforms Data Provider Diagram for Complex Forms

Themes

Kforms automatically matches the theme of your app, and all UI elements can be easily styled.

Device Theme Spectrum for Complex Forms

Custom Fields

Kforms lets you easily add your own field types, and lets you build platform specific renderers to display the UI components you want in your form.

Kforms Class Hierarchy Diagram for Complex Forms

You’ve Got Support

The Kforms team is committed to supporting our users throughout the design, development, and deployment of Kforms powered applications.

Free Trial Support

    • Forum & community support
    • Github Issue Tracking

Standard Support

  • Comes with Standard License
  • Support Access Monday-Friday 9am-5pm MST

Kforms 1.0 is Here!

Get Access to the Kforms Library Now!

FREE TRIAL

FREE

DOWNLOAD

Perfect for Evaluation

Trial Good for Development 

Must License Upon Deployment

DEVELOPER LICENSE

$499/Application

12 MONTH LICENSE

12 Month License

Price is per Single Application

Standard Support Plan

ENTERPRISE LICENSE

SPECIAL PRICING

CONTACT FOR QUOTE

 

 Volume Pricing for Multiple Apps


Contact for Enterprise or Student Pricing