Latest 0.1.0
Homepage https://github.com/jeksys/DB6
License MIT
Platforms ios 8.0, requires ARC
Authors

License
Platform
Swift 3.x
Blog
MadeWithLove

App Configuration via Plist, inspired by original DB5 library and https://github.com/tombenner/nui

by Eugene(https://jeksys.github.io/)

Usage

1. Create Plist

Add plist file to your project or copy a demo file from the demo project.

2. Define your plist keys

Add keys and values to your plist file

How it works

Initialize theme manager

var themeLoader = DB6ThemeLoader(themeFilename: "DB6Demo")
var theme = DB6Theme.default

Read primitive values

let stringKey = "string"
let stringValue = theme?.string(key: stringKey)

let key="integer"
let value = theme?.integer(key: key)

let key="float"
let value = theme?.float(key: key)

let key="double"
let value = theme?.double(key: key)

let key="boolean"
let value = theme?.bool(key: key)

let key = "colorHex"
let value = theme?.color(key: key)

Read values by reference

The theme manager allows you to read not only values from the plist file, but also use references for another values. A reference starts with @ symbol. If the there is not such key in the dictionary the reference string will be returned.

Style your UI controls.

You can style your UI controls with a dictionary in plist file. See the demo project.

You add multiple styles in the Interface Builder. There is "style" custom attribute.
Or you can do it programmatically.

let style = "loginbutton"
let button = UIButton()

theme.update(button: button, key: style)

Demo App

You can find a demo app, which explain how the library works via some sample code and unit tests.

Installation

Carthage – not available yet

DB6 is available through Carthage. To install it, simply add the following line to your Cartfile:

github "jeksys/DB6"

CocoaPods – not available yet

DB6 is available on CocoaPods.
Add the following to your Podfile:

pod 'DB6'

Manually

Just add the Classes folder to your project.

License

DB6 is available under the MIT license. See the LICENSE file for details.

TODO

  • [x] Add variables
  • [x] Add support for native plist types (Number, Boolean, Date)
  • [ ] Add support for plist dictionaries
  • [ ] Add support for plist arrays
  • [ ] Add Cocoa pod support
  • [ ] Add Swift package manager support
  • [ ] Add Carthage support
  • [ ] Add theme switcher
  • [ ] Add more UI components

Latest podspec

{
    "name": "DB6",
    "version": "0.1.0",
    "summary": "DB6 is App Appearance Configuration via Plist",
    "homepage": "https://github.com/jeksys/DB6",
    "license": "MIT",
    "authors": {
        "Eugene Yagrushkin": "[email protected]"
    },
    "social_media_url": "https://jeksys.github.io/",
    "platforms": {
        "ios": "8.0"
    },
    "source": {
        "git": "https://github.com/jeksys/DB6.git",
        "tag": "0.1.0"
    },
    "source_files": "DB6/Classes/*.swift",
    "requires_arc": true,
    "pushed_with_swift_version": "3.0"
}

Pin It on Pinterest

Share This