quicktype news vol. 5

news

quicktype's first birthday, Python support, 'continuous mode' for VS Code, and a brand new product: autotune

quicktype turns one

quicktype celebrated its first birthday on July 12th. In its first year, quicktype generated over 1.2 billion lines of code, by rough estimate. Read the birthday post for more about quicktype's exciting first year.

Continuous mode for VS Code

We recently released 'continuous mode' for quicktype within VS Code, which generates code continuously as you type:

2018-07-09-10.24.53

Install the quicktype extension, open a JSON file, then run the Open quicktype for JSON command to try it.

Python support

Python is our latest language, with support for Python 2.7 through 3.7, including data classes and typing. In this screenshot, quicktype generates typed Python models from TypeScript:

python-shot

Try generating Python in the quicktype web app.

UUID and stringified integer+boolean detection

quicktype can now detect integers, booleans, and UUIDs (in addition to dates, times, and enums) within strings. quicktype will generate stronger types and code to convert JSON string values to the stronger types. In this screenshot, a strongly typed Person model is inferred from a JSON object with only string values:

Screen-Shot-2018-07-15-at-7.35.54-PM

These features are fully supported in Python and C# for now, and we're seeking contributors for other languages

Announcing autotune

We've just launched autotune, a tool that uses machine learning to automatically optimize apps and web sites. It's made for developers (rather than marketers) and has already improved quicktype in unexpected ways.

While building quicktype, we'd often come up with ideas for experiments for the quicktype web app and homepage. For example:

  • Should we show code samples on our homepage?
  • How should we encourage users to sign up in the app?
  • What message should we ask users to tweet about quicktype?

We found that implementing these tests with traditional A/B testing tools was not trivial—especially tests that affected application behavior or tests with many possible values—so we tended to only test straightforward and seemingly consequential facets.

We suspected that there were many, many more aspects of quicktype that could be optimized via A/B testing, so we created autotune to make adding tests and options as easy as adding a line of code.

For example, here's how we let autotune pick the best title for the button that opens the quicktype web app on quicktype.io:

import { autotune } from "autotune";

function render() {
    let buttonTitle = autotune.oneOf("Open button title", [
      "Launch",
      "Try now",
      "Open app",
      "Generate code",
      "Open quicktype"
    ]);
    
    function launch() {
        autotune.complete();
        window.location.href = "https://app.quicktype.io";
    }

    return <Button onClick={launch} title={buttonTitle} />;
}

At first, autotune picked buttonTitle randomly, but soon it determined that "Generate code" performed best—14% better than "Open quicktype"—so autotune caused "Generate code" to be picked more often, increasing the number of users who open app.quicktype.io from quicktype.io.

Check out autotune.xyz to try autotune for free today, and please let us know how it goes!

David

David