All Projects → layoutBox → Layoutframeworkbenchmark

layoutBox / Layoutframeworkbenchmark

Licence: bsd-3-clause
Benchmark the performances of various Swift layout frameworks (autolayout, UIStackView, PinLayout, LayoutKit, FlexLayout, Yoga, ...)

Programming Languages

swift
15916 projects

Projects that are alternatives of or similar to Layoutframeworkbenchmark

Kvconstraintkit
An Impressive Auto Layout DSL for iOS, tvOS & OSX. & It is written in pure swift.
Stars: ✭ 91 (-71.2%)
Mutual labels:  osx, tvos, layout, autolayout
Swiftfortunewheel
The ultimate spinning wheel view that supports dynamic content and rich customization.
Stars: ✭ 114 (-63.92%)
Mutual labels:  osx, tvos
Stevia
🍃 Concise Autolayout code
Stars: ✭ 3,182 (+906.96%)
Mutual labels:  layout, autolayout
VanillaConstraints
🍦 Simplified and chainable AutoLayout constraints for iOS.
Stars: ✭ 42 (-86.71%)
Mutual labels:  layout, autolayout
Nord Xcode
An arctic, north-bluish clean and elegant Xcode color theme.
Stars: ✭ 63 (-80.06%)
Mutual labels:  osx, tvos
Extendable
Blocks Based Bluetooth LE Connectivity framework for iOS/watchOS/tvOS/OSX. Quickly configure centrals & peripherals, perform read/write operations, and respond characteristic updates.
Stars: ✭ 88 (-72.15%)
Mutual labels:  osx, tvos
Fire
🔥A delightful HTTP/HTTPS networking framework for iOS/macOS/watchOS/tvOS platforms written in Swift.
Stars: ✭ 243 (-23.1%)
Mutual labels:  osx, tvos
Core Layout
Flexbox & CSS-style Layout in Swift.
Stars: ✭ 215 (-31.96%)
Mutual labels:  layout, autolayout
wwlayout
Swifty DSL for programmatic Auto Layout in iOS
Stars: ✭ 46 (-85.44%)
Mutual labels:  layout, autolayout
Jsonify
♨️A delightful JSON parsing framework.
Stars: ✭ 42 (-86.71%)
Mutual labels:  osx, tvos
Swift-IOS-ANE
FlashRuntimeExtensions.swift. Example Air Native Extension written in Swift 5 for iOS, macOS and tvOS
Stars: ✭ 56 (-82.28%)
Mutual labels:  osx, tvos
Sqlitelib
Easily build a custom SQLite static library for use in macOS and iOS frameworks and apps.
Stars: ✭ 38 (-87.97%)
Mutual labels:  osx, tvos
Xcake
🍰 Describe Xcode projects in a human readable format and (re)generate one on demand.
Stars: ✭ 549 (+73.73%)
Mutual labels:  osx, tvos
Blueprints
🌀 Blueprints - A framework that is meant to make your life easier when working with collection view flow layouts.
Stars: ✭ 874 (+176.58%)
Mutual labels:  tvos, layout
Darklightning
Simply the fastest way to transmit data between iOS/tvOS and OSX
Stars: ✭ 286 (-9.49%)
Mutual labels:  osx, tvos
Metal Tutorial
Metal入门资料,涉及到iOS平台,OSX平台,TvOS平台,其中,OSX平台可以直接运行,iOS平台,TvOS平台都需要使用真机设备测试运行。下面是相关博客,欢迎拍砖
Stars: ✭ 156 (-50.63%)
Mutual labels:  osx, tvos
Framelayoutkit
FrameLayoutKit is a super fast and easy to use autolayout kit
Stars: ✭ 53 (-83.23%)
Mutual labels:  layout, autolayout
Flexlib
FlexLib是一个基于flexbox模型,使用xml文件进行界面布局的框架,融合了web快速布局的能力,让iOS界面开发像写网页一样简单快速
Stars: ✭ 1,569 (+396.52%)
Mutual labels:  layout, autolayout
Driftwood
Driftwood is a DSL to make Auto Layout easy on iOS, tvOS and macOS.
Stars: ✭ 14 (-95.57%)
Mutual labels:  tvos, autolayout
EZAnchor
An easier and faster way to code Autolayout
Stars: ✭ 25 (-92.09%)
Mutual labels:  layout, autolayout

FlexLayout

Layout Framework Benchmark


Benchmark the performances of various Swift layout frameworks.

Requirements

  • iOS 8.0+
  • Xcode 8.0+
  • Swift 3.0+

History

This project is a spin-off of the excellent LayoutKit benchmark. The benchmark has been extracted to add other iOS layout frameworks and to compare them.


Why?

Choosing the right layout framework for your project is an important decision. The frameworks API is quite important, but its performance is also important. To help you with that decision, this benchmark compare different layout frameworks.


Benchmark charts

General comparison

This chart display a general comparison between device performance using each layout frameworks. It displays the performance when layouting UICollectionView cells. This graph shows performance when layouting 100 UICollectionView cells.

The Y axis indicates the number of seconds to render all cells.


Layout frameworks

The benchmark currently includes the following layout frameworks:
(ordered alphabetically and use the framework GitHub's description):

📌 Anyone who would like to integrate any other layout frameworks to this GitHub project is welcome.


Benchmark details

The benchmark layout UICollectionView cells in multiple pass, each pass contains more cells than the previous one.

Benchmark cell's layout

Here are the benchmark rendering results to compare visual results:

📌 Some work would be required to adjust the layout so that they all match perfectly.


Benchmark data

You can see the benchmark's data and charts in this Google Spreadsheet Document.


Details for different devices

The X axis in following charts indicates the number of cells contained for each pass. The Y axis indicates the number of seconds to render all cells from one pass.







Project's TODO list

  • Create a reference layout and update layout codes to match that reference.
  • Display benchmark charts inside the app and being to able to export them.
  • Export benchmark data to a spreadsheet.
  • Add more layout frameworks.
  • OSX support.
  • tvOS support.
  • ...

Contributing, comments, ideas, suggestions, issues, ....

For any comments, ideas, suggestions, simply open an issue.

If you'd like to contribute by adding other layout framework, you're welcomed!


Adding another layout framework

The process is currently tedious...

  • Add an implementation of the reference view.
  • Run on all reference devices (or at least the two latest generation) in Release mode.
  • Select the new layout from the Benchmark App.
  • Update the XLSX document.
  • Add a new chart
  • Save the chart using "Save as Picture..."
  • Update the README.md
  • Create a pull request.

License

BSD 3-Clause License

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