今更ながら SDK について調べてみた | SiTest (サイテスト) ブログ

メニューボタン閉じるボタン

今更ながら SDK について調べてみた

ネイティブアプリの開発で様々な実装を追加できる SDK という単語をよく耳にします。
この SDK とはどんなものなのか、システムを構築する上で API を用いることも多いのですが一見似たようなものという印象があります。
そこで普段ウェブ系の開発をメインに取り扱ってるのですが、SDK とはなんなのか調べて見ました。

スポンサーリンク

SDK とは

SDK とは Software Development Kit の略でソフトウェア開発キットのことだそうです。
ソフトウェア開発キットって具体的にはどんなものを差すのでしょうか?

非常にざっくり言うと開発するためのツールであり、統合開発環境等を含まれる場合もありますし、
ものによってはハードウェア込みで SDK と呼ぶ場合もあります。

Wikipedia で調べてみると初代プレイステーションの SDK 一式としてプレイステーション本体含めていることがわかります。

API

ソフトウェア(=アプリケーション)を開発するに当たりよく利用するのが、API です。
なおソフトウェアとアプリケーションは厳密には違いがあるようですが、今回のケース(ウェブアプリケーションとスマホネイティブのアプリケーション)ではほぼ同じ意味ですので深く突っ込まないようにします。

API は Application Programing Interface の略で特定のルールに従い通信(ここで言う通信はインターネット等に限りません)を行なうとプログラムが実行され結果が返ってくるというものです。

ウェブ系エンジニアでは REST API を使うことが多くこれは URL を叩くとプログラムが実行され json が返されるといったものです。
ウェブでいう HTML タグによる広告効果測定のタグ等はこれに当たります。

つまり API を用いてソフトウェア(=アプリケーション)を開発するということは API をシステムに組み込んで開発するということで、SDK を用いてソフトウェアを開発するということは SDK という環境の元ソフトウェアを開発するということになります。

Android SDK

実際 SDK を使用してみます。
今回は Android のアプリケーションを開発する、Android SDK を使ってみます。
https://developer.android.com/studio/index.html?hl=ja
ここから Android Studio をダウンロードします。

ガイドに沿ってインストールを行います。

この画面になったら、Configure をクリックし SDK Manager をクリックします。

Android SDK Location の項目を控え、Location の場所 /platform-tools に PATH を通しておきます。

あとは adb と打って command not found とでなければインストール完了です。

adb コマンドは SDK 内のツールを用いるためのコマンドで Android Debug Bridge の略です。
USB を介して接続した Android マシンのデバッグモードで設定を変更したりできるようです。
海外製の Android で日本語を設定できないものでも無理やり設定できたりします。

その他 Google map 等を利用するための SDK は Android Studio にインストールし、内部の API を有効化させることで利用可能となります。

その他の SDK

上記 Android SDK はどちらかというとアプリを作る側が導入するもので
その他アプリに広告を導入する場合等 別の SDK を用います。

例として Google Mobile Ads SDK が挙げられます。

こちらは導入方法を見てみましたが、

アプリへの Google モバイル広告の組み込みは簡単な手順で行えます。
1.Eclipse ワークスペースに Google Play 開発者サービス ライブラリ プロジェクトを追加、参照する
2.AndroidManifest.xml に meta-data タグを追加する
3.マニフェストで com.google.android.gms.ads.AdActivity を宣言する
4.マニフェストでネットワーク権限を設定する

簡単じゃないです。
ちなみに Eclipse は統合開発環境です。
普段開発に携わっていない人にとってハードルが高いですね。
しかもアプリを外注している場合、ソースコードを納品してもらい自前でビルドする必要があるなど障害は多そうです。

そのため設定の変更等一朝一夕では難しそうです。

まとめ

日頃よく耳にする SDK とは何なのか調べてみましたが、ネイティブアプリの性質上、
ビルドが発生するので HTML タグで運用できる API に比べ導入のハードルが高いことがわかりました。

ビルドが発生するということは他所のアプリにどんな SDK を導入しているかなど判断できないので参考にすることもできないようです。

SDK ごとに導入の方法も違いがあるようで、利用には慣れが必要そうです。

しかもネイティブアプリの場合ビルド後に審査があるのでどうしてもリリースの間隔が空いてしまいそうです。
そのため SDK を導入する場合計画性が重要となってきそうです。