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

Overview

MadeInSweden Status

Version Carthage SPM CocoaPods

Platform Swift

🌟 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?

ConstraintErrors

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!)

OSScreenshots

Demo App

iOSMovie

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

States

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

ExampleRUIC1 ExampleRUIC1


What’s New?

  • Version 3.0.1 improves support for Swift 5.x.x.
  • Version 3.0 updates with new API and support for Swift 5.x.x.
  • Version 2.3 updates for Swift 4.2.
  • Version 2.2.1 adds support for Swift 4 and Xcode 9.
  • Version 2.2.0 adds support for Swift 4 and Xcode 9.
  • Version 2 adds support for table view as well as many refactorings to make UIPheonix even easier to use.

Requirements

  • Swift Version 5
  • Xcode 10

How to Install

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

  • Using Git: git clone https://github.com/MKGitHub/UIPheonix.git then add UIPheonix.swift to your Xcode project.
  • Manual Way: Add UIPheonix.swift to your Xcode project.
  • Using Carthage: In your Cartfile add github "MKGitHub/UIPheonix" ~> 3 then add UIPheonix.swift to your Xcode project.
  • Using Swift Package Manager: swift-tools-version:4.2
  • CocoaPods support has been removed! πŸ™Œ πŸ™ πŸŽ‰ Never use CocoaPods! πŸ’€

Documentation

Go to the documentation index page.

Used In Apps

UIPheonix is used in production in the following apps/games (that I'm aware of), these apps are together used by millions of users. Please let me know if you use UIPheonix.

  • McDonald's apps
  • LΓ₯nekoll
  • LeoVegas apps

Contributing

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 (www.cocoacontrols.com) 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.

Notes

https://github.com/MKGitHub/UIPheonix

http://www.xybernic.com

Copyright 2016/2017/2018/2019 Mohsan Khan

Licensed under the Apache License, Version 2.0

You might also like...
An easy to use UI component to help display a signal bar with an added customizable fill animation
An easy to use UI component to help display a signal bar with an added customizable fill animation

TZSignalStrengthView for iOS Introduction TZSignalStrengthView is an easy to use UI component to help display a signal bar with an added customizable

Flexible UI Framework Designed for Swift

Overlay Overlay is a very flexible UI framework designed for Swift. Note: Overlay is still under development and many things are subject to change. Fe

Simple and highly customizable iOS tag list view, in Swift.
Simple and highly customizable iOS tag list view, in Swift.

TagListView Simple and highly customizable iOS tag list view, in Swift. Supports Storyboard, Auto Layout, and @IBDesignable. Usage The most convenient

Dynamic textview with auto-resizing height & width that is also movable/draggable.
Dynamic textview with auto-resizing height & width that is also movable/draggable.

MarkupTextView Dynamic textview with auto-resizing height & width that is also movable/draggable. Requirements iOS 13 or above Installation MarkupText

A highly configurable and out-of-the-box-pretty UI library
A highly configurable and out-of-the-box-pretty UI library

We absolutely love beautiful interfaces! As an organization named Unicorn, we are obligated to be unique and majestic.

Highly customizable Action Sheet Controller with Assets Preview written in Swift
Highly customizable Action Sheet Controller with Assets Preview written in Swift

PPAssetsActionController Play with me ▢️ πŸ– If you want to play with me, just tap here and enjoy! 🎩 πŸ•΄ Show me πŸŽͺ Try me πŸ“² The easiest way to try me

🐝 Super ultra drawer view
🐝 Super ultra drawer view

UltraDrawerView let headerView = HeaderView() headerView.translatesAutoresizingMaskIntoConstraints = false headerView.heightAnchor.constraint(equalToC

A super lightweight popView.
A super lightweight popView.

SNAugusPopView Features High performance: The library's dependencies all use system libraries and files , only a instance global. Automatic layout: Th

πŸ“– A simple, highly informative page view controller
πŸ“– A simple, highly informative page view controller

TL;DR UIPageViewController done properly. ⭐️ Features Simplified data source management & enhanced delegation. Dynamically insert & remove pages. Infi

Releases(3.0.1)
Owner
Mohsan Khan
https://se.linkedin.com/in/mohsankhan
Mohsan Khan
Declarative, configurable & highly reusable UI development as making Lego bricks.

LeeGo is a lightweight Swift framework that helps you decouple & modularise your UI component into small pieces of LEGO style's bricks, to make UI dev

WANG Shengjia 969 Dec 29, 2022
Protocol oriented, type safe, scalable design system foundation swift framework for iOS.

Doric: Design System Foundation Design System foundation written in Swift. Protocol oriented, type safe, scalable framework for iOS. Features Requirem

Jay 93 Dec 6, 2022
A custom reusable circular / progress slider control for iOS application.

HGCircularSlider Example To run the example project, clone the repo, and run pod install from the Example directory first. You also may like HGPlaceho

Hamza Ghazouani 2.4k Jan 6, 2023
Super awesome Swift minion for Core Data (iOS, macOS, tvOS)

⚠️ Since this repository is going to be archived soon, I suggest migrating to NSPersistentContainer instead (available since iOS 10). For other conven

Marko Tadić 306 Sep 23, 2022
TSnackBarView is a simple and flexible UI component fully written in Swift

TSnackBarView is a simple and flexible UI component fully written in Swift. TSnackBarView helps you to show snackbar easily with 3 styles: normal, successful and error

Nguyen Duc Thinh 3 Aug 22, 2022
TDetailBoxView is a simple and flexible UI component fully written in Swift

TDetailBoxView is a simple and flexible UI component fully written in Swift. TDetailBoxView is developed to help users quickly display the detail screen without having to develop from scratch.

Nguyen Duc Thinh 2 Aug 18, 2022
TSwitchLabel is a simple and flexible UI component fully written in Swift.

TSwitchLabel is a simple and flexible UI component fully written in Swift. TSwitchLabel is developed for you to easily use when you need to design a UI with Label and Switch in the fastest way without having to spend time on develop from scratch.

Nguyen Duc Thinh 2 Aug 18, 2022
Easy to use, highly customizable gauge view

GDGauge - Customizable Gauge View Requirements Xcode 11+ Swift 5 iOS 9+ Installation Swift Package Manager .package(url: "https://github.com/saeid/GDG

Saeid 74 Dec 5, 2022
Kit for building custom gauges + easy reproducible Apple's style ring gauges.

GaugeKit ##Kit for building custom gauges + easy reproducible Apple's style ring gauges. -> Example Usage Open GaugeKit.xcworkspace and change the sch

Petr Korolev 1k Dec 23, 2022
DivKit is an open source Server-Driven UI (SDUI) framework.

DivKit ?? is an open source Server-Driven UI (SDUI) framework. It allows you to roll out server-sourced updates to different app versions. Also, it can be used for fast UI prototyping, allowing you to write a layout once and then ship it to iOS, Android, and Web platforms.

DivKit 1.6k Jan 9, 2023