What is an SDK?

Asked

Viewed 8,944 times

24

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

For example:

But after all, what would an SDK be?

Why in the above cases, do not call the SDK library? Would it have any difference?

The term SDK may vary from Android to other languages, or vice versa?

  • SDK (as its name indicates ) is a complete development kit. You can include the IDE, code examples, drives, etc. The library is a routine implementation set. A form of code reuse (among many)

  • @Paulosérgioduff makes no sense for PHP... In this case, the library Pagseguro for example does not include an IDE :p

  • https://pt.wikipedia.org/wiki/Kit_de_desenvolvimento_de_software

  • 3

    The SDK can include an IDE. It doesn’t mean it will. Software Sdks include even hardware. It’s a more abstract definition. It’s more about the tools, what kind of tools they’ll be.

  • @Armandomarquesnephew Wikipedia’s poor explanation says nothing about PHP :\

  • More complete Sdks are more common in embedded systems and compiled languages. There are many people who think that PHP only makes website.

  • You may fall here => http://answall.com/q/17501/91

  • @rray indeed has SDK in response

  • @rray I even thought not to ask on this account, but what complicated was the "SDK usually comes with IDE and the like", and in PHP this is not true :p

  • Give a read on this link Here maybe you’ll find what you’re looking for.

  • I believe that almost any answer here will be correct, I believe that a software development kit can be anything that is used completely to develop other applications or functionalities without depending on almost anything else, as Bacco told me, is a generic name.

  • poor, @Wallacemaxters? kkkkkk, is miserable, rerere

  • @Armandomarquessobrinho is that the Wiki usually has more detail. This time, this article is tiny... And I wouldn’t directly answer the PHP question :p

Show 8 more comments

5 answers

19


But after all what would be an SDK?

Software Development Kits can take the form of toolkits or of frameworks and provide everything you need to program on top of a platform (operating system, database, application, etc.). These kits usually include:

  • additional tools that help certain tasks beyond libraries,
  • documentation and code examples that help use the library properly.

Reference: What is the difference of API, library and Framework?

Why in the above cases, do not call the SDK library? Would it have any difference?

In the link above has the difference of SDK and library. The library is only a collection of algorithms, the SDK is a set of tools between them a(s) library(s).

The term SDK may vary from Android to other languages, or vice versa?

Android is not a language, it is a platform. SDK is the SDK, how each works is each problem platform. It is possible to have different Sdks for each language or the SDK can contain ability to handle multiple languages.

Officially that’s it. Of course, it’s always possible for someone to invent a new term, to use the same term for something else. We can’t look at the wrong use to make a definition.

Wikipedia.

6

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

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

  • Libraries
  • Documentation
  • Examples of code use; and in some cases,
  • Ides

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

For example, the Android SDK includes:

  • Android Studio
  • Documentation
  • Emulator of Android
  • 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 an API of the system in question.

Libraries

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

6

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

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

Of course, in order to fully develop, in the case of pay-sdk, it seems to me that it contains a pagseguro simulator along with libraries, written in PHP itself (https://github.com/pagseguro/pagseguro-php-sdk/tree/master/public).

Another thing I noticed in the facebook-sdk repository is that they have the Docs folder (https://github.com/facebook/php-graph-sdk/tree/5.4/docs), it contains the documentation, I do not see 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 fonts.

Completion

It doesn’t mean that they are actually 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:

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

Thus, in the PHP language the software pay-sdk and the facebook-sdk depend solely on their own libraries for development, ie libraries and the additional things are their Software development kit (SDK), so 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 the conclusion

  • Pagseguro has no documentation attached:

    • 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):

    • Maybe simulating everything Facebook does is not so easy yet, I’m not sure if it has to simulate.
  • Both depend on PHP to run the scripts:

    • In Android SDK is necessary Java to run, in Microsoft SDK is necessary Windows to run, everything has some dependency, so I said "almost independent".

3

SDK stands for Software Development Kit (or Software Developers Kit - software development package). It is this package that allows programmers to develop applications to run on a specific platform such as Facebook, Android, IOS, Windows and other platforms.

SDK facilitates integration with the features of the chosen platform.

2

SDK, or "source Development kit", is:

  • a proprietary framework, which is made public
  • the purpose is that external users can contribute to the development of a platform.
  • allows as a rule to integrate services from that specific platform

Examples of SDK:

  • Android SDK, (Google -> android)
  • UBUNTU SDK, (UBUNTU)

Browser other questions tagged

You are not signed in. Login or sign up in order to post.