Different mind between Application and SDK development
There are several points to be careful to develop SDK.
Idea of library, Build setting, Mind etc..
External Library during development
When we develop an application, we use SDKs and libraries.
In the world, there are a lot of Android SDK, companies support SDK, community support SDK, and personal development SDK.
To reduce time, and to avoid developing same function again and again, we use SDKs and libraries which is already tested enough, and verified(Please take care of Software License).
On the other hand, SDK development takes an opposite direction.
I recommend to develop all functions by ourselves.
The reason is mainly size and maintenance point of view
To import external libraries and sources, the codes of SDK becomes fat, it’s no problem but has many unused codes.
This is the point. Unused codes inside so many, SDK size is bigger.
It’s not good.
And, if these libraries update, SDK needs to update. Management becomes difficult.
- Application development : Use stable SDK and libraries to reduce time (please check License)
- SDK development : Develope functions by ourselves
SDK should support widely in order many people to use.
Setting should be comprehensive and minimum = iOS Deployment Target.
Application is based on device coverage of target market, but SDK case, we should consider target developer’s app
Of course, we should not keep super legacy version.
From experiences, we tried 2 or 3 iOS from latest iOS version(ex. iOS 15, support SDK 14, 13)
Unfortunately, we decided to support 2 OSs, but some customers keep very old OS under 11, also during tests, we found problem and customers asked us to fix this non support OS as well. As a result, actually 4 or 5 OS are required to support. Though in Apple case, almost all uses update latest OS.
iOS programming, we can use Swift or Objective-C.
These days, as long as there is no special reasons, we may choose Swift.
In SDK environment, Objective-C is longer used due to swift compiler version and compatible issue.
But these days, Swift environment becomes stable, so choose Swift is much better I think.
Swift vs Objective-C
I started iOS SDK development for long time ago.
At that time, development app in Swift is not popular and still use Objective-C
We choose Swift to become popular for the future.
Actually, this decision has a lot of problems.
Until Swift 5 comes, Swift does not have back compatible
If app uses latest Swift version, and SDK Swift version is old, it does not work.
We build new SDK every time, XCode Swift OS updates.
Customers asked compatible problem based on their app, so we received a lot of same questions
These days, situation is much better, but still version change required code changes…
I lead 2 SDK products team, and actually one SDK is written by Swift, the other is Objective-C.
Objective-C does not have compatible issue, but not sure Apple continue to support.