Latest 2.1.1
License Apache License, Version 2.0
Platforms osx 10.11, ios 9.0, tvos 9.0, requires ARC



RUIC Implementation Version

★ Give this repo a star and help its development grow! ★

UIPheonix Logo

Inspired by game development UIPheonix is a super easy, flexible, dynamic and highly scalable UI framework + concept for building reusable component/control-driven apps for macOS, iOS and tvOS. The same API apply for cross-platform development! Think of it as using Lego blocks, you can use similar ones and move them around easy as pie.

Does this seem familiar to you?


Well not any more…

  • Forget static layouts, constraint issues and warning explosions in the console.
  • Forget all the glue code, all the boilerplate code and all the very common overly engineered unnecessary pile of garbage code in your apps.
  • Build and make changes to your UI quickly in a snap.
  • Make your UI reusable.
  • Focus on creating your app, not fighting layout issues.
  • Minimal setup, minimal impact on your app, lightweight, no dependencies, no pain but so much gain!
  • Builds on top of collection views & table views, so you can easily mix and match.
  • Does not replace Apple technologies with custom implementations, so you will always be safe and up-to-date, and you can easily revert at any time.
  • Demo apps provided for macOS, iOS and tvOS (Kung Fu!)


Demo App


  • Reusable UI Component/Control (from here on mentioned as a "RUIC") – Is basically just a model+view.
    You can configure a RUIC in any way you want, in the demo apps I’m using both JSON files and manual code setup for the models.

RUIC Diagram

  • Display Models (list) – An array of [model, model, model…] etc. this is how UIPheonix knows what to display.


  • Display State – In the demo apps I’m using a simple "state machine".
    You may find alternative solutions, and your milage may vary :-)

  • Model-View Relationships (dictionary) – A dictionary defining the relationship between model+view.

Example RUICs

Making a RUIC is pretty simple as making a model+view.


What’s New?

  • Version 2 adds support for table view as well as many refactorings to make UIPheonix even easier to use.
  • Please run & read the simple code in the demo apps.


  • Swift Version 3.0.1
  • ARC
  • macOS 10.11 and later
  • iOS 9.0 and later
  • tvOS 9.0 and later

How to Install

There is no framework/library distibution, I recommend that you add the UIPheonix/Sources|SingleFileSource to your project. As this will allow you to easily find & read the UIPheonix API, it will also allow UIPheonix to compile using your apps build settings.

  • Git: run git clone then Drag & Drop the UIPheonix/Sources|SingleFileSource into your Xcode project.
  • Manual: Drag & Drop the UIPheonix/Sources|SingleFileSource into your Xcode project.
  • Single File Install: All the UIPheonix source files have been merged into one single file for easy install, Drag & Drop the SingleFileSource/UIPheonix_*_*_*.swift file into your Xcode project.
  • Carthage: In your Cartfile add github "MKGitHub/UIPheonix" ~> 2.1.1 then carthage update --no-build then Drag & Drop the UIPheonix/Sources|SingleFileSource into your Xcode project.
    Manual Install
  • Swift Package Manager (still quite meaningless): run swift build or swift package generate-xcodeproj
  • CocoaPods (not recommended!): pod 'UIPheonix', '~> 2.1.1'


Go to the documentation index page.

Whats Next?

  • Add more features.
  • Try to make everything even simpler.

Used In Apps

UIPheonix is used in production in the following apps/games (known to me), these apps are together used by many millions of users every day. Please let me know if you use UIPheonix.

  • Hoppa
  • McDonald’s Sweden
  • McDonald’s Switzerland


Please contribute or create your own RUICs!

In the folder "3rd Party RUICs" you may add your own RUICs, if you already have a Cocoa Control ( please consider converting it to the simple UIPheonix architecture.
A great thing about RUICs in UIPheonix is that they all have the same architecture, so you don’t have to implement and follow different implementations for each Cocoa Control in your app = less fragmentation!

As UIPheonix may progress and evolve the "RUIC Implementation Version" will increase, and so in order to know which version of UIPheonix a RUIC is compatible with please add this info to your RUIC.


Copyright 2016/2017 Mohsan Khan

Licensed under the Apache License, Version 2.0.

Latest podspec

    "name": "UIPheonix",
    "version": "2.1.1",
    "summary": "UIPheonix is simple, it is a framework+concept for build apps where you create reusable UI controls and relate them to different states.",
    "homepage": "",
    "license": {
        "type": "Apache License, Version 2.0",
        "file": "LICENSE.txt"
    "authors": {
        "Mohsan Khan": "[email protected]"
    "platforms": {
        "osx": "10.11",
        "ios": "9.0",
        "tvos": "9.0"
    "source": {
        "git": "",
        "tag": "2.1.1"
    "source_files": "Sources/*.{swift}",
    "requires_arc": true,
    "pushed_with_swift_version": "3.0"

Pin It on Pinterest

Share This