As an iOS developer, we often hear sdk,api. But what exactly are they? What role does it have? , some people always think they are too abstract.
Next let us talk, because the technical knowledge is endless, so I said there may be some inaccuracies, so also hope that the vast number of Bo friends to correct, we progress together ~ ~
SDK
SDK, English full name software development Kit, Chinese meaning is the software development package. This development package will typically contain resources such as API libraries, help documents, manuals, assistive tools, and more. This means that the SDK is actually a collection of resources needed for development. And the API is included in it, which we'll talk about next. We usually use Xcode to develop an iOS project, so what's the relationship between SDK and Xcode? The relationship between the two is like operating system and software, the operating system provides the platform for the application, you use the software to implement the functions you want to use. Xcode provides a platform for the SDK, you use the SDK to program, Xcode is just an IDE, a tool for development, you can also use Xcode to develop. But it is the apple of the official comparison advocated, and relatively the most popular, it is best to use it. And the SDK is the soul of development, that is, what you are really going to use.
It is worth mentioning that the SDK is now referred to as the SDK used to develop applications under the Windows platform, but the SDK is generally defined and useful. By this we are not ugly out, in fact, no matter what operating platform, what compiler language. We use the essence of the rules are the same, at the same time we can also engage in their own professional, but also for reference to other areas, perhaps there is an unexpected receipt and sentiment.
Finally, some people think that the SDK is difficult to understand, difficult to materialize, instantiation. In fact, I think this is the result of the generalized nature of the SDK, which often includes sample code, supportive technical annotations, or other supporting documentation to clarify suspects for basic reference. It is because it contains much, wide, deep. So the SDK is difficult to define in a simple, clear definition there. We should not be too entangled in this point, we have more contact later also naturally have its approximate outline.
API
just now, the API is included in the SDK, so the generalized nature of the API is relatively small. The term API is called application Programming Interfaces (Application programming Interface). Simply put, a condom is required to manage communication between applications. API is not a new thing, when you use a PC or notebook, it is the API to let data transfer between programs. For example, cut a fragment from a LibreOffice document and transfer it to an Excel table. The system-level API allows LibreOffice to run on an operating system such as Windows.
It can also be said that the operating system is left to an application's calling interface, and the application makes the operating system execute the application's commands (actions) by invoking the operating system's APIs. The API is made possible by the limited outward opening of some functions within the program, which allows applications to share data based on their own interests without requiring the developer to publish all the software code. The same is true for open source projects. You can think of it as a door, window or lever, no matter what the metaphor, the communication between a program and the outside world of software is defined by the API.
Five major API Cocoa,carbon,posix,x11 and Java on Mac OS x
Next we talk about the more important and commonly used Api,cocoa. Cocoa applications are typically written in objective-c with Apple's development tools Xcode (formerly Project Builder) and interface Builder. However, through bridging technologies such as Java Bridge, Pascocoa, PYOBJC, Camelbones, and RubyCocoa, Java, clozure CL, LispWorks, Object Pascal, Python, Perl, Other tools or languages such as Ruby can also be used to develop COCOA applications
Speaking of APIs, we have to say that Cocoa Touch,cocoa Touch is a software development API provided by Apple to develop software on Iphone\ipod\ipad. It is also a class library provided by Apple for rapid development of iphone applications. This library exists as a series of framework libraries, enabling developers to use user interface elements to build an image event-driven application.
This everyone must be not unfamiliar, we develop often to build the class, such a look more intuitive.
So the question comes, cocoa and cocoa touch is a word difference, what is the difference?
Both contain the two core framework of the OC Runtime: The cocoa includes foundation and appkit frameworks, applications that can be used to develop Mac OS X Systems Cocoa Touch includes foundation and uikit frameworks that can be used to develop iphone OS Application of the systemCocoa in the development environment of Mac OS X, Cocoa Touch is the development environment for Iphone OS
Now we understand why we often use cocoa touch more, because most of our development is mobile app, so with cocoa touch is natural.
Hey, the above is my SDK and API some shallow understanding and summary, which is also a lot of information on the Internet to learn their own, see a lot of great God's blog, but also so a little progress, just contact blog, if the article has what is not correct or vague place, also hope that the vast number of Bo friends, we learn together!
An introduction to iOS SDK and API