All Projects → Lessica → Xui

Lessica / Xui

Licence: mit
A drop-in replacement for iOS Settings Bundle "Settings.bundle".

Projects that are alternatives of or similar to Xui

Mac
macOS Mojave v. 10.14 setup for developers.
Stars: ✭ 209 (+248.33%)
Mutual labels:  settings, preferences
JsonSettings
This library simplifies creating configuration for your C# app/service by utilizing the serialization capabilities of Json.NET to serialize nested (custom) objects, dictionaries and lists as simply as by creating a POCO and inheriting JsonSettings class.
Stars: ✭ 59 (-1.67%)
Mutual labels:  settings, preferences
Settings View
🔧 Edit Atom settings
Stars: ✭ 226 (+276.67%)
Mutual labels:  settings, preferences
Mac Setup
🛠️ Front end web development setup for macOS.
Stars: ✭ 265 (+341.67%)
Mutual labels:  settings, preferences
MaterialPreferences
🍉 An Android library that lets you implement MaterialPreferences on Setting UI.
Stars: ✭ 21 (-65%)
Mutual labels:  settings, preferences
Aiforms.settingsview
SettingsView for Xamarin.Forms
Stars: ✭ 274 (+356.67%)
Mutual labels:  settings, uitableview
Carbon
🚴 A declarative library for building component-based user interfaces in UITableView and UICollectionView.
Stars: ✭ 1,034 (+1623.33%)
Mutual labels:  uitableview
Activeadmin settings cached
UI interface for rails-settings-cached in active admin
Stars: ✭ 51 (-15%)
Mutual labels:  settings
Sublime Text 2 User Settings
💾 2011–2013 — My user settings for Sublime Text 2
Stars: ✭ 45 (-25%)
Mutual labels:  settings
Lexikpayboxbundle
LexikPayboxBundle eases the implementation of the Paybox payment system
Stars: ✭ 42 (-30%)
Mutual labels:  bundle
Lexikcurrencybundle
This Symfony2 bundle provide a service and a Twig extension to convert and display currencies.
Stars: ✭ 59 (-1.67%)
Mutual labels:  bundle
Bundlizer
Android Bundle format support for Kotlinx Serialization.
Stars: ✭ 56 (-6.67%)
Mutual labels:  bundle
Material Prefs
⚙ A beautiful and extensible API for bulding preferences screen
Stars: ✭ 51 (-15%)
Mutual labels:  preferences
Easyandroid
一系列简单、轻量、方便的Android开发工具集合(持续更新中),包括Android动态权限、SharedPreferences、反射、日志、Toast、Bundle、MVP、线程池、Html、图文混排、蒙层引导、拍照、图库选择等
Stars: ✭ 1,039 (+1631.67%)
Mutual labels:  bundle
Liipurlautoconverterbundle
[DEPRECATED] This bundle will add a Twig Extension for templates with a new filter for automatically converting urls and emails in a string to html links
Stars: ✭ 53 (-11.67%)
Mutual labels:  bundle
Pagingkit
PagingKit provides customizable menu UI. It has more flexible layout and design than the other libraries.
Stars: ✭ 1,030 (+1616.67%)
Mutual labels:  uitableview
Fmbbcodebundle
🔠 BBCode bundle for Symfony projects
Stars: ✭ 56 (-6.67%)
Mutual labels:  bundle
Laravel Settings
Simple Settings package for a laravel application
Stars: ✭ 45 (-25%)
Mutual labels:  settings
Mdl11 generics
Example project that was demonstrated on MDL #11 meetup - https://www.youtube.com/watch?v=A4FrEyFBjVA. Medium article - https://medium.com/chili-labs/configuring-multiple-cells-with-generics-in-swift-dcd5e209ba16
Stars: ✭ 50 (-16.67%)
Mutual labels:  uitableview
Mac config
Scripted installation and configuration of Mac OS X apps and preferences
Stars: ✭ 55 (-8.33%)
Mutual labels:  preferences

XUI

CI Status Cocoapods

// XUI in a single line
[XUIListViewController presentFromTopViewControllerWithDictionary:@{  @"items": { @"default": @YES, @"label": @"Feature", @"cell": @"Switch", @"key": @"switch1" } }];

Make a configuration UITableView in 5 minutes? Let's do it!

XUI is a drop-in replacement for "Settings Application Schema" on iOS. It allows application to show preferences view controller by creating a simple configuration bundle (much like "Settings.bundle").

Features

  • [x] Data Persistence (NSUserDefaults / Custom Adapters)
  • [x] Localized Strings / Image Resources
  • [x] Custom Cells (Runtime)
  • [x] Notifications

Components

XUI provides more components than private framework "Preferences.framework":

  • [x] Group
  • [x] Link (Child Pane)
  • [x] Switch
  • [x] Button (Action)
  • [x] TextField
  • [x] Radio / Checkbox Group
  • [x] Segment Group
  • [x] Single Selection Option List
  • [x] Multiple Selection Option List
  • [x] Ordered Multiple Selection Option List
  • [x] Slider
  • [x] Stepper
  • [x] DateTime Picker
  • [x] TitleValue
  • [x] StaticText
  • [x] Textarea
  • [x] Image
  • [x] Editable List (Strings)

Usage

// to specify the path for Settings.bundle
NSString *bundlePath = [[NSBundle mainBundle] pathForResource:@"Settings" ofType:@"bundle"];

// to specify the root entry for that bundle
NSString *xuiPath = [[NSBundle bundleWithPath:bundlePath] pathForResource:@"Root" ofType:@"plist"];

// present or push it!
XUIListViewController *xuiController = [[XUIListViewController alloc] initWithPath:xuiPath withBundlePath:bundlePath];
XUINavigationController *navController = [[XUINavigationController alloc] initWithRootViewController:xuiController];
[self presentViewController:navController animated:YES completion:nil];
NSString *xuiPath = [[NSBundle bundleWithPath:bundlePath] pathForResource:@"Root" ofType:@"plist"];

// directly present XUI from the top most view controller
[XUIListViewController presentFromTopViewControllerWithPath:xuiPath];

Configurations

If the key defaults is not set, configuration will be saved to Standard User Defaults.

NSNumber *enabled = [[NSUserDefaults standardUserDefaults] objectForKey:@"enabled"];
[enabled boolValue];

Notification

XUINotificationEventValueChanged: Any

Theme

XUI Theme can be configured in theme dictionary.

Adapter

Create custom adapter to read the interface schema from any format you like: plist, json, or lua. Adapter also handles data persistence and notifications.

Logger

To know if there is any invalid in our interface schema...

Custom Cells

Inherit from XUIBaseCell then have fun with your own cells whether it is xib based layout or not. XUI will automatically load custom cells.

More Documentation

https://github.com/Lessica/XUI/wiki/

Example

To run the example project, clone the repo, and run pod install from the Example directory first.

Demo

Requirements

  • Xcode 7 or above
  • iOS 7 or above
  • Objective-C (ARC)
  • iPhone / iPad compatible.

Installation

XUI is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod 'XUI', :git => "https://github.com/Lessica/XUI.git"

Author

Lessica, [email protected]

License

XUI is available under the MIT license. See the LICENSE file for more info.

Related Projects

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].