All Projects β†’ acrocat β†’ Everlayout

acrocat / Everlayout

Licence: mit
Reusable, downloadable, up-datable iOS layouts

Programming Languages

swift
15916 projects

Projects that are alternatives of or similar to Everlayout

Stevia
πŸƒ Concise Autolayout code
Stars: ✭ 3,182 (+2989.32%)
Mutual labels:  xcode, cocoapods, autolayout
Tangramkit
TangramKit is a powerful iOS UI framework implemented by Swift. It integrates the functions with Android layout,iOS AutoLayout,SizeClass, HTML CSS float and flexbox and bootstrap. So you can use LinearLayout,RelativeLayout,FrameLayout,TableLayout,FlowLayout,FloatLayout,LayoutSizeClass to build your App θ‡ͺεŠ¨εΈƒε±€ UIView UITableView UICollectionView
Stars: ✭ 984 (+855.34%)
Mutual labels:  xcode, cocoapods, autolayout
Uitextfield Navigation
πŸ„β€β™‚οΈ UITextField-Navigation makes it easier to navigate between UITextFields and UITextViews
Stars: ✭ 436 (+323.3%)
Mutual labels:  xcode, cocoapods, interface-builder
Localize
Localize is a framework writed in swift to localize your projects easier improves i18n, including storyboards and strings.
Stars: ✭ 253 (+145.63%)
Mutual labels:  json, xcode, cocoapods
Snapkit
A Swift Autolayout DSL for iOS & OS X
Stars: ✭ 18,091 (+17464.08%)
Mutual labels:  xcode, cocoapods, autolayout
Mylinearlayout
MyLayout is a powerful iOS UI framework implemented by Objective-C. It integrates the functions with Android Layout,iOS AutoLayout,SizeClass, HTML CSS float and flexbox and bootstrap. So you can use LinearLayout,RelativeLayout,FrameLayout,TableLayout,FlowLayout,FloatLayout,PathLayout,GridLayout,LayoutSizeClass to build your App θ‡ͺεŠ¨εΈƒε±€ UIView UITab…
Stars: ✭ 4,152 (+3931.07%)
Mutual labels:  xcode, cocoapods, autolayout
Ttsegmentedcontrol
An elegant, animated and customizable segmented control for iOS created by Tapptitude
Stars: ✭ 471 (+357.28%)
Mutual labels:  xcode, cocoapods, interface-builder
Rainbowbar
Progress bar with wild animation for notched status bar
Stars: ✭ 34 (-66.99%)
Mutual labels:  xcode, cocoapods
Swiftysound
SwiftySound is a simple library that lets you play sounds with a single line of code.
Stars: ✭ 995 (+866.02%)
Mutual labels:  xcode, cocoapods
Fugen
Command line tool for exporting resources and generating code from your Figma files
Stars: ✭ 41 (-60.19%)
Mutual labels:  xcode, cocoapods
Unboxedalamofire
[Deprecated] Alamofire + Unbox: the easiest way to download and decode JSON into swift objects.
Stars: ✭ 65 (-36.89%)
Mutual labels:  json, cocoapods
Bfkit Swift
BFKit-Swift is a collection of useful classes, structs and extensions to develop Apps faster.
Stars: ✭ 963 (+834.95%)
Mutual labels:  xcode, cocoapods
Ios Category
iOS ε·₯ε…·εˆ†η±»ζ•΄η†
Stars: ✭ 30 (-70.87%)
Mutual labels:  json, cocoapods
Swiftymessenger
Swift toolkit for passing messages between iOS apps and extensions.
Stars: ✭ 48 (-53.4%)
Mutual labels:  xcode, cocoapods
Imageslideshow
A Swift Image SlideShow for iOS
Stars: ✭ 68 (-33.98%)
Mutual labels:  xcode, cocoapods
Sketchkit
A lightweight auto-layout DSL library for iOS & tvOS.
Stars: ✭ 40 (-61.17%)
Mutual labels:  cocoapods, autolayout
Swiftlyext
SwiftlyExt is a collection of useful extensions for Swift 3 standard classes and types πŸš€
Stars: ✭ 31 (-69.9%)
Mutual labels:  xcode, cocoapods
Luautocompleteview
Highly configurable autocomplete view that is attachable to any UITextField
Stars: ✭ 55 (-46.6%)
Mutual labels:  xcode, cocoapods
Dtgradientbutton
Easy way to set gradient background to your buttons.
Stars: ✭ 76 (-26.21%)
Mutual labels:  xcode, cocoapods
Loadingshimmer
An easy way to add a shimmering effect to any view with just one line of code. It is useful as an unobtrusive loading indicator.
Stars: ✭ 1,180 (+1045.63%)
Mutual labels:  xcode, cocoapods

EverLayout

EverLayout translates JSON/XML data into iOS layouts which can be downloaded, reused and updated at runtime.

Carthage compatible Pod Version Swift Version License MIT Plaform

Features

  • Create comprehensive layouts without the clumsiness of Interface Builder or view controllers bloated with layout code.
  • Downloadable layouts - Layouts written in JSON/XML can be downloaded from a web server, meaning an App UI can be updated without having to submit for App Review.
  • Build layouts with real-time update using a simple HTTP server (or EverLayout Bridge).
  • A/B Testing - Testing multiple UIs with your users is easy when building a layout is just loading a file.

Docs

More detailed documentation here.

The documentation was most recently updated for version 0.9.3.

Requirements

  • iOS 8.0+
  • Xcode 8.2
  • Swift 3

Installation

Cocoapods

Add EverLayout to your Podfile

platform :ios, '8.0'
use_frameworks!
pod 'Everlayout'

Carthage

Create a Cartfile that lists the framework and run carthage update.

github "acrocat/EverLayout"

EverLayout Bridge

EverLayout Bridge can be installed via Node Package Manager.

npm install -g ever-layout-bridge

More info here

Usage Example

Layout file

{
	"name":"ViewController",
	"root":{
		"views":{
			"exampleButton":{
				"constraints":{
					"center":"@super",
					"width":"+120",
					"height":"+80"
				},
				"properties":{
					"text":"Tap Me!"
				}
			}
		}
	}
}

Swift

import UIKit
import EverLayout

class ViewController: UIViewController {
    private var layout : EverLayout?
    public let exampleButton : UIButton = UIButton()
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        let layoutData = NSData(contentsOfFile: Bundle.main.path(forResource: "ViewController", ofType: "json", inDirectory: "Layouts")!) as! Data
        self.layout = EverLayout(layoutData: layoutData)
        self.layout?.build(onView: self.view, viewEnvironment: self)
    }
}

Bridge Example

Basic example

{
	"name":"ViewController",
	"root":{
		"views":{
			"!redSquare":{
				"constraints": {
					"width height":"+180",
					"center":"@super <24"
				},
				"properties":{
					"backgroundColor":"red"
				}
			}
		}
	}
}

Here I am running a blank application in the simulator side-by-side with a ViewController layout described in JSON, which is loaded by the default View Controller. The app has connected to EverLayout Bridge which is serving it layout updates ever time I save the layout file.

In the example I am just changing the properties of a UIView to show how layouts can be designed/built without having to re-compile the app.

Discussion

At the moment EverLayout is more of an experiment than a solution. The idea was born through frustration of Interface Builder and the existing alternative of clunky layout code.

The goal of this project is to find a middle ground which can offer the real-time 'visual' approach of IB, and the flexibility and re-usability of layouts described with code.

Further Reading

Building and distributing iOS Layouts with EverLayout

Downloading an iOS Layout

Contribute

Contributions to EverLayout are welcome! If you have feature requests please raise an issue, or contact me at [email protected], or @greatirl.

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].