はじめに
AWSの勉強中に疑問に思ったSDK(ソフトウェア開発キット)とAPI(アプリケーションプログラミングインターフェース)の違いを調べ、まとめました。
SDKとAPIはどちらも、開発者が一からシステムを構築せずともアプリケーションに新しい機能を機能を追加できます。
では、実際のアプリケーションを構築する際にはどちらを採用するのが最適か、考えられるようになれたらいいな。と思います。
SDK(Software Development Kit)とは
アプリケーションを開発するために必要な、プログラムやAPI、サンプルコード、技術的な説明資料などをパッケージにしたものです。
SDKを使えば、機能を実現する技術の詳しい仕組みを理解していなくても、少ない理宇力でアプリケーションに新しい機能を実装できます。さまざまなソフトウェアベンダーが独自のSDKを提供し、自社製品とサードパーティー勢を含む他のアプリケーションを簡単に連携できるよう支援しています。
API(Pllication Programming Interface)との関係性
SDK→アプリケーション開発キット
API→アプリケーションコードを呼び出すインターフェース
あくまでAPIはソフトウェアやプログラム、Webサービスを繋ぐもので単体では動作できません。
APIはライブラリ機能、サンプルプログラムなどとともにSDKに含まれるツールの1つです。
SDkを使用するメリット
〇複数の機能を備えている
〇Webサイトの表示速度を維持できる
〇システム開発時間の短縮
〇開発費、人権費の削減
SDKのデメリット
〇バグが含まれている可能性
〇導入により使いにくくなる場合がある
APIの長所
〇効率的な開発ができる
〇ユーザーの利便性を向上できる
APIの短所
〇仕様変更などの影響を受ける
〇活用には専門スキルが必要
SDKとAPIの使い分け
APIはアプリケーションやソフトウェアが用意されていることが前提であり、それら自動連帯させるプラットフォームの役割を担っています。
一方、SDKにはアプリケーションやソフトウェアを構築するためのツールがパッケージ化されており、APIも含まれています。そおためアプリケーションやソフトウェアから開発する場合はSDKを使うことでコストが削減できます。
SDKを使用する際に注意点
〇ライセンス契約や規約の内容の確認
〇バグやアップデートの対応
〇想像以上よりもコストがかかることも
参考記事