What is an SDK?

21

Until recently, I always saw SDK as something related to the Android universe. However I have noticed some PHP libraries that also use the SDK name.

For example:

But what would an SDK be?

Why in the above cases do not call the SDK library? Would it make a difference?

Can the term SDK vary from Android to other languages, or vice versa?

    
asked by anonymous 21.03.2017 / 17:28

5 answers

16
  

But what would an SDK be?

Software Development Kits can take the form of toolkits or frameworks and provide everything you need to program on top of a platform (operating system, database, application, etc.). These kits often include additional tools that help certain tasks in addition to libraries, documentation, and code samples that help you use the library properly.

Reference: What's the difference between API, Library and Framework?

  

Why in the above cases, do not call the Library SDK? Would it make a difference?

The link above has the difference of the SDK and library. The library is just a collection of algorithms, the SDK is a set of tools including the library (s).

  

Can the term SDK vary from Android to other languages, or vice versa?

Android is not a language, it's a platform. SDK is the SDK, as each works is problem of every platform . It is possible to have different SDKs for each language or the SDK may contain the ability to handle multiple languages.

Officially this is it. Of course it is always possible for someone to come up with a new term, to use this term for something else. We can not look at the misuse to make a definition.

Wikipedia .

    
21.03.2017 / 18:01
6

TL; DR: A library can be part of an SDK, but not every SDK is just a library.

An SDK is like a chest. Within an SDK you will find, in general, several items. For example:

  • Libraries
  • Documentation
  • Code usage examples; and in some cases
  • IDEs

Among other things, the purpose of the SDK (Software Developer's Kit, free translation) is to ensure that you have everything ready to develop / deploy / extend the application whose SDK you have downloaded.

For example, the Android SDK includes:

  • Android Studio
  • Documentation
  • Android emulator
  • Examples and Tutorials

Some other terms that are usually associated:

API

An API is an interface used to interact with a library or a system. When you make use of an SDK, you will most likely also be making use of a system API in question.

Libraries

Libraries are sets of functions and / or classes that extend the functionality of your program.

    
21.03.2017 / 19:04
5

I think all answers are almost entirely correct, because SDK from the point of view can be almost anything, not that you just say "this is an SDK" for it to become something like this.

From what I've been observing the SDK does not necessarily need an IDE, or complete and ready tool, PHP is a server-oriented language and occasionally for CLI , that is, you can edit your documents in any editor and from what I understood with the examples quoted in both the question and the other answers is that SDK should be a complete kit to develop on the specific platform , then if it is possible with these repositories to "develop" your application (independent of anything extra) for PHP specifically, then yes, these repositories are SDKs.

Of course, in order to be able to fully develop, in the case of pagseguro-sdk , it seems that it contains a simulator of pagseguro next to the libraries, written in PHP itself ( link ).

Another thing I noticed in the facebook-sdk repository is that they have the docs folder ( link ), it contains the documentation, I do not see it as mandatory for an SDK, I believe that this should also define an SDK written in PHP, as it will make it independent of online sources.

Conclusion

It does not mean that they are really good SDKs, or that for these repositories the term SDK will fit well, but it is very likely that for something to be an SDK on the specified platform it will need something at least like < p>

  • Full library or software
  • Documentation (optional if you have external accessible fonts)
  • This library has to work almost independently of anything (on the specified platform, in the PHP case)

So, in the PHP language the software that pagseguro-sdk and facebook-sdk depend on are only from their own libraries for development, and the additional things are your Software Development Kit (SDK), then an SDK can include anything as long as it serves as a "tool" for development on such a platform.

Points that would generate the counter of completion

  • Pagseguro does not have documentation together:

    • I'd say it's a good library, but not a good SDK
  • Facebook depends on internet connection and use at least the sandbox (I believe):

  • Both rely on PHP to run the scripts:

    • In the Android SDK you need Java to run, in the Microsoft SDK you need Windows to run, everything has some dependency, so I said "almost independent".
21.03.2017 / 20:54
3

SDK is the acronym for Software Development Kit (or Software Developers Kit). It is this package that allows developers to build applications to run on a specific platform such as Facebook, Android, IOS, Windows and other platforms.

SDK makes it easy to integrate with the features of the chosen platform.

    
21.03.2017 / 17:59
2

SDK, or "source development kit", is:

  • a proprietary framework that is made public
  • The purpose is that external users can contribute to the development of a platform.
  • allows by default to integrate services of that specific platform

SDK examples:

  • Android SDK , (Google - > android)
  • UBUNTU SDK, (UBUNTU)
21.03.2017 / 18:00