iOS SDK Development Preparation


What is SDK?

SDK stands for Software Development Kit.

It supports application development, in this case iOS Application.

In iOS, iOS SDK, Facebook SDK for iOS, etc… are examples of iOS.

Similar word of SDK is library.

What is the difference between SDK and library?

SDK and Library

SDK is library and library groups to develop system and applications. <br/>Library provides specific one function.

SDK related words explanation

Static Library*.a The app uses copied this file and generates executable file by a static linker during compilation time.
Static FrameworkStatic Framework contains a static library packaged with its resources.
Dynamic FrameworkIt the dynamic library with resources
A dynamic framework is a bundle of code loaded into an executable at runtime, instead of at compile time. Examples in iOS include UIKit and the Foundation frameworks. Frameworks such as these contain a dynamic library and optionally assets, such as images.
Universal FrameworkA universal framework can be defined as a framework that contains a binary which has been built for a number of architectures (armv6, armv7, i386) and can be statically linked
XCFrameworkApple defines XCFrameworks as a distributable binary package created by Xcode that contains variants of a framework or library so that it can be used on multiple platforms (iOS, macOS, tvOS, and watchOS), including Simulator builds
Umbrella FrameworkFrameworks contains Framework. One framework has different framework dependencies and it contains inside.

Now, XCFramework becomes popular to provide for SDK, but in the past, we created Dynamic Framework as Universal Framework (this contains both simulator and real device module). When we build app, it does not automatically remove simulator module and it is rejected by Apple. We need to remove simulator part by script codes every time.

Open source vs Closed source

iOS SDK is closed source, iOS SDK is provided by Apple. Install XCode, iOS SDK is inside.Mobile Phone vendors provides SDK, too.

These are also closed source

On the other hand, Android SDK opens their source codes.

Also, some people / companies provides mobile SDK in github with source, this is open source.

I supported multiple SDKs in a company. This SDK does not open source codes in public, so this is closed source.

Professional Programmer2