Table of Contents
What is swiftui and uikit
i. Swift UI was introduced with iOS 7 and had a major update, called version 2.0 in 2015, which was based on the Swift programming language. It sets forth a number of user interface technologies, such as Interface Builder and Auto Layout , which are built-in.
ii. However, it had a major problem: It has no way of being integrated with Xcode and iOS development tools. That is, there is no way to debug UIKit applications with Swift code in a separate window. Actually, the problem of debugging UIKit apps can be solved by using QEMU or HWloc, but that way is not satisfactory.
iii. On the other hand, uikit is a UI framework based on Cocoa Touch. It was released in 2008, and is still being used by apps on iOS today.
iv. Therefore, the decision-making for Apple was to choose uikit as the development platform for iOS and Xcode:
v. 1). Due to its integration with iOS dev tools; and

How do they compare
i. SwiftUI is a successor to the Apple UIKit framework, which was introduced with iOS. It inherits protocol-oriented programming (“protocol-oriented programming,” n.d.) from Cocoa and Cocoa Touch, which allows it to play nicely with the Objective-C code that many developers have used for years . While SwiftUI uses many modern concepts for the implementation of user interface elements, it borrows from Apple’s decades-old APIs in a lot of ways. For example, it uses the same form elements that UIKit already supports.
ii. A lot of early criticism about SwiftUI focused on these parallels. However, SwiftUI has plenty of features that make it better than UIKit , and it does a very good job when compared to other frameworks from Microsoft and the other major Internet companies .
iii. In reality, SwiftUI deserves serious consideration for developers who want a lightweight framework that doesn’t get in the way of their productivity . It’s one of the most popular frameworks for apps in the Apple Store, and even third-party apps use it to great effect.
Which one should you use in your project
i. Because SwiftUI and UIKit are so similar, most developers choose to use SwiftUI in their projects, especially when the goal is to continue using Objective-C code that is written for iOS 7 or earlier . In this case, you should not use UIKit with Swift as it will likely cause your app to crash. ii. SwiftUI is a newer technology and was designed to be used in iOS 9 apps or later. It also has a slightly different approach to user interface design than UIKit. When you start designing your app’s user interface, think about how the user will interact with it using the latest iPhone X or iPad Pro models. Also remember that the iPad Pro has a much larger screen size and is often used in landscape orientation, so you should design your app’s UI accordingly .
iii. If you are using a Swift development tool, such as Xcode, or if you work for an organization that supports the latest version of Swift, then SwiftUI is likely the best choice. Otherwise, use UIKit.

Pros and cons of each framework
i. Signals. To make things easier for developers, Apple has made a number of changes to core functionality; these include Background Execution and Changes to the Event Loop . Both of these changes have a significant impact on how developers can enhance their apps without having to worry about system-level interactions—such as low memory warnings or even low battery levels—that might interfere with the user experience.
ii. Core Display Types. Apple has introduced two new display types for iOS 6 (along with three new display types for OS X 10.10, announced at this year’s WWDC ). These display types are Dynamic Type and Auto Layout . Dynamic Type automatically adjusts the type size based on the contents of the app, giving developers a quick way to create apps that provide optimal sizing. Auto Layout, on the other hand, essentially lets developers create apps that can scale to fit any device running iOS 6. Developers no longer have to worry about creating multiple layouts for different devices—should a developer want to support a given device, it will automatically adapt to accommodate the screen size of that device.
## 3. iOS + OS X

When to use one over the other
i. It is important to understand when to use which framework, because those are the features that will have the biggest impact on your app’s user experience. This decision is usually based on the actual content of your app and its intended audience . For example, UIKit is used for apps such as Notes, for which a large percentage of users may be expected to be still using iOS 6 or earlier . UIKit is also used when speed and UI performance are a concern.
ii. On the other hand, most third-party or open-source frameworks have been built specifically to work with UIViewController, which means they won’t be as efficient if you try to use them in your app in place of UIKit .
iii. UIKit or SwiftUI?
iv. When deciding whether to use UIKit or SwiftUI, you should consider the following:
