Что такое SDK и чем он отличается от API? Рассказывает LIFE PAY
Начинаем с простого определения сложного SDK
SDK ( с англ. Software Development Kit, рус. «комплект для разработки ПО») — это комплекс решений, разработанный компанией-производителем, который может использоваться для внедрения определенного сервиса в другой IT-продукт. Простыми словами: одна компания придумала крутой сервис, решила поделиться этой разработкой с рынком и подготовила шаблоны для внедрения сервиса в иные предложения ны рынке. Другие производители хором говорят спасибо производителю и вовсю внедряют функции сервиса производителя в свои продукты благодаря SDK.
Кстати, если вы думаете, что приложения для Android или iOS пишутся каждой компанией-разработчиком с нуля, то вы ошибаетесь. Многие приложения разработаны с помощью именно «Android SDK» (этаких инструкций и базовых шаблонов по работе с Андроид, сама инструкция написана на Java).
То же самое и с iOS — для разработки приложения для iOS программисты используют специально разработанный iOS SDK. Свои SDK есть у Xbox, Intel, Oracle, Windows и т.д.
SDK включает в себя несколько частей, каждая из которых не менее полезна, чем предыдущая. Вот они, слева направо:
- Библиотеки: отсюда разработчики заимствуют нужный им функционал при разработке своего кода.
- IDE ( Integrated Development Environment): специальное окошко, в котором программисты пишут программу
- Документация — инструкции и туториалы по правильному внедрению кода в ваш код, скорая помощь/«звонок другу»
- Инструменты тестирования, отладки — внимательно следят за возможными ошибками в коде и помогают от них избавиться
- Компиляторы — отвечают за преобразование исходного кода в машинный язык.
Окей, ну а API что такое?
API — тоже комплекс решений для внедрения элемента программы компании-разработчика в другой продукт. Только, в отличие от своего «большого брата» SDK, API интегрирует лишь функцию, составную часть сервиса.
Вполне не сложно догадаться, что API спокойно может быть составляющей частью SDK. Если API — это отдельная интегрируемая функция, то SDK — это целый интегрируемый сервис. Благодаря API две программы могут взаимодействовать друг с другом по следующим сценариям:
- Одно ПО предоставляет данные другому ПО. Например, сайты агрегаторов авиабиолетов — Skysanner, Aviasales. Эти ребята собирают данные по ценам и предложениям с других сайтов и компилируют информацию в одном месте.
- Одна программа передает свои функции другой программе для запуска какого-либо процесса. Например, функции по приему платежа через смартфон приложения Checkout от LIFE PAY можно по API встроить в кассовое или учетное приложение курьерской службы, ресторанной сети или компании-ритейлера. Checkout особенно полезен для курьеров или работников торговых залов: программа фактически превращает смартфон работника в платежный терминал по приему банковских карт. Отличный способ сэкономить на платежном оборудовании, не так ли?
- Набор функций, которые помогают другой программе достичь желаемого результата. Например, Google Календарь предоставил собственное API разработчикам event-календарей, сервисов планирования и CRM-систем для записи клиентов на какие-либо услуги.
Резюмируем: короче, если вы что-то сделали в одном приложении и это «аукнулось» совершенно неожиданно в другом приложении — есть вероятность что здесь замешаны API.
Ниже представлена упрощенная схема взаимодействия по API базы данных одного сервера с приложением прогноза погоды.
Итак, выводы!
Сходство API и SDK
- Оба решения позволяют интегрировать IT продукты или их элементы в системы других разработчиков.
- Оба представляют собой унифицированную разработку, предназначенную для платного или бесплатного предоставления другим платформам.
- Оба решения очень упрощают и ускоряют разработку IT продуктов, избавляя бедных программистов от необходимости постоянно все разрабатывать с нуля.
Различия API и SDK
- Советуем запомнить ключевые слова, которые емко обозначают четкое различие: API — это набор описаний, это интерфейс. SDK — это набор определенных и реальных инструментов, который может включать в себя от одного до нескольких API.
- SDK предназначен как база для создания приложений с нуля, а API «вписывается» в уже созданный самостоятельный продукт.