ログイン / 登録 アカウント

クラウドネイティブ・アプリケーション

SDK とは

Jump to section

ソフトウェア開発キット (SDK) とは、(通常は) ハードウェア・プラットフォーム、オペレーティングシステム (OS)、またはプログラミング言語のメーカーによって提供されるツール一式のことです。SDK は、対象のプラットフォーム、システム、またはプログラミング言語向けのアプリケーションを作成するのに役立ちます。買った人が組み立てるタイプの家具にはビニール袋入りの工具が付いてきますが、SDK はアプリケーション開発におけるツールキットのようなものだと考えてください。作業を完了するために必要な構成要素、つまり開発ツールが含まれており、キットに含まれるものはメーカーによって異なります。 

通常、基本的な SDK には、コンパイラ、デバッガ、およびアプリケーション・プログラミング・インタフェース (API) が含まれますが、次のようなものが含まれることもあります。

  • ドキュメント
  • ライブラリ
  • エディタ
  • ランタイム/開発環境
  • テスト/分析ツール
  • ドライバー
  • ネットワークプロトコル

優れた SDK は、特定の製品とそのエコシステム向けに新しいアプリケーションを作成する際に開発者が必要とする可能性があるコンポーネントをすべて提供します。中には、少しでも早く作業に取り掛かれるように、サンプルや基本的なテストプロジェクトを含む SDK もあります。

ソフトウェア開発キットには、Java 開発キット (JDK)、Windows 7 SDK、MacOS X SDK、iPhone SDK などがあります。具体例として、Kubernetes Operator SDK は、独自の Kubernetes Operetor の開発に役立ちます。この SDK には、高度な API、スキャフォールディングとコード生成のためのツール、一般的なオペレーターのユースケースに対応する拡張機能が含まれています。 

ほとんどの SDK には、コマンドラインを使って新しいモバイルアプリケーションやプロジェクトをソーステキストレベルで接続するためのツールとして API が含まれており、多くの場合、サンプルコードも含まれています。サンプルコードは、基本的なプログラムの構築方法を学ぶのに役立つサンプルプログラムとライブラリを開発者に提供します。開発者はそれを使って複雑なアプリケーションを容易に最適化あるいは開発したり、必要に応じてデバッグや新機能の追加を行ったりすることができます。

一部の SDK には、API の使用方法に関するドキュメント、チュートリアル、FAQ、サンプルグラフィックが含まれています。これは、開発者が新しい SDK の使用方法を学ぶのに時間がかかることがあるからです。このため、競合を抑えて、提供するプログラムが開発者に選ばれるためには、直感的なプログラミング・インタフェース、つまりユーザー・インタフェース (またはより充実したドキュメント) が有利に働きます。

同様に、SDK は、企業が開発者に自社の製品を紹介し、そのプラットフォームや OS で統合開発環境を使用してリアルタイムにアプリケーションを作成するように働きかけるための優れた手段になります。このため、ほとんどの SDK は無料で使用することができ、開発者はダウンロードしてすぐにプログラミングを開始できます。 

考慮すべきこと  

一部の SDK、特に、アルファ版やベータ版の段階にある新製品やアルゴリズムが公開されていない (オープンソースではない) ソフトウェアの場合には、使用前にルールや規約への同意および提出が必要となる場合があります。また、その SDK で作成されるソフトウェアが条件の異なるライセンスでリリースされないよう、ライセンス契約の対象となることもあります。

開発者は作業で使用する SDK を選択する際、これらの点を考慮する必要があります。具体的には次のような点です。

  • プロプライエタリー・ライセンスで提供されている SDK では、オープンソースソフトウェアの開発はできません。
  • General Public License (GPL) で提供されている SDK でプロプライエタリー・アプリケーションを開発することはできません。
  • プロプライエタリーコードの要素を持つプロジェクトに Lesser General Public License (LGPL) を適用する際には繊細な取り扱いが必要です。 

Red Hat を選ぶ理由

オープンソース・アプリケーションは、アマチュアから専門家までの幅広い人々によって継続的に開発されています。それは、SDK を使用して新しいデザインや拡張機能をコーディングし、コミュニティの他のメンバーと共有できるからです。 

Red Hat は、アプリケーション開発における最高クラスのツール、ソリューション、サービスを、The Open Source Way (オープンソースウェイ) で統合しています。アプリケーション構築プラットフォーム (Red Hat OpenShift) 、ビルド用ランタイム環境 (Red Hat Runtimes)、そして開発、デバッグ、テスト、デプロイに必要なすべてのツールを備えたアプリケーション開発環境 (Red Hat CodeReady Studio) まで、Red Hat がご用意しています。

関連トピック:自動化された API ドキュメントと SDK の生成