Codeable
Model file Generator For Swift 5
SwiftyJSONAccelerator - MacOS app
Version v2.2
- Generate initializer function for classes
- Application Download: Download the .app (v2.2.0)
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 withCodingKeys
. - 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
withbrew install swiftformat
andSwiftLint
withbrew 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.
- Version v1.4.0 (Swift 3) Download (v1.5.0)
- Version v0.0.6 (Swift 2) Download (v0.0.6)
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.