Jump to section

SDK とは

URL をコピー

ソフトウェア開発キット (SDK) とは、ハードウェア・プラットフォームやオペレーティングシステム (OS)、またはプログラミング言語などのメーカーによって提供されるツール一式のことです。

SDK は、特定のプラットフォーム、システムまたはプログラミング言語のアプリケーションを作成するのに役立ちます。組み立て家具を購入すると、それを組み立てるためのツールキット、つまり袋に入った工具がパッケージに含まれてきますが、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) を適用する際には繊細な取り扱いが必要です。 

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

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

関連資料

記事

ステートフルとステートレス

あるものがステートフルかステートレスかは、別の何かとの通信の状態が記録される期間と、その情報をどのように保存する必要があるかによって決まります。

記事

Quarkus とは

Quarkus は、Java 仮想マシン (JVM) およびネイティブコンパイルのために作成された Kubernetes ネイティブの Java スタックで、Java をコンテナに最適化します。

記事

サーバーレスとは

サーバーレスは、開発者がサーバーを管理する必要なくアプリケーションを構築および実行できるようにするクラウドネイティブ開発モデルです。

クラウドネイティブ・アプリケーションの詳細はこちら

製品

Red Hat OpenShift

エンタープライズ対応の Kubernetes コンテナ・プラットフォームで、ハイブリッドクラウド、マルチクラウド、エッジのデプロイメントを管理するフルスタックの自動運用機能を備えています。

リソース

トレーニング

無料のトレーニング

Developing Cloud-Native Applications with Microservices Architectures

Illustration - mail

その他の関連コンテンツ

無料のニュースレター「Red Hat Shares」(英語) では、注目の IT トピックスに関するコンテンツをお届けしています。