Coder Social home page Coder Social logo

ddhtweaks's Introduction

DDHTweaks

Tweak UI elements at runtime to find the perfect values.

What is it?

Tweaks lets you make changes to your iOS app while it is running. This is especially useful if you are not sure about the right font size, colors or if you want to hide certain functionallities from some of your testers.

Installation

SPM

Add the DDHTweaks package version 1.2.0.

Usage

If you project has a SceneDelegate.swift, replace scene(_:willConnectTo:options:) with the following implementation.

func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
  guard let scene = (scene as? UIWindowScene) else { return }
  
  let root = window?.rootViewController
  window = ShakeableWindow(windowScene: scene)
  window?.rootViewController = root
  window?.makeKeyAndVisible()
}

If you don't have a SceneDelegate.swift set the window property in AppDelegate.swift to the following line of code.

var window: UIWindow? = ShakeableWindow(frame: UIScreen.main.bounds)

The tweaks from the gif above are created like this:

override func viewDidLoad() {
  20.tweak("Text/Size", min: 10, max: 40) { tweak in
    print(tweak)
    self.label.font = UIFont.systemFont(ofSize: CGFloat(tweak.currentValue!))
  }
}

override func viewWillAppear(_ animated: Bool) {
  super.viewWillAppear(animated)
  
  label.textColor = UIColor.black.tweak("Text/Color")
  
  view.backgroundColor = UIColor.white.tweak("Background/Color")
  
  label.text = "Hello".tweak("Text/Text")
  
  button.isHidden = !false.tweak("Button/Show")
}

Build and run the App. In the Simulator go to Hardware/Shake Gesture.

If you add an action to a tweak this is run when ever the value is changed.

Supported types for tweaks

  1. Float
  2. Double
  3. Bool
  4. String
  5. UIColor

Author

Dominik Hauser

Twitter: @dasdom

Thanks

Thanks to facebook for the Objective-C version of Tweaks that I used as inspiration.

Licence

MIT Licence. See the LICENCE file for details.

ddhtweaks's People

Contributors

dasdom avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

chunkyguy

ddhtweaks's Issues

Swift 1.2 minor issues

Some issues with swift 1.2, the conversion tool gives 2 or 3 change recommendations. I might submit a pull request, but I'm still new to swift so not sure if the decisions were right.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.