---
title: UIKit
tags: uikit
---
# UIKit
**UIKit** is a UI framework for Stardew Valley / SMAPI (although it should be relatively simple to port it to any XNA / MonoGame context).
UIKit tries to mimick as much behavior as possible from [Apple's](https://www.apple.com/) [UIKit](https://developer.apple.com/documentation/uikit) and [Auto Layout](https://developer.apple.com/library/archive/documentation/UserExperience/Conceptual/AutolayoutPG/index.html) frameworks, used on their iOS and macOS platforms. A lot of the knowledge related to building iOS UIs also applies to this framework.
UIs in UIKit are built using a view tree hierarchy, while actual view positioning and sizing is represented as a set of constraints (linear equations) between the views' "anchors".
Source code:
* [UIKit -- the framework](https://github.com/Shockah/Stardew-Valley-Mods/tree/dev/uikit/UIKit)
* [UIKitTools -- additional (debugging) tools, in the form of an SMAPI mod](https://github.com/Shockah/Stardew-Valley-Mods/tree/dev/uikit/UIKitTools)
---
<div style="float: right;">
<a href="https://hackmd.io/@Shockah/Skkq-TZMq">Getting started <i class="fa fa-chevron-right"></i></a>
</div>