Benchmark the performances of various Swift layout frameworks (autolayout, UIStackView, PinLayout, LayoutKit, FlexLayout, Yoga, ...)
Benchmark the performances of various Swift layout frameworks.
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.
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.
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.
The benchmark currently includes the following layout frameworks: (ordered alphabetically and use the framework GitHub's description):
Auto layout Apple's auto layout constraints. Auto layout benchmark's source code
FlexLayout FlexLayout adds a nice Swift interface to the highly optimized Yoga flexbox implementation. Concise, intuitive & chainable syntax. FlexLayout benchmark's source code
LayoutKit LayoutKit is a fast view layout library for iOS, macOS, and tvOS. LayoutKit benchmark's source code
Manual layout Layout is done by setting UIView's frame property directly. This implementation comes directly from the LayoutKit benchmark. Manual layout benchmark's source code
NKFrameLayoutKit NKFrameLayoutKit is a fast and easy to use layout library NKFrameLayoutKit benchmark's source code
NotAutoLayout Layout your views without Auto Layout constraints, in a much more swifty way. NotAutoLayout benchmark's source code
PinLayout Fast Swift UIViews layouting without auto layout. No magic, pure code, full control and blazing fast. Concise syntax, intuitive, readable & chainable. PinLayout benchmark's source code
UIStackViews Apple's UIStackViews. UIStackViews benchmark's source code
Yoga Yoga's performance hasn't been tested directly, but FlexLayout has. FlexLayout is a light Swift interface for Yoga.
📌 Anyone who would like to integrate any other layout frameworks to this GitHub project is welcome.
The benchmark layout UICollectionView cells in multiple pass, each pass contains more cells than the previous one.
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.
You can see the benchmark's data and charts in this Google Spreadsheet Document.
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.
For any comments, ideas, suggestions, simply open an issue.
If you'd like to contribute by adding other layout framework, you're welcomed!
The process is currently tedious...
Author: layoutBox
Source Code: https://github.com/layoutBox/LayoutFrameworkBenchmark
AppClues Infotech is a top Mobile App Development Company in USA building high-quality Android, iOS, and Native apps for Startups, SMBs, & Enterprises. Contact us now!
This article covers everything about mobile app wireframe design: what to do and what not, tools used in designing a mobile or web app wireframe, and more.
This article covers A-Z about the mobile and web app development process and answers your question on how long does it take to develop/build an app.
iPrism Tech is a one of the best and offshore mobile app development company in India, Saudi Arabia and USA. We are a major providers of android, iphone and ipad mobile app development services at economical prices.
Apple Swift App Development India: Mobile App Development India is an expert iOS Swift App Development company in India. We develop secure and robust mobile app solutions based on new Apple Swift language.