macOS app to generate Swift 5 code for models from JSON (with Codeable)

SwiftyJSONAccelerator – MacOS app Codeable Model file Generator For Swift 5

Version v2.2

Version v2.1

  • Tests are back – major parts of the code is covered.
  • Multiple file model generator is working again.

Version v2.0 (Swift 5)

  • Generates Swift 5 Codeable version along with CodingKeys.
  • Allows support to switch between Optional and non-optional variations.
  • Temporarily support for CLI and tests have been removed.
  • UI now supports Dark mode!

Installing & Building

  • Building:

    pod install
    

    You will also need to install SwiftFormat with brew install swiftformat and SwiftLint with brew install swiftlint.

  • Application Only: Download the .app (v2.2.0)

Features

A Swift model generator like the Objective-C JSONAccelerator. Formats and generates models for the given JSON and also breaks them into files making it easy to manage and share between several models.

  • The models that are generated depend Swift’s inbuilt Codeable feature making encoding and decoding objects a thing of the past.
  • Allows to opt for either optional or non-optional variables.
  • Allows an array of a certain object type with different properties to be merged into a single model with all properties.
  • Click Load folder with JSON files + Config to generate all possible models for given folder with JSON files, note this needs a .config.json as this uses the CLI logic internally.

TODO

  • CLI tool needs to be recreated
  • Tests needed to be added again
  • Sparkle integration to deploy newer versions
  • Deployment using homebrew
  • Add support for Codextended.

Older Swift Versions

The older version of the project generating older swift code. Please keep in mind it is no longer supported.

Contributions and Requests

Any suggestions regarding code quality of the app, generated code’s quality, Swift related improvements and pull requests are all very welcome. Please make sure you submit the pull request to the next release branch and not the master branch.

License

MIT License / Karthikeya Udupa

GitHub

https://github.com/insanoid/SwiftyJSONAccelerator