UIKit is a framework for creating iOS and tvOS apps user interfaces. It is very important to know UIKit right now because SwiftUI (the new way in interface creating) is still young and only supports iOS 13 version and higher. So the next 2 to 4 years, UIKit will be must-know technology in native iOS development. It is cool if you want to learn SwiftUI, but if you are starting your native iOS developer way, then you need to know UIKit and Autolayout anyway. You can just look up on Objective-C and it is still in vacancies although Swift exists from 2014.
UIKit provides view architecture for our interfaces, the event handling, manage user interactions among the user and the system, animation support, document support, drawing, printing support, info about the current device, text management, search support, accessibility support, app extension support, and resource management.
In this part, we will gonna talk about Info.plist file and UIKit app requirements. It seems useless, but it is very important just to know what your app needs and how to provide info about some specific abilities of your app.
Each UIKit project must have App icons and Launch Screen storyboard. App icons are icons for Home screen, Settings, App Store preview, etc. Launch Screen is an initial user interface. It will show to users while your app is loading. Interesting moment - you can't animate your Launch Screen - it is just a static user interface. If you want to animate your Launch screen you can easily create the First screen identical to Launch screen and animate and this First Screen. The First screen must be a root controller in your app, and when the application will be loaded, then the Launch screen will be replaced by the First root controller, and then you can run your animation.
App's core objects are UIApplication, Application Delegate, UIWindow, Views and UI Objects, View Controllers, Event Loop, Documents and Data Objects.
Required App Metadata. All required data about your app and its configuration are stored in Info.plist file. These requirements are how you communicate to the system what your app needs to run.
Info.plist - is a property list file that contains essential configuration information for an application. It is an XML file with the dictionary in the root node of the file. The system uses these keys and values to obtain information about your app and how it is configured. The name of this file is reserved by the system and the name is case sensitive and must have an initial capital letter I. You have 2 ways to editing Info.plist file ( in Xcode interface and like a default XML file in any text editor).
All Custom Keys in Info.plist would be ignored
Recommended Keys for the iOS app you can find in the official documentation