I have develop Mobile SDK from 2016 in E-commerce company (Advertisement Department). I’m Backend Engineer originally, and supported Frontend, Mobile SDK(mainly Android, a bit iOS).
This entry is a history and what kind of thing our team considers to develop Mobile SDK.
Open Source? Closed Source?
Our Mobile SDK is for company. Not open source. Of course, there are a lot of open source Mobile library in github.
Mobile Application developers use a lot of those kind of open source library (Alamofire – iOS, Picasso – Android, etc…) Those open sources are managed by company or organization or personal projects.
Source is managed by many people.
Our source codes are basically closed. We can provide only built library for customers.
|Company Internal||Can use only company internal. Build SDK and provide company internal (Upload SDK which company people can access maven, pods etc…)|
|Partner level||Only provide partner level (Pass SDK directly to partner, or the partner can access SDK download)|
|Public Upload||Build SDK and upload public space, but only binary|
|Open Source||Open source, the developer can use build version by yourself or source it self|
From up to bottom, future public
What kind of things do we need to keep in mind?
1.Less library dependency
This is the most important thing, and I always tell members (now, I am a manager of the team).
In application development, some functions are already supported by other people. Less effort is better to proceed app development. (No need to create all functions from scratch)
But for SDK developers, if we import library to use our SDK, this is troublesome.
- Need to keep in mind to update dependencies
- Unused function -> Library becomes fat
- Need to resolve dependencies
- Conflict libraries with app developers’
Basically, we accept only Android Google library(includes support library and Google Play Service library), and iOS Framework.
2. Support OS
Support OS includes 2 problems.
- Minimum OS
- Next OS
For application developers especially iOS, annual OS upgrade is just festival.
Beta version is released earlier (2, 3 month before) and developers
SDK developers should prepare earlier because, app developers integrate our SDK.
Minimum OS… SDK developers should test all version to support SDK minimum version.
Of course, we have cost to test all OS version, it’s annoying. Product members and developers need to decide minimum (cut old OS) seeing user’s percentage (iOS is faster, Android is snail’s pace.
Next entry, I will explain how to decide first SDK and current situation