Yet another library for adjusting parameters and feature flagging.

What's New

1.0.3 - Wankel



  • Wrong floating ball position after rotation.
  • Wrong install instruction for Carthage.


TweaKit, a.k.a. "Tweak It", is a pure-swift library for adjusting parameters and feature flagging.


  • Declaring tweaks with property wrapper and result builder.
  • Tweaking frequently used types on the fly.
  • Carefully designed UI/UX.
  • Searching tweaks fuzzily.
  • Importing and exporting tweaks with json.


  • iOS 13 and later
  • Swift 5.4 and later



pod 'TweaKit', '~> 1.0'


github "Alpensegler/TweaKit" ~> 1.0

Swift Package Manager

.package(url: "", .upToNextMajor(from: "1.0.0"))

Get Started

Declare Tweaks

import TweaKit

enum Tweaks {
    @Tweak<CGFloat>(name: "Line Width", defaultValue: 1, from: 0.5, to: 2, stride: 0.05)
    static var sketchLineWidth
    @Tweak(name: "Line Color", defaultValue: UIColor(red: 0.227, green: 0.529, blue: 0.992, alpha: 1))
    static var sketchLineColor
    @Tweak(name: "Order", defaultValue: SketchAction.allCases)
    static var sketchActionsOrder
    @Tweak(name: "Name", defaultValue: "My Sketch")
    static var sketchName
    @Tweak(name: "Navigation Title", defaultValue: "Demo", options: ["Demo", "Example", "Guide"])
    static var rootViewNavigationTitle
    @Tweak(name: "Shake To Show Tweaks", defaultValue: true)
    static var rootViewEnableShake
    static let context = TweakContext {
        TweakList("Sketch") {
            TweakSection("Line") {
            TweakSection("Info") {
            TweakSection("Actions") {
        TweakList("Root View") {
            TweakSection("UI") {
            TweakSection("Interaction") {

You can tweak the following types:

  • Bool
  • Numeric Types: Int[8|16|32|64], UInt[8|16|32|64], Float, Double and CGFloat
  • String
  • Array that Element conforming some protocols
  • UIColor

Aside from changing value in place, you can also select value from given options.

Initialize Tweak Context

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    _ = Tweaks.context
    return true

You can initialize tweak context at any time, but you should make sure the context is initialized before using tweaks in it.

Use Tweaks

myViewController.title = Tweaks.rootViewNavigationTitle
mySketchView.lineWidth = Tweaks.sketchLineWidth

Show the Tweak UI

Screenshot1 Screenshot2 Screenshot3 Screenshot4

Screenshot5 Screenshot6 Screenshot7 Screenshot8

That's all. Now you already know enough about TweaKit.

Feel free to play with the demo app or check wiki and documentation for more usage information.


About The Logo

The logo of TweaKit is a cute stoat, a mustelid that can tweak fur color during summer and winter.


  • Swift Tools 5.4.0
View More Packages from this Author


  • None
Last updated: Sat May 20 2023 01:52:23 GMT-0500 (GMT-05:00)